27 #ifndef _CEGUIOpenGL3Renderer_h_
28 #define _CEGUIOpenGL3Renderer_h_
30 #include "RendererBase.h"
35 class OpenGL3ShaderManager;
36 class OpenGL3StateChangeWrapper;
54 class OPENGL_GUIRENDERER_API OpenGL3Renderer :
public OpenGLRendererBase
76 static OpenGL3Renderer& bootstrapSystem(
const int abi = CEGUI_VERSION_ABI);
100 static OpenGL3Renderer& bootstrapSystem(
const Sizef& display_size,
101 const int abi = CEGUI_VERSION_ABI);
118 static void destroySystem();
131 static OpenGL3Renderer& create(
const int abi = CEGUI_VERSION_ABI);
147 static OpenGL3Renderer& create(
const Sizef& display_size,
148 const int abi = CEGUI_VERSION_ABI);
157 static void destroy(OpenGL3Renderer& renderer);
167 OpenGL3Shader*& getShaderStandard();
177 GLint getShaderStandardPositionLoc();
189 GLint getShaderStandardTexCoordLoc();
200 GLint getShaderStandardColourLoc();
210 GLint getShaderStandardMatrixUniformLoc();
220 OpenGL3StateChangeWrapper* getOpenGLStateChanger();
223 void beginRendering();
225 Sizef getAdjustedTextureSize(
const Sizef& sz)
const;
226 bool isS3TCSupported()
const;
227 void setupRenderingBlendMode(
const BlendMode mode,
228 const bool force =
false);
232 OpenGLGeometryBufferBase* createGeometryBuffer_impl();
233 TextureTarget* createTextureTarget_impl();
235 void initialiseRendererIDString();
250 OpenGL3Renderer(
const Sizef& display_size);
254 void initialiseOpenGLShaders();
261 virtual ~OpenGL3Renderer();
265 void initialiseTextureTargetFactory();
268 void setupExtraStates();
271 OpenGL3Shader* d_shaderStandard;
273 GLint d_shaderStandardPosLoc;
275 GLint d_shaderStandardTexCoordLoc;
277 GLint d_shaderStandardColourLoc;
279 GLint d_shaderStandardMatrixLoc;
281 OpenGL3StateChangeWrapper* d_openGLStateChanger;
283 OpenGL3ShaderManager* d_shaderManager;
285 bool d_s3tcSupported;
287 OGLTextureTargetFactory* d_textureTargetFactory;