Crazy Eddie's GUI System 0.8.7
ImageCodec.h
1/***********************************************************************
2 created: 03/06/2006
3 author: Olivier Delannoy
4
5 purpose: Define the abstract interface for all common ImageCodec
6*************************************************************************/
7/***************************************************************************
8 * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining
11 * a copy of this software and associated documentation files (the
12 * "Software"), to deal in the Software without restriction, including
13 * without limitation the rights to use, copy, modify, merge, publish,
14 * distribute, sublicense, and/or sell copies of the Software, and to
15 * permit persons to whom the Software is furnished to do so, subject to
16 * the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be
19 * included in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 * OTHER DEALINGS IN THE SOFTWARE.
28 ***************************************************************************/
29#ifndef _CEGUIImageCodec_h_
30#define _CEGUIImageCodec_h_
31
32#include "CEGUI/Base.h"
33#include "CEGUI/DataContainer.h"
34#include "CEGUI/Texture.h"
35
36// Start of CEGUI namespace section
37namespace CEGUI
38{
45class CEGUIEXPORT ImageCodec :
46 public AllocatedObject<ImageCodec>
47{
48public:
53 virtual ~ImageCodec();
54
55protected:
56 /*
57 \brief
58 Constructor
59
60 \param name of the codec
61 */
62 ImageCodec(const String& name);
63
64public:
74
85 const String& getSupportedFormat() const;
86
97 virtual Texture* load(const RawDataContainer& data, Texture* result) = 0;
98
99private:
100 String d_identifierString;
101
102protected:
104
105private:
106 ImageCodec(const ImageCodec& obj);
107 ImageCodec& operator=(ImageCodec& obj);
108};
109
110} // End of CEGUI namespace section
111
112#endif // end of guard _CEGUIImageCodec_h_
Definition: MemoryAllocatedObject.h:110
Abstract ImageLoader class. An image loader encapsulate the loading of a texture.
Definition: ImageCodec.h:47
const String & getSupportedFormat() const
Return the list of image file format supported.
virtual ~ImageCodec()
Destructor.
String d_supportedFormat
list all image file format supported
Definition: ImageCodec.h:103
virtual Texture * load(const RawDataContainer &data, Texture *result)=0
Load an image from a memory buffer.
const String & getIdentifierString() const
Return the name of the image codec object.
Class used as the databuffer for loading files throughout the library.
Definition: DataContainer.h:44
String class used within the GUI system.
Definition: String.h:64
Abstract base class specifying the required interface for Texture objects.
Definition: Texture.h:54
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1