@ -54,12 +54,12 @@ public:
/ / / Opens the specified display and returns the ID .
/ / /
/ / / If an invalid display name is provided , then an empty optional is returned .
std : : optional < u64 > OpenDisplay ( std : : string_view name ) ;
[ [ nodiscard ] ] std : : optional < u64 > OpenDisplay ( std : : string_view name ) ;
/ / / Creates a layer on the specified display and returns the layer ID .
/ / /
/ / / If an invalid display ID is specified , then an empty optional is returned .
std : : optional < u64 > CreateLayer ( u64 display_id ) ;
[ [ nodiscard ] ] std : : optional < u64 > CreateLayer ( u64 display_id ) ;
/ / / Closes a layer on all displays for the given layer ID .
void CloseLayer ( u64 layer_id ) ;
@ -67,41 +67,39 @@ public:
/ / / Finds the buffer queue ID of the specified layer in the specified display .
/ / /
/ / / If an invalid display ID or layer ID is provided , then an empty optional is returned .
std : : optional < u32 > FindBufferQueueId ( u64 display_id , u64 layer_id ) const ;
[ [ nodiscard ] ] std : : optional < u32 > FindBufferQueueId ( u64 display_id , u64 layer_id ) const ;
/ / / Gets the vsync event for the specified display .
/ / /
/ / / If an invalid display ID is provided , then nullptr is returned .
std : : shared_ptr < Kernel : : ReadableEvent > FindVsyncEvent ( u64 display_id ) const ;
[ [ nodiscard ] ] std : : shared_ptr < Kernel : : ReadableEvent > FindVsyncEvent ( u64 display_id ) const ;
/ / / Obtains a buffer queue identified by the ID .
BufferQueue & FindBufferQueue ( u32 id ) ;
[ [ nodiscard ] ] BufferQueue & FindBufferQueue ( u32 id ) ;
/ / / Obtains a buffer queue identified by the ID .
const BufferQueue & FindBufferQueue ( u32 id ) const ;
[ [ nodiscard ] ] const BufferQueue & FindBufferQueue ( u32 id ) const ;
/ / / Performs a composition request to the emulated nvidia GPU and triggers the vsync events when
/ / / finished .
void Compose ( ) ;
s64 GetNextTicks ( ) const ;
[ [ nodiscard ] ] s64 GetNextTicks ( ) const ;
std : : unique_lock < std : : mutex > Lock ( ) const {
return std : : unique_lock { * guard } ;
}
[ [ nodiscard ] ] std : : unique_lock < std : : mutex > Lock ( ) const { return std : : unique_lock { * guard } ; }
private :
/ / / Finds the display identified by the specified ID .
VI : : Display * FindDisplay ( u64 display_id ) ;
private :
/ / / Finds the display identified by the specified ID .
[ [ nodiscard ] ] VI : : Display * FindDisplay ( u64 display_id ) ;
/ / / Finds the display identified by the specified ID .
const VI : : Display * FindDisplay ( u64 display_id ) const ;
[ [ nodiscard ] ] const VI : : Display * FindDisplay ( u64 display_id ) const ;
/ / / Finds the layer identified by the specified ID in the desired display .
VI : : Layer * FindLayer ( u64 display_id , u64 layer_id ) ;
[ [ nodiscard ] ] VI : : Layer * FindLayer ( u64 display_id , u64 layer_id ) ;
/ / / Finds the layer identified by the specified ID in the desired display .
const VI : : Layer * FindLayer ( u64 display_id , u64 layer_id ) const ;
[ [ nodiscard ] ] const VI : : Layer * FindLayer ( u64 display_id , u64 layer_id ) const ;
static void VSyncThread ( NVFlinger & nv_flinger ) ;