2023-10-03 20:37:00 +02:00
|
|
|
// This file is part of the "Irrlicht Engine".
|
|
|
|
// written by Reinhard Ostermeier, reinhard@nospam.r-ostermeier.de
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "IGUIImageList.h"
|
|
|
|
#include "IVideoDriver.h"
|
|
|
|
|
|
|
|
namespace irr
|
|
|
|
{
|
|
|
|
namespace gui
|
|
|
|
{
|
|
|
|
|
|
|
|
class CGUIImageList : public IGUIImageList
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
//! constructor
|
2024-03-20 19:35:52 +01:00
|
|
|
CGUIImageList(video::IVideoDriver *Driver);
|
2023-10-03 20:37:00 +02:00
|
|
|
|
|
|
|
//! destructor
|
|
|
|
virtual ~CGUIImageList();
|
|
|
|
|
|
|
|
//! Creates the image list from texture.
|
|
|
|
//! \param texture: The texture to use
|
|
|
|
//! \param imageSize: Size of a single image
|
|
|
|
//! \param useAlphaChannel: true if the alpha channel from the texture should be used
|
|
|
|
//! \return
|
|
|
|
//! true if the image list was created
|
2024-03-20 19:35:52 +01:00
|
|
|
bool createImageList(video::ITexture *texture,
|
|
|
|
core::dimension2d<s32> imageSize,
|
|
|
|
bool useAlphaChannel);
|
2023-10-03 20:37:00 +02:00
|
|
|
|
|
|
|
//! Draws an image and clips it to the specified rectangle if wanted
|
|
|
|
//! \param index: Index of the image
|
|
|
|
//! \param destPos: Position of the image to draw
|
|
|
|
//! \param clip: Optional pointer to a rectangle against which the text will be clipped.
|
|
|
|
//! If the pointer is null, no clipping will be done.
|
2024-03-20 19:35:52 +01:00
|
|
|
virtual void draw(s32 index, const core::position2d<s32> &destPos,
|
|
|
|
const core::rect<s32> *clip = 0) override;
|
2023-10-03 20:37:00 +02:00
|
|
|
|
|
|
|
//! Returns the count of Images in the list.
|
|
|
|
//! \return Returns the count of Images in the list.
|
|
|
|
s32 getImageCount() const override
|
2024-03-20 19:35:52 +01:00
|
|
|
{
|
|
|
|
return ImageCount;
|
|
|
|
}
|
2023-10-03 20:37:00 +02:00
|
|
|
|
|
|
|
//! Returns the size of the images in the list.
|
|
|
|
//! \return Returns the size of the images in the list.
|
|
|
|
core::dimension2d<s32> getImageSize() const override
|
2024-03-20 19:35:52 +01:00
|
|
|
{
|
|
|
|
return ImageSize;
|
|
|
|
}
|
2023-10-03 20:37:00 +02:00
|
|
|
|
|
|
|
private:
|
2024-03-20 19:35:52 +01:00
|
|
|
video::IVideoDriver *Driver;
|
|
|
|
video::ITexture *Texture;
|
|
|
|
s32 ImageCount;
|
|
|
|
core::dimension2d<s32> ImageSize;
|
|
|
|
s32 ImagesPerRow;
|
|
|
|
bool UseAlphaChannel;
|
2023-10-03 20:37:00 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace gui
|
|
|
|
} // end namespace irr
|