yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::emu::render::EmulatorRenderService Class Reference

#include <emulator_render_service.h>

Collaboration diagram for yaze::emu::render::EmulatorRenderService:

Public Member Functions

 EmulatorRenderService (Rom *rom, zelda3::GameData *game_data=nullptr)
 
 ~EmulatorRenderService ()
 
 EmulatorRenderService (const EmulatorRenderService &)=delete
 
EmulatorRenderServiceoperator= (const EmulatorRenderService &)=delete
 
absl::Status Initialize ()
 
absl::Status GenerateBaselineStates ()
 
absl::StatusOr< RenderResultRender (const RenderRequest &request)
 
absl::StatusOr< std::vector< RenderResult > > RenderBatch (const std::vector< RenderRequest > &requests)
 
bool IsReady () const
 
void SetRenderMode (RenderMode mode)
 
RenderMode GetRenderMode () const
 
emu::Snessnes ()
 
SaveStateManagerstate_manager ()
 

Private Member Functions

absl::StatusOr< RenderResultRenderDungeonObject (const RenderRequest &req)
 
absl::StatusOr< RenderResultRenderDungeonObjectStatic (const RenderRequest &req)
 
absl::StatusOr< RenderResultRenderSprite (const RenderRequest &req)
 
absl::StatusOr< RenderResultRenderFullRoom (const RenderRequest &req)
 
void InjectRoomContext (int room_id, uint8_t blockset, uint8_t palette)
 
void LoadPaletteIntoCgram (int palette_id)
 
void LoadGraphicsIntoVram (uint8_t blockset)
 
void InitializeTilemapPointers ()
 
void ClearTilemapBuffers ()
 
void MockApuPorts ()
 
absl::StatusOr< int > LookupHandlerAddress (int object_id, int *data_offset)
 
absl::Status ExecuteHandler (int handler_addr, int data_offset, int tilemap_pos)
 
void RenderPpuFrame ()
 
std::vector< uint8_t > ExtractPixelsFromPpu ()
 

Private Attributes

Romrom_ = nullptr
 
zelda3::GameDatagame_data_ = nullptr
 
std::unique_ptr< emu::Snessnes_
 
std::unique_ptr< SaveStateManagerstate_manager_
 
RenderMode render_mode_ = RenderMode::kHybrid
 
bool initialized_ = false
 

Detailed Description

Definition at line 59 of file emulator_render_service.h.

Constructor & Destructor Documentation

◆ EmulatorRenderService() [1/2]

yaze::emu::render::EmulatorRenderService::EmulatorRenderService ( Rom * rom,
zelda3::GameData * game_data = nullptr )
explicit

Definition at line 17 of file emulator_render_service.cc.

◆ ~EmulatorRenderService()

yaze::emu::render::EmulatorRenderService::~EmulatorRenderService ( )
default

◆ EmulatorRenderService() [2/2]

yaze::emu::render::EmulatorRenderService::EmulatorRenderService ( const EmulatorRenderService & )
delete

Member Function Documentation

◆ operator=()

EmulatorRenderService & yaze::emu::render::EmulatorRenderService::operator= ( const EmulatorRenderService & )
delete

◆ Initialize()

absl::Status yaze::emu::render::EmulatorRenderService::Initialize ( )

Definition at line 22 of file emulator_render_service.cc.

References initialized_, yaze::Rom::is_loaded(), rom_, snes_, state_manager_, and yaze::Rom::vector().

Here is the call graph for this function:

◆ GenerateBaselineStates()

absl::Status yaze::emu::render::EmulatorRenderService::GenerateBaselineStates ( )

Definition at line 43 of file emulator_render_service.cc.

References state_manager_.

◆ Render()

◆ RenderBatch()

absl::StatusOr< std::vector< RenderResult > > yaze::emu::render::EmulatorRenderService::RenderBatch ( const std::vector< RenderRequest > & requests)

Definition at line 75 of file emulator_render_service.cc.

References yaze::emu::render::RenderResult::error, Render(), and yaze::emu::render::RenderResult::success.

Here is the call graph for this function:

◆ IsReady()

bool yaze::emu::render::EmulatorRenderService::IsReady ( ) const
inline

◆ SetRenderMode()

void yaze::emu::render::EmulatorRenderService::SetRenderMode ( RenderMode mode)
inline

◆ GetRenderMode()

RenderMode yaze::emu::render::EmulatorRenderService::GetRenderMode ( ) const
inline

◆ snes()

emu::Snes * yaze::emu::render::EmulatorRenderService::snes ( )
inline

Definition at line 90 of file emulator_render_service.h.

References snes_.

◆ state_manager()

SaveStateManager * yaze::emu::render::EmulatorRenderService::state_manager ( )
inline

Definition at line 93 of file emulator_render_service.h.

References state_manager_.

◆ RenderDungeonObject()

◆ RenderDungeonObjectStatic()

◆ RenderSprite()

absl::StatusOr< RenderResult > yaze::emu::render::EmulatorRenderService::RenderSprite ( const RenderRequest & req)
private

◆ RenderFullRoom()

absl::StatusOr< RenderResult > yaze::emu::render::EmulatorRenderService::RenderFullRoom ( const RenderRequest & req)
private

◆ InjectRoomContext()

◆ LoadPaletteIntoCgram()

void yaze::emu::render::EmulatorRenderService::LoadPaletteIntoCgram ( int palette_id)
private

◆ LoadGraphicsIntoVram()

void yaze::emu::render::EmulatorRenderService::LoadGraphicsIntoVram ( uint8_t blockset)
private

Definition at line 329 of file emulator_render_service.cc.

◆ InitializeTilemapPointers()

void yaze::emu::render::EmulatorRenderService::InitializeTilemapPointers ( )
private

◆ ClearTilemapBuffers()

void yaze::emu::render::EmulatorRenderService::ClearTilemapBuffers ( )
private

◆ MockApuPorts()

void yaze::emu::render::EmulatorRenderService::MockApuPorts ( )
private

Definition at line 356 of file emulator_render_service.cc.

References snes_.

Referenced by RenderDungeonObject().

◆ LookupHandlerAddress()

◆ ExecuteHandler()

absl::Status yaze::emu::render::EmulatorRenderService::ExecuteHandler ( int handler_addr,
int data_offset,
int tilemap_pos )
private

Definition at line 404 of file emulator_render_service.cc.

References snes_.

Referenced by RenderDungeonObject().

◆ RenderPpuFrame()

void yaze::emu::render::EmulatorRenderService::RenderPpuFrame ( )
private

◆ ExtractPixelsFromPpu()

std::vector< uint8_t > yaze::emu::render::EmulatorRenderService::ExtractPixelsFromPpu ( )
private

Definition at line 485 of file emulator_render_service.cc.

References snes_.

Referenced by RenderDungeonObject().

Member Data Documentation

◆ rom_

Rom* yaze::emu::render::EmulatorRenderService::rom_ = nullptr
private

◆ game_data_

zelda3::GameData* yaze::emu::render::EmulatorRenderService::game_data_ = nullptr
private

◆ snes_

◆ state_manager_

std::unique_ptr<SaveStateManager> yaze::emu::render::EmulatorRenderService::state_manager_
private

◆ render_mode_

RenderMode yaze::emu::render::EmulatorRenderService::render_mode_ = RenderMode::kHybrid
private

Definition at line 125 of file emulator_render_service.h.

Referenced by GetRenderMode(), Render(), and SetRenderMode().

◆ initialized_

bool yaze::emu::render::EmulatorRenderService::initialized_ = false
private

Definition at line 126 of file emulator_render_service.h.

Referenced by Initialize(), IsReady(), and Render().


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