nvflinger/buffer_queue: Remove use of a global system accessor
This commit is contained in:
		| @@ -14,8 +14,8 @@ | ||||
|  | ||||
| namespace Service::NVFlinger { | ||||
|  | ||||
| BufferQueue::BufferQueue(u32 id, u64 layer_id) : id(id), layer_id(layer_id) { | ||||
|     auto& kernel = Core::System::GetInstance().Kernel(); | ||||
| BufferQueue::BufferQueue(Kernel::KernelCore& kernel, u32 id, u64 layer_id) | ||||
|     : id(id), layer_id(layer_id) { | ||||
|     buffer_wait_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, | ||||
|                                                                "BufferQueue NativeHandle"); | ||||
| } | ||||
|   | ||||
| @@ -15,6 +15,10 @@ | ||||
| #include "core/hle/kernel/writable_event.h" | ||||
| #include "core/hle/service/nvdrv/nvdata.h" | ||||
|  | ||||
| namespace Kernel { | ||||
| class KernelCore; | ||||
| } | ||||
|  | ||||
| namespace Service::NVFlinger { | ||||
|  | ||||
| struct IGBPBuffer { | ||||
| @@ -44,7 +48,7 @@ public: | ||||
|         NativeWindowFormat = 2, | ||||
|     }; | ||||
|  | ||||
|     BufferQueue(u32 id, u64 layer_id); | ||||
|     explicit BufferQueue(Kernel::KernelCore& kernel, u32 id, u64 layer_id); | ||||
|     ~BufferQueue(); | ||||
|  | ||||
|     enum class BufferTransformFlags : u32 { | ||||
|   | ||||
| @@ -83,7 +83,7 @@ std::optional<u64> NVFlinger::CreateLayer(u64 display_id) { | ||||
|  | ||||
|     const u64 layer_id = next_layer_id++; | ||||
|     const u32 buffer_queue_id = next_buffer_queue_id++; | ||||
|     buffer_queues.emplace_back(buffer_queue_id, layer_id); | ||||
|     buffer_queues.emplace_back(system.Kernel(), buffer_queue_id, layer_id); | ||||
|     display->CreateLayer(layer_id, buffer_queues.back()); | ||||
|     return layer_id; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user