From fd15730767860659bdb58e8cd33074530a708295 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 21 Feb 2019 10:56:20 -0500 Subject: service/vi/vi_layer: Convert Layer struct into a class Like the previous changes made to the Display struct, this prepares the Layer struct for changes to its interface. Given Layer will be given more invariants in the future, we convert it into a class to better signify that. --- src/core/hle/service/vi/layer/vi_layer.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/core/hle/service/vi/layer/vi_layer.h') diff --git a/src/core/hle/service/vi/layer/vi_layer.h b/src/core/hle/service/vi/layer/vi_layer.h index df328e09f..dd4f7e596 100644 --- a/src/core/hle/service/vi/layer/vi_layer.h +++ b/src/core/hle/service/vi/layer/vi_layer.h @@ -14,10 +14,39 @@ class BufferQueue; namespace Service::VI { -struct Layer { +/// Represents a single display layer. +class Layer { +public: + /// Constructs a layer with a given ID and buffer queue. + /// + /// @param id The ID to assign to this layer. + /// @param queue The buffer queue for this layer to use. + /// Layer(u64 id, std::shared_ptr queue); ~Layer(); + Layer(const Layer&) = delete; + Layer& operator=(const Layer&) = delete; + + Layer(Layer&&) = default; + Layer& operator=(Layer&&) = default; + + /// Gets the ID for this layer. + u64 GetID() const { + return id; + } + + /// Gets a reference to the buffer queue this layer is using. + NVFlinger::BufferQueue& GetBufferQueue() { + return *buffer_queue; + } + + /// Gets a const reference to the buffer queue this layer is using. + const NVFlinger::BufferQueue& GetBufferQueue() const { + return *buffer_queue; + } + +private: u64 id; std::shared_ptr buffer_queue; }; -- cgit v1.2.3