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

Unified draw routine registry. More...

#include <draw_routine_registry.h>

Public Member Functions

void Initialize ()
 
const DrawRoutineInfoGetRoutineInfo (int routine_id) const
 
const std::vector< DrawRoutineInfo > & GetAllRoutines () const
 
bool RoutineDrawsToBothBGs (int routine_id) const
 
bool GetRoutineDimensions (int routine_id, int *base_width, int *base_height) const
 

Static Public Member Functions

static DrawRoutineRegistryGet ()
 

Private Member Functions

 DrawRoutineRegistry ()=default
 
void BuildRegistry ()
 

Private Attributes

std::vector< DrawRoutineInforoutines_
 
std::unordered_map< int, const DrawRoutineInfo * > routine_map_
 
bool initialized_ = false
 

Detailed Description

Unified draw routine registry.

Singleton that provides draw routine metadata for both ObjectDrawer and ObjectGeometry. This ensures both systems use the same routine IDs and dimension calculations.

Definition at line 173 of file draw_routine_registry.h.

Constructor & Destructor Documentation

◆ DrawRoutineRegistry()

yaze::zelda3::DrawRoutineRegistry::DrawRoutineRegistry ( )
privatedefault

Member Function Documentation

◆ Get()

DrawRoutineRegistry & yaze::zelda3::DrawRoutineRegistry::Get ( )
static

Definition at line 12 of file draw_routine_registry.cc.

References Initialize(), and initialized_.

Referenced by yaze::zelda3::ObjectGeometry::BuildRegistry(), and yaze::zelda3::ObjectDrawer::RoutineDrawsToBothBGs().

Here is the call graph for this function:

◆ Initialize()

void yaze::zelda3::DrawRoutineRegistry::Initialize ( )

Definition at line 20 of file draw_routine_registry.cc.

References BuildRegistry(), and initialized_.

Referenced by Get().

Here is the call graph for this function:

◆ GetRoutineInfo()

const DrawRoutineInfo * yaze::zelda3::DrawRoutineRegistry::GetRoutineInfo ( int routine_id) const

Definition at line 43 of file draw_routine_registry.cc.

References routine_map_.

Referenced by GetRoutineDimensions(), and RoutineDrawsToBothBGs().

◆ GetAllRoutines()

const std::vector< DrawRoutineInfo > & yaze::zelda3::DrawRoutineRegistry::GetAllRoutines ( ) const
inline

Definition at line 184 of file draw_routine_registry.h.

References routines_.

◆ RoutineDrawsToBothBGs()

bool yaze::zelda3::DrawRoutineRegistry::RoutineDrawsToBothBGs ( int routine_id) const

Definition at line 51 of file draw_routine_registry.cc.

References yaze::zelda3::DrawRoutineInfo::draws_to_both_bgs, and GetRoutineInfo().

Here is the call graph for this function:

◆ GetRoutineDimensions()

bool yaze::zelda3::DrawRoutineRegistry::GetRoutineDimensions ( int routine_id,
int * base_width,
int * base_height ) const

Definition at line 56 of file draw_routine_registry.cc.

References yaze::zelda3::DrawRoutineInfo::base_height, yaze::zelda3::DrawRoutineInfo::base_width, and GetRoutineInfo().

Here is the call graph for this function:

◆ BuildRegistry()

Member Data Documentation

◆ routines_

std::vector<DrawRoutineInfo> yaze::zelda3::DrawRoutineRegistry::routines_
private

Definition at line 196 of file draw_routine_registry.h.

Referenced by BuildRegistry(), and GetAllRoutines().

◆ routine_map_

std::unordered_map<int, const DrawRoutineInfo*> yaze::zelda3::DrawRoutineRegistry::routine_map_
private

Definition at line 197 of file draw_routine_registry.h.

Referenced by BuildRegistry(), and GetRoutineInfo().

◆ initialized_

bool yaze::zelda3::DrawRoutineRegistry::initialized_ = false
private

Definition at line 198 of file draw_routine_registry.h.

Referenced by Get(), and Initialize().


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