yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
background_buffer.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GFX_BACKGROUND_BUFFER_H
2#define YAZE_APP_GFX_BACKGROUND_BUFFER_H
3
4#include <cstdint>
5#include <vector>
6
9
10namespace yaze {
11namespace gfx {
12
14 public:
15 BackgroundBuffer(int width = 512, int height = 512);
16
17 // Buffer manipulation methods
18 void SetTileAt(int x, int y, uint16_t value);
19 uint16_t GetTileAt(int x, int y) const;
20 void ClearBuffer();
21
22 // Drawing methods
23 void DrawTile(const TileInfo& tile_info, uint8_t* canvas,
24 const uint8_t* tiledata, int indexoffset);
25 void DrawBackground(std::span<uint8_t> gfx16_data);
26
27 // Floor drawing methods
28 void DrawFloor(const std::vector<uint8_t>& rom_data, int tile_address,
29 int tile_address_floor, uint8_t floor_graphics);
30
31 // Ensure bitmap is initialized before accessing
32 // Call this before using bitmap() if the buffer was created standalone
34
35 // Priority buffer methods for per-tile priority support
36 // SNES Mode 1 uses priority bits to control Z-ordering between layers
38 uint8_t GetPriorityAt(int x, int y) const;
39 void SetPriorityAt(int x, int y, uint8_t priority);
40 const std::vector<uint8_t>& priority_data() const { return priority_buffer_; }
41 std::vector<uint8_t>& mutable_priority_data() { return priority_buffer_; }
42
43 // Accessors
44 auto buffer() { return buffer_; }
45 auto& bitmap() { return bitmap_; }
46 const gfx::Bitmap& bitmap() const { return bitmap_; }
47
48 private:
49 std::vector<uint16_t> buffer_;
50 std::vector<uint8_t> priority_buffer_; // Per-pixel priority (0 or 1)
52 int width_;
54};
55
56} // namespace gfx
57} // namespace yaze
58
59#endif // YAZE_APP_GFX_BACKGROUND_BUFFER_H
void DrawTile(const TileInfo &tile_info, uint8_t *canvas, const uint8_t *tiledata, int indexoffset)
void DrawBackground(std::span< uint8_t > gfx16_data)
BackgroundBuffer(int width=512, int height=512)
void SetPriorityAt(int x, int y, uint8_t priority)
std::vector< uint8_t > & mutable_priority_data()
uint8_t GetPriorityAt(int x, int y) const
void SetTileAt(int x, int y, uint16_t value)
void DrawFloor(const std::vector< uint8_t > &rom_data, int tile_address, int tile_address_floor, uint8_t floor_graphics)
const gfx::Bitmap & bitmap() const
std::vector< uint8_t > priority_buffer_
uint16_t GetTileAt(int x, int y) const
const std::vector< uint8_t > & priority_data() const
std::vector< uint16_t > buffer_
Represents a bitmap image optimized for SNES ROM hacking.
Definition bitmap.h:67
SNES 16-bit tile metadata container.
Definition snes_tile.h:50