1e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik/* 2e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * Copyright (C) 2014 The Android Open Source Project 3e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * 4e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 5e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * you may not use this file except in compliance with the License. 6e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * You may obtain a copy of the License at 7e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * 8e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * http://www.apache.org/licenses/LICENSE-2.0 9e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * 10e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * Unless required by applicable law or agreed to in writing, software 11e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * distributed under the License is distributed on an "AS IS" BASIS, 12e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * See the License for the specific language governing permissions and 14e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik * limitations under the License. 15e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik */ 16e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 17e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik#define LOG_TAG "OpenGLRenderer" 18e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 19e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik#include <GLES2/gl2.h> 20e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik#include <GLES2/gl2ext.h> 21e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 22e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik#include <utils/Log.h> 23e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 24e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik#include "GLUtils.h" 25e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 26e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craiknamespace android { 27e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craiknamespace uirenderer { 28e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 29e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craikvoid GLUtils::dumpGLErrors() { 30e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik GLenum status = GL_NO_ERROR; 31e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik while ((status = glGetError()) != GL_NO_ERROR) { 32e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik switch (status) { 33e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik case GL_INVALID_ENUM: 34e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik ALOGE("GL error: GL_INVALID_ENUM"); 35e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik break; 36e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik case GL_INVALID_VALUE: 37e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik ALOGE("GL error: GL_INVALID_VALUE"); 38e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik break; 39e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik case GL_INVALID_OPERATION: 40e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik ALOGE("GL error: GL_INVALID_OPERATION"); 41e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik break; 42e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik case GL_OUT_OF_MEMORY: 43e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik ALOGE("GL error: Out of memory!"); 44e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik break; 45e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik default: 46e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik ALOGE("GL error: 0x%x", status); 47e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik } 48e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik } 49e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik} 50e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik 51e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik}; // namespace uirenderer 52e4aa95e3627226bcb0d8cc3e42dca6e4df8f421cChris Craik}; // namespace android 53