From 33a4cebc225454dfd8dc9a7263fe1f4bfb8a9748 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 14 Feb 2019 12:52:46 -0300 Subject: vk_resource_manager: Add VKResource interface VKResource is an interface that gets signaled by a fence when it is free to be reused. --- .../renderer_vulkan/vk_resource_manager.cpp | 14 ++++++++++++ .../renderer_vulkan/vk_resource_manager.h | 26 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/video_core/renderer_vulkan/vk_resource_manager.cpp create mode 100644 src/video_core/renderer_vulkan/vk_resource_manager.h (limited to 'src/video_core/renderer_vulkan') diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.cpp b/src/video_core/renderer_vulkan/vk_resource_manager.cpp new file mode 100644 index 000000000..46563748e --- /dev/null +++ b/src/video_core/renderer_vulkan/vk_resource_manager.cpp @@ -0,0 +1,14 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "video_core/renderer_vulkan/declarations.h" +#include "video_core/renderer_vulkan/vk_resource_manager.h" + +namespace Vulkan { + +VKResource::VKResource() = default; + +VKResource::~VKResource() = default; + +} // namespace Vulkan diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.h b/src/video_core/renderer_vulkan/vk_resource_manager.h new file mode 100644 index 000000000..21a53abcd --- /dev/null +++ b/src/video_core/renderer_vulkan/vk_resource_manager.h @@ -0,0 +1,26 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "video_core/renderer_vulkan/declarations.h" + +namespace Vulkan { + +class VKFence; + +/// Interface for a Vulkan resource +class VKResource { +public: + explicit VKResource(); + virtual ~VKResource(); + + /** + * Signals the object that an owning fence has been signaled. + * @param signaling_fence Fence that signals its usage end. + */ + virtual void OnFenceRemoval(VKFence* signaling_fence) = 0; +}; + +} // namespace Vulkan -- cgit v1.2.3