- #ifndef HARNESS_GL_RENDERER 
- #define HARNESS_GL_RENDERER 
-   
- #include "harness.h" 
- #include "harness/hooks.h" 
-   
- #define CHECK_GL_ERROR(msg)                                \ 
-     {                                                      \ 
-         GLenum e = glGetError();                           \ 
-         if (e != GL_NO_ERROR) {                            \ 
-             const char* err;                               \ 
-             switch (e) {                                   \ 
-             case GL_NO_ERROR:                              \ 
-                 err = "GL_NO_ERROR";                       \ 
-                 break;                                     \ 
-             case GL_INVALID_ENUM:                          \ 
-                 err = "GL_INVALID_ENUM";                   \ 
-                 break;                                     \ 
-             case GL_INVALID_VALUE:                         \ 
-                 err = "GL_INVALID_VALUE";                  \ 
-                 break;                                     \ 
-             case GL_INVALID_OPERATION:                     \ 
-                 err = "GL_INVALID_OPERATION";              \ 
-                 break;                                     \ 
-             case GL_INVALID_FRAMEBUFFER_OPERATION:         \ 
-                 err = "GL_INVALID_FRAMEBUFFER_OPERATION";  \ 
-                 break;                                     \ 
-             case GL_OUT_OF_MEMORY:                         \ 
-                 err = "GL_OUT_OF_MEMORY";                  \ 
-                 break;                                     \ 
-             case GL_STACK_UNDERFLOW:                       \ 
-                 err = "GL_STACK_UNDERFLOW";                \ 
-                 break;                                     \ 
-             case GL_STACK_OVERFLOW:                        \ 
-                 err = "GL_STACK_OVERFLOW";                 \ 
-                 break;                                     \ 
-             default:                                       \ 
-                 err = "unknown";                           \ 
-                 break;                                     \ 
-             }                                              \ 
-             LOG_PANIC("glError %d (%s): %s", e, err, msg); \ 
-         }                                                  \ 
-     } 
-   
- void GLRenderer_Init(int render_width, int render_height); 
- void GLRenderer_SetPalette(uint8_t* rgba_colors); 
- void GLRenderer_BeginScene(br_actor* camera, br_pixelmap* colour_buffer, br_pixelmap* depth_buffer); 
- void GLRenderer_EndScene(void); 
- void GLRenderer_FullScreenQuad(uint8_t* screen_buffer); 
- void GLRenderer_Model(br_actor* actor, br_model* model, br_material* material, br_token render_type, br_matrix34 model_matrix); 
- void GLRenderer_BufferTexture(br_pixelmap* pm); 
- void GLRenderer_BufferMaterial(br_material* mat); 
- void GLRenderer_BufferModel(br_model* model); 
- void GLRenderer_ClearBuffers(void); 
- void GLRenderer_FlushBuffer(tRenderer_flush_type flush_type); 
- void GLRenderer_FlushBuffers(void); 
- void GLRenderer_SetViewport(int x, int y, int width, int height); 
-   
- #endif 
-