yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_room_composite.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_COMPOSITE_H_
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_COMPOSITE_H_
3
4#include <cstdint>
5#include <memory>
6
7namespace yaze::gfx {
8class Bitmap;
9} // namespace yaze::gfx
10
11namespace yaze::zelda3 {
12class Room;
13class RoomLayerManager;
14} // namespace yaze::zelda3
15
16namespace yaze::editor {
17
18// Stable, consumer-owned output for a room presentation. Bitmap addresses must
19// not move because Arena texture commands retain raw Bitmap pointers.
21 public:
24
29
31 const zelda3::RoomLayerManager& layer_manager);
32 void Retire();
33
34 gfx::Bitmap& bitmap() { return *bitmap_; }
35 const gfx::Bitmap& bitmap() const { return *bitmap_; }
36
37 private:
38 std::unique_ptr<gfx::Bitmap> bitmap_;
39 const zelda3::Room* rendered_room_ = nullptr;
42 bool valid_ = false;
43};
44
45// Build the header-derived presentation used by non-canvas previews into
46// storage owned by that preview. Callers that display it must queue/process
47// its texture before drawing.
49 RoomCompositeOutput& output);
50
51} // namespace yaze::editor
52
53#endif // YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_COMPOSITE_H_
RoomCompositeOutput & operator=(RoomCompositeOutput &&)=delete
RoomCompositeOutput & operator=(const RoomCompositeOutput &)=delete
RoomCompositeOutput(const RoomCompositeOutput &)=delete
RoomCompositeOutput(RoomCompositeOutput &&)=delete
std::unique_ptr< gfx::Bitmap > bitmap_
gfx::Bitmap & Prepare(zelda3::Room &room, const zelda3::RoomLayerManager &layer_manager)
Represents a bitmap image optimized for SNES ROM hacking.
Definition bitmap.h:69
RoomLayerManager - Manages layer visibility and compositing.
Editors are the view controllers for the application.
gfx::Bitmap & PrepareCanonicalRoomComposite(zelda3::Room &room, RoomCompositeOutput &output)
Contains classes for handling graphical data.
Zelda 3 specific classes and functions.