mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-20 04:29:13 +12:00
Stub Vulkan backend support
A lot of the architecture of the emulator here does not allow for vulkan to initialize easily since it involves a bit of data to be exchanged between SDL and Vulkan. This commit just adds the foundational linkage and library code for vulkan support.
This commit is contained in:
parent
c98e5fb631
commit
d2241a25bc
7 changed files with 102 additions and 3 deletions
|
@ -12,6 +12,9 @@
|
|||
#ifdef PANDA3DS_ENABLE_OPENGL
|
||||
#include "renderer_gl/renderer_gl.hpp"
|
||||
#endif
|
||||
#ifdef PANDA3DS_ENABLE_VULKAN
|
||||
#include "renderer_vk/renderer_vk.hpp"
|
||||
#endif
|
||||
|
||||
using namespace Floats;
|
||||
|
||||
|
@ -38,11 +41,12 @@ GPU::GPU(Memory& mem, EmulatorConfig& config) : mem(mem), config(config) {
|
|||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PANDA3DS_ENABLE_VULKAN
|
||||
case RendererType::Vulkan: {
|
||||
Helpers::panic("Vulkan is not supported yet, please pick another renderer");
|
||||
renderer.reset(new RendererVK(*this, regs));
|
||||
break;
|
||||
}
|
||||
|
||||
#endif
|
||||
default: {
|
||||
Helpers::panic("Rendering backend not supported: %s", Renderer::typeToString(config.rendererType));
|
||||
break;
|
||||
|
|
19
src/core/renderer_vk/renderer_vk.cpp
Normal file
19
src/core/renderer_vk/renderer_vk.cpp
Normal file
|
@ -0,0 +1,19 @@
|
|||
#include "renderer_vk/renderer_vk.hpp"
|
||||
|
||||
RendererVK::RendererVK(GPU& gpu, const std::array<u32, regNum>& internalRegs) : Renderer(gpu, internalRegs) {}
|
||||
|
||||
RendererVK::~RendererVK() {}
|
||||
|
||||
void RendererVK::reset() {}
|
||||
|
||||
void RendererVK::display() {}
|
||||
|
||||
void RendererVK::initGraphicsContext() { static vk::DynamicLoader dl; }
|
||||
|
||||
void RendererVK::clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) {}
|
||||
|
||||
void RendererVK::displayTransfer(u32 inputAddr, u32 outputAddr, u32 inputSize, u32 outputSize, u32 flags) {}
|
||||
|
||||
void RendererVK::drawVertices(PICA::PrimType primType, std::span<const PICA::Vertex> vertices) {}
|
||||
|
||||
void RendererVK::screenshot(const std::string& name) {}
|
3
src/core/renderer_vk/vulkan_api.cpp
Normal file
3
src/core/renderer_vk/vulkan_api.cpp
Normal file
|
@ -0,0 +1,3 @@
|
|||
#include "renderer_vk/vulkan_api.hpp"
|
||||
|
||||
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE;
|
|
@ -52,6 +52,16 @@ Emulator::Emulator()
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef PANDA3DS_ENABLE_VULKAN
|
||||
if (config.rendererType == RendererType::Vulkan) {
|
||||
window = SDL_CreateWindow("Alber", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_VULKAN);
|
||||
|
||||
if (window == nullptr) {
|
||||
Helpers::panic("Window creation failed: %s", SDL_GetError());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (SDL_WasInit(SDL_INIT_GAMECONTROLLER)) {
|
||||
gameController = SDL_GameControllerOpen(0);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue