Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39af502c authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change Ib96df854 into eclair

* changes:
  add a way to easily catch and log GL errors (compile time flag)
parents 4b19ae15 7d21a745
Loading
Loading
Loading
Loading
+21 −3
Original line number Original line Diff line number Diff line
@@ -31,6 +31,9 @@


using namespace android;
using namespace android;


// set this to 1 for crude GL debugging
#define CHECK_FOR_GL_ERRORS     0

// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// extensions for the framework
// extensions for the framework
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
@@ -71,7 +74,7 @@ void glVertexPointerBounds(GLint size, GLenum type,
#undef CALL_GL_API
#undef CALL_GL_API
#undef CALL_GL_API_RETURN
#undef CALL_GL_API_RETURN


#if USE_FAST_TLS_KEY
#if USE_FAST_TLS_KEY && !CHECK_FOR_GL_ERRORS


    #define API_ENTRY(_api) __attribute__((naked)) _api
    #define API_ENTRY(_api) __attribute__((naked)) _api


@@ -95,11 +98,26 @@ void glVertexPointerBounds(GLint size, GLenum type,


#else
#else


    #if CHECK_FOR_GL_ERRORS
    
        #define CHECK_GL_ERRORS(_api) \
            do { GLint err = glGetError(); \
                LOGE_IF(err != GL_NO_ERROR, "%s failed (0x%04X)", #_api, err); \
            } while(false);

    #else

        #define CHECK_GL_ERRORS(_api) do { } while(false);

    #endif


    #define API_ENTRY(_api) _api
    #define API_ENTRY(_api) _api


    #define CALL_GL_API(_api, ...)                                      \
    #define CALL_GL_API(_api, ...)                                      \
        gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl; \
        gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl; \
        _c->_api(__VA_ARGS__)
        _c->_api(__VA_ARGS__);                                          \
        CHECK_GL_ERRORS(_api)


    #define CALL_GL_API_RETURN(_api, ...)                               \
    #define CALL_GL_API_RETURN(_api, ...)                               \
        gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl; \
        gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl; \