19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* libs/opengles/state.h
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License.
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** See the License for the specific language governing permissions and
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License.
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef ANDROID_OPENGLES_STATE_H
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define ANDROID_OPENGLES_STATE_H
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <stdint.h>
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <stddef.h>
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <sys/types.h>
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <private/pixelflinger/ggl_context.h>
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <GLES/gl.h>
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <stdio.h>
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace android {
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectogles_context_t *ogles_init(size_t extra);
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectvoid ogles_uninit(ogles_context_t* c);
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectvoid _ogles_error(ogles_context_t* c, GLenum error);
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef TRACE_GL_ERRORS
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define TRACE_GL_ERRORS 0
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if TRACE_GL_ERRORS
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define ogles_error(c, error) \
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectdo { \
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  printf("ogles_error at file %s line %d\n", __FILE__, __LINE__); \
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  _ogles_error(c, error); \
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} while (0)
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#else /* !TRACE_GL_ERRORS */
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define ogles_error(c, error) _ogles_error((c), (error))
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; // namespace android
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // ANDROID_OPENGLES_STATE_H
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55