Crazy Eddie's GUI System  0.8.5
RendererModules/DirectFB/Texture.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 _CEGUIDirectFBTexture_h_
28 #define _CEGUIDirectFBTexture_h_
29 
30 #include "../../Texture.h"
31 #include "CEGUI/RendererModules/DirectFB/Renderer.h"
32 
33 // Start of CEGUI namespace section
34 namespace CEGUI
35 {
36 
38 class DirectFBTexture : public Texture
39 {
40 public:
42  IDirectFBSurface* getDirectFBSurface() const;
43 
44  // implement interface for Texture
45  const String& getName() const;
46  const Sizef& getSize() const;
47  const Sizef& getOriginalDataSize() const;
48  const Vector2f& getTexelScaling() const;
49  void loadFromFile(const String& filename, const String& resourceGroup);
50  void loadFromMemory(const void* buffer, const Sizef& buffer_size,
51  PixelFormat pixel_format);
52  void blitFromMemory(const void* sourceData, const Rectf& area);
53  void blitToMemory(void* targetData);
54  bool isPixelFormatSupported(const PixelFormat fmt) const;
55 
56 protected:
57  // friends to allow renderer to construct and destroy texture objects
59  friend Texture& DirectFBRenderer::createTexture(const String&, const String&, const String&);
60  friend Texture& DirectFBRenderer::createTexture(const String&, const Sizef&);
61  friend void DirectFBRenderer::destroyTexture(const String&);
62 
64  DirectFBTexture(IDirectFB& directfb, const String& name);
66  DirectFBTexture(IDirectFB& directfb, const String& name,
67  const String& filename, const String& resourceGroup);
69  DirectFBTexture(IDirectFB& directfb, const String& name, const Sizef& size);
72 
77 
79  IDirectFB& d_directfb;
81  IDirectFBSurface* d_texture;
89  const String d_name;
90 };
91 
92 } // End of CEGUI namespace section
93 
94 #endif // end of guard _CEGUIDirectFBTexture_h_
Texture & createTexture(const CEGUI::String &name)
Create a 'null' Texture object.
~DirectFBTexture()
Destructor.
IDirectFB & d_directfb
DirectFB interface we were given when constructed.
Definition: RendererModules/DirectFB/Texture.h:79
PixelFormat
Enumerated type containing the supported pixel formats that can be passed to loadFromMemory.
Definition: Texture.h:61
void blitFromMemory(const void *sourceData, const Rectf &area)
Performs an area memory blit to the texture.
Sizef d_dataSize
original pixel of size data loaded into texture
Definition: RendererModules/DirectFB/Texture.h:85
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1
const Sizef & getSize() const
Returns the current pixel size of the texture.
const String d_name
The name given for this texture.
Definition: RendererModules/DirectFB/Texture.h:89
void loadFromFile(const String &filename, const String &resourceGroup)
Loads the specified image file into the texture. The texture is resized as required to hold the image...
DirectFBTexture(IDirectFB &directfb, const String &name)
Basic constructor.
void loadFromMemory(const void *buffer, const Sizef &buffer_size, PixelFormat pixel_format)
Loads (copies) an image in memory into the texture. The texture is resized as required to hold the im...
void updateCachedScaleValues()
updates cached scale value used to map pixels to texture co-ords.
const Sizef & getOriginalDataSize() const
Returns the original pixel size of the data loaded into the texture.
bool isPixelFormatSupported(const PixelFormat fmt) const
Return whether the specified pixel format is supported by the system for the CEGUI::Texture implement...
Vector2f d_texelScaling
cached pixel to texel mapping scale values.
Definition: RendererModules/DirectFB/Texture.h:87
Abstract base class specifying the required interface for Texture objects.
Definition: Texture.h:52
Implementation of CEGUI::Texture interface using DirectFB.
Definition: RendererModules/DirectFB/Texture.h:38
void blitToMemory(void *targetData)
Performs a complete blit from the texture surface to memory.
const String & getName() const
Returns the name given to the texture when it was created.
void destroyTexture(Texture &texture)
Destroy a Texture object that was previously created by calling the createTexture functions...
void cleanupDirectFBTexture()
clean up the internal texture.
IDirectFBSurface * d_texture
surface representing the texture.
Definition: RendererModules/DirectFB/Texture.h:81
const Vector2f & getTexelScaling() const
Returns pixel to texel scale values that should be used for converting pixel values to texture co-ord...
Sizef d_size
Size of the texture.
Definition: RendererModules/DirectFB/Texture.h:83
String class used within the GUI system.
Definition: String.h:62
IDirectFBSurface * getDirectFBSurface() const
Return a pointer to the IDirectFBSurface this texture represents.