22#ifndef BACKENDS_GRAPHICS_OPENGL_RENDERER3D_H
23#define BACKENDS_GRAPHICS_OPENGL_RENDERER3D_H
25#include "common/scummsys.h"
27#if defined(USE_OPENGL_GAME) || defined(USE_OPENGL_SHADERS)
29#include "graphics/opengl/texture.h"
36 ~Renderer3D() { destroy(); }
38 void initSize(uint w, uint h,
int samples,
bool renderToFrameBuffer);
39 void resize(uint w, uint h);
47 void showOverlay(uint w, uint h);
50 const Texture &getGLTexture()
const {
return _texture; }
51 bool hasTexture()
const {
return _texture.getGLTexture() != 0; }
60 int _pendingScreenChangeWidth;
61 int _pendingScreenChangeHeight;
63 bool _renderToFrameBuffer;
66 GLuint _renderBuffers[3];
67 GLuint _frameBuffers[2];
69#define CTX_STATE(gl_param) GLboolean _save ## gl_param = false
70#define CTX_BOOLEAN(gl_param) GLboolean _save ## gl_param = false
71#define CTX_INTEGER(gl_param, count) GLint _save ## gl_param[count] = { 0 }
74 CTX_STATE(GL_CULL_FACE);
75 CTX_STATE(GL_DEPTH_TEST);
77 CTX_STATE(GL_POLYGON_OFFSET_FILL);
78 CTX_STATE(GL_SCISSOR_TEST);
79 CTX_STATE(GL_STENCIL_TEST);
81 CTX_BOOLEAN(GL_DEPTH_WRITEMASK);
83 CTX_INTEGER(GL_BLEND_SRC_RGB, 1);
84 CTX_INTEGER(GL_BLEND_DST_RGB, 1);
85 CTX_INTEGER(GL_BLEND_SRC_ALPHA, 1);
86 CTX_INTEGER(GL_BLEND_DST_ALPHA, 1);
87 CTX_INTEGER(GL_SCISSOR_BOX, 4);
88 CTX_INTEGER(GL_VIEWPORT, 4);
RotationMode
Definition: rotationmode.h:44