|
IrrlichtEngine
|
00001 // Copyright (C) 2002-2011 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_GUI_SPRITE_BANK_H_INCLUDED__ 00006 #define __I_GUI_SPRITE_BANK_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "irrArray.h" 00010 #include "SColor.h" 00011 #include "rect.h" 00012 00013 namespace irr 00014 { 00015 00016 namespace video 00017 { 00018 class ITexture; 00019 } // end namespace video 00020 00021 namespace gui 00022 { 00023 00025 struct SGUISpriteFrame 00026 { 00027 u32 textureNumber; 00028 u32 rectNumber; 00029 }; 00030 00032 struct SGUISprite 00033 { 00034 SGUISprite() : Frames(), frameTime(0) {} 00035 00036 core::array<SGUISpriteFrame> Frames; 00037 u32 frameTime; 00038 }; 00039 00040 00042 00045 class IGUISpriteBank : public virtual IReferenceCounted 00046 { 00047 public: 00048 00050 virtual core::array< core::rect<s32> >& getPositions() = 0; 00051 00053 virtual core::array< SGUISprite >& getSprites() = 0; 00054 00056 virtual u32 getTextureCount() const = 0; 00057 00059 virtual video::ITexture* getTexture(u32 index) const = 0; 00060 00062 virtual void addTexture(video::ITexture* texture) = 0; 00063 00065 virtual void setTexture(u32 index, video::ITexture* texture) = 0; 00066 00070 virtual s32 addTextureAsSprite(video::ITexture* texture) = 0; 00071 00073 virtual void clear() = 0; 00074 00076 virtual void draw2DSprite(u32 index, const core::position2di& pos, 00077 const core::rect<s32>* clip=0, 00078 const video::SColor& color= video::SColor(255,255,255,255), 00079 u32 starttime=0, u32 currenttime=0, 00080 bool loop=true, bool center=false) = 0; 00081 00083 virtual void draw2DSpriteBatch(const core::array<u32>& indices, const core::array<core::position2di>& pos, 00084 const core::rect<s32>* clip=0, 00085 const video::SColor& color= video::SColor(255,255,255,255), 00086 u32 starttime=0, u32 currenttime=0, 00087 bool loop=true, bool center=false) = 0; 00088 }; 00089 00090 00091 } // end namespace gui 00092 } // end namespace irr 00093 00094 #endif // __I_GUI_SPRITE_BANK_H_INCLUDED__ 00095