1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #ifndef EGL_THREAD_INFO_H 17 #define EGL_THREAD_INFO_H 18 19 #include <EGL/egl.h> 20 21 // Model thread-specific EGL state. 22 class EglThreadInfo { 23 public: 24 // Return the thread-specific instance of EglThreadInfo to the caller. 25 // The instance will be created on first call, and destroyed automatically 26 // when the thread exits. 27 static EglThreadInfo* get(void) __attribute__((const)); 28 29 // Set the error code |err|. Default value is EGL_NO_ERROR. setError(EGLint err)30 void setError(EGLint err) { m_err = err; } 31 32 // Get the error code. Note that this doesn't change the value, 33 // unlike eglGetError() which resets it to EGL_NO_ERROR. getError()34 EGLint getError() const { return m_err; } 35 36 // Change the |api| value. Default is EGL_OPENGL_ES setApi(EGLenum api)37 void setApi(EGLenum api) { m_api = api; } 38 39 // Get the current API value. getApi()40 EGLenum getApi() const { return m_api; } 41 42 EglThreadInfo(); 43 private: 44 45 EGLint m_err; 46 EGLenum m_api; 47 }; 48 49 #endif 50