42 void set(uint32_t w, uint32_t h, uint32_t bpp, uint32_t index);
51 static std::optional<std::unique_ptr<DisplayRingBuffer>>
ShmemGet(
74 int display_width,
int display_height);
75 uint8_t*
WriteFrame(
int vm_index,
int display_index, uint8_t* frame_data,
77 uint8_t*
ReadFrame(
int vm_index,
int display_index,
int frame_width,
81 std::string
MakeLayerName(
int display_index,
int vm_index = -1);
86 std::map<std::pair<int, int>, std::unique_ptr<DisplayRingBuffer>>
Definition: ring_buffer_manager.h:70
int local_group_index_
Definition: ring_buffer_manager.h:82
std::string group_uuid_
Definition: ring_buffer_manager.h:83
uint8_t * ReadFrame(int vm_index, int display_index, int frame_width, int frame_height)
Definition: ring_buffer_manager.cpp:163
DisplayRingBufferManager(int vm_index, std::string group_uuid)
Definition: ring_buffer_manager.cpp:124
std::string MakeLayerName(int display_index, int vm_index=-1)
Definition: ring_buffer_manager.cpp:192
uint8_t * WriteFrame(int vm_index, int display_index, uint8_t *frame_data, int size)
Definition: ring_buffer_manager.cpp:153
Result< void > CreateLocalDisplayBuffer(int vm_index, int display_index, int display_width, int display_height)
Definition: ring_buffer_manager.cpp:128
std::map< std::pair< int, int >, std::unique_ptr< DisplayRingBuffer > > display_buffer_cache_
Definition: ring_buffer_manager.h:87
Definition: ring_buffer_manager.h:45
void * GetAddress()
Definition: ring_buffer_manager.cpp:43
uint8_t * ComputeFrameAddressForIndex(uint32_t index)
Definition: ring_buffer_manager.cpp:108
DisplayRingBuffer(std::string name, bool owned, ScopedMMap shm)
Definition: ring_buffer_manager.cpp:85
uint8_t * WriteNextFrame(uint8_t *frame_data, int size)
Definition: ring_buffer_manager.cpp:93
bool owned_
Definition: ring_buffer_manager.h:66
std::string name_
Definition: ring_buffer_manager.h:65
~DisplayRingBuffer()
Definition: ring_buffer_manager.cpp:61
ScopedMMap shm_
Definition: ring_buffer_manager.h:67
static std::optional< std::unique_ptr< DisplayRingBuffer > > ShmemGet(const std::string &name, int size)
Definition: ring_buffer_manager.cpp:69
static Result< std::unique_ptr< DisplayRingBuffer > > Create(const std::string &name, int size)
Definition: ring_buffer_manager.cpp:45
uint8_t * CurrentFrame()
Definition: ring_buffer_manager.cpp:104
DisplayRingBufferHeader * Header()
Definition: ring_buffer_manager.cpp:89
Definition: scoped_mmap.h:28
uint32_t size
Definition: io.h:2
char * name
Definition: libf2fs.c:1403
Definition: alloc_driver.h:20
tl::expected< T, StackTraceError > Result
Definition: result_type.h:30