33 volatile std::uint32_t
bpp_;
36 void set(std::uint32_t w, std::uint32_t h, std::uint32_t bpp,
44 const std::string& name,
int size);
46 static std::optional<std::unique_ptr<DisplayRingBuffer>>
ShmemGet(
47 const std::string& name,
int size);
69 int display_width,
int display_height);
70 std::uint8_t*
WriteFrame(
int vm_index,
int display_index,
71 std::uint8_t* frame_data,
int size);
72 std::uint8_t*
ReadFrame(
int vm_index,
int display_index,
int frame_width,
76 std::string
MakeLayerName(
int display_index,
int vm_index = -1);
81 std::map<std::pair<int, int>, std::unique_ptr<DisplayRingBuffer>>
Definition: expected.h:86
Definition: ring_buffer_manager.h:65
int local_group_index_
Definition: ring_buffer_manager.h:77
std::string group_uuid_
Definition: ring_buffer_manager.h:78
DisplayRingBufferManager(int vm_index, std::string group_uuid)
Definition: ring_buffer_manager.cpp:122
std::string MakeLayerName(int display_index, int vm_index=-1)
Definition: ring_buffer_manager.cpp:193
std::uint8_t * WriteFrame(int vm_index, int display_index, std::uint8_t *frame_data, int size)
Definition: ring_buffer_manager.cpp:151
Result< void > CreateLocalDisplayBuffer(int vm_index, int display_index, int display_width, int display_height)
Definition: ring_buffer_manager.cpp:126
std::uint8_t * ReadFrame(int vm_index, int display_index, int frame_width, int frame_height)
Definition: ring_buffer_manager.cpp:163
std::map< std::pair< int, int >, std::unique_ptr< DisplayRingBuffer > > display_buffer_cache_
Definition: ring_buffer_manager.h:82
Definition: ring_buffer_manager.h:40
std::uint8_t * ComputeFrameAddressForIndex(std::uint32_t index)
Definition: ring_buffer_manager.cpp:106
DisplayRingBuffer(void *addr, std::string name, bool owned, ScopedMMap shm)
Definition: ring_buffer_manager.cpp:83
std::uint8_t * CurrentFrame()
Definition: ring_buffer_manager.cpp:102
void * GetAddress()
Definition: ring_buffer_manager.cpp:37
DisplayRingBufferHeader * header_
Definition: ring_buffer_manager.h:58
bool owned_
Definition: ring_buffer_manager.h:61
std::string name_
Definition: ring_buffer_manager.h:60
~DisplayRingBuffer()
Definition: ring_buffer_manager.cpp:57
ScopedMMap shm_
Definition: ring_buffer_manager.h:62
static std::optional< std::unique_ptr< DisplayRingBuffer > > ShmemGet(const std::string &name, int size)
Definition: ring_buffer_manager.cpp:65
static Result< std::unique_ptr< DisplayRingBuffer > > Create(const std::string &name, int size)
Definition: ring_buffer_manager.cpp:39
std::uint8_t * WriteNextFrame(std::uint8_t *frame_data, int size)
Definition: ring_buffer_manager.cpp:89
void * addr_
Definition: ring_buffer_manager.h:59
Definition: shared_fd.h:253
uint32_t size
Definition: io.h:2
Definition: alloc_utils.cpp:23