33 #ifndef _d3d9renderer_h_
34 #define _d3d9renderer_h_
36 #include "CEGUIBase.h"
37 #include "CEGUIRenderer.h"
38 #include "CEGUITexture.h"
43 #if !defined(CEGUI_STATIC)
44 #ifdef DIRECTX9_GUIRENDERER_EXPORTS
45 #define DIRECTX9_GUIRENDERER_API __declspec(dllexport)
47 #define DIRECTX9_GUIRENDERER_API __declspec(dllimport)
50 #define DIRECTX9_GUIRENDERER_API
55 # pragma warning(push)
56 # pragma warning(disable : 4251)
66 class DirectX9Texture;
97 virtual void doRender(
void);
100 virtual void clearRenderList(
void);
122 virtual Texture* createTexture(
void);
128 virtual Texture* createTexture(
float size);
131 virtual void destroyTexture(
Texture* texture);
134 virtual void destroyAllTextures(
void);
137 LPDIRECT3DDEVICE9 getDevice(
void)
const {
return d_device;}
157 virtual float getWidth(
void)
const {
return d_display_area.getWidth();}
167 virtual float getHeight(
void)
const {
return d_display_area.getHeight();}
177 virtual Size getSize(
void)
const {
return d_display_area.getSize();}
227 virtual void preD3DReset(
void);
236 virtual void postD3DReset(
void);
256 void setDisplaySize(
const Size& sz);
263 static const int VERTEX_PER_QUAD;
264 static const int VERTEX_PER_TRIANGLE;
265 static const int VERTEXBUFFER_CAPACITY;
266 static const ulong VERTEX_FVF;
287 LPDIRECT3DTEXTURE9 texture;
294 ulong bottomRightCol;
298 bool operator<(
const QuadInfo& other)
const
310 void initPerFrameStates(
void);
313 void renderVBuffer(
void);
316 void sortQuads(
void);
319 void renderQuadDirect(
const Rect& dest_rect,
float z,
const Texture* tex,
const Rect& texture_rect,
const ColourRect& colours,
QuadSplitMode quad_split_mode);
322 Size getViewportSize(
void);
325 void constructor_impl(LPDIRECT3DDEVICE9 device,
const Size& display_size);
333 typedef std::multiset<QuadInfo> QuadList;
337 LPDIRECT3DDEVICE9 d_device;
338 LPDIRECT3DTEXTURE9 d_currTexture;
339 LPDIRECT3DVERTEXBUFFER9 d_buffer;
342 std::list<DirectX9Texture*> d_texturelist;
344 uint d_maxTextureSize;
349 #if defined(_MSC_VER)
350 # pragma warning(pop)
353 #endif // end of guard _d3d9renderer_h_