Subversion Repositories Games.Carmageddon

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
#ifndef HARNESS_GL_RENDERER
2
#define HARNESS_GL_RENDERER
3
 
4
#include "harness.h"
5
#include "harness/hooks.h"
6
 
7
#define CHECK_GL_ERROR(msg)                                \
8
    {                                                      \
9
        GLenum e = glGetError();                           \
10
        if (e != GL_NO_ERROR) {                            \
11
            const char* err;                               \
12
            switch (e) {                                   \
13
            case GL_NO_ERROR:                              \
14
                err = "GL_NO_ERROR";                       \
15
                break;                                     \
16
            case GL_INVALID_ENUM:                          \
17
                err = "GL_INVALID_ENUM";                   \
18
                break;                                     \
19
            case GL_INVALID_VALUE:                         \
20
                err = "GL_INVALID_VALUE";                  \
21
                break;                                     \
22
            case GL_INVALID_OPERATION:                     \
23
                err = "GL_INVALID_OPERATION";              \
24
                break;                                     \
25
            case GL_INVALID_FRAMEBUFFER_OPERATION:         \
26
                err = "GL_INVALID_FRAMEBUFFER_OPERATION";  \
27
                break;                                     \
28
            case GL_OUT_OF_MEMORY:                         \
29
                err = "GL_OUT_OF_MEMORY";                  \
30
                break;                                     \
31
            case GL_STACK_UNDERFLOW:                       \
32
                err = "GL_STACK_UNDERFLOW";                \
33
                break;                                     \
34
            case GL_STACK_OVERFLOW:                        \
35
                err = "GL_STACK_OVERFLOW";                 \
36
                break;                                     \
37
            default:                                       \
38
                err = "unknown";                           \
39
                break;                                     \
40
            }                                              \
41
            LOG_PANIC("glError %d (%s): %s", e, err, msg); \
42
        }                                                  \
43
    }
44
 
45
void GLRenderer_Init(int render_width, int render_height);
46
void GLRenderer_SetPalette(uint8_t* rgba_colors);
47
void GLRenderer_BeginScene(br_actor* camera, br_pixelmap* colour_buffer, br_pixelmap* depth_buffer);
48
void GLRenderer_EndScene(void);
49
void GLRenderer_FullScreenQuad(uint8_t* screen_buffer);
50
void GLRenderer_Model(br_actor* actor, br_model* model, br_material* material, br_token render_type, br_matrix34 model_matrix);
51
void GLRenderer_BufferTexture(br_pixelmap* pm);
52
void GLRenderer_BufferMaterial(br_material* mat);
53
void GLRenderer_BufferModel(br_model* model);
54
void GLRenderer_ClearBuffers(void);
55
void GLRenderer_FlushBuffer(tRenderer_flush_type flush_type);
56
void GLRenderer_FlushBuffers(void);
57
void GLRenderer_SetViewport(int x, int y, int width, int height);
58
 
59
#endif