yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui::DungeonObjectEmulatorPreview Class Reference

#include <dungeon_object_emulator_preview.h>

Classes

struct  ObjectPreset
 

Public Member Functions

 DungeonObjectEmulatorPreview ()
 
 ~DungeonObjectEmulatorPreview ()
 
void Initialize (gfx::IRenderer *renderer, Rom *rom, zelda3::GameData *game_data=nullptr, emu::render::EmulatorRenderService *render_service=nullptr)
 
void Render ()
 
void set_visible (bool visible)
 
bool is_visible () const
 
void SetGameData (zelda3::GameData *game_data)
 

Private Types

enum class  RenderMode { kStatic , kEmulator }
 

Private Member Functions

void RenderControls ()
 
void RenderObjectBrowser ()
 
void RenderStatusPanel ()
 
void TriggerEmulatedRender ()
 
void TriggerStaticRender ()
 
const char * GetObjectName (int id) const
 
int GetObjectType (int id) const
 
void EnsureInitialized ()
 

Private Attributes

gfx::IRendererrenderer_ = nullptr
 
Romrom_ = nullptr
 
zelda3::GameDatagame_data_ = nullptr
 
emu::render::EmulatorRenderServicerender_service_ = nullptr
 
std::unique_ptr< emu::Snessnes_instance_
 
void * object_texture_ = nullptr
 
int object_id_ = 0
 
int room_id_ = 0
 
int object_x_ = 16
 
int object_y_ = 16
 
int object_size_ = 0
 
bool show_window_ = true
 
bool show_browser_ = false
 
int last_cycle_count_ = 0
 
std::string last_error_
 
bool initialized_ = false
 
RenderMode render_mode_ = RenderMode::kStatic
 
std::unique_ptr< zelda3::ObjectDrawerobject_drawer_
 
gfx::BackgroundBuffer preview_bg1_
 
gfx::BackgroundBuffer preview_bg2_
 
gfx::Bitmap preview_bitmap_
 
bool static_render_dirty_ = true
 

Static Private Attributes

static constexpr ObjectPreset kQuickPresets []
 

Detailed Description

Definition at line 27 of file dungeon_object_emulator_preview.h.

Member Enumeration Documentation

◆ RenderMode

Enumerator
kStatic 
kEmulator 

Definition at line 85 of file dungeon_object_emulator_preview.h.

Constructor & Destructor Documentation

◆ DungeonObjectEmulatorPreview()

yaze::gui::DungeonObjectEmulatorPreview::DungeonObjectEmulatorPreview ( )

Definition at line 83 of file dungeon_object_emulator_preview.cc.

◆ ~DungeonObjectEmulatorPreview()

yaze::gui::DungeonObjectEmulatorPreview::~DungeonObjectEmulatorPreview ( )

Definition at line 87 of file dungeon_object_emulator_preview.cc.

Member Function Documentation

◆ Initialize()

void yaze::gui::DungeonObjectEmulatorPreview::Initialize ( gfx::IRenderer * renderer,
Rom * rom,
zelda3::GameData * game_data = nullptr,
emu::render::EmulatorRenderService * render_service = nullptr )

◆ Render()

◆ set_visible()

void yaze::gui::DungeonObjectEmulatorPreview::set_visible ( bool visible)
inline

◆ is_visible()

bool yaze::gui::DungeonObjectEmulatorPreview::is_visible ( ) const
inline

◆ SetGameData()

void yaze::gui::DungeonObjectEmulatorPreview::SetGameData ( zelda3::GameData * game_data)
inline

◆ RenderControls()

◆ RenderObjectBrowser()

void yaze::gui::DungeonObjectEmulatorPreview::RenderObjectBrowser ( )
private

Definition at line 1036 of file dungeon_object_emulator_preview.cc.

References yaze::editor::AgentUI::GetTheme(), kStatic, object_id_, render_mode_, show_browser_, TriggerEmulatedRender(), and TriggerStaticRender().

Referenced by Render().

Here is the call graph for this function:

◆ RenderStatusPanel()

void yaze::gui::DungeonObjectEmulatorPreview::RenderStatusPanel ( )
private

◆ TriggerEmulatedRender()

void yaze::gui::DungeonObjectEmulatorPreview::TriggerEmulatedRender ( )
private

Definition at line 321 of file dungeon_object_emulator_preview.cc.

References yaze::zelda3::Room::blockset, yaze::zelda3::Room::CopyRoomGraphicsToBuffer(), yaze::gfx::IRenderer::CreateTexture(), yaze::Rom::data(), yaze::gfx::PaletteGroupMap::dungeon_main, yaze::zelda3::RoomObject::EncodeObjectToBytes(), EnsureInitialized(), yaze::emu::render::RenderRequest::entity_id, game_data_, yaze::zelda3::Room::get_gfx_buffer(), GetObjectType(), yaze::emu::render::EmulatorRenderService::GetRenderMode(), yaze::Rom::is_loaded(), yaze::emu::render::EmulatorRenderService::IsReady(), yaze::emu::render::kDungeonObject, yaze::emu::render::kEmulated, last_cycle_count_, last_error_, yaze::zelda3::LoadRoomFromRom(), yaze::zelda3::Room::LoadRoomGraphics(), yaze::gfx::IRenderer::LockTexture(), object_id_, object_size_, object_texture_, object_x_, object_y_, yaze::emu::render::RenderRequest::output_height, yaze::emu::render::RenderRequest::output_width, yaze::zelda3::Room::palette, yaze::zelda3::GameData::palette_groups, yaze::emu::render::EmulatorRenderService::Render(), render_service_, renderer_, rom_, yaze::emu::render::RenderRequest::room_id, room_id_, yaze::zelda3::Room::SetGameData(), yaze::emu::render::EmulatorRenderService::SetRenderMode(), yaze::emu::render::RenderRequest::size, yaze::Rom::size(), snes_instance_, yaze::SnesToPc(), yaze::emu::render::RenderRequest::type, yaze::gfx::IRenderer::UnlockTexture(), yaze::emu::render::RenderRequest::x, and yaze::emu::render::RenderRequest::y.

Referenced by RenderControls(), and RenderObjectBrowser().

◆ TriggerStaticRender()

void yaze::gui::DungeonObjectEmulatorPreview::TriggerStaticRender ( )
private

Definition at line 734 of file dungeon_object_emulator_preview.cc.

References yaze::gfx::SnesPalette::AddColor(), yaze::gfx::PaletteGroup::AddPalette(), yaze::gfx::BackgroundBuffer::bitmap(), yaze::zelda3::Room::blockset, yaze::gfx::BackgroundBuffer::ClearBuffer(), yaze::zelda3::Room::CopyRoomGraphicsToBuffer(), yaze::gfx::Bitmap::Create(), yaze::gfx::IRenderer::CreateTexture(), yaze::Rom::data(), yaze::gfx::PaletteGroupMap::dungeon_main, yaze::emu::render::RenderRequest::entity_id, game_data_, yaze::zelda3::Room::get_gfx_buffer(), yaze::Rom::is_loaded(), yaze::emu::render::EmulatorRenderService::IsReady(), yaze::emu::render::kDungeonObject, last_error_, yaze::zelda3::LoadRoomFromRom(), yaze::zelda3::Room::LoadRoomGraphics(), yaze::gfx::IRenderer::LockTexture(), yaze::gfx::Bitmap::mutable_data(), object_drawer_, object_id_, object_size_, object_texture_, object_x_, object_y_, yaze::emu::render::RenderRequest::output_height, yaze::emu::render::RenderRequest::output_width, yaze::zelda3::Room::palette, yaze::zelda3::GameData::palette_groups, preview_bg1_, preview_bg2_, preview_bitmap_, yaze::emu::render::EmulatorRenderService::Render(), render_service_, renderer_, rom_, yaze::emu::render::RenderRequest::room_id, room_id_, yaze::zelda3::Room::SetGameData(), yaze::emu::render::RenderRequest::size, yaze::gfx::SnesPalette::size(), yaze::Rom::size(), yaze::SnesToPc(), static_render_dirty_, yaze::emu::render::RenderRequest::type, yaze::gfx::IRenderer::UnlockTexture(), yaze::gfx::Bitmap::width(), yaze::emu::render::RenderRequest::x, and yaze::emu::render::RenderRequest::y.

Referenced by RenderControls(), and RenderObjectBrowser().

◆ GetObjectName()

const char * yaze::gui::DungeonObjectEmulatorPreview::GetObjectName ( int id) const
private

Definition at line 967 of file dungeon_object_emulator_preview.cc.

Referenced by RenderControls().

◆ GetObjectType()

int yaze::gui::DungeonObjectEmulatorPreview::GetObjectType ( int id) const
private

Definition at line 992 of file dungeon_object_emulator_preview.cc.

Referenced by RenderControls(), and TriggerEmulatedRender().

◆ EnsureInitialized()

void yaze::gui::DungeonObjectEmulatorPreview::EnsureInitialized ( )
private

Member Data Documentation

◆ renderer_

gfx::IRenderer* yaze::gui::DungeonObjectEmulatorPreview::renderer_ = nullptr
private

◆ rom_

Rom* yaze::gui::DungeonObjectEmulatorPreview::rom_ = nullptr
private

◆ game_data_

zelda3::GameData* yaze::gui::DungeonObjectEmulatorPreview::game_data_ = nullptr
private

◆ render_service_

emu::render::EmulatorRenderService* yaze::gui::DungeonObjectEmulatorPreview::render_service_ = nullptr
private

◆ snes_instance_

std::unique_ptr<emu::Snes> yaze::gui::DungeonObjectEmulatorPreview::snes_instance_
private

Definition at line 65 of file dungeon_object_emulator_preview.h.

Referenced by EnsureInitialized(), and TriggerEmulatedRender().

◆ object_texture_

void* yaze::gui::DungeonObjectEmulatorPreview::object_texture_ = nullptr
private

◆ object_id_

int yaze::gui::DungeonObjectEmulatorPreview::object_id_ = 0
private

◆ room_id_

int yaze::gui::DungeonObjectEmulatorPreview::room_id_ = 0
private

◆ object_x_

int yaze::gui::DungeonObjectEmulatorPreview::object_x_ = 16
private

◆ object_y_

int yaze::gui::DungeonObjectEmulatorPreview::object_y_ = 16
private

◆ object_size_

int yaze::gui::DungeonObjectEmulatorPreview::object_size_ = 0
private

◆ show_window_

bool yaze::gui::DungeonObjectEmulatorPreview::show_window_ = true
private

Definition at line 73 of file dungeon_object_emulator_preview.h.

Referenced by is_visible(), Render(), and set_visible().

◆ show_browser_

bool yaze::gui::DungeonObjectEmulatorPreview::show_browser_ = false
private

Definition at line 74 of file dungeon_object_emulator_preview.h.

Referenced by Render(), RenderControls(), and RenderObjectBrowser().

◆ last_cycle_count_

int yaze::gui::DungeonObjectEmulatorPreview::last_cycle_count_ = 0
private

Definition at line 77 of file dungeon_object_emulator_preview.h.

Referenced by RenderStatusPanel(), and TriggerEmulatedRender().

◆ last_error_

std::string yaze::gui::DungeonObjectEmulatorPreview::last_error_
private

◆ initialized_

bool yaze::gui::DungeonObjectEmulatorPreview::initialized_ = false
private

Definition at line 81 of file dungeon_object_emulator_preview.h.

Referenced by EnsureInitialized().

◆ render_mode_

RenderMode yaze::gui::DungeonObjectEmulatorPreview::render_mode_ = RenderMode::kStatic
private

Definition at line 86 of file dungeon_object_emulator_preview.h.

Referenced by RenderControls(), and RenderObjectBrowser().

◆ object_drawer_

std::unique_ptr<zelda3::ObjectDrawer> yaze::gui::DungeonObjectEmulatorPreview::object_drawer_
private

Definition at line 89 of file dungeon_object_emulator_preview.h.

Referenced by TriggerStaticRender().

◆ preview_bg1_

gfx::BackgroundBuffer yaze::gui::DungeonObjectEmulatorPreview::preview_bg1_
private

Definition at line 90 of file dungeon_object_emulator_preview.h.

Referenced by TriggerStaticRender().

◆ preview_bg2_

gfx::BackgroundBuffer yaze::gui::DungeonObjectEmulatorPreview::preview_bg2_
private

Definition at line 91 of file dungeon_object_emulator_preview.h.

Referenced by TriggerStaticRender().

◆ preview_bitmap_

gfx::Bitmap yaze::gui::DungeonObjectEmulatorPreview::preview_bitmap_
private

Definition at line 92 of file dungeon_object_emulator_preview.h.

Referenced by TriggerStaticRender().

◆ static_render_dirty_

bool yaze::gui::DungeonObjectEmulatorPreview::static_render_dirty_ = true
private

Definition at line 93 of file dungeon_object_emulator_preview.h.

Referenced by RenderControls(), and TriggerStaticRender().

◆ kQuickPresets

constexpr ObjectPreset yaze::gui::DungeonObjectEmulatorPreview::kQuickPresets[]
staticconstexprprivate
Initial value:
= {
{0x00, "Ceiling"},
{0x01, "Wall (top, north)"},
{0x60, "Wall (top, west)"},
{0x96, "Ceiling (large)"},
{0xF8, "Chest"},
{0xF0, "Door"},
{0xEE, "Pot"},
{0x80, "Floor 1"},
}

Definition at line 100 of file dungeon_object_emulator_preview.h.

Referenced by RenderControls().


The documentation for this class was generated from the following files: