diff options
| author | 2020-01-16 22:54:15 -0300 | |
|---|---|---|
| committer | 2020-01-16 22:54:15 -0300 | |
| commit | 38e789c761e6443bda33d55ae5b3c06802e33ca0 (patch) | |
| tree | 21073489cdd1e644bb50bfa4939c9d4acff66ae0 /src/video_core/renderer_vulkan | |
| parent | Merge pull request #3300 from ReinUsesLisp/vk-texture-cache (diff) | |
| download | yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.tar.gz yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.tar.xz yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.zip | |
renderer_vulkan: Add header as placeholder
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/renderer_vulkan.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h new file mode 100644 index 000000000..a472c5dc9 --- /dev/null +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | // Copyright 2018 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <optional> | ||
| 8 | #include <vector> | ||
| 9 | #include "video_core/renderer_base.h" | ||
| 10 | #include "video_core/renderer_vulkan/declarations.h" | ||
| 11 | |||
| 12 | namespace Core { | ||
| 13 | class System; | ||
| 14 | } | ||
| 15 | |||
| 16 | namespace Vulkan { | ||
| 17 | |||
| 18 | class VKBlitScreen; | ||
| 19 | class VKDevice; | ||
| 20 | class VKFence; | ||
| 21 | class VKMemoryManager; | ||
| 22 | class VKResourceManager; | ||
| 23 | class VKSwapchain; | ||
| 24 | class VKScheduler; | ||
| 25 | class VKImage; | ||
| 26 | |||
| 27 | struct VKScreenInfo { | ||
| 28 | VKImage* image{}; | ||
| 29 | u32 width{}; | ||
| 30 | u32 height{}; | ||
| 31 | bool is_srgb{}; | ||
| 32 | }; | ||
| 33 | |||
| 34 | class RendererVulkan final : public VideoCore::RendererBase { | ||
| 35 | public: | ||
| 36 | explicit RendererVulkan(Core::Frontend::EmuWindow& window, Core::System& system); | ||
| 37 | ~RendererVulkan() override; | ||
| 38 | |||
| 39 | /// Swap buffers (render frame) | ||
| 40 | void SwapBuffers(const Tegra::FramebufferConfig* framebuffer) override; | ||
| 41 | |||
| 42 | /// Initialize the renderer | ||
| 43 | bool Init() override; | ||
| 44 | |||
| 45 | /// Shutdown the renderer | ||
| 46 | void ShutDown() override; | ||
| 47 | |||
| 48 | private: | ||
| 49 | std::optional<vk::DebugUtilsMessengerEXT> CreateDebugCallback( | ||
| 50 | const vk::DispatchLoaderDynamic& dldi); | ||
| 51 | |||
| 52 | bool PickDevices(const vk::DispatchLoaderDynamic& dldi); | ||
| 53 | |||
| 54 | void Report() const; | ||
| 55 | |||
| 56 | Core::System& system; | ||
| 57 | |||
| 58 | vk::Instance instance; | ||
| 59 | vk::SurfaceKHR surface; | ||
| 60 | |||
| 61 | VKScreenInfo screen_info; | ||
| 62 | |||
| 63 | UniqueDebugUtilsMessengerEXT debug_callback; | ||
| 64 | std::unique_ptr<VKDevice> device; | ||
| 65 | std::unique_ptr<VKSwapchain> swapchain; | ||
| 66 | std::unique_ptr<VKMemoryManager> memory_manager; | ||
| 67 | std::unique_ptr<VKResourceManager> resource_manager; | ||
| 68 | std::unique_ptr<VKScheduler> scheduler; | ||
| 69 | std::unique_ptr<VKBlitScreen> blit_screen; | ||
| 70 | }; | ||
| 71 | |||
| 72 | } // namespace Vulkan | ||