29 #ifndef _OgreCEGUIRenderer_h_ 30 #define _OgreCEGUIRenderer_h_ 32 #include <CEGUIBase.h> 33 #include <CEGUIRenderer.h> 34 #include <CEGUITexture.h> 36 #include <OgreRenderQueueListener.h> 37 #include <OgreSceneManagerEnumerator.h> 38 #include <OgreTextureUnitState.h> 40 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(OGRE_GUIRENDERER_STATIC_LIB) 41 # ifdef OGRE_GUIRENDERER_EXPORTS 42 # define OGRE_GUIRENDERER_API __declspec(dllexport) 44 # if defined(__MINGW32__) 45 # define OGRE_GUIRENDERER_API 47 # define OGRE_GUIRENDERER_API __declspec(dllimport) 50 #elif defined ( OGRE_GCC_VISIBILITY ) 51 # define OGRE_GUIRENDERER_API __attribute__ ((visibility("default"))) 53 # define OGRE_GUIRENDERER_API 63 class OgreCEGUITexture;
64 class OgreCEGUIRenderer;
76 d_renderer = renderer;
77 d_queue_id = queue_id;
78 d_post_queue = post_queue;
83 virtual void renderQueueStarted(Ogre::uint8
id,
const Ogre::String& invocation,
bool& skipThisQueue);
84 virtual void renderQueueEnded(Ogre::uint8
id,
const Ogre::String& invocation,
bool& repeatThisQueue);
127 Ogre::uint8 queue_id = Ogre::RENDER_QUEUE_OVERLAY,
128 bool post_queue =
false, uint max_quads = 0);
151 OgreCEGUIRenderer(Ogre::RenderWindow* window, Ogre::uint8 queue_id,
bool post_queue, uint max_quads, Ogre::SceneManager* scene_manager);
163 virtual void addQuad(
const Rect& dest_rect,
float z,
const Texture* tex,
const Rect& texture_rect,
const ColourRect& colours, QuadSplitMode quad_split_mode);
166 virtual void doRender(
void);
169 virtual void clearRenderList(
void);
191 virtual Texture* createTexture(
void);
194 virtual Texture* createTexture(
const String& filename,
const String& resourceGroup =
"General");
197 virtual Texture* createTexture(
float size);
200 virtual ResourceProvider* createResourceProvider(
void);
203 virtual void destroyTexture(Texture* texture);
206 virtual void destroyAllTextures(
void);
226 virtual float getWidth(
void)
const {
return d_display_area.getWidth();}
236 virtual float getHeight(
void)
const {
return d_display_area.getHeight();}
246 virtual Size
getSize(
void)
const {
return d_display_area.getSize();}
257 virtual Rect
getRect(
void)
const {
return d_display_area;}
304 void setTargetSceneManager(Ogre::SceneManager* scene_manager);
321 void setTargetRenderQueue(Ogre::uint8 queue_id,
bool post_queue);
339 Texture* createTexture(Ogre::TexturePtr& texture);
359 void setDisplaySize(
const Size& sz);
413 void initRenderStates(
void);
416 void sortQuads(
void);
419 void renderQuadDirect(
const Rect& dest_rect,
float z,
const Texture* tex,
const Rect& texture_rect,
const ColourRect& colours, QuadSplitMode quad_split_mode);
422 uint32 colourToOgre(
const colour& col)
const;
425 void constructor_impl(Ogre::RenderWindow* window, Ogre::uint8 queue_id,
bool post_queue, uint max_quads);
464 #endif // end of guard _OgreCEGUIRenderer_h_ bool d_sorted
true when data in quad list is sorted.
Definition: OgreCEGUIRenderer.h:455
virtual uint getMaxTextureSize(void) const
Return the maximum texture size available.
Definition: OgreCEGUIRenderer.h:267
uint32 topLeftCol
Definition: OgreCEGUIRenderer.h:394
float z
The position for the vertex.
Definition: OgreCEGUIRenderer.h:379
std::multiset< QuadInfo > QuadList
Definition: OgreCEGUIRenderer.h:433
Ogre::RenderOperation d_direct_render_op
Renderop for cursor.
Definition: OgreCEGUIRenderer.h:445
uint32 bottomRightCol
Definition: OgreCEGUIRenderer.h:397
Ogre::Root * d_ogre_root
pointer to the Ogre root object that we attach to
Definition: OgreCEGUIRenderer.h:438
OgreCEGUIRenderer * d_renderer
CEGUI renderer object for Ogre.
Definition: OgreCEGUIRenderer.h:94
static const size_t VERTEXBUFFER_INITIAL_CAPACITY
initial capacity of the allocated vertex buffer
Definition: OgreCEGUIRenderer.h:368
Ogre::RenderSystem * d_render_sys
Pointer to the render system for Ogre.
Definition: OgreCEGUIRenderer.h:439
virtual Size getSize(void) const
Return the size of the display in pixels.
Definition: OgreCEGUIRenderer.h:246
Ogre::HardwareVertexBufferSharedPtr d_direct_buffer
Renderop for cursor.
Definition: OgreCEGUIRenderer.h:446
std::list< OgreCEGUITexture * > d_texturelist
List used to track textures.
Definition: OgreCEGUIRenderer.h:458
Rect texPosition
Definition: OgreCEGUIRenderer.h:393
Rect d_display_area
Definition: OgreCEGUIRenderer.h:431
bool d_post_queue
true if we render after everything else in our queue.
Definition: OgreCEGUIRenderer.h:453
float tv1
texture coordinates
Definition: OgreCEGUIRenderer.h:381
Ogre::uint8 d_queue_id
ID of the queue that we are hooked into.
Definition: OgreCEGUIRenderer.h:440
void setTargetRenderQueue(Ogre::uint8 queue_id)
Definition: OgreCEGUIRenderer.h:87
uint32 bottomLeftCol
Definition: OgreCEGUIRenderer.h:396
size_t d_underused_framecount
Number of frames elapsed since buffer utilization was above half the capacity.
Definition: OgreCEGUIRenderer.h:444
Ogre::ColourValue colour(const btVector3 &color, btScalar alpha)
Definition: OgreBulletUtils.h:41
Ogre::RenderOperation d_render_op
Ogre render operation we use to do our stuff.
Definition: OgreCEGUIRenderer.h:442
void setPostRenderQueue(bool post_queue)
Definition: OgreCEGUIRenderer.h:88
Renderer class to interface with Ogre engine.
Definition: OgreCEGUIRenderer.h:104
CEGUIRQListener(OgreCEGUIRenderer *renderer, Ogre::uint8 queue_id, bool post_queue)
Definition: OgreCEGUIRenderer.h:74
Ogre::RGBA diffuse
colour of the vertex
Definition: OgreCEGUIRenderer.h:380
Definition: OgreCEGUIRenderer.cpp:46
structure used for all vertices.
Definition: OgreCEGUIRenderer.h:378
CEGUIRQListener * d_ourlistener
Definition: OgreCEGUIRenderer.h:452
Ogre::TextureUnitState::UVWAddressingMode d_uvwAddressMode
Definition: OgreCEGUIRenderer.h:450
virtual uint getVertScreenDPI(void) const
Return the vertical display resolution dpi.
Definition: OgreCEGUIRenderer.h:287
structure holding details about a quad to be drawn
Definition: OgreCEGUIRenderer.h:388
virtual float getHeight(void) const
Return the current height of the display in pixels.
Definition: OgreCEGUIRenderer.h:236
QuadSplitMode splitMode
Definition: OgreCEGUIRenderer.h:399
virtual ~CEGUIRQListener()
Definition: OgreCEGUIRenderer.h:81
static const size_t VERTEX_PER_TRIANGLE
number of vertices for a triangle
Definition: OgreCEGUIRenderer.h:367
Ogre::TexturePtr texture
Definition: OgreCEGUIRenderer.h:390
size_t d_bufferPos
index into buffer where next vertex should be put.
Definition: OgreCEGUIRenderer.h:454
virtual void setQueueingEnabled(bool setting)
Enable or disable the queueing of quads from this point on.
Definition: OgreCEGUIRenderer.h:187
bool d_post_queue
true if we render after everything else in our queue.
Definition: OgreCEGUIRenderer.h:96
Ogre::LayerBlendModeEx d_colourBlendMode
Controls colour blending mode used.
Definition: OgreCEGUIRenderer.h:448
bool d_queueing
setting for queueing control.
Definition: OgreCEGUIRenderer.h:435
virtual bool isQueueingEnabled(void) const
Return whether queueing is enabled.
Definition: OgreCEGUIRenderer.h:216
bool operator<(const QuadInfo &other) const
Definition: OgreCEGUIRenderer.h:401
virtual Rect getRect(void) const
Return a Rect describing the screen.
Definition: OgreCEGUIRenderer.h:257
Rect position
Definition: OgreCEGUIRenderer.h:391
Point d_texelOffset
Offset required for proper texel mapping.
Definition: OgreCEGUIRenderer.h:456
Ogre::SceneManager * d_sceneMngr
The scene manager we are hooked into.
Definition: OgreCEGUIRenderer.h:447
virtual float getWidth(void) const
Return the current width of the display in pixels.
Definition: OgreCEGUIRenderer.h:226
uint32 topRightCol
Definition: OgreCEGUIRenderer.h:395
Ogre::uint8 d_queue_id
ID of the queue that we are hooked into.
Definition: OgreCEGUIRenderer.h:95
Ogre::TexturePtr d_currTexture
currently set texture;
Definition: OgreCEGUIRenderer.h:441
Ogre::LayerBlendModeEx d_alphaBlendMode
Controls alpha blending mode used.
Definition: OgreCEGUIRenderer.h:449
RenderQueueListener based class used to hook into the ogre rendering system.
Definition: OgreCEGUIRenderer.h:71
float z
Definition: OgreCEGUIRenderer.h:392
static const size_t VERTEX_PER_QUAD
number of vertices per quad
Definition: OgreCEGUIRenderer.h:366
static const size_t UNDERUSED_FRAME_THRESHOLD
number of frames to wait before shrinking buffer
Definition: OgreCEGUIRenderer.h:369
Ogre::HardwareVertexBufferSharedPtr d_buffer
vertex buffer to queue sprite rendering
Definition: OgreCEGUIRenderer.h:443
#define OGRE_GUIRENDERER_API
Definition: OgreCEGUIRenderer.h:47
QuadList d_quadlist
Definition: OgreCEGUIRenderer.h:434
virtual uint getHorzScreenDPI(void) const
Return the horizontal display resolution dpi.
Definition: OgreCEGUIRenderer.h:277