Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
IGUISpriteBank.hpp
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 nirtcpp/nirtcpp.hpp
4
5#ifndef NIRT_I_GUI_SPRITE_BANK_HPP_INCLUDED
6#define NIRT_I_GUI_SPRITE_BANK_HPP_INCLUDED
7
8#include <nirtcpp/core/engine/IReferenceCounted.hpp>
9#include <nirtcpp/core/engine/irrArray.hpp>
10#include <nirtcpp/core/engine/SColor.hpp>
11#include <nirtcpp/core/engine/rect.hpp>
12
13namespace nirt
14{
15
16namespace video
17{
18 class ITexture;
19} // end namespace video
20
21namespace gui
22{
23
25// Note for implementer: Can't fix variable names to uppercase as this is a public interface used since a while
27{
28public:
30 {
31 }
32
33public:
34 SGUISpriteFrame(u32 textureIndex, u32 positionIndex)
35 : textureNumber(textureIndex), rectNumber(positionIndex)
36 {
37 }
38
39public:
42
45};
46
48// Note for implementer: Can't fix variable names to uppercase as this is a public interface used since a while
50{
51public:
52 SGUISprite() : frameTime(0) {}
53
54public:
55 SGUISprite(const SGUISpriteFrame& firstFrame) : frameTime(0)
56 {
57 Frames.push_back(firstFrame);
58 }
59
60public:
62 u32 frameTime;
63};
64
65
67
70class IGUISpriteBank : public virtual IReferenceCounted
71{
72public:
73
76
79
81 virtual u32 getTextureCount() const = 0;
82
84 virtual video::ITexture* getTexture(u32 index) const = 0;
85
87 virtual void addTexture(video::ITexture* texture) = 0;
88
90 virtual void setTexture(u32 index, video::ITexture* texture) = 0;
91
93
95 virtual s32 addTextureAsSprite(video::ITexture* texture) = 0;
96
98 virtual void clear() = 0;
99
101
113 virtual void draw2DSprite(u32 index, const core::position2di& pos,
114 const core::rect<s32>* clip=0,
115 const video::SColor& color= video::SColor(255,255,255,255),
116 u32 starttime=0, u32 currenttime=0,
117 bool loop=true, bool center=false) = 0;
118
120
130 virtual void draw2DSprite(u32 index, const core::rect<s32>& destRect,
131 const core::rect<s32>* clip=0,
132 const video::SColor * const colors=0,
133 u32 timeTicks = 0,
134 bool loop=true) = 0;
135
138 const core::rect<s32>* clip=0,
139 const video::SColor& color= video::SColor(255,255,255,255),
140 u32 starttime=0, u32 currenttime=0,
141 bool loop=true, bool center=false) = 0;
142};
143
144
145} // end namespace gui
146} // end namespace nirt
147
148#endif // NIRT_I_GUI_SPRITE_BANK_HPP_INCLUDED
Base class of most objects of the Nirtcpp Engine.
Definition IReferenceCounted.hpp:46
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.hpp:22
Sprite bank interface.
Definition IGUISpriteBank.hpp:71
virtual u32 getTextureCount() const =0
Returns the number of textures held by the sprite bank.
virtual void draw2DSprite(u32 index, const core::rect< s32 > &destRect, const core::rect< s32 > *clip=0, const video::SColor *const colors=0, u32 timeTicks=0, bool loop=true)=0
Draws a sprite in 2d with destination rectangle and colors.
virtual void clear()=0
Clears sprites, rectangles and textures.
virtual void addTexture(video::ITexture *texture)=0
Adds a texture to the sprite bank.
virtual void setTexture(u32 index, video::ITexture *texture)=0
Changes one of the textures in the sprite bank.
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 in 2d with position and color.
virtual video::ITexture * getTexture(u32 index) const =0
Gets the texture with the specified index.
virtual core::array< SGUISprite > & getSprites()=0
Returns the array of animated sprites within the sprite bank.
virtual core::array< core::rect< s32 > > & getPositions()=0
Returns the list of rectangles held by the sprite bank.
virtual s32 addTextureAsSprite(video::ITexture *texture)=0
Add the texture and use it for a single non-animated sprite.
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
Draws a sprite batch in 2d using an array of positions and a color.
A single sprite frame.
Definition IGUISpriteBank.hpp:27
u32 rectNumber
Index in IGUISpriteBank::getPositions()
Definition IGUISpriteBank.hpp:44
u32 textureNumber
Texture index in IGUISpriteBank.
Definition IGUISpriteBank.hpp:41
A sprite composed of several frames.
Definition IGUISpriteBank.hpp:50
Interface of a Video Driver dependent Texture.
Definition ITexture.hpp:186
Class representing a 32 bit ARGB color.
Definition SColor.hpp:317
As of Nirtcpp 1.6, position2d is a synonym for vector2d.
Definition vector3d.hpp:11
signed int s32
32 bit signed variable.
Definition irrTypes.hpp:72
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.hpp:64

Nirtcpp    @cppfx.xyz

Utxcpp    utx::print