Retour
Version Originale

./aip/1.8aipmod/include/IGUISpriteBank.h :


// Copyright (C) 2002-2011 Nikolaus Gebhardt

// This file is part of the "Irrlicht Engine".

// For conditions of distribution and use, see copyright notice in irrlicht.h


#ifndef __I_GUI_SPRITE_BANK_H_INCLUDED__
#define __I_GUI_SPRITE_BANK_H_INCLUDED__

#include "IReferenceCounted.h"
#include "irrArray.h"
#include "SColor.h"
#include "rect.h"

namespace irr
{

namespace video
{
	class ITexture;
} // end namespace video


namespace gui
{

//! A single sprite frame.

struct SGUISpriteFrame
{
	u32 textureNumber;
	u32 rectNumber;
};

//! A sprite composed of several frames.

struct SGUISprite
{
	SGUISprite() : Frames(), frameTime(0) {}

	core::array<SGUISpriteFrame> Frames;
	u32 frameTime;
};


//! Sprite bank interface.

/** See http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=25742&highlight=spritebank
* for more information how to use the spritebank.
*/
class IGUISpriteBank : public virtual IReferenceCounted
{
public:

	//! Returns the list of rectangles held by the sprite bank

	virtual core::array< core::rect<s32> >& getPositions() = 0;

	//! Returns the array of animated sprites within the sprite bank

	virtual core::array< SGUISprite >& getSprites() = 0;

	//! Returns the number of textures held by the sprite bank

	virtual u32 getTextureCount() const = 0;

	//! Gets the texture with the specified index

	virtual video::ITexture* getTexture(u32 index) const = 0;

	//! Adds a texture to the sprite bank

	virtual void addTexture(video::ITexture* texture) = 0;

	//! Changes one of the textures in the sprite bank

	virtual void setTexture(u32 index, video::ITexture* texture) = 0;

	//! Add the texture and use it for a single non-animated sprite.

	//! The texture and the corresponding rectangle and sprite will all be added to the end of each array.

	//! returns the index of the sprite or -1 on failure

	virtual s32 addTextureAsSprite(video::ITexture* texture) = 0;

	//! clears sprites, rectangles and textures

	virtual void clear() = 0;

	//! Draws a sprite in 2d with position and color

	virtual void draw2DSprite(u32 index, const core::position2di& pos,
			const core::rect<s32>* clip=0,
			const video::SColor& color= video::SColor(255,255,255,255),
			u32 starttime=0, u32 currenttime=0,
			bool loop=true, bool center=false) = 0;

	//! Draws a sprite batch in 2d using an array of positions and a color

	virtual void draw2DSpriteBatch(const core::array<u32>& indices, const core::array<core::position2di>& pos,
			const core::rect<s32>* clip=0,
			const video::SColor& color= video::SColor(255,255,255,255),
			u32 starttime=0, u32 currenttime=0,
			bool loop=true, bool center=false) = 0;
};


} // end namespace gui

} // end namespace irr


#endif // __I_GUI_SPRITE_BANK_H_INCLUDED__


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
20 invités en ligne
Aucun membre connecté
RSS Feed