TitleScreen manages the title screen graphics and tilemap data. More...
#include <title_screen.h>

Public Member Functions | |
| absl::Status | Create (Rom *rom) |
| Initialize and load title screen data from ROM. | |
| auto & | bg1_buffer () |
| auto & | bg2_buffer () |
| auto & | oam_buffer () |
| auto & | mutable_bg1_buffer () |
| auto & | mutable_bg2_buffer () |
| auto & | bg1_bitmap () |
| auto & | bg2_bitmap () |
| auto & | oam_bitmap () |
| auto & | tiles8_bitmap () |
| auto & | composite_bitmap () |
| auto & | blockset () |
| auto & | palette () |
| absl::Status | Save (Rom *rom) |
| absl::Status | RenderBG1Layer () |
| Render BG1 tilemap into bitmap pixels Converts tile IDs from tiles_bg1_buffer_ into pixel data. | |
| absl::Status | RenderBG2Layer () |
| Render BG2 tilemap into bitmap pixels Converts tile IDs from tiles_bg2_buffer_ into pixel data. | |
| absl::Status | RenderCompositeLayer (bool show_bg1, bool show_bg2) |
| Render composite layer with BG1 on top of BG2 with transparency. | |
Private Member Functions | |
| absl::Status | BuildTileset (Rom *rom) |
| Build the tile16 blockset from ROM graphics. | |
| absl::Status | LoadTitleScreen (Rom *rom) |
| Load title screen tilemap data from ROM. | |
Private Attributes | |
| int | pal_selected_ = 2 |
| std::array< uint16_t, 0x1000 > | tiles_bg1_buffer_ |
| std::array< uint16_t, 0x1000 > | tiles_bg2_buffer_ |
| gfx::OamTile | oam_data_ [10] |
| gfx::Bitmap | tiles_bg1_bitmap_ |
| gfx::Bitmap | tiles_bg2_bitmap_ |
| gfx::Bitmap | oam_bg_bitmap_ |
| gfx::Bitmap | tiles8_bitmap_ |
| gfx::Bitmap | title_composite_bitmap_ |
| gfx::Tilemap | tile16_blockset_ |
| gfx::SnesPalette | palette_ |
TitleScreen manages the title screen graphics and tilemap data.
The title screen consists of three layers:
Each layer is stored as a 32x32 tilemap (0x400 tiles = 0x1000 bytes as words)
Definition at line 24 of file title_screen.h.
| absl::Status yaze::zelda3::TitleScreen::Create | ( | Rom * | rom | ) |
Initialize and load title screen data from ROM.
| rom | ROM instance to read data from |
Definition at line 13 of file title_screen.cc.
References yaze::gfx::SnesPalette::AddColor(), BuildTileset(), yaze::gfx::Bitmap::Create(), yaze::Rom::is_loaded(), LoadTitleScreen(), LOG_INFO, yaze::gfx::Bitmap::metadata(), oam_bg_bitmap_, palette_, yaze::gfx::Bitmap::BitmapMetadata::palette_colors, yaze::gfx::Bitmap::BitmapMetadata::palette_format, yaze::Rom::palette_group(), RETURN_IF_ERROR, yaze::gfx::SnesPalette::size(), yaze::gfx::Bitmap::BitmapMetadata::source_bpp, yaze::gfx::Bitmap::BitmapMetadata::source_type, tiles8_bitmap_, tiles_bg1_bitmap_, tiles_bg1_buffer_, tiles_bg2_bitmap_, tiles_bg2_buffer_, and title_composite_bitmap_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenEditor().
|
inline |
Definition at line 33 of file title_screen.h.
References tiles_bg1_buffer_.
|
inline |
Definition at line 34 of file title_screen.h.
References tiles_bg2_buffer_.
|
inline |
Definition at line 35 of file title_screen.h.
References oam_data_.
|
inline |
Definition at line 38 of file title_screen.h.
References tiles_bg1_buffer_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), and yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas().
|
inline |
Definition at line 39 of file title_screen.h.
References tiles_bg2_buffer_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas().
|
inline |
Definition at line 42 of file title_screen.h.
References tiles_bg1_bitmap_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), and yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas().
|
inline |
Definition at line 43 of file title_screen.h.
References tiles_bg2_bitmap_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas().
|
inline |
Definition at line 44 of file title_screen.h.
References oam_bg_bitmap_.
|
inline |
Definition at line 45 of file title_screen.h.
References tiles8_bitmap_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBlocksetSelector().
|
inline |
Definition at line 46 of file title_screen.h.
References title_composite_bitmap_.
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), and yaze::editor::ScreenEditor::DrawTitleScreenEditor().
|
inline |
Definition at line 47 of file title_screen.h.
References tile16_blockset_.
|
inline |
Definition at line 50 of file title_screen.h.
References palette_.
Referenced by RenderBG1Layer(), and RenderBG2Layer().
| absl::Status yaze::zelda3::TitleScreen::Save | ( | Rom * | rom | ) |
Definition at line 590 of file title_screen.cc.
References ASSIGN_OR_RETURN, yaze::Rom::is_loaded(), yaze::Rom::ReadByte(), RETURN_IF_ERROR, yaze::SnesToPc(), tiles_bg1_buffer_, tiles_bg2_buffer_, and yaze::Rom::WriteByte().
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenEditor().

| absl::Status yaze::zelda3::TitleScreen::RenderBG1Layer | ( | ) |
Render BG1 tilemap into bitmap pixels Converts tile IDs from tiles_bg1_buffer_ into pixel data.
Definition at line 456 of file title_screen.cc.
References yaze::gfx::Arena::Get(), LOG_WARN, yaze::gfx::Bitmap::mutable_data(), palette(), yaze::gfx::Arena::QueueTextureCommand(), tiles8_bitmap_, tiles_bg1_bitmap_, tiles_bg1_buffer_, yaze::gfx::Arena::UPDATE, yaze::gfx::Bitmap::UpdateSurfacePixels(), and yaze::gfx::Bitmap::vector().
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), and LoadTitleScreen().
| absl::Status yaze::zelda3::TitleScreen::RenderBG2Layer | ( | ) |
Render BG2 tilemap into bitmap pixels Converts tile IDs from tiles_bg2_buffer_ into pixel data.
Definition at line 526 of file title_screen.cc.
References yaze::gfx::Arena::Get(), yaze::gfx::Bitmap::mutable_data(), palette(), yaze::gfx::Arena::QueueTextureCommand(), tiles8_bitmap_, tiles_bg2_bitmap_, tiles_bg2_buffer_, yaze::gfx::Arena::UPDATE, yaze::gfx::Bitmap::UpdateSurfacePixels(), and yaze::gfx::Bitmap::vector().
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas(), and LoadTitleScreen().
| absl::Status yaze::zelda3::TitleScreen::RenderCompositeLayer | ( | bool | show_bg1, |
| bool | show_bg2 | ||
| ) |
Render composite layer with BG1 on top of BG2 with transparency.
| show_bg1 | Whether to include BG1 layer |
| show_bg2 | Whether to include BG2 layer |
Definition at line 680 of file title_screen.cc.
References yaze::gfx::Arena::Get(), yaze::gfx::Bitmap::mutable_data(), yaze::gfx::Arena::QueueTextureCommand(), tiles_bg1_bitmap_, tiles_bg2_bitmap_, title_composite_bitmap_, yaze::gfx::Arena::UPDATE, yaze::gfx::Bitmap::UpdateSurfacePixels(), and yaze::gfx::Bitmap::vector().
Referenced by yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), yaze::editor::ScreenEditor::DrawTitleScreenEditor(), and LoadTitleScreen().
|
private |
Build the tile16 blockset from ROM graphics.
| rom | ROM instance to read graphics from |
Definition at line 170 of file title_screen.cc.
References ASSIGN_OR_RETURN, yaze::gfx::Arena::CREATE, yaze::gfx::Arena::Get(), yaze::Rom::graphics_buffer(), yaze::zelda3::kGfxGroupsPointer, LOG_ERROR, LOG_INFO, yaze::gfx::Bitmap::mutable_data(), palette_, yaze::gfx::Arena::QueueTextureCommand(), yaze::Rom::ReadByte(), yaze::Rom::ReadWord(), yaze::gfx::Bitmap::SetPalette(), yaze::gfx::SnesPalette::size(), yaze::SnesToPc(), and tiles8_bitmap_.
Referenced by Create().
|
private |
Load title screen tilemap data from ROM.
| rom | ROM instance to read tilemap from |
Definition at line 284 of file title_screen.cc.
References ASSIGN_OR_RETURN, yaze::gfx::Arena::CREATE, yaze::gfx::Arena::Get(), LOG_INFO, oam_bg_bitmap_, pal_selected_, palette_, yaze::gfx::Arena::QueueTextureCommand(), yaze::Rom::ReadByte(), yaze::Rom::ReadWord(), RenderBG1Layer(), RenderBG2Layer(), RenderCompositeLayer(), RETURN_IF_ERROR, yaze::gfx::Bitmap::set_active(), yaze::gfx::Bitmap::SetPalette(), yaze::SnesToPc(), tiles_bg1_bitmap_, tiles_bg1_buffer_, tiles_bg2_bitmap_, tiles_bg2_buffer_, and title_composite_bitmap_.
Referenced by Create().
|
private |
Definition at line 87 of file title_screen.h.
Referenced by LoadTitleScreen().
|
private |
Definition at line 89 of file title_screen.h.
Referenced by bg1_buffer(), Create(), LoadTitleScreen(), mutable_bg1_buffer(), RenderBG1Layer(), and Save().
|
private |
Definition at line 90 of file title_screen.h.
Referenced by bg2_buffer(), Create(), LoadTitleScreen(), mutable_bg2_buffer(), RenderBG2Layer(), and Save().
|
private |
Definition at line 92 of file title_screen.h.
Referenced by oam_buffer().
|
private |
Definition at line 94 of file title_screen.h.
Referenced by bg1_bitmap(), Create(), LoadTitleScreen(), RenderBG1Layer(), and RenderCompositeLayer().
|
private |
Definition at line 95 of file title_screen.h.
Referenced by bg2_bitmap(), Create(), LoadTitleScreen(), RenderBG2Layer(), and RenderCompositeLayer().
|
private |
Definition at line 96 of file title_screen.h.
Referenced by Create(), LoadTitleScreen(), and oam_bitmap().
|
private |
Definition at line 97 of file title_screen.h.
Referenced by BuildTileset(), Create(), RenderBG1Layer(), RenderBG2Layer(), and tiles8_bitmap().
|
private |
Definition at line 98 of file title_screen.h.
Referenced by composite_bitmap(), Create(), LoadTitleScreen(), and RenderCompositeLayer().
|
private |
Definition at line 100 of file title_screen.h.
Referenced by blockset().
|
private |
Definition at line 101 of file title_screen.h.
Referenced by BuildTileset(), Create(), LoadTitleScreen(), and palette().