Context passed to draw routines containing all necessary state. More...
#include <draw_routine_types.h>

Public Member Functions | |
| bool | HasSecondaryBG () const |
Public Attributes | |
| gfx::BackgroundBuffer & | target_bg |
| const RoomObject & | object |
| std::span< const gfx::TileInfo > | tiles |
| const DungeonState * | state |
| Rom * | rom |
| int | room_id |
| const uint8_t * | room_gfx_buffer |
| gfx::BackgroundBuffer * | secondary_bg |
Static Public Attributes | |
| static constexpr int | kMaxTilesX = 64 |
| static constexpr int | kMaxTilesY = 64 |
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.
|
inline |
Definition at line 41 of file draw_routine_types.h.
References secondary_bg.
Referenced by yaze::zelda3::draw_routines::DrawPrisonCell().
| 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().
| 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().
| 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().
| const DungeonState* yaze::zelda3::DrawContext::state |
Definition at line 30 of file draw_routine_types.h.
Referenced by yaze::zelda3::draw_routines::DrawBigKeyLock(), yaze::zelda3::draw_routines::DrawBombableFloor(), yaze::zelda3::draw_routines::DrawChest(), yaze::zelda3::draw_routines::DrawDoorSwitcherer(), and yaze::zelda3::draw_routines::DrawMovingWall().
| Rom* yaze::zelda3::DrawContext::rom |
Definition at line 31 of file draw_routine_types.h.
| int yaze::zelda3::DrawContext::room_id |
Definition at line 32 of file draw_routine_types.h.
Referenced by yaze::zelda3::draw_routines::DrawBigKeyLock(), yaze::zelda3::draw_routines::DrawBombableFloor(), yaze::zelda3::draw_routines::DrawChest(), yaze::zelda3::draw_routines::DrawDoorSwitcherer(), and yaze::zelda3::draw_routines::DrawMovingWall().
| const uint8_t* yaze::zelda3::DrawContext::room_gfx_buffer |
Definition at line 33 of file draw_routine_types.h.
| gfx::BackgroundBuffer* yaze::zelda3::DrawContext::secondary_bg |
Definition at line 34 of file draw_routine_types.h.
Referenced by yaze::zelda3::draw_routines::DrawPrisonCell(), and HasSecondaryBG().
|
staticconstexpr |
Definition at line 37 of file draw_routine_types.h.
Referenced by yaze::zelda3::ObjectGeometry::MeasureRoutine().
|
staticconstexpr |
Definition at line 38 of file draw_routine_types.h.
Referenced by yaze::zelda3::anonymous_namespace{object_geometry.cc}::ChooseAnchorY(), yaze::zelda3::DrawRoutineUtils::IsValidTilePosition(), and yaze::zelda3::ObjectGeometry::MeasureRoutine().