1#ifndef YAZE_APP_EDITOR_SPRITE_SPRITE_DRAWER_H
2#define YAZE_APP_EDITOR_SPRITE_SPRITE_DRAWER_H
33 explicit SpriteDrawer(
const uint8_t* sprite_gfx_buffer =
nullptr);
57 int origin_x,
int origin_y);
67 int origin_x,
int origin_y);
93 bool flip_x,
bool flip_y, uint8_t palette);
110 bool flip_x,
bool flip_y, uint8_t palette);
119 uint8_t
GetTilePixel(uint16_t tile_id,
int px,
int py)
const;
Draws sprite OAM tiles to bitmaps for preview rendering.
const uint8_t * sprite_gfx_
void SetPalettes(const gfx::PaletteGroup *palettes)
Set the palette group for color mapping.
void ClearBitmap(gfx::Bitmap &bitmap)
Clear the bitmap with transparent color.
uint8_t GetTilePixel(uint16_t tile_id, int px, int py) const
Get pixel value from graphics buffer.
void DrawFrame(gfx::Bitmap &bitmap, const zsprite::Frame &frame, int origin_x, int origin_y)
Draw all tiles in a ZSM frame.
static constexpr int kRowStride
bool IsReady() const
Check if drawer is ready to render.
static constexpr int kTileRowSize
const gfx::PaletteGroup * sprite_palettes_
void DrawOamTile(gfx::Bitmap &bitmap, const zsprite::OamTile &tile, int origin_x, int origin_y)
Draw a single ZSM OAM tile to bitmap.
static constexpr int kMaxTileId
static constexpr int kTilesPerRow
void DrawTile16x16(gfx::Bitmap &bitmap, uint16_t tile_id, int x, int y, bool flip_x, bool flip_y, uint8_t palette)
Draw a 16x16 tile (4 8x8 tiles) to bitmap.
static constexpr int kTileSize
void SetGraphicsBuffer(const uint8_t *buffer)
Set the graphics buffer for tile lookup.
void DrawTile8x8(gfx::Bitmap &bitmap, uint16_t tile_id, int x, int y, bool flip_x, bool flip_y, uint8_t palette)
Draw an 8x8 tile to bitmap.
SpriteDrawer(const uint8_t *sprite_gfx_buffer=nullptr)
Construct a SpriteDrawer with graphics buffer.
Represents a bitmap image optimized for SNES ROM hacking.
Represents a group of palettes.