]> git.lizzy.rs Git - irrlicht.git/blob - include/IGUIImage.h
Readd TGA format support (#64)
[irrlicht.git] / include / IGUIImage.h
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __I_GUI_IMAGE_H_INCLUDED__\r
6 #define __I_GUI_IMAGE_H_INCLUDED__\r
7 \r
8 #include "IGUIElement.h"\r
9 \r
10 namespace irr\r
11 {\r
12 namespace video\r
13 {\r
14         class ITexture;\r
15 }\r
16 namespace gui\r
17 {\r
18         //! GUI element displaying an image.\r
19         class IGUIImage : public IGUIElement\r
20         {\r
21         public:\r
22 \r
23                 //! constructor\r
24                 IGUIImage(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)\r
25                         : IGUIElement(EGUIET_IMAGE, environment, parent, id, rectangle) {}\r
26 \r
27                 //! Sets an image texture\r
28                 virtual void setImage(video::ITexture* image) = 0;\r
29 \r
30                 //! Gets the image texture\r
31                 virtual video::ITexture* getImage() const = 0;\r
32 \r
33                 //! Sets the color of the image\r
34                 /** \param color Color with which the image is drawn. If the color\r
35                 equals Color(255,255,255,255) it is ignored. */\r
36                 virtual void setColor(video::SColor color) = 0;\r
37 \r
38                 //! Sets if the image should scale to fit the element\r
39                 virtual void setScaleImage(bool scale) = 0;\r
40 \r
41                 //! Sets if the image should use its alpha channel to draw itself\r
42                 virtual void setUseAlphaChannel(bool use) = 0;\r
43 \r
44                 //! Gets the color of the image\r
45                 virtual video::SColor getColor() const = 0;\r
46 \r
47                 //! Returns true if the image is scaled to fit, false if not\r
48                 virtual bool isImageScaled() const = 0;\r
49 \r
50                 //! Returns true if the image is using the alpha channel, false if not\r
51                 virtual bool isAlphaChannelUsed() const = 0;\r
52 \r
53                 //! Sets the source rectangle of the image. By default the full image is used.\r
54                 /** \param sourceRect coordinates inside the image or an area with size 0 for using the full image (default). */\r
55                 virtual void setSourceRect(const core::rect<s32>& sourceRect) = 0;\r
56 \r
57                 //! Returns the customized source rectangle of the image to be used.\r
58                 /** By default an empty rectangle of width and height 0 is returned which means the full image is used. */\r
59                 virtual core::rect<s32> getSourceRect() const = 0;\r
60 \r
61                 //! Restrict drawing-area.\r
62                 /** This allows for example to use the image as a progress bar.\r
63                         Base for area is the image, which means:\r
64                         -  The original clipping area when the texture is scaled or there is no texture.\r
65                         -  The source-rect for an unscaled texture (but still restricted afterward by the clipping area)\r
66                         Unlike normal clipping this does not affect the gui-children.\r
67                         \param drawBoundUVs: Coordinates between 0 and 1 where 0 are for left+top and 1 for right+bottom\r
68                 */\r
69                 virtual void setDrawBounds(const core::rect<f32>& drawBoundUVs = core::rect<f32>(0.f, 0.f, 1.f, 1.f)) = 0;\r
70 \r
71                 //! Get drawing-area restrictions.\r
72                 virtual core::rect<f32> getDrawBounds() const = 0;\r
73 \r
74                 //! Sets whether to draw a background color (EGDC_3D_DARK_SHADOW) when no texture is set\r
75                 /** By default it's enabled */\r
76                 virtual void setDrawBackground(bool draw) = 0;\r
77 \r
78                 //! Checks if a background is drawn when no texture is set\r
79                 /** \return true if background drawing is enabled, false otherwise */\r
80                 virtual bool isDrawBackgroundEnabled() const = 0;\r
81         };\r
82 \r
83 \r
84 } // end namespace gui\r
85 } // end namespace irr\r
86 \r
87 #endif\r