1 /* libs/opengles/surface.cpp 2 ** 3 ** Copyright 2006, The Android Open Source Project 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 #include <stdio.h> 19 #include <stdlib.h> 20 #include "TokenManager.h" 21 22 namespace android { 23 // ---------------------------------------------------------------------------- 24 TokenManager()25TokenManager::TokenManager() 26 { 27 // token 0 is always reserved 28 mTokenizer.reserve(0); 29 } 30 ~TokenManager()31TokenManager::~TokenManager() 32 { 33 } 34 getToken(GLsizei n,GLuint * tokens)35status_t TokenManager::getToken(GLsizei n, GLuint *tokens) 36 { 37 Mutex::Autolock _l(mLock); 38 for (GLsizei i=0 ; i<n ; i++) 39 *tokens++ = mTokenizer.acquire(); 40 return NO_ERROR; 41 } 42 recycleTokens(GLsizei n,const GLuint * tokens)43void TokenManager::recycleTokens(GLsizei n, const GLuint *tokens) 44 { 45 Mutex::Autolock _l(mLock); 46 for (int i=0 ; i<n ; i++) { 47 const GLuint token = *tokens++; 48 if (token) { 49 mTokenizer.release(token); 50 } 51 } 52 } 53 isTokenValid(GLuint token) const54bool TokenManager::isTokenValid(GLuint token) const 55 { 56 Mutex::Autolock _l(mLock); 57 return mTokenizer.isAcquired(token); 58 } 59 60 // ---------------------------------------------------------------------------- 61 }; // namespace android 62 63