1#ifndef YAZE_APP_GFX_TILESHEET_H
2#define YAZE_APP_GFX_TILESHEET_H
40 void ComposeTile16(
const std::vector<uint8_t>& graphics_buffer,
43 int sheet_offset = 0);
44 void ModifyTile16(
const std::vector<uint8_t>& graphics_buffer,
47 int tile_id,
int sheet_offset = 0);
55 int tile_data_offset = 0;
57 tileData, tile_data_offset);
58 return Bitmap(bmp_width, bmp_height,
bitmap_->depth(), tileData);
63 int tile_x = (tile_id % tiles_per_row) *
tile_width_;
66 int tile_data_offset = 0;
67 bitmap_->Get16x16Tile(tile_x, tile_y, tile_data, tile_data_offset);
72 void CopyTile(
int srcX,
int srcY,
int destX,
int destY,
bool mirror_x =
false,
73 bool mirror_y =
false) {
75 auto dest_tile_data = src_tile.vector();
104 const std::vector<uint8_t>& graphics_buffer,
int tile_id);
108 void MirrorTileData(std::vector<uint8_t>& tileData,
bool mirror_x,
111 void WriteTile(
int x,
int y,
const std::vector<uint8_t>& tileData) {
112 int tileDataOffset = 0;
114 const_cast<std::vector<uint8_t>&
>(tileData),
131 const uint8_t* graphics_buffer,
int width,
int height,
TileType tile_type,
Represents a bitmap image.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Tile composition of four 8x8 tiles.
SNES 16-bit tile metadata container.
void ComposeTile16(const std::vector< uint8_t > &graphics_buffer, const TileInfo &top_left, const TileInfo &top_right, const TileInfo &bottom_left, const TileInfo &bottom_right, int sheet_offset=0)
std::vector< uint8_t > internal_data_
void CopyTile(int srcX, int srcY, int destX, int destY, bool mirror_x=false, bool mirror_y=false)
Bitmap GetTile16(int tile_id)
std::shared_ptr< Bitmap > bitmap_
void MirrorTileDataVertically(std::vector< uint8_t > &tileData)
std::vector< uint8_t > FetchTileDataFromGraphicsBuffer(const std::vector< uint8_t > &graphics_buffer, int tile_id)
std::vector< InternalTile16 > tile_info_
Tilesheet(std::shared_ptr< Bitmap > bitmap, int tileWidth, int tileHeight, TileType tile_type)
auto set_palette(gfx::SnesPalette &palette)
void ComposeAndPlaceTilePart(const std::vector< uint8_t > &graphics_buffer, const TileInfo &tile_info, int baseX, int baseY)
void MirrorTileDataHorizontally(std::vector< uint8_t > &tileData)
void ModifyTile16(const std::vector< uint8_t > &graphics_buffer, const TileInfo &top_left, const TileInfo &top_right, const TileInfo &bottom_left, const TileInfo &bottom_right, int tile_id, int sheet_offset=0)
void Init(int width, int height, TileType tile_type)
Bitmap GetTile(int tileX, int tileY, int bmp_width, int bmp_height)
void WriteTile(int x, int y, const std::vector< uint8_t > &tileData)
void MirrorTileData(std::vector< uint8_t > &tileData, bool mirror_x, bool mirror_y)
int CalculateTileIndex(int x, int y)
Contains classes for handling graphical data.
absl::StatusOr< Tilesheet > CreateTilesheetFromGraphicsBuffer(const uint8_t *graphics_buffer, int width, int height, TileType tile_type, int sheet_id)
Main namespace for the application.
std::array< TileInfo, 4 > tiles