#include <render_service.h>

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_ |
Definition at line 119 of file render_service.h.
| yaze::app::service::RenderService::RenderService | ( | Rom * | rom, |
| zelda3::GameData * | game_data ) |
Definition at line 159 of file render_service.cc.
| absl::StatusOr< RenderResult > yaze::app::service::RenderService::RenderDungeonRoom | ( | const RenderRequest & | req | ) |
Definition at line 162 of file render_service.cc.
References yaze::zelda3::RoomLayerManager::ApplyGameLayerRegisters(), yaze::zelda3::RoomLayerManager::ApplyLayerMerging(), ApplyOverlays(), yaze::zelda3::RoomLayerManager::ApplyRoomEffect(), BitmapToRgba(), yaze::zelda3::Room::effect(), EncodePng(), game_data_, yaze::zelda3::Room::GameLayerRegisters(), yaze::zelda3::Room::GetCompositeBitmap(), yaze::app::service::RenderResult::height, yaze::Rom::is_loaded(), yaze::app::service::RenderOverlay::kNone, yaze::zelda3::kNumberOfRooms, yaze::zelda3::Room::layer_merging(), yaze::zelda3::LoadRoomFromRom(), yaze::zelda3::Room::LoadRoomGraphics(), yaze::zelda3::Room::LoadSprites(), mu_, yaze::app::service::RenderRequest::overlay_flags, yaze::app::service::RenderResult::png_data, yaze::zelda3::Room::RenderRoomGraphics(), rom_, yaze::app::service::RenderRequest::room_id, yaze::app::service::RenderRequest::scale, yaze::zelda3::Room::SetGameData(), yaze::zelda3::Room::SetGraphicsSheetOverrides(), yaze::app::service::RenderRequest::sheet_overrides, and yaze::app::service::RenderResult::width.
Referenced by yaze::cli::handlers::DungeonRenderCommandHandler::ExecuteWithContext(), and yaze::cli::api::HandleRenderDungeon().
| 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().
| absl::StatusOr< RoomMetadata > yaze::app::service::RenderService::GetDungeonRoomMetadata | ( | int | room_id | ) |
Definition at line 514 of file render_service.cc.
References yaze::app::service::RoomMetadata::blockset, yaze::zelda3::Room::blockset(), yaze::app::service::RoomMetadata::collision, yaze::zelda3::Room::collision(), yaze::app::service::RoomMetadata::effect, yaze::zelda3::Room::effect(), game_data_, yaze::zelda3::Room::GetSprites(), yaze::zelda3::Room::GetTileObjects(), yaze::app::service::RoomMetadata::has_custom_collision, yaze::zelda3::Room::has_custom_collision(), yaze::zelda3::kNumberOfRooms, yaze::app::service::RoomMetadata::layout_id, yaze::zelda3::Room::layout_id(), yaze::zelda3::LoadRoomFromRom(), yaze::zelda3::Room::LoadSprites(), yaze::app::service::RoomMetadata::message_id, yaze::zelda3::Room::message_id(), mu_, yaze::app::service::RoomMetadata::object_count, yaze::app::service::RoomMetadata::palette, yaze::zelda3::Room::palette(), rom_, yaze::app::service::RoomMetadata::room_id, yaze::zelda3::Room::SetGameData(), yaze::app::service::RoomMetadata::sprite_count, yaze::app::service::RoomMetadata::spriteset, yaze::zelda3::Room::spriteset(), yaze::app::service::RoomMetadata::tag1, yaze::zelda3::Room::tag1(), yaze::app::service::RoomMetadata::tag2, and yaze::zelda3::Room::tag2().
Referenced by yaze::cli::api::HandleRenderDungeonMetadata().
|
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().

|
private |
Definition at line 581 of file render_service.cc.
References yaze::zelda3::ComputeRoomCollisionMaps(), yaze::zelda3::Room::custom_collision(), yaze::app::service::HeadlessOverlayRenderer::DrawFilledRect(), yaze::app::service::HeadlessOverlayRenderer::DrawLine(), yaze::app::service::HeadlessOverlayRenderer::DrawRect(), yaze::zelda3::Room::GetSprites(), yaze::zelda3::Room::GetTileObjects(), yaze::app::service::RenderOverlay::kCameraQuads, yaze::app::service::RenderOverlay::kCollision, yaze::app::service::RenderOverlay::kGrid, yaze::app::service::RenderOverlay::kObjects, yaze::app::service::RenderOverlay::kSprites, yaze::app::service::RenderOverlay::kTileTypes, yaze::app::service::RenderOverlay::kTrack, yaze::zelda3::MakeRoomCollisionInput(), rom_, and yaze::zelda3::CustomCollisionMap::tiles.
Referenced by RenderDungeonRoom().
|
private |
Definition at line 716 of file render_service.cc.
Referenced by RenderDungeonRoom(), and RenderOverworldArea().
|
private |
Definition at line 147 of file render_service.h.
Referenced by ApplyOverlays(), GetDungeonRoomMetadata(), RenderDungeonRoom(), and RenderOverworldArea().
|
private |
Definition at line 148 of file render_service.h.
Referenced by GetDungeonRoomMetadata(), RenderDungeonRoom(), and RenderOverworldArea().
|
mutableprivate |
Definition at line 149 of file render_service.h.
Referenced by GetDungeonRoomMetadata(), RenderDungeonRoom(), and RenderOverworldArea().