00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _CEGUINullRenderer_h_
00029 #define _CEGUINullRenderer_h_
00030
00031 #include "../../CEGUIRenderer.h"
00032 #include "../../CEGUISize.h"
00033 #include "../../CEGUIVector.h"
00034
00035 #include <vector>
00036 #include <map>
00037
00038 #if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(CEGUI_STATIC)
00039 # ifdef NULL_GUIRENDERER_EXPORTS
00040 # define NULL_GUIRENDERER_API __declspec(dllexport)
00041 # else
00042 # define NULL_GUIRENDERER_API __declspec(dllimport)
00043 # endif
00044 #else
00045 # define NULL_GUIRENDERER_API
00046 #endif
00047
00048 #if defined(_MSC_VER)
00049 # pragma warning(push)
00050 # pragma warning(disable : 4251)
00051 #endif
00052
00053
00054
00055 namespace CEGUI
00056 {
00057 class NullGeometryBuffer;
00058 class NullTexture;
00059 class NullRenderTarget;
00060
00062 class NULL_GUIRENDERER_API NullRenderer : public Renderer
00063 {
00064 public:
00079 static NullRenderer& bootstrapSystem();
00080
00096 static void destroySystem();
00097
00102 static NullRenderer& create();
00103
00105 static void destroy(NullRenderer& renderer);
00106
00107
00108 RenderingRoot& getDefaultRenderingRoot();
00109 GeometryBuffer& createGeometryBuffer();
00110 void destroyGeometryBuffer(const GeometryBuffer& buffer);
00111 void destroyAllGeometryBuffers();
00112 TextureTarget* createTextureTarget();
00113 void destroyTextureTarget(TextureTarget* target);
00114 void destroyAllTextureTargets();
00115 Texture& createTexture();
00116 Texture& createTexture(const String& filename, const String& resourceGroup);
00117 Texture& createTexture(const Size& size);
00118 void destroyTexture(Texture& texture);
00119 void destroyAllTextures();
00120 void beginRendering();
00121 void endRendering();
00122 void setDisplaySize(const Size& sz);
00123 const Size& getDisplaySize() const;
00124 const Vector2& getDisplayDPI() const;
00125 uint getMaxTextureSize() const;
00126 const String& getIdentifierString() const;
00127
00128 protected:
00130 NullRenderer();
00132 void constructor_impl();
00134 virtual ~NullRenderer();
00135
00137 static String d_rendererID;
00139 Size d_displaySize;
00141 Vector2 d_displayDPI;
00143 RenderingRoot* d_defaultRoot;
00145 NullRenderTarget* d_defaultTarget;
00147 typedef std::vector<TextureTarget*> TextureTargetList;
00149 TextureTargetList d_textureTargets;
00151 typedef std::vector<NullGeometryBuffer*> GeometryBufferList;
00153 GeometryBufferList d_geometryBuffers;
00155 typedef std::vector<NullTexture*> TextureList;
00157 TextureList d_textures;
00159 uint d_maxTextureSize;
00160 };
00161
00162
00163 }
00164
00165 #if defined(_MSC_VER)
00166 # pragma warning(pop)
00167 #endif
00168
00169 #endif // end of guard _CEGUINullRenderer_h_