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

Context passed to draw routines containing all necessary state. More...

#include <draw_routine_types.h>

Collaboration diagram for yaze::zelda3::DrawContext:

Public Member Functions

bool HasSecondaryBG () const
 

Public Attributes

gfx::BackgroundBuffertarget_bg
 
const RoomObjectobject
 
std::span< const gfx::TileInfotiles
 
const DungeonStatestate
 
Romrom
 
int room_id
 
const uint8_t * room_gfx_buffer
 
gfx::BackgroundBuffersecondary_bg
 

Static Public Attributes

static constexpr int kMaxTilesX = 64
 
static constexpr int kMaxTilesY = 64
 

Detailed Description

Context passed to draw routines containing all necessary state.

This replaces the ObjectDrawer* parameter pattern, making routines pure functions that don't depend on class instance state.

Definition at line 26 of file draw_routine_types.h.

Member Function Documentation

◆ HasSecondaryBG()

bool yaze::zelda3::DrawContext::HasSecondaryBG ( ) const
inline

Definition at line 41 of file draw_routine_types.h.

References secondary_bg.

Referenced by yaze::zelda3::draw_routines::DrawPrisonCell().

Member Data Documentation

◆ target_bg

gfx::BackgroundBuffer& yaze::zelda3::DrawContext::target_bg

Definition at line 27 of file draw_routine_types.h.

Referenced by yaze::zelda3::draw_routines::CustomDraw(), yaze::zelda3::draw_routines::Draw3x3FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4BlocksIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4Corner_BothBG(), yaze::zelda3::draw_routines::Draw4x4FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorOneIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorTwoIn4x4SuperSquare(), yaze::zelda3::draw_routines::DrawAutoStairs(), yaze::zelda3::draw_routines::DrawBigHole4x4_1to16(), yaze::zelda3::draw_routines::DrawBigKeyLock(), yaze::zelda3::draw_routines::DrawBombableFloor(), yaze::zelda3::draw_routines::DrawChest(), yaze::zelda3::draw_routines::DrawChestPlatformHorizontalWall(), yaze::zelda3::draw_routines::DrawChestPlatformVerticalWall(), yaze::zelda3::draw_routines::DrawClosedChestPlatform(), yaze::zelda3::draw_routines::DrawCorner4x4(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDoorSwitcherer(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to16(), yaze::zelda3::draw_routines::DrawDownwards4x2_1to15or26(), yaze::zelda3::draw_routines::DrawDownwardsDecor4x2spaced4_1to16(), yaze::zelda3::draw_routines::DrawDownwardsEdge1x1_1to16(), yaze::zelda3::draw_routines::DrawDownwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawDownwardsLeftCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawDownwardsRightCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawInterRoomFatStairsUp(), yaze::zelda3::draw_routines::DrawLargeCanvasObject(), yaze::zelda3::draw_routines::DrawMovingWall(), yaze::zelda3::draw_routines::DrawPrisonCell(), yaze::zelda3::draw_routines::DrawRightwards1x1Solid_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwards1x2_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to16(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to15or26(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to16(), yaze::zelda3::draw_routines::DrawRightwards4x4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsBottomCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawRightwardsDecor2x2spaced12_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x3spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x4spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDoubled2x2spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwardsPillar2x4spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsStatue2x3spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsTopCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawSomariaLine(), yaze::zelda3::draw_routines::DrawSpike2x2In4x4SuperSquare(), yaze::zelda3::draw_routines::DrawSpiralStairs(), yaze::zelda3::draw_routines::DrawStraightInterRoomStairs(), yaze::zelda3::draw_routines::DrawTableRock4x4_1to16(), yaze::zelda3::draw_routines::DrawWaterFace(), yaze::zelda3::draw_routines::DrawWaterOverlay8x8_1to16(), yaze::zelda3::draw_routines::DrawWeirdCornerBottom_BothBG(), yaze::zelda3::draw_routines::DrawWeirdCornerTop_BothBG(), and yaze::zelda3::ObjectGeometry::MeasureRoutine().

◆ object

const RoomObject& yaze::zelda3::DrawContext::object

Definition at line 28 of file draw_routine_types.h.

Referenced by yaze::zelda3::draw_routines::CustomDraw(), yaze::zelda3::draw_routines::Draw3x3FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4BlocksIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4Corner_BothBG(), yaze::zelda3::draw_routines::Draw4x4FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorOneIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorTwoIn4x4SuperSquare(), yaze::zelda3::draw_routines::DrawAutoStairs(), yaze::zelda3::draw_routines::DrawBigHole4x4_1to16(), yaze::zelda3::draw_routines::DrawBigKeyLock(), yaze::zelda3::draw_routines::DrawBombableFloor(), yaze::zelda3::draw_routines::DrawChest(), yaze::zelda3::draw_routines::DrawChestPlatformHorizontalWall(), yaze::zelda3::draw_routines::DrawChestPlatformVerticalWall(), yaze::zelda3::draw_routines::DrawClosedChestPlatform(), yaze::zelda3::draw_routines::DrawCorner4x4(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDoorSwitcherer(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to16(), yaze::zelda3::draw_routines::DrawDownwards4x2_1to15or26(), yaze::zelda3::draw_routines::DrawDownwardsDecor4x2spaced4_1to16(), yaze::zelda3::draw_routines::DrawDownwardsEdge1x1_1to16(), yaze::zelda3::draw_routines::DrawDownwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawDownwardsLeftCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawDownwardsRightCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawInterRoomFatStairsUp(), yaze::zelda3::draw_routines::DrawLargeCanvasObject(), yaze::zelda3::draw_routines::DrawMovingWall(), yaze::zelda3::draw_routines::DrawPrisonCell(), yaze::zelda3::draw_routines::DrawRightwards1x1Solid_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwards1x2_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to16(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to15or26(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to16(), yaze::zelda3::draw_routines::DrawRightwards4x4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsBottomCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawRightwardsDecor2x2spaced12_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x3spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x4spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDoubled2x2spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwardsPillar2x4spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsStatue2x3spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsTopCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawSomariaLine(), yaze::zelda3::draw_routines::DrawSpike2x2In4x4SuperSquare(), yaze::zelda3::draw_routines::DrawSpiralStairs(), yaze::zelda3::draw_routines::DrawStraightInterRoomStairs(), yaze::zelda3::draw_routines::DrawTableRock4x4_1to16(), yaze::zelda3::draw_routines::DrawWaterFace(), yaze::zelda3::draw_routines::DrawWaterOverlay8x8_1to16(), yaze::zelda3::draw_routines::DrawWeirdCornerBottom_BothBG(), and yaze::zelda3::draw_routines::DrawWeirdCornerTop_BothBG().

◆ tiles

std::span<const gfx::TileInfo> yaze::zelda3::DrawContext::tiles

Definition at line 29 of file draw_routine_types.h.

Referenced by yaze::zelda3::draw_routines::CustomDraw(), yaze::zelda3::draw_routines::Draw3x3FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4BlocksIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4Corner_BothBG(), yaze::zelda3::draw_routines::Draw4x4FloorIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorOneIn4x4SuperSquare(), yaze::zelda3::draw_routines::Draw4x4FloorTwoIn4x4SuperSquare(), yaze::zelda3::draw_routines::DrawAutoStairs(), yaze::zelda3::draw_routines::DrawBigHole4x4_1to16(), yaze::zelda3::draw_routines::DrawBigKeyLock(), yaze::zelda3::draw_routines::DrawBombableFloor(), yaze::zelda3::draw_routines::DrawChest(), yaze::zelda3::draw_routines::DrawChestPlatformHorizontalWall(), yaze::zelda3::draw_routines::DrawChestPlatformVerticalWall(), yaze::zelda3::draw_routines::DrawClosedChestPlatform(), yaze::zelda3::draw_routines::DrawCorner4x4(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16(), yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16(), yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16_BothBG(), yaze::zelda3::draw_routines::DrawDoorSwitcherer(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawDownwards2x2_1to16(), yaze::zelda3::draw_routines::DrawDownwards4x2_1to15or26(), yaze::zelda3::draw_routines::DrawDownwardsDecor4x2spaced4_1to16(), yaze::zelda3::draw_routines::DrawDownwardsEdge1x1_1to16(), yaze::zelda3::draw_routines::DrawDownwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawDownwardsLeftCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawDownwardsRightCorners2x1_1to16_plus12(), yaze::zelda3::draw_routines::DrawInterRoomFatStairsUp(), yaze::zelda3::draw_routines::DrawLargeCanvasObject(), yaze::zelda3::draw_routines::DrawMovingWall(), yaze::zelda3::draw_routines::DrawPrisonCell(), yaze::zelda3::draw_routines::DrawRightwards1x1Solid_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwards1x2_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to15or32(), yaze::zelda3::draw_routines::DrawRightwards2x2_1to16(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to15or26(), yaze::zelda3::draw_routines::DrawRightwards2x4_1to16(), yaze::zelda3::draw_routines::DrawRightwards4x4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsBottomCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawRightwardsDecor2x2spaced12_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x3spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDecor4x4spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsDoubled2x2spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus2(), yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus3(), yaze::zelda3::draw_routines::DrawRightwardsPillar2x4spaced4_1to16(), yaze::zelda3::draw_routines::DrawRightwardsStatue2x3spaced2_1to16(), yaze::zelda3::draw_routines::DrawRightwardsTopCorners1x2_1to16_plus13(), yaze::zelda3::draw_routines::DrawSomariaLine(), yaze::zelda3::draw_routines::DrawSpike2x2In4x4SuperSquare(), yaze::zelda3::draw_routines::DrawSpiralStairs(), yaze::zelda3::draw_routines::DrawStraightInterRoomStairs(), yaze::zelda3::draw_routines::DrawTableRock4x4_1to16(), yaze::zelda3::draw_routines::DrawWaterFace(), yaze::zelda3::draw_routines::DrawWaterOverlay8x8_1to16(), yaze::zelda3::draw_routines::DrawWeirdCornerBottom_BothBG(), and yaze::zelda3::draw_routines::DrawWeirdCornerTop_BothBG().

◆ state

◆ rom

Rom* yaze::zelda3::DrawContext::rom

Definition at line 31 of file draw_routine_types.h.

◆ room_id

◆ room_gfx_buffer

const uint8_t* yaze::zelda3::DrawContext::room_gfx_buffer

Definition at line 33 of file draw_routine_types.h.

◆ secondary_bg

gfx::BackgroundBuffer* yaze::zelda3::DrawContext::secondary_bg

◆ kMaxTilesX

constexpr int yaze::zelda3::DrawContext::kMaxTilesX = 64
staticconstexpr

Definition at line 37 of file draw_routine_types.h.

Referenced by yaze::zelda3::ObjectGeometry::MeasureRoutine().

◆ kMaxTilesY

constexpr int yaze::zelda3::DrawContext::kMaxTilesY = 64
staticconstexpr

The documentation for this struct was generated from the following file: