28 #ifndef _CEGUIRendererBase_h_ 29 #define _CEGUIRendererBase_h_ 31 #include "../../Base.h" 32 #include "../../Renderer.h" 33 #include "../../Size.h" 34 #include "../../Vector.h" 35 #include "../../Rect.h" 36 #include "../../TextureTarget.h" 37 #include "CEGUI/RendererModules/OpenGL/GL.h" 41 #if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(CEGUI_STATIC) 42 # ifdef CEGUIOPENGLRENDERER_EXPORTS 43 # define OPENGL_GUIRENDERER_API __declspec(dllexport) 45 # define OPENGL_GUIRENDERER_API __declspec(dllimport) 48 # define OPENGL_GUIRENDERER_API 52 # pragma warning(push) 53 # pragma warning(disable : 4251) 59 class OpenGLGeometryBufferBase;
63 class OPENGL_GUIRENDERER_API OpenGLRendererBase :
public Renderer
67 RenderTarget& getDefaultRenderTarget();
68 GeometryBuffer& createGeometryBuffer();
69 void destroyGeometryBuffer(
const GeometryBuffer& buffer);
70 void destroyAllGeometryBuffers();
71 TextureTarget* createTextureTarget();
72 void destroyTextureTarget(TextureTarget* target);
73 void destroyAllTextureTargets();
74 Texture& createTexture(
const String& name);
75 Texture& createTexture(
const String& name,
76 const String& filename,
77 const String& resourceGroup);
78 Texture& createTexture(
const String& name,
const Sizef& size);
79 void destroyTexture(Texture& texture);
80 void destroyTexture(
const String& name);
81 void destroyAllTextures();
82 Texture& getTexture(
const String& name)
const;
83 bool isTextureDefined(
const String& name)
const;
84 void setDisplaySize(
const Sizef& sz);
85 const Sizef& getDisplaySize()
const;
86 const Vector2f& getDisplayDPI()
const;
87 uint getMaxTextureSize()
const;
88 const String& getIdentifierString()
const;
112 Texture& createTexture(
const String& name, GLuint tex,
const Sizef& sz);
125 void enableExtraStateSettings(
bool setting);
141 void restoreTextures();
154 virtual Sizef getAdjustedTextureSize(
const Sizef& sz)
const;
161 static float getNextPOTSize(
const float f);
164 virtual void setupRenderingBlendMode(
const BlendMode mode,
165 const bool force =
false) = 0;
168 virtual bool isS3TCSupported()
const = 0;
177 virtual const mat4Pimpl* getViewProjectionMatrix();
186 virtual void setViewProjectionMatrix(
const mat4Pimpl* viewProjectionMatrix);
204 void setActiveRenderTarget(RenderTarget* renderTarget);
213 RenderTarget* getActiveRenderTarget();
216 OpenGLRendererBase();
225 OpenGLRendererBase(
const Sizef& display_size);
228 virtual ~OpenGLRendererBase();
231 static void logTextureCreation(
const String& name);
233 static void logTextureDestruction(
const String& name);
236 void initialiseMaxTextureSize();
239 void initialiseDisplaySizeWithViewportSize();
242 virtual OpenGLGeometryBufferBase* createGeometryBuffer_impl() = 0;
245 virtual TextureTarget* createTextureTarget_impl() = 0;
248 static String d_rendererID;
252 Vector2f d_displayDPI;
254 RenderTarget* d_defaultTarget;
258 TextureTargetList d_textureTargets;
262 GeometryBufferList d_geometryBuffers;
269 uint d_maxTextureSize;
271 bool d_initExtraStates;
299 #if defined(_MSC_VER) 300 # pragma warning(pop) std::vector< OpenGLGeometryBufferBase * > GeometryBufferList
container type used to hold GeometryBuffers created.
Definition: debian/tmp/usr/include/cegui-0.8.4/CEGUI/RendererModules/OpenGL/RendererBase.h:260
Functor that can be used as comparator in a std::map with String keys. It's faster than using the def...
Definition: cegui/include/CEGUI/String.h:5579
Definition: cegui/include/CEGUI/MemoryAllocatedObject.h:109
std::vector< TextureTarget * > TextureTargetList
container type used to hold TextureTargets we create.
Definition: debian/tmp/usr/include/cegui-0.8.4/CEGUI/RendererModules/OpenGL/RendererBase.h:256
Main namespace for Crazy Eddie's GUI Library.
Definition: cegui/include/CEGUI/Affector.h:42
Specialisation of RenderTarget interface that should be used as the base class for RenderTargets that...
Definition: cegui/include/CEGUI/TextureTarget.h:40
std::map< String, OpenGLTexture *, StringFastLessCompare CEGUI_MAP_ALLOC(String, OpenGLTexture *)> TextureMap
container type used to hold Textures we create.
Definition: debian/tmp/usr/include/cegui-0.8.4/CEGUI/RendererModules/OpenGL/RendererBase.h:265
BlendMode
Enumerated type that contains the valid options that specify the type of blending that is to be perfo...
Definition: cegui/include/CEGUI/Renderer.h:61
Definition: cegui/include/CEGUI/RendererModules/OpenGL/RendererBase.h:287
Defines interface to some surface that can be rendered to. Concrete instances of objects that impleme...
Definition: cegui/include/CEGUI/RenderTarget.h:57
Common base class used for other OpenGL based renderer modules.
Definition: cegui/include/CEGUI/RendererModules/OpenGL/RendererBase.h:63
Definition: cegui/include/CEGUI/RendererModules/OpenGL/GlmPimpl.h:36
Texture implementation for the OpenGLRenderer.
Definition: cegui/include/CEGUI/RendererModules/OpenGL/Texture.h:44
String class used within the GUI system.
Definition: cegui/include/CEGUI/String.h:62