23 #ifndef QDENGINE_SYSTEM_GRAPHICS_GR_TILE_ANIMATION_H 24 #define QDENGINE_SYSTEM_GRAPHICS_GR_TILE_ANIMATION_H 26 #include "common/hashmap.h" 27 #include "common/path.h" 29 #include "qdengine/xmath.h" 30 #include "qdengine/system/graphics/gr_tile_sprite.h" 33 class SeekableReadStream;
42 typedef void (*CompressionProgressHandler)(
int percents_loaded,
void *context);
48 bool isEmpty()
const {
54 int frameCount()
const {
57 const Vect2i &frameSize()
const {
60 const Vect2i &frameTileSize()
const {
61 return _frameTileSize;
63 int tileCount()
const {
64 return _tileOffsets.size() - 1;
67 void init(
int frame_count,
const Vect2i &frame_size,
bool alpha_flag);
71 bool compress(grTileCompressionMethod method);
74 grTileSprite getFrameTile(
int frame_number,
int tile_index)
const;
76 void addFrame(
const uint32 *frame_data);
80 void drawFrame(
const Vect2i &position, int32 frame_index, int32 mode,
int closest_scale)
const;
81 void drawFrame(
const Vect2i &position,
int frame_index,
float angle,
int mode = 0)
const;
82 void drawFrame(
const Vect2i &position,
int frame_index,
float angle,
const Vect2f &
scale,
int mode)
const;
84 void drawFrame_scale(
const Vect2i &position,
int frame_index,
float scale,
int mode)
const;
86 void drawMask(
const Vect2i &position,
int frame_index, uint32 mask_color,
int mask_alpha,
int mode,
int closest_scale)
const;
87 void drawMask_scale(
const Vect2i &pos,
int frame_index, uint32 mask_colour,
int mask_alpha,
float scale,
int mode)
const;
88 void drawMask_rot(
const Vect2i &pos,
int frame_index, uint32 mask_colour,
int mask_alpha,
float angle,
int mode)
const;
89 void drawMask_rot(
const Vect2i &pos,
int frame_index, uint32 mask_colour,
int mask_alpha,
float angle,
Vect2f scale,
int mode)
const;
91 void drawContour(
const Vect2i &position,
int frame_index, uint32 color,
int mode,
int closest_scale)
const;
92 void drawContour(
const Vect2i &position,
int frame_index, uint32 color,
float scale,
int mode)
const;
94 bool hit(
int frame_number,
Vect2i &pos)
const;
96 static void setProgressHandler(CompressionProgressHandler handler,
void *context) {
97 _progressHandler = handler;
98 _progressHandlerContext = context;
101 void addScale(
int i,
float scale);
102 byte *decode_frame_data(
int frame_index,
int closest_scale)
const;
103 int find_closest_scale(
float *scale)
const;
104 bool wasFrameSizeChanged(
int frame_index,
int scaleIdx,
float scale)
const;
107 void dumpTiles(
Common::Path baseName,
int tilesPerRow)
const;
113 grTileCompressionMethod _compression;
141 FrameIndex _frameIndex;
145 TileOffsets _tileOffsets;
154 static CompressionProgressHandler _progressHandler;
155 static void *_progressHandlerContext;
160 #endif // QDENGINE_SYSTEM_GRAPHICS_GR_TILE_ANIMATION_H Definition: managed_surface.h:51
Graphics::Surface * scale(const Graphics::Surface &srcImage, int xSize, int ySize)
Базовый класс для игровых ресурсов.
Definition: console.h:28
Definition: algorithm.h:29
Definition: formatinfo.h:28
Definition: gr_tile_animation.h:44
Тайл-спрайт
Definition: gr_tile_sprite.h:44