Represents a bitmap image optimized for SNES ROM hacking. More...
#include <bitmap.h>

Classes | |
| struct | BitmapMetadata |
| Metadata for tracking bitmap source format and palette requirements. More... | |
| struct | DirtyRegion |
Public Member Functions | |
| Bitmap ()=default | |
| Bitmap (int width, int height, int depth, const std::vector< uint8_t > &data) | |
| Create a bitmap with the given dimensions and raw pixel data. | |
| Bitmap (int width, int height, int depth, const std::vector< uint8_t > &data, const SnesPalette &palette) | |
| Create a bitmap with the given dimensions, data, and SNES palette. | |
| Bitmap (const Bitmap &other) | |
| Copy constructor - creates a deep copy. | |
| Bitmap & | operator= (const Bitmap &other) |
| Copy assignment operator. | |
| Bitmap (Bitmap &&other) noexcept | |
| Move constructor. | |
| Bitmap & | operator= (Bitmap &&other) noexcept |
| Move assignment operator. | |
| ~Bitmap ()=default | |
| Destructor. | |
| void | Create (int width, int height, int depth, std::span< uint8_t > data) |
| Create a bitmap with the given dimensions and data. | |
| void | Create (int width, int height, int depth, const std::vector< uint8_t > &data) |
| Create a bitmap with the given dimensions and data. | |
| void | Create (int width, int height, int depth, int format, const std::vector< uint8_t > &data) |
| Create a bitmap with the given dimensions, format, and data. | |
| void | Reformat (int format) |
| Reformat the bitmap to use a different pixel format. | |
| void | Fill (uint8_t value) |
| Fill the bitmap with a specific value. | |
| void | CreateTexture () |
| Creates the underlying SDL_Texture to be displayed. | |
| void | UpdateTexture () |
| Updates the underlying SDL_Texture when it already exists. | |
| void | QueueTextureUpdate (IRenderer *renderer) |
| Queue texture update for batch processing (improved performance) | |
| void | UpdateTextureData () |
| Updates the texture data from the surface. | |
| void | SetPalette (const SnesPalette &palette) |
| Set the palette for the bitmap using SNES palette format. | |
| void | SetPaletteWithTransparent (const SnesPalette &palette, size_t index, int length=7) |
| Set the palette with a transparent color. | |
| void | ApplyPaletteByMetadata (const SnesPalette &palette, int sub_palette_index=0) |
| Apply palette using metadata-driven strategy Chooses between SetPalette and SetPaletteWithTransparent based on metadata. | |
| void | ApplyStoredPalette () |
| Apply the stored palette to the surface (internal helper) | |
| void | UpdateSurfacePixels () |
| Update SDL surface with current pixel data from data_ vector Call this after modifying pixel data via mutable_data() | |
| void | SetPalette (const std::vector< SDL_Color > &palette) |
| Set the palette using SDL colors (direct surface palette access) | |
| void | WriteToPixel (int position, uint8_t value) |
| Write a value to a pixel at the given position. | |
| void | WriteToPixel (int x, int y, uint8_t value) |
| Write a palette index to a pixel at the given x,y coordinates. | |
| uint8_t | GetPixel (int x, int y) const |
| Get the palette index at the given x,y coordinates. | |
| void | WriteColor (int position, const ImVec4 &color) |
| Write a color to a pixel at the given position. | |
| void | SetPixel (int x, int y, const SnesColor &color) |
| Set a pixel at the given x,y coordinates with SNES color. | |
| void | Resize (int new_width, int new_height) |
| Resize the bitmap to new dimensions (preserves existing data) | |
| void | InvalidatePaletteCache () |
| Invalidate the palette lookup cache (call when palette changes) | |
| uint8_t | FindColorIndex (const SnesColor &color) |
| Find color index in palette using optimized hash map lookup. | |
| bool | ValidateDataSurfaceSync () |
| Validate that bitmap data and surface pixels are synchronized. | |
| void | Get8x8Tile (int tile_index, int x, int y, std::vector< uint8_t > &tile_data, int &tile_data_offset) |
| Extract an 8x8 tile from the bitmap (SNES standard tile size) | |
| void | Get16x16Tile (int tile_x, int tile_y, std::vector< uint8_t > &tile_data, int &tile_data_offset) |
| Extract a 16x16 tile from the bitmap (SNES metatile size) | |
| const SnesPalette & | palette () const |
| SnesPalette * | mutable_palette () |
| BitmapMetadata & | metadata () |
| const BitmapMetadata & | metadata () const |
| int | width () const |
| int | height () const |
| int | depth () const |
| auto | size () const |
| const uint8_t * | data () const |
| std::vector< uint8_t > & | mutable_data () |
| SDL_Surface * | surface () const |
| TextureHandle | texture () const |
| const std::vector< uint8_t > & | vector () const |
| uint8_t | at (int i) const |
| bool | modified () const |
| bool | is_active () const |
| uint32_t | generation () const |
| void | set_active (bool active) |
| void | set_data (const std::vector< uint8_t > &data) |
| void | set_modified (bool modified) |
| void | set_texture (TextureHandle texture) |
Static Private Member Functions | |
| static uint32_t | HashColor (const ImVec4 &color) |
| Hash a color for cache lookup. | |
Private Attributes | |
| int | width_ = 0 |
| int | height_ = 0 |
| int | depth_ = 0 |
| bool | active_ = false |
| bool | modified_ = false |
| uint32_t | generation_ = 0 |
| void * | texture_pixels = nullptr |
| uint8_t * | pixel_data_ = nullptr |
| gfx::SnesPalette | palette_ |
| Internal SNES palette storage (may be empty!) | |
| BitmapMetadata | metadata_ |
| std::vector< uint8_t > | data_ |
| SDL_Surface * | surface_ = nullptr |
| SDL surface for rendering (contains the authoritative palette) | |
| TextureHandle | texture_ = nullptr |
| std::unordered_map< uint32_t, uint8_t > | color_to_index_cache_ |
| struct yaze::gfx::Bitmap::DirtyRegion | dirty_region_ |
Static Private Attributes | |
| static uint32_t | next_generation_ = 1 |
Represents a bitmap image optimized for SNES ROM hacking.
The Bitmap class provides functionality to create, manipulate, and display bitmap images specifically designed for Link to the Past ROM editing. It supports:
Key Features:
Performance Optimizations:
ROM Hacking Specific:
|
default |
Create a bitmap with the given dimensions and raw pixel data.
| width | Width in pixels (typically 128, 256, or 512 for SNES tilesheets) |
| height | Height in pixels (typically 32, 64, or 128 for SNES tilesheets) |
| depth | Color depth in bits per pixel (4, 8, or 16 for SNES) |
| data | Raw pixel data (indexed color values for SNES graphics) |
Definition at line 46 of file bitmap.cc.
References Create(), data(), depth(), height(), and width().
| yaze::gfx::Bitmap::Bitmap | ( | int | width, |
| int | height, | ||
| int | depth, | ||
| const std::vector< uint8_t > & | data, | ||
| const SnesPalette & | palette ) |
Create a bitmap with the given dimensions, data, and SNES palette.
| width | Width in pixels |
| height | Height in pixels |
| depth | Color depth in bits per pixel |
| data | Raw pixel data (indexed color values) |
| palette | SNES palette for color mapping (15-bit RGB format) |
Definition at line 52 of file bitmap.cc.
References Create(), data(), depth(), height(), palette(), SetPalette(), and width().
Copy constructor - creates a deep copy.
Definition at line 63 of file bitmap.cc.
References active_, yaze::gfx::Arena::AllocateSurface(), ApplyStoredPalette(), data_, depth_, yaze::gfx::SnesPalette::empty(), yaze::gfx::Arena::Get(), yaze::gfx::GetSnesPixelFormat(), height_, yaze::gfx::kIndexed, palette_, pixel_data_, surface_, vector(), and width_.
|
noexcept |
|
default |
Destructor.
| Bitmap & yaze::gfx::Bitmap::operator= | ( | const Bitmap & | other | ) |
Copy assignment operator.
Definition at line 89 of file bitmap.cc.
References active_, yaze::gfx::Arena::AllocateSurface(), ApplyStoredPalette(), data_, depth_, yaze::gfx::Arena::DESTROY, yaze::gfx::SnesPalette::empty(), yaze::gfx::Arena::FreeSurface(), generation_, yaze::gfx::Arena::Get(), yaze::gfx::GetSnesPixelFormat(), height_, yaze::gfx::kIndexed, modified_, next_generation_, palette_, pixel_data_, yaze::gfx::Arena::QueueTextureCommand(), surface_, texture_, vector(), and width_.
|
noexcept |
Move assignment operator.
Definition at line 159 of file bitmap.cc.
References yaze::gfx::Arena::FreeSurface(), and yaze::gfx::Arena::Get().

Create a bitmap with the given dimensions and data.
Definition at line 199 of file bitmap.cc.
References Create(), data(), data_, depth(), height(), and width().
Referenced by Bitmap(), Bitmap(), yaze::zelda3::Inventory::BuildTileset(), yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::editor::Tile16Editor::CopyTile16ToClipboard(), Create(), Create(), yaze::zelda3::OverworldMapScreen::Create(), yaze::zelda3::Inventory::Create(), yaze::zelda3::TitleScreen::Create(), yaze::editor::GraphicsEditor::DecompressImportData(), yaze::gfx::BackgroundBuffer::DrawBackground(), yaze::editor::GraphicsEditor::DrawCgxImport(), yaze::gfx::BackgroundBuffer::DrawFloor(), yaze::editor::MessageEditor::DrawMessagePreview(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::GraphicsEditor::DrawScrImport(), yaze::gfx::BackgroundBuffer::EnsureBitmapInitialized(), yaze::editor::Tile16Editor::FlipTile16Horizontal(), yaze::editor::Tile16Editor::FlipTile16Vertical(), yaze::editor::MessageEditor::Initialize(), yaze::editor::Tile16Editor::Initialize(), yaze::editor::ScreenEditor::Load(), yaze::zelda3::LoadDungeonMapTile16(), yaze::LoadFontGraphics(), yaze::zelda3::LoadFontGraphics(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::editor::Tile16Editor::LoadTile16FromScratchSpace(), yaze::editor::Tile16Editor::PasteTile16FromClipboard(), yaze::editor::Tile16Editor::PreviewPaletteChange(), yaze::editor::Tile16Editor::RegenerateTile16BitmapFromROM(), yaze::editor::SpriteEditor::RenderVanillaSprite(), yaze::editor::SpriteEditor::RenderZSpriteFrame(), yaze::editor::Tile16Editor::RotateTile16(), yaze::test::RomDependentTestSuite::RunTile16EditorTest(), yaze::editor::OverworldEditor::SaveCurrentSelectionToScratch(), yaze::editor::Tile16Editor::SaveUndoState(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::gui::DungeonObjectEmulatorPreview::TriggerStaticRender(), yaze::editor::Tile16Editor::Undo(), yaze::editor::Tile16Editor::UpdateLivePreview(), and yaze::editor::Tile16Editor::UpdateTile16Edit().
| void yaze::gfx::Bitmap::Create | ( | int | width, |
| int | height, | ||
| int | depth, | ||
| int | format, | ||
| const std::vector< uint8_t > & | data ) |
Create a bitmap with the given dimensions, format, and data.
Create a bitmap with specified format and data.
| width | Width in pixels |
| height | Height in pixels |
| depth | Color depth in bits per pixel |
| format | Pixel format (0=indexed, 1=4BPP, 2=8BPP) |
| data | Raw pixel data |
Performance Notes:
Definition at line 223 of file bitmap.cc.
References active_, yaze::gfx::Arena::AllocateSurface(), ApplyStoredPalette(), data(), data_, depth(), depth_, yaze::gfx::SnesPalette::empty(), yaze::platform::EnsureSurfacePalette256(), generation_, yaze::gfx::Arena::Get(), yaze::gfx::GetSnesPixelFormat(), height(), height_, yaze::gfx::kIndexed, next_generation_, palette_, pixel_data_, surface_, vector(), width(), and width_.
Reformat the bitmap to use a different pixel format.
Definition at line 275 of file bitmap.cc.
References active_, yaze::gfx::Arena::AllocateSurface(), data_, depth_, yaze::gfx::Arena::Get(), yaze::gfx::GetSnesPixelFormat(), height_, palette_, pixel_data_, SetPalette(), surface_, vector(), and width_.
Referenced by yaze::gui::CanvasContextMenu::RenderBitmapOperationsMenu(), yaze::editor::SpriteEditor::RenderVanillaSprite(), and yaze::editor::SpriteEditor::RenderZSpriteFrame().
Fill the bitmap with a specific value.
Definition at line 143 of file bitmap.h.
References data_, and modified_.
Referenced by yaze::zelda3::RoomLayerManager::CompositeToOutput().
| void yaze::gfx::Bitmap::CreateTexture | ( | ) |
Creates the underlying SDL_Texture to be displayed.
Definition at line 291 of file bitmap.cc.
References yaze::gfx::Arena::CREATE, yaze::gfx::Arena::Get(), and yaze::gfx::Arena::QueueTextureCommand().
Referenced by yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), and yaze::gfx::RenderTilesBatch().

| void yaze::gfx::Bitmap::UpdateTexture | ( | ) |
Updates the underlying SDL_Texture when it already exists.
Definition at line 295 of file bitmap.cc.
References yaze::gfx::Arena::Get(), yaze::gfx::Arena::QueueTextureCommand(), and yaze::gfx::Arena::UPDATE.
Referenced by yaze::gui::Canvas::ConvertBitmapFormat(), and yaze::gui::Canvas::UpdateColorPainter().

Queue texture update for batch processing (improved performance)
| renderer | SDL renderer for texture operations |
| void yaze::gfx::Bitmap::UpdateTextureData | ( | ) |
Updates the texture data from the surface.
| void yaze::gfx::Bitmap::SetPalette | ( | const SnesPalette & | palette | ) |
Set the palette for the bitmap using SNES palette format.
This method stores the palette in the internal palette_ member AND applies it to the SDL surface via ApplyStoredPalette().
palette_ member)**: Stores the SNES color format for serialization and palette editing. Accessible via palette().surface_->format->palette)**: Used by SDL for actual rendering. When converting indexed pixels to RGBA for textures, SDL uses THIS palette, not the internal one.Both are updated when calling SetPalette(SnesPalette). However, some code paths (like dungeon room rendering) use SetPalette(vector<SDL_Color>) which ONLY sets the SDL surface palette, leaving the internal palette_ empty.
When compositing bitmaps or copying palettes between bitmaps, you may need to extract the palette from the SDL surface directly rather than using palette() which may be empty. See RoomLayerManager::CompositeToOutput() for an example of proper palette extraction from SDL surfaces.
| palette | SNES palette to apply (15-bit RGB format) |
Definition at line 382 of file bitmap.cc.
References ApplyStoredPalette(), modified_, palette(), and palette_.
Referenced by ApplyPaletteByMetadata(), yaze::gui::CanvasUtils::ApplyPaletteGroup(), yaze::gui::PaletteEditorWidget::ApplyROMPalette(), yaze::zelda3::anonymous_namespace{room_layer_manager.cc}::ApplySDLPaletteToBitmap(), Bitmap(), yaze::zelda3::Inventory::BuildTileset(), yaze::zelda3::TitleScreen::BuildTileset(), yaze::editor::Tile16Editor::CopyTile16ToClipboard(), yaze::zelda3::OverworldMapScreen::Create(), yaze::zelda3::Inventory::Create(), yaze::gfx::CreateTilemap(), yaze::editor::GraphicsEditor::DecompressImportData(), yaze::editor::GraphicsEditor::DrawCgxImport(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::MessageEditor::DrawMessagePreview(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::GraphicsEditor::DrawScrImport(), yaze::gfx::BackgroundBuffer::EnsureBitmapInitialized(), yaze::editor::MessageEditor::Initialize(), yaze::editor::Tile16Editor::Initialize(), yaze::editor::ScreenEditor::Load(), yaze::zelda3::LoadDungeonMapTile16(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::editor::Tile16Editor::LoadTile16FromScratchSpace(), yaze::zelda3::TitleScreen::LoadTitleScreen(), yaze::editor::Tile16Editor::PasteTile16FromClipboard(), Reformat(), yaze::editor::Tile16Editor::RefreshAllPalettes(), yaze::editor::OverworldEditor::RefreshMapPalette(), yaze::editor::OverworldEditor::RefreshTile16Blockset(), yaze::zelda3::Room::RenderRoomGraphics(), yaze::editor::SpriteEditor::RenderVanillaSprite(), yaze::editor::SpriteEditor::RenderZSpriteFrame(), yaze::test::RomDependentTestSuite::RunTile16EditorTest(), yaze::editor::OverworldEditor::SaveCurrentSelectionToScratch(), yaze::editor::Tile16Editor::SaveUndoState(), and yaze::editor::Tile16Editor::Undo().

| void yaze::gfx::Bitmap::SetPaletteWithTransparent | ( | const SnesPalette & | palette, |
| size_t | index, | ||
| int | length = 7 ) |
Set the palette with a transparent color.
Apply a sub-palette with automatic transparency for SNES rendering.
This method extracts a sub-palette from a larger palette and applies it to the SDL surface with proper SNES transparency handling.
SNES Transparency Model:
Usage:
Example: palette has colors [c0, c1, c2, c3, c4, c5, c6, c7, c8, ...] SetPaletteWithTransparent(palette, 0, 7) creates: [transparent_black, c0, c1, c2, c3, c4, c5, c6]
IMPORTANT: Source palette data is NOT modified
| palette | Source palette (can be 7, 8, 64, 128, or 256 colors) |
| index | Start index in source palette (0-based) |
| length | Number of colors to extract (default 7, max 7) |
Definition at line 454 of file bitmap.cc.
References yaze::platform::GetSurfacePalette(), InvalidatePaletteCache(), palette(), palette_, yaze::gfx::SnesPalette::size(), surface_, and vector().
Referenced by ApplyPaletteByMetadata(), yaze::gui::CanvasUtils::ApplyPaletteGroup(), yaze::editor::Tile16Editor::ApplyPaletteToCurrentTile16Bitmap(), yaze::gui::PaletteEditorWidget::ApplyROMPalette(), yaze::editor::Tile16Editor::PreviewPaletteChange(), yaze::editor::Tile16Editor::RefreshAllPalettes(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::editor::Tile16Editor::UpdateLivePreview(), and yaze::editor::Tile16Editor::UpdateTile16Edit().
| void yaze::gfx::Bitmap::ApplyPaletteByMetadata | ( | const SnesPalette & | palette, |
| int | sub_palette_index = 0 ) |
Apply palette using metadata-driven strategy Chooses between SetPalette and SetPaletteWithTransparent based on metadata.
Apply palette using metadata-driven strategy.
Uses bitmap metadata to determine the appropriate palette application method:
This ensures correct rendering for different bitmap types:
| palette | Source palette to apply |
| sub_palette_index | Index within palette for sub-palette extraction (default 0) |
Definition at line 410 of file bitmap.cc.
References metadata_, palette(), yaze::gfx::Bitmap::BitmapMetadata::palette_format, SetPalette(), and SetPaletteWithTransparent().

| void yaze::gfx::Bitmap::ApplyStoredPalette | ( | ) |
Apply the stored palette to the surface (internal helper)
Apply the stored palette to the SDL surface.
This method applies the palette_ member to the SDL surface's palette.
IMPORTANT: Transparency handling
Color format notes:
Definition at line 315 of file bitmap.cc.
References yaze::gfx::SnesPalette::empty(), yaze::platform::GetSurfacePalette(), InvalidatePaletteCache(), palette_, yaze::gfx::SnesPalette::size(), surface_, and vector().
Referenced by Bitmap(), Create(), operator=(), and SetPalette().
| void yaze::gfx::Bitmap::UpdateSurfacePixels | ( | ) |
Update SDL surface with current pixel data from data_ vector Call this after modifying pixel data via mutable_data()
Definition at line 367 of file bitmap.cc.
References data_, surface_, and vector().
Referenced by yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::zelda3::TitleScreen::RenderBG1Layer(), yaze::zelda3::TitleScreen::RenderBG2Layer(), yaze::zelda3::TitleScreen::RenderCompositeLayer(), yaze::zelda3::OverworldMapScreen::RenderMapLayer(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

Set the palette using SDL colors (direct surface palette access)
This method ONLY sets the SDL surface palette for rendering. It does NOT update the internal palette_ member (SnesPalette).
Use this method when:
| palette | Vector of SDL_Color values (256 colors for 8-bit indexed) |
Definition at line 534 of file bitmap.cc.
References yaze::platform::EnsureSurfacePalette256(), yaze::platform::GetSurfacePalette(), palette(), yaze::gfx::SnesPalette::size(), surface_, and vector().
Write a value to a pixel at the given position.
Definition at line 579 of file bitmap.cc.
References active_, data_, modified_, pixel_data_, surface_, and vector().
Referenced by yaze::editor::Tile16Editor::CommitChangesToOverworld(), yaze::gfx::anonymous_namespace{tilemap.cc}::ComposeAndPlaceTilePart(), yaze::zelda3::ObjectDrawer::DrawDoorIndicator(), yaze::editor::Tile16Editor::DrawToCurrentTile16(), yaze::editor::Tile16Editor::FillTile16WithTile8(), yaze::editor::Tile16Editor::FlipTile16Horizontal(), yaze::editor::Tile16Editor::FlipTile16Vertical(), yaze::editor::OverworldEditor::RenderUpdatedMapBitmap(), yaze::editor::Tile16Editor::RotateTile16(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), yaze::editor::Tile16Editor::UpdateOverworldTilemap(), yaze::editor::OverworldEditor::UpdateScratchBitmapTile(), and WriteToPixel().

Write a palette index to a pixel at the given x,y coordinates.
| x | X coordinate (0 to width-1) |
| y | Y coordinate (0 to height-1) |
| value | Palette index (0-255) |
Definition at line 262 of file bitmap.h.
References height_, vector(), width_, and WriteToPixel().

Get the palette index at the given x,y coordinates.
| x | X coordinate (0 to width-1) |
| y | Y coordinate (0 to height-1) |
Definition at line 274 of file bitmap.h.
References data_, height_, vector(), and width_.
Referenced by yaze::editor::PixelEditorPanel::DrawPixelInfoTooltip().

Write a color to a pixel at the given position.
Definition at line 630 of file bitmap.cc.
References active_, yaze::gfx::ConvertRgbToSnes(), data_, yaze::platform::MapRGB(), modified_, pixel_data_, surface_, and vector().
Referenced by yaze::gui::Canvas::DrawTileOnBitmap().

Set a pixel at the given x,y coordinates with SNES color.
Set a pixel at the given coordinates with SNES color.
| x | X coordinate (0 to width-1) |
| y | Y coordinate (0 to height-1) |
| color | SNES color (15-bit RGB format) |
| x | X coordinate (0 to width-1) |
| y | Y coordinate (0 to height-1) |
| color | SNES color (15-bit RGB format) |
Performance Notes:
Optimizations Applied:
Definition at line 724 of file bitmap.cc.
References yaze::gfx::Bitmap::DirtyRegion::AddPoint(), data_, dirty_region_, FindColorIndex(), height_, modified_, pixel_data_, surface_, vector(), and width_.
Referenced by yaze::cli::Tile16ProposalGenerator::GenerateDiff(), yaze::zelda3::DungeonObjectEditor::RenderLayerVisualization(), and yaze::zelda3::DungeonObjectEditor::RenderSelectionHighlight().

Resize the bitmap to new dimensions (preserves existing data)
| new_width | New width in pixels |
| new_height | New height in pixels |
Definition at line 752 of file bitmap.cc.
References active_, yaze::gfx::Arena::AllocateSurface(), data_, depth_, yaze::gfx::Arena::Get(), yaze::gfx::GetSnesPixelFormat(), height_, yaze::gfx::kIndexed, modified_, pixel_data_, surface_, vector(), and width_.

| void yaze::gfx::Bitmap::InvalidatePaletteCache | ( | ) |
Invalidate the palette lookup cache (call when palette changes)
Performance Notes:
Definition at line 823 of file bitmap.cc.
References color_to_index_cache_, HashColor(), palette_, yaze::gfx::SnesPalette::size(), and vector().
Referenced by ApplyStoredPalette(), and SetPaletteWithTransparent().

Find color index in palette using optimized hash map lookup.
| color | SNES color to find index for |
| color | SNES color to find index for |
Performance Notes:
Definition at line 844 of file bitmap.cc.
References color_to_index_cache_, HashColor(), yaze::gfx::SnesColor::rgb(), and vector().
Referenced by SetPixel().

| bool yaze::gfx::Bitmap::ValidateDataSurfaceSync | ( | ) |
Validate that bitmap data and surface pixels are synchronized.
Definition at line 872 of file bitmap.cc.
References data_, surface_, and vector().

| void yaze::gfx::Bitmap::Get8x8Tile | ( | int | tile_index, |
| int | x, | ||
| int | y, | ||
| std::vector< uint8_t > & | tile_data, | ||
| int & | tile_data_offset ) |
Extract an 8x8 tile from the bitmap (SNES standard tile size)
| tile_index | Index of the tile in the tilesheet |
| x | X offset within the tile (0-7) |
| y | Y offset within the tile (0-7) |
| tile_data | Output buffer for tile pixel data (64 bytes for 8x8) |
| tile_data_offset | Current offset in tile_data buffer |
Definition at line 674 of file bitmap.cc.
References data_, height_, vector(), and width_.

| void yaze::gfx::Bitmap::Get16x16Tile | ( | int | tile_x, |
| int | tile_y, | ||
| std::vector< uint8_t > & | tile_data, | ||
| int & | tile_data_offset ) |
Extract a 16x16 tile from the bitmap (SNES metatile size)
| tile_x | X coordinate of tile in tilesheet |
| tile_y | Y coordinate of tile in tilesheet |
| tile_data | Output buffer for tile pixel data (256 bytes for 16x16) |
| tile_data_offset | Current offset in tile_data buffer |
Definition at line 690 of file bitmap.cc.
References data_, vector(), and width_.
Referenced by yaze::editor::ScreenEditor::DrawDungeonMapScreen(), and yaze::gfx::UpdateTile16().

|
inline |
Definition at line 368 of file bitmap.h.
References palette_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), ApplyPaletteByMetadata(), yaze::gui::PaletteEditorWidget::ApplyROMPalette(), Bitmap(), yaze::editor::Tile16Editor::CopyTile16ToClipboard(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::PixelEditorPanel::DrawPixelInfoTooltip(), yaze::editor::Tile16Editor::Initialize(), yaze::editor::Tile16Editor::PasteTile16FromClipboard(), yaze::gui::CanvasContextMenu::RenderPaletteOperationsMenu(), yaze::gfx::RenderTile(), yaze::gfx::RenderTile16(), yaze::gfx::RenderTilesBatch(), yaze::editor::Tile16Editor::SaveTile16ToScratchSpace(), yaze::editor::Tile16Editor::SaveUndoState(), SetPalette(), SetPalette(), SetPaletteWithTransparent(), yaze::gui::Canvas::ShowBppAnalysis(), yaze::gui::Canvas::ShowBppConversionDialog(), yaze::gui::Canvas::ShowBppFormatSelector(), and yaze::editor::Tile16Editor::Undo().
|
inline |
Definition at line 369 of file bitmap.h.
References palette_.
Referenced by yaze::gui::Canvas::DrawContextMenu(), yaze::editor::MessageEditor::Initialize(), yaze::gui::CanvasContextMenu::RenderPaletteOperationsMenu(), and yaze::gui::Canvas::ShowPaletteEditor().
|
inline |
Definition at line 370 of file bitmap.h.
References metadata_.
Referenced by yaze::zelda3::OverworldMapScreen::Create(), yaze::zelda3::TitleScreen::Create(), and yaze::gui::CanvasContextMenu::RenderPaletteOperationsMenu().
|
inline |
|
inline |
Definition at line 373 of file bitmap.h.
References width_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmap(), yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), Bitmap(), Bitmap(), yaze::gui::BppComparisonTool::CalculateMetrics(), yaze::editor::Tile16Editor::CommitChangesToOverworld(), yaze::gfx::anonymous_namespace{tilemap.cc}::ComposeAndPlaceTilePart(), yaze::gfx::ComposeTile16(), yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::gui::Canvas::ConvertBitmapFormat(), Create(), Create(), Create(), yaze::gfx::BackgroundBuffer::DrawBackground(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::DrawBitmap(), yaze::gui::Canvas::DrawBitmapGroup(), yaze::gui::DrawBitmapPreview(), yaze::gui::DrawBitmapViewer(), yaze::zelda3::ObjectDrawer::DrawDoorIndicator(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::gfx::BackgroundBuffer::DrawFloor(), yaze::editor::PixelEditorPanel::DrawPixelInfoTooltip(), yaze::editor::SheetBrowserPanel::DrawSheetThumbnail(), yaze::editor::SpriteDrawer::DrawTile8x8(), yaze::gui::DrawTilemapPainter(), yaze::gui::CanvasInteractionHandler::DrawTilemapPainter(), yaze::gui::Canvas::DrawTileOnBitmap(), yaze::zelda3::ObjectDrawer::DrawTileToBitmap(), yaze::gfx::BackgroundBuffer::EnsureBitmapInitialized(), yaze::gui::BppComparisonTool::GenerateComparisons(), yaze::gui::Canvas::GetCurrentBppFormat(), yaze::gfx::GetTilemapData(), yaze::editor::Tile16Editor::Initialize(), yaze::editor::Tile16Editor::LoadTile8(), yaze::gfx::ModifyTile16(), yaze::gfx::AtlasRenderer::PackBitmap(), yaze::gfx::TextureAtlas::PackBitmap(), yaze::gui::CanvasModals::RenderAdvancedPropertiesModal(), yaze::gui::BppFormatUI::RenderAnalysisPanel(), yaze::gui::RenderBitmapGroup(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::CanvasContextMenu::RenderBitmapOperationsMenu(), yaze::gui::BppFormatUI::RenderConversionPreview(), yaze::gui::BppFormatUI::RenderFormatSelector(), yaze::zelda3::DungeonObjectEditor::RenderLayerVisualization(), yaze::gui::RenderPreviewPanel(), yaze::gui::CanvasModals::RenderScalingControlsModal(), yaze::zelda3::DungeonObjectEditor::RenderSelectionHighlight(), yaze::gfx::RenderTile16(), yaze::zelda3::PaletteDebugger::SamplePixelAt(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::gui::Canvas::SetZoomToFit(), yaze::gui::Canvas::ShowAdvancedCanvasProperties(), yaze::gui::PaletteEditorWidget::ShowColorAnalysis(), yaze::gui::Canvas::ShowScalingControls(), yaze::gui::TableCanvasPipeline(), yaze::gui::DungeonObjectEmulatorPreview::TriggerStaticRender(), yaze::gfx::AtlasRenderer::UpdateBitmap(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::editor::Tile16Editor::UpdateOverworldTilemap(), yaze::gui::BppConversionDialog::UpdatePreview(), yaze::editor::OverworldEditor::UpdateScratchBitmapTile(), yaze::gfx::UpdateTile16(), and yaze::editor::Tile16Editor::UpdateTile16Edit().
|
inline |
Definition at line 374 of file bitmap.h.
References height_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmap(), yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), Bitmap(), Bitmap(), yaze::gui::BppComparisonTool::CalculateMetrics(), yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::gui::Canvas::ConvertBitmapFormat(), Create(), Create(), Create(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::DrawBitmap(), yaze::gui::Canvas::DrawBitmapGroup(), yaze::gui::DrawBitmapPreview(), yaze::gui::DrawBitmapViewer(), yaze::zelda3::ObjectDrawer::DrawDoorIndicator(), yaze::gfx::BackgroundBuffer::DrawFloor(), yaze::editor::PixelEditorPanel::DrawPixelInfoTooltip(), yaze::editor::SheetBrowserPanel::DrawSheetThumbnail(), yaze::editor::SpriteDrawer::DrawTile8x8(), yaze::gui::DrawTilemapPainter(), yaze::gui::CanvasInteractionHandler::DrawTilemapPainter(), yaze::zelda3::ObjectDrawer::DrawTileToBitmap(), yaze::gui::BppComparisonTool::GenerateComparisons(), yaze::gui::Canvas::GetCurrentBppFormat(), yaze::gfx::GetTilemapData(), yaze::editor::Tile16Editor::Initialize(), yaze::editor::Tile16Editor::LoadTile8(), yaze::gfx::AtlasRenderer::PackBitmap(), yaze::gfx::TextureAtlas::PackBitmap(), yaze::gui::CanvasModals::RenderAdvancedPropertiesModal(), yaze::gui::BppFormatUI::RenderAnalysisPanel(), yaze::gui::RenderBitmapGroup(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::CanvasContextMenu::RenderBitmapOperationsMenu(), yaze::gui::BppFormatUI::RenderConversionPreview(), yaze::gui::BppFormatUI::RenderFormatSelector(), yaze::zelda3::DungeonObjectEditor::RenderLayerVisualization(), yaze::gui::RenderPreviewPanel(), yaze::gui::CanvasModals::RenderScalingControlsModal(), yaze::zelda3::DungeonObjectEditor::RenderSelectionHighlight(), yaze::gfx::RenderTile16(), yaze::zelda3::PaletteDebugger::SamplePixelAt(), yaze::gui::Canvas::SetZoomToFit(), yaze::gui::Canvas::ShowAdvancedCanvasProperties(), yaze::gui::PaletteEditorWidget::ShowColorAnalysis(), yaze::gui::Canvas::ShowScalingControls(), yaze::gui::TableCanvasPipeline(), yaze::gfx::AtlasRenderer::UpdateBitmap(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::gui::BppConversionDialog::UpdatePreview(), and yaze::editor::OverworldEditor::UpdateScratchBitmapTile().
|
inline |
Definition at line 375 of file bitmap.h.
References depth_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), Bitmap(), Bitmap(), Create(), Create(), Create(), yaze::editor::SheetBrowserPanel::DrawSheetThumbnail(), yaze::gui::BppComparisonTool::GenerateComparisons(), yaze::editor::Tile16Editor::Initialize(), yaze::gui::BppFormatUI::RenderConversionPreview(), and yaze::gui::BppConversionDialog::UpdatePreview().
|
inline |
Definition at line 376 of file bitmap.h.
References data_.
Referenced by yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), yaze::editor::Tile16Editor::CommitChangesToOverworld(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::Tile16Editor::DrawToCurrentTile16(), yaze::editor::Tile16Editor::FillTile16WithTile8(), yaze::editor::Tile16Editor::FlipTile16Horizontal(), yaze::editor::Tile16Editor::FlipTile16Vertical(), yaze::editor::Tile16Editor::IsTile16Valid(), yaze::editor::Tile16Editor::LoadTile8(), yaze::editor::OverworldEditor::RenderUpdatedMapBitmap(), yaze::editor::Tile16Editor::RotateTile16(), yaze::zelda3::PaletteDebugger::SamplePixelAt(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), yaze::editor::Tile16Editor::UpdateOverworldTilemap(), yaze::editor::Tile16Editor::UpdateTile16Edit(), and yaze::editor::Tile16Editor::ValidateTile16Data().
Definition at line 377 of file bitmap.h.
References data_.
Referenced by yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), Bitmap(), Bitmap(), yaze::editor::Tile16Editor::CommitChangesToOverworld(), Create(), Create(), Create(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::Tile16Editor::DrawToCurrentTile16(), yaze::editor::Tile16Editor::FlipTile16Horizontal(), yaze::editor::Tile16Editor::FlipTile16Vertical(), yaze::editor::Tile16Editor::LoadTile8(), yaze::editor::Tile16Editor::RotateTile16(), yaze::zelda3::PaletteDebugger::SamplePixelAt(), set_data(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), and yaze::editor::Tile16Editor::UpdateOverworldTilemap().
|
inline |
Definition at line 378 of file bitmap.h.
References data_.
Referenced by yaze::zelda3::TitleScreen::BuildTileset(), yaze::editor::SpriteDrawer::ClearBitmap(), yaze::editor::OverworldEditor::ClearScratchSpace(), yaze::editor::Tile16Editor::ClearTile16(), yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::gfx::BackgroundBuffer::DrawBackground(), yaze::editor::SpriteDrawer::DrawTile8x8(), yaze::zelda3::ObjectDrawer::DrawTileToBitmap(), yaze::zelda3::TitleScreen::RenderBG1Layer(), yaze::zelda3::TitleScreen::RenderBG2Layer(), yaze::zelda3::TitleScreen::RenderCompositeLayer(), yaze::zelda3::OverworldMapScreen::RenderMapLayer(), yaze::gui::DungeonObjectEmulatorPreview::TriggerStaticRender(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), and yaze::editor::Tile16Editor::UpdateTile16Edit().
|
inline |
Definition at line 379 of file bitmap.h.
References surface_.
Referenced by yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::gfx::CreateTilemap(), yaze::gfx::BackgroundBuffer::DrawBackground(), yaze::gui::DrawBitmap(), yaze::gui::DrawBitmapPreview(), yaze::editor::MessageEditor::DrawMessagePreview(), yaze::gfx::BackgroundBuffer::EnsureBitmapInitialized(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::gui::CanvasContextMenu::RenderBitmapOperationsMenu(), yaze::gui::RenderPreviewPanel(), yaze::zelda3::Room::RenderRoomGraphics(), yaze::gfx::RenderTilesBatch(), yaze::zelda3::PaletteDebugger::SamplePixelAt(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::gfx::SDL2Renderer::UpdateTexture(), and yaze::gfx::UpdateTilemap().
|
inline |
Definition at line 380 of file bitmap.h.
References texture_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmap(), yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::gui::DrawBitmap(), yaze::gui::Canvas::DrawBitmapGroup(), yaze::gui::DrawBitmapPreview(), yaze::gui::DrawBitmapViewer(), yaze::gui::DrawTilemapPainter(), yaze::gui::CanvasInteractionHandler::DrawTilemapPainter(), yaze::gui::Canvas::DrawTilePainter(), yaze::gui::CanvasInteractionHandler::DrawTilePainter(), yaze::gui::HandleTilePaintWithPreview(), yaze::editor::OverworldEditor::RefreshTile16Blockset(), yaze::gui::RenderBitmapGroup(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::BppComparisonTool::RenderComparisonGrid(), yaze::gui::BppFormatUI::RenderConversionPreview(), yaze::gui::BppConversionDialog::RenderPreview(), yaze::gui::RenderPreviewPanel(), yaze::zelda3::Room::RenderRoomGraphics(), yaze::gfx::RenderTilesBatch(), set_texture(), yaze::gfx::AtlasRenderer::UpdateBitmap(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::gfx::UpdateTile16(), yaze::editor::Tile16Editor::UpdateTile16Edit(), and yaze::gfx::UpdateTilemap().
|
inline |
Definition at line 381 of file bitmap.h.
References data_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmap(), yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), ApplyStoredPalette(), Bitmap(), yaze::gui::Canvas::ConvertBitmapFormat(), Create(), yaze::editor::OverworldEditor::DrawOverworldEdits(), FindColorIndex(), yaze::gui::BppComparisonTool::GenerateComparisons(), Get16x16Tile(), Get8x8Tile(), yaze::gui::Canvas::GetCurrentBppFormat(), GetPixel(), yaze::gfx::GetTilemapData(), HashColor(), yaze::editor::Tile16Editor::Initialize(), InvalidatePaletteCache(), operator=(), yaze::editor::Tile16Editor::PasteTile16FromClipboard(), yaze::editor::Tile16Editor::PreviewPaletteChange(), Reformat(), yaze::gui::BppFormatUI::RenderAnalysisPanel(), yaze::zelda3::TitleScreen::RenderBG1Layer(), yaze::zelda3::TitleScreen::RenderBG2Layer(), yaze::zelda3::TitleScreen::RenderCompositeLayer(), yaze::gui::BppFormatUI::RenderConversionPreview(), yaze::gui::BppFormatUI::RenderFormatSelector(), yaze::zelda3::OverworldMapScreen::RenderMapLayer(), yaze::gfx::RenderTile(), yaze::gfx::RenderTile16(), Resize(), yaze::editor::Tile16Editor::SaveTile16ToScratchSpace(), yaze::editor::Tile16Editor::SaveUndoState(), set_data(), SetPalette(), SetPaletteWithTransparent(), SetPixel(), yaze::gui::PaletteEditorWidget::ShowColorAnalysis(), yaze::editor::Tile16Editor::Undo(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::editor::Tile16Editor::UpdateLivePreview(), yaze::gui::BppConversionDialog::UpdatePreview(), UpdateSurfacePixels(), ValidateDataSurfaceSync(), WriteColor(), WriteToPixel(), and WriteToPixel().
|
inline |
Definition at line 383 of file bitmap.h.
References modified_.
Referenced by yaze::editor::Tile16Editor::CommitChangesToBlockset(), and set_modified().
|
inline |
Definition at line 384 of file bitmap.h.
References active_.
Referenced by yaze::gfx::AtlasRenderer::AddBitmap(), yaze::gfx::AtlasRenderer::AddBitmapWithBppOptimization(), yaze::editor::Tile16Editor::AnalyzeTile8SourceData(), yaze::editor::Tile16Editor::ApplyPaletteToCurrentTile16Bitmap(), yaze::editor::OverworldEditor::CheckForCurrentMap(), yaze::editor::SpriteDrawer::ClearBitmap(), yaze::editor::OverworldEditor::ClearScratchSpace(), yaze::editor::Tile16Editor::ClearTile16(), yaze::editor::Tile16Editor::CommitChangesToOverworld(), yaze::gfx::CreateTilemap(), yaze::gfx::BackgroundBuffer::DrawBackground(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmapGroup(), yaze::gfx::BackgroundBuffer::DrawFloor(), yaze::editor::MessageEditor::DrawMessagePreview(), yaze::editor::SpriteDrawer::DrawOamTile(), yaze::editor::OverworldEditor::DrawOverworldEdits(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SheetBrowserPanel::DrawSheetThumbnail(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile16Selector(), yaze::gui::DrawTilemapPainter(), yaze::gui::CanvasInteractionHandler::DrawTilemapPainter(), yaze::gui::Canvas::DrawTilePainter(), yaze::gui::CanvasInteractionHandler::DrawTilePainter(), yaze::zelda3::ObjectDrawer::DrawTileToBitmap(), yaze::editor::Tile16Editor::DrawToCurrentTile16(), yaze::gfx::BackgroundBuffer::EnsureBitmapInitialized(), yaze::editor::Tile16Editor::FlipTile16Horizontal(), yaze::editor::Tile16Editor::FlipTile16Vertical(), yaze::gfx::GetTilemapData(), yaze::gui::HandleTilemapPaint(), yaze::gui::HandleTilePaintWithPreview(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::editor::Tile16Editor::LoadTile8(), yaze::gfx::TextureAtlas::PackBitmap(), yaze::editor::Tile16Editor::PreviewPaletteChange(), yaze::editor::Tile16Editor::RefreshAllPalettes(), yaze::editor::OverworldEditor::RefreshMapPalette(), yaze::editor::OverworldEditor::RefreshTile16Blockset(), yaze::gui::TileSelectorWidget::Render(), yaze::gui::RenderBitmapGroup(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gui::RenderBitmapOnCanvas(), yaze::gfx::RenderTile(), yaze::gfx::RenderTile16(), yaze::gfx::RenderTilesBatch(), yaze::editor::OverworldEditor::RenderUpdatedMapBitmap(), yaze::editor::SpriteEditor::RenderVanillaSprite(), yaze::editor::SpriteEditor::RenderZSpriteFrame(), yaze::editor::Tile16Editor::RotateTile16(), yaze::editor::Tile16Editor::SaveTile16ToROM(), yaze::editor::Tile16Editor::SaveUndoState(), yaze::editor::Tile16Editor::set_palette(), yaze::editor::Tile16Editor::SetCurrentTile(), yaze::gui::Canvas::SetZoomToFit(), yaze::gui::PaletteEditorWidget::ShowColorAnalysis(), yaze::gui::TableCanvasPipeline(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::editor::Tile16Editor::UpdateLivePreview(), yaze::editor::Tile16Editor::UpdateOverworldTilemap(), yaze::gfx::UpdateTile16(), yaze::editor::Tile16Editor::UpdateTile16Edit(), and yaze::gfx::UpdateTilemap().
|
inline |
Definition at line 385 of file bitmap.h.
References generation_.
Referenced by yaze::gfx::Arena::QueueTextureCommand().
Definition at line 386 of file bitmap.h.
References active_.
Referenced by yaze::zelda3::OverworldMapScreen::Create(), and yaze::zelda3::TitleScreen::LoadTitleScreen().
Definition at line 851 of file bitmap.cc.
References data(), data_, modified_, pixel_data_, surface_, and vector().
Referenced by yaze::gui::Canvas::ConvertBitmapFormat(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::MessageEditor::DrawMessagePreview(), yaze::gfx::UpdateTile16(), yaze::editor::Tile16Editor::UpdateTile16Edit(), and yaze::gfx::UpdateTilemap().

Definition at line 388 of file bitmap.h.
References modified(), and modified_.
Referenced by yaze::gui::CanvasUtils::ApplyPaletteGroup(), yaze::editor::Tile16Editor::ApplyPaletteToCurrentTile16Bitmap(), yaze::editor::OverworldEditor::ClearScratchSpace(), yaze::editor::Tile16Editor::ClearTile16(), yaze::editor::Tile16Editor::CommitChangesToOverworld(), yaze::zelda3::RoomLayerManager::CompositeToOutput(), yaze::zelda3::ObjectDrawer::DrawTileToBitmap(), yaze::editor::Tile16Editor::DrawToCurrentTile16(), yaze::editor::Tile16Editor::FillTile16WithTile8(), yaze::editor::Tile16Editor::RefreshAllPalettes(), yaze::editor::OverworldEditor::RefreshMapPalette(), yaze::editor::OverworldEditor::RefreshTile16Blockset(), yaze::editor::Tile16Editor::RefreshTile16Blockset(), yaze::editor::OverworldEditor::RenderUpdatedMapBitmap(), yaze::editor::Tile16Editor::UpdateBlocksetBitmap(), yaze::editor::OverworldEditor::UpdateBlocksetWithPendingTileChanges(), yaze::editor::Tile16Editor::UpdateOverworldTilemap(), and yaze::editor::OverworldEditor::UpdateScratchBitmapTile().

|
inline |
Hash a color for cache lookup.
| color | ImVec4 color to hash |
| color | ImVec4 color to hash |
Performance Notes:
Definition at line 802 of file bitmap.cc.
References vector().
Referenced by FindColorIndex(), and InvalidatePaletteCache().

|
private |
Definition at line 392 of file bitmap.h.
Referenced by Bitmap(), Create(), Get16x16Tile(), Get8x8Tile(), GetPixel(), operator=(), Reformat(), Resize(), SetPixel(), width(), and WriteToPixel().
|
private |
Definition at line 393 of file bitmap.h.
Referenced by Bitmap(), Create(), Get8x8Tile(), GetPixel(), height(), operator=(), Reformat(), Resize(), SetPixel(), and WriteToPixel().
|
private |
Definition at line 394 of file bitmap.h.
Referenced by Bitmap(), Create(), depth(), operator=(), Reformat(), and Resize().
Definition at line 396 of file bitmap.h.
Referenced by Bitmap(), Create(), is_active(), operator=(), Reformat(), Resize(), set_active(), WriteColor(), and WriteToPixel().
Definition at line 397 of file bitmap.h.
Referenced by Fill(), modified(), operator=(), Resize(), set_data(), set_modified(), SetPalette(), SetPixel(), WriteColor(), and WriteToPixel().
|
private |
Definition at line 401 of file bitmap.h.
Referenced by Create(), generation(), and operator=().
|
inlinestaticprivate |
Definition at line 402 of file bitmap.h.
Referenced by Create(), and operator=().
Definition at line 408 of file bitmap.h.
Referenced by Bitmap(), Create(), operator=(), Reformat(), Resize(), set_data(), SetPixel(), WriteColor(), and WriteToPixel().
|
private |
Internal SNES palette storage (may be empty!)
This stores the palette in SNES 15-bit RGB format for serialization and palette editing. It is populated by SetPalette(SnesPalette) but NOT by SetPalette(vector<SDL_Color>).
Definition at line 424 of file bitmap.h.
Referenced by ApplyStoredPalette(), Bitmap(), Create(), InvalidatePaletteCache(), mutable_palette(), operator=(), palette(), Reformat(), SetPalette(), and SetPaletteWithTransparent().
|
private |
Definition at line 427 of file bitmap.h.
Referenced by ApplyPaletteByMetadata(), metadata(), and metadata().
|
private |
Definition at line 430 of file bitmap.h.
Referenced by at(), Bitmap(), Create(), Create(), data(), Fill(), Get16x16Tile(), Get8x8Tile(), GetPixel(), mutable_data(), operator=(), Reformat(), Resize(), set_data(), SetPixel(), size(), UpdateSurfacePixels(), ValidateDataSurfaceSync(), vector(), WriteColor(), and WriteToPixel().
|
private |
SDL surface for rendering (contains the authoritative palette)
For 8-bit indexed bitmaps, the surface contains:
The SDL palette (surface_->format->palette) is the authoritative source for color data when rendering. When SDL converts indexed pixels to RGBA for texture creation, it uses this palette.
Definition at line 455 of file bitmap.h.
Referenced by ApplyStoredPalette(), Bitmap(), Create(), operator=(), Reformat(), Resize(), set_data(), SetPalette(), SetPaletteWithTransparent(), SetPixel(), surface(), UpdateSurfacePixels(), ValidateDataSurfaceSync(), WriteColor(), and WriteToPixel().
|
private |
Definition at line 458 of file bitmap.h.
Referenced by operator=(), set_texture(), and texture().
Definition at line 461 of file bitmap.h.
Referenced by FindColorIndex(), and InvalidatePaletteCache().
|
private |
Referenced by SetPixel().