1e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#ifndef ANDROID_DVR_DEBUG_H_ 2e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#define ANDROID_DVR_DEBUG_H_ 3e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko 4e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#include <GLES3/gl3.h> 5e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#include <math.h> 6e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko 74fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko#include <log/log.h> 8e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko 9e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#ifndef NDEBUG 104fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko#define CHECK_GL() \ 114fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko do { \ 124fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko const GLenum err = glGetError(); \ 134fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko if (err != GL_NO_ERROR) { \ 144fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko ALOGE("OpenGL error %d", err); \ 154fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko } \ 16e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko } while (0) 17e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko 18e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#define CHECK_GL_FBO() \ 19e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko do { \ 20e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); \ 21e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko switch (status) { \ 22e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko case GL_FRAMEBUFFER_COMPLETE: \ 23e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko break; \ 24e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko case GL_FRAMEBUFFER_UNSUPPORTED: \ 254fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko ALOGE("GL_FRAMEBUFFER_UNSUPPORTED"); \ 26e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko break; \ 27e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko default: \ 284fe60582f314e381098f8f3bc2e39c5880e9243aAlex Vakulenko ALOGE("FBO user error: %d", status); \ 29e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko break; \ 30e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko } \ 31e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko } while (0) 32e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#else 33e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#define CHECK_GL() 34e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#define CHECK_GL_FBO() 35e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#endif 36e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko 37e4eec20f6263f4a42ae462456f60ea6c4518bb0aAlex Vakulenko#endif // ANDROID_DVR_DEBUG_H_ 38