aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h')
-rw-r--r--src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h b/src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h
new file mode 100644
index 0000000..77adb4d
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/source/Irrlicht/CGUISpriteBank.h
@@ -0,0 +1,84 @@
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 __C_GUI_SPRITE_BANK_H_INCLUDED__
6#define __C_GUI_SPRITE_BANK_H_INCLUDED__
7
8#include "IrrCompileConfig.h"
9#ifdef _IRR_COMPILE_WITH_GUI_
10
11#include "IGUISpriteBank.h"
12
13namespace irr
14{
15
16namespace video
17{
18 class IVideoDriver;
19 class ITexture;
20}
21
22namespace gui
23{
24
25 class IGUIEnvironment;
26
27//! Sprite bank interface.
28class CGUISpriteBank : public IGUISpriteBank
29{
30public:
31
32 CGUISpriteBank(IGUIEnvironment* env);
33 virtual ~CGUISpriteBank();
34
35 virtual core::array< core::rect<s32> >& getPositions();
36 virtual core::array< SGUISprite >& getSprites();
37
38 virtual u32 getTextureCount() const;
39 virtual video::ITexture* getTexture(u32 index) const;
40 virtual void addTexture(video::ITexture* texture);
41 virtual void setTexture(u32 index, video::ITexture* texture);
42
43 //! Add the texture and use it for a single non-animated sprite.
44 virtual s32 addTextureAsSprite(video::ITexture* texture);
45
46 //! clears sprites, rectangles and textures
47 virtual void clear();
48
49 //! Draws a sprite in 2d with position and color
50 virtual void draw2DSprite(u32 index, const core::position2di& pos, const core::rect<s32>* clip=0,
51 const video::SColor& color= video::SColor(255,255,255,255),
52 u32 starttime=0, u32 currenttime=0, bool loop=true, bool center=false);
53
54 //! Draws a sprite batch in 2d using an array of positions and a color
55 virtual void draw2DSpriteBatch(const core::array<u32>& indices, const core::array<core::position2di>& pos,
56 const core::rect<s32>* clip=0,
57 const video::SColor& color= video::SColor(255,255,255,255),
58 u32 starttime=0, u32 currenttime=0,
59 bool loop=true, bool center=false);
60
61protected:
62
63 struct SDrawBatch
64 {
65 core::array<core::position2di> positions;
66 core::array<core::recti> sourceRects;
67 u32 textureNumber;
68 };
69
70 core::array<SGUISprite> Sprites;
71 core::array< core::rect<s32> > Rectangles;
72 core::array<video::ITexture*> Textures;
73 IGUIEnvironment* Environment;
74 video::IVideoDriver* Driver;
75
76};
77
78} // end namespace gui
79} // end namespace irr
80
81#endif // _IRR_COMPILE_WITH_GUI_
82
83#endif // __C_GUI_SPRITE_BANK_H_INCLUDED__
84