yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::app::service::RenderService Class Reference

#include <render_service.h>

Collaboration diagram for yaze::app::service::RenderService:

Public Member Functions

 RenderService (Rom *rom, zelda3::GameData *game_data)
 
absl::StatusOr< RenderResult > RenderDungeonRoom (const RenderRequest &req)
 
absl::StatusOr< OverworldRenderResult > RenderOverworldArea (const OverworldRenderRequest &req)
 
absl::StatusOr< RoomMetadata > GetDungeonRoomMetadata (int room_id)
 

Private Member Functions

absl::StatusOr< std::vector< uint8_t > > BitmapToRgba (const gfx::Bitmap &bitmap, int width, int height)
 
void ApplyOverlays (std::vector< uint8_t > &rgba, int width, int height, const zelda3::Room &room, uint32_t flags, float scale)
 
absl::StatusOr< std::vector< uint8_t > > EncodePng (const std::vector< uint8_t > &rgba, int width, int height)
 

Private Attributes

Rom * rom_
 
zelda3::GameData * game_data_
 
std::mutex mu_
 

Detailed Description

Definition at line 119 of file render_service.h.

Constructor & Destructor Documentation

◆ RenderService()

yaze::app::service::RenderService::RenderService ( Rom * rom,
zelda3::GameData * game_data )

Definition at line 159 of file render_service.cc.

Member Function Documentation

◆ RenderDungeonRoom()

◆ RenderOverworldArea()

absl::StatusOr< OverworldRenderResult > yaze::app::service::RenderService::RenderOverworldArea ( const OverworldRenderRequest & req)

Definition at line 236 of file render_service.cc.

References yaze::zelda3::Overworld::all_items(), yaze::app::service::OverworldRenderRequest::area_overlay, yaze::app::service::OverworldRenderResult::area_size, ASSIGN_OR_RETURN, yaze::zelda3::Overworld::BuildSubscreenOverlayLayer(), yaze::app::service::HeadlessOverlayRenderer::DrawFilledRect(), yaze::app::service::HeadlessOverlayRenderer::DrawLine(), yaze::app::service::HeadlessOverlayRenderer::DrawRect(), EncodePng(), yaze::zelda3::Overworld::EnsureMapBuilt(), yaze::zelda3::Overworld::entrances(), yaze::zelda3::Overworld::exits(), game_data_, yaze::app::service::OverworldRenderResult::height, yaze::zelda3::Overworld::holes(), yaze::Rom::is_loaded(), yaze::app::service::OverworldOverlay::kEntrances, yaze::app::service::OverworldOverlay::kExits, yaze::app::service::OverworldOverlay::kGrid, yaze::app::service::OverworldOverlay::kHoles, yaze::app::service::OverworldOverlay::kItems, yaze::zelda3::kNumOverworldMaps, yaze::app::service::OverworldOverlay::kSprites, yaze::zelda3::LargeArea, yaze::zelda3::Overworld::Load(), yaze::app::service::OverworldRenderResult::markers, mu_, yaze::app::service::OverworldRenderRequest::overlay_flags, yaze::zelda3::Overworld::overworld_map(), yaze::app::service::OverworldRenderResult::parent_screen, yaze::app::service::OverworldRenderRequest::phase, yaze::app::service::OverworldRenderResult::png_data, yaze::app::service::OverworldRenderResult::requested_screen, RETURN_IF_ERROR, rom_, yaze::app::service::OverworldRenderRequest::scale, yaze::app::service::OverworldRenderRequest::screen_id, yaze::app::service::OverworldRenderResult::screens, yaze::gfx::SnesPalette::size(), yaze::zelda3::SmallArea, yaze::zelda3::Overworld::sprites(), yaze::app::service::OverworldRenderResult::subscreen_overlay, yaze::zelda3::TallArea, yaze::zelda3::WideArea, and yaze::app::service::OverworldRenderResult::width.

Referenced by yaze::cli::handlers::OverworldRenderCommandHandler::ExecuteWithContext().

◆ GetDungeonRoomMetadata()

◆ BitmapToRgba()

absl::StatusOr< std::vector< uint8_t > > yaze::app::service::RenderService::BitmapToRgba ( const gfx::Bitmap & bitmap,
int width,
int height )
private

Definition at line 548 of file render_service.cc.

References yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::ReadColor(), yaze::gfx::Bitmap::surface(), and yaze::gfx::Bitmap::width().

Referenced by RenderDungeonRoom().

Here is the call graph for this function:

◆ ApplyOverlays()

◆ EncodePng()

absl::StatusOr< std::vector< uint8_t > > yaze::app::service::RenderService::EncodePng ( const std::vector< uint8_t > & rgba,
int width,
int height )
private

Definition at line 716 of file render_service.cc.

Referenced by RenderDungeonRoom(), and RenderOverworldArea().

Member Data Documentation

◆ rom_

Rom* yaze::app::service::RenderService::rom_
private

◆ game_data_

zelda3::GameData* yaze::app::service::RenderService::game_data_
private

◆ mu_

std::mutex yaze::app::service::RenderService::mu_
mutableprivate

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