Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
RendererModules/DirectFB/Renderer.h
1/***********************************************************************
2 created: Tue Mar 10 2009
3 author: Paul D Turner (parts based on code by Keith Mok)
4*************************************************************************/
5/***************************************************************************
6 * Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining
9 * a copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 ***************************************************************************/
27#ifndef _CEGUIDirectFBRenderer_h_
28#define _CEGUIDirectFBRenderer_h_
29
30#include "CEGUI/Renderer.h"
31#include "CEGUI/Size.h"
32#include "CEGUI/Vector.h"
33#include <directfb.h>
34#include <vector>
35#include <map>
36
37// Start of CEGUI namespace section
38namespace CEGUI
39{
40class DirectFBTexture;
41class DirectFBGeometryBuffer;
42
45{
46public:
49 IDirectFBSurface& surface,
50 const int abi = CEGUI_VERSION_ABI);
53
56
59
75 bool isTexCoordSystemFlipped() const { return false; }
76
77 // Implementation of Renderer interface.
87 const String& filename,
88 const String& resourceGroup);
89 Texture& createTexture(const CEGUI::String& name, const Sizef& size);
90 void destroyTexture(Texture& texture);
91 void destroyTexture(const CEGUI::String& name);
93 Texture& getTexture(const String&) const;
94 bool isTextureDefined(const String& name) const;
97 void setDisplaySize(const Sizef& sz);
98 const Sizef& getDisplaySize() const;
99 const Vector2f& getDisplayDPI() const;
102
103protected:
108
110 static void logTextureCreation(DirectFBTexture* texture);
113
129 typedef std::vector<TextureTarget*> TextureTargetList;
133 typedef std::vector<DirectFBGeometryBuffer*> GeometryBufferList;
137 typedef std::map<String, DirectFBTexture*, StringFastLessCompare> TextureMap;
140};
141
142} // End of CEGUI namespace section
143
144#endif // end of guard _CEGUIDirectFBRenderer_h_
Implementation of CEGUI::Renderer interface using DirectFB.
Definition RendererModules/DirectFB/Renderer.h:45
void setTargetSurface(IDirectFBSurface &surface)
Set the target DirectFB surface.
const Vector2f & getDisplayDPI() const
Return the resolution of the display or host window in dots per inch.
~DirectFBRenderer()
Destructor.
void destroyAllGeometryBuffers()
Destroy all GeometryBuffer objects created by this Renderer.
Vector2f d_displayDPI
What the renderer considers to be the current display DPI resolution.
Definition RendererModules/DirectFB/Renderer.h:125
GeometryBufferList d_geometryBuffers
Container used to track geometry buffers.
Definition RendererModules/DirectFB/Renderer.h:135
IDirectFBSurface & d_rootSurface
The DirectFB surface to be used as the default root target.
Definition RendererModules/DirectFB/Renderer.h:119
Texture & getTexture(const String &) const
Return a Texture object that was previously created by calling the createTexture functions.
GeometryBuffer & createGeometryBuffer()
Create a new GeometryBuffer and return a reference to it. You should remove the GeometryBuffer from a...
Texture & createTexture(const CEGUI::String &name, const Sizef &size)
Create a Texture object with the given pixel dimensions as specified by size.
void destroyAllTextureTargets()
Destory all TextureTarget objects created by this Renderer.
TextureTarget * createTextureTarget()
Create a TextureTarget that can be used to cache imagery; this is a RenderTarget that does not lose i...
IDirectFB & d_directfb
DirectFB interface we were given when constructed.
Definition RendererModules/DirectFB/Renderer.h:117
std::map< String, DirectFBTexture *, StringFastLessCompare > TextureMap
container type used to hold Textures we create.
Definition RendererModules/DirectFB/Renderer.h:137
void destroyTextureTarget(TextureTarget *target)
Function that cleans up TextureTarget objects created with the createTextureTarget function.
IDirectFBSurface * d_targetSurface
The current target DirectFB surface.
Definition RendererModules/DirectFB/Renderer.h:121
Texture & createTexture(const CEGUI::String &name)
Create a 'null' Texture object.
const Sizef & getDisplaySize() const
Return the size of the display or host window in pixels.
Texture & createTexture(const CEGUI::String &name, const String &filename, const String &resourceGroup)
Create a Texture object using the given image file.
static DirectFBRenderer & create(IDirectFB &directfb, IDirectFBSurface &surface, const int abi=CEGUI_VERSION_ABI)
create a DirectFBRenderer object.
std::vector< TextureTarget * > TextureTargetList
container type used to hold TextureTargets we create.
Definition RendererModules/DirectFB/Renderer.h:129
std::vector< DirectFBGeometryBuffer * > GeometryBufferList
container type used to hold GeometryBuffers we create.
Definition RendererModules/DirectFB/Renderer.h:133
void destroyTexture(Texture &texture)
Destroy a Texture object that was previously created by calling the createTexture functions.
RenderTarget * d_defaultTarget
The default RenderTarget.
Definition RendererModules/DirectFB/Renderer.h:127
void destroyAllTextures()
Destroy all Texture objects created by this Renderer.
bool isTextureDefined(const String &name) const
Return whether a texture with the given name exists.
TextureMap d_textures
Container used to track textures.
Definition RendererModules/DirectFB/Renderer.h:139
void beginRendering()
Perform any operations required to put the system into a state ready for rendering operations to begi...
static String d_rendererID
String holding the renderer identification text.
Definition RendererModules/DirectFB/Renderer.h:115
RenderTarget & getDefaultRenderTarget()
Returns the default RenderTarget object. The default render target is is typically one that targets t...
DirectFBRenderer(IDirectFB &directfb, IDirectFBSurface &surface)
Constructor.
TextureTargetList d_textureTargets
Container used to track texture targets.
Definition RendererModules/DirectFB/Renderer.h:131
const String & getIdentifierString() const
Return identification string for the renderer module.
void setDisplaySize(const Sizef &sz)
Set the size of the display or host window in pixels for this Renderer object.
static void logTextureCreation(DirectFBTexture *texture)
helper to safely log the creation of a named texture
void destroyTexture(const CEGUI::String &name)
Destroy a Texture object that was previously created by calling the createTexture functions.
void endRendering()
Perform any operations required to finalise rendering.
void destroyGeometryBuffer(const GeometryBuffer &buffer)
Destroy a GeometryBuffer that was returned when calling the createGeometryBuffer function....
static void logTextureDestruction(DirectFBTexture *texture)
helper to safely log the destruction of a named texture
IDirectFBSurface & getTargetSurface() const
Return the current target DirectFB surface.
uint getMaxTextureSize() const
Return the pixel size of the maximum supported texture.
bool isTexCoordSystemFlipped() const
Returns if the texture coordinate system is vertically flipped or not. The original of a texture coor...
Definition RendererModules/DirectFB/Renderer.h:75
static void destroy(DirectFBRenderer &renderer)
destroy a DirectFBRenderer object created by the create call.
Sizef d_displaySize
What the renderer considers to be the current display size.
Definition RendererModules/DirectFB/Renderer.h:123
Implementation of CEGUI::Texture interface using DirectFB.
Definition RendererModules/DirectFB/Texture.h:39
Abstract class defining the interface for objects that buffer geometry for later rendering.
Definition GeometryBuffer.h:44
Defines interface to some surface that can be rendered to. Concrete instances of objects that impleme...
Definition RenderTarget.h:60
Abstract class defining the basic required interface for Renderer objects.
Definition Renderer.h:84
String class used within the GUI system.
Definition String.h:64
Specialisation of RenderTarget interface that should be used as the base class for RenderTargets that...
Definition TextureTarget.h:41
Abstract base class specifying the required interface for Texture objects.
Definition Texture.h:54
base class for properties able to do native set/get
Definition TypedProperty.h:50
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1