aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/include/IGUISpriteBank.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/include/IGUISpriteBank.h')
-rw-r--r--src/others/irrlicht-1.8.1/include/IGUISpriteBank.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/include/IGUISpriteBank.h b/src/others/irrlicht-1.8.1/include/IGUISpriteBank.h
new file mode 100644
index 0000000..4a2b5f5
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/include/IGUISpriteBank.h
@@ -0,0 +1,95 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __I_GUI_SPRITE_BANK_H_INCLUDED__
6#define __I_GUI_SPRITE_BANK_H_INCLUDED__
7
8#include "IReferenceCounted.h"
9#include "irrArray.h"
10#include "SColor.h"
11#include "rect.h"
12
13namespace irr
14{
15
16namespace video
17{
18 class ITexture;
19} // end namespace video
20
21namespace gui
22{
23
24//! A single sprite frame.
25struct SGUISpriteFrame
26{
27 u32 textureNumber;
28 u32 rectNumber;
29};
30
31//! A sprite composed of several frames.
32struct SGUISprite
33{
34 SGUISprite() : Frames(), frameTime(0) {}
35
36 core::array<SGUISpriteFrame> Frames;
37 u32 frameTime;
38};
39
40
41//! Sprite bank interface.
42/** See http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=25742&highlight=spritebank
43* for more information how to use the spritebank.
44*/
45class IGUISpriteBank : public virtual IReferenceCounted
46{
47public:
48
49 //! Returns the list of rectangles held by the sprite bank
50 virtual core::array< core::rect<s32> >& getPositions() = 0;
51
52 //! Returns the array of animated sprites within the sprite bank
53 virtual core::array< SGUISprite >& getSprites() = 0;
54
55 //! Returns the number of textures held by the sprite bank
56 virtual u32 getTextureCount() const = 0;
57
58 //! Gets the texture with the specified index
59 virtual video::ITexture* getTexture(u32 index) const = 0;
60
61 //! Adds a texture to the sprite bank
62 virtual void addTexture(video::ITexture* texture) = 0;
63
64 //! Changes one of the textures in the sprite bank
65 virtual void setTexture(u32 index, video::ITexture* texture) = 0;
66
67 //! Add the texture and use it for a single non-animated sprite.
68 //! The texture and the corresponding rectangle and sprite will all be added to the end of each array.
69 //! returns the index of the sprite or -1 on failure
70 virtual s32 addTextureAsSprite(video::ITexture* texture) = 0;
71
72 //! clears sprites, rectangles and textures
73 virtual void clear() = 0;
74
75 //! Draws a sprite in 2d with position and color
76 virtual void draw2DSprite(u32 index, const core::position2di& pos,
77 const core::rect<s32>* clip=0,
78 const video::SColor& color= video::SColor(255,255,255,255),
79 u32 starttime=0, u32 currenttime=0,
80 bool loop=true, bool center=false) = 0;
81
82 //! Draws a sprite batch in 2d using an array of positions and a color
83 virtual void draw2DSpriteBatch(const core::array<u32>& indices, const core::array<core::position2di>& pos,
84 const core::rect<s32>* clip=0,
85 const video::SColor& color= video::SColor(255,255,255,255),
86 u32 starttime=0, u32 currenttime=0,
87 bool loop=true, bool center=false) = 0;
88};
89
90
91} // end namespace gui
92} // end namespace irr
93
94#endif // __I_GUI_SPRITE_BANK_H_INCLUDED__
95