diff --git a/external/parallel-rdp/ParallelRDPWrapper.cpp b/external/parallel-rdp/ParallelRDPWrapper.cpp index aff415af..ff792b76 100644 --- a/external/parallel-rdp/ParallelRDPWrapper.cpp +++ b/external/parallel-rdp/ParallelRDPWrapper.cpp @@ -81,9 +81,9 @@ void ParallelRDP::LoadWSIPlatform(const std::shared_ptr &instan windowInfo = newWindowInfo; } -void ParallelRDP::Init(const std::shared_ptr &factory, const std::shared_ptr &wsiPlatform, +void ParallelRDP::Init(const std::shared_ptr &wsiPlatform, const std::shared_ptr &newWindowInfo, const u8 *rdram) { - LoadWSIPlatform(factory, wsiPlatform, newWindowInfo); + LoadWSIPlatform(nullptr, wsiPlatform, newWindowInfo); ResourceLayout vertLayout; ResourceLayout fragLayout; diff --git a/external/parallel-rdp/ParallelRDPWrapper.hpp b/external/parallel-rdp/ParallelRDPWrapper.hpp index 579b5177..b69af360 100644 --- a/external/parallel-rdp/ParallelRDPWrapper.hpp +++ b/external/parallel-rdp/ParallelRDPWrapper.hpp @@ -19,7 +19,7 @@ public: virtual ~WindowInfo() = default; }; - void Init(const std::shared_ptr &, const std::shared_ptr &, + void Init(const std::shared_ptr &, const std::shared_ptr &, const u8 *); ParallelRDP() = default; diff --git a/src/frontend/EmuThread.cpp b/src/frontend/EmuThread.cpp index fdb7eb0f..54ac8675 100644 --- a/src/frontend/EmuThread.cpp +++ b/src/frontend/EmuThread.cpp @@ -8,7 +8,7 @@ EmuThread::EmuThread(const std::shared_ptr &core, double &fps, Render void EmuThread::start() noexcept { thread = std::thread([this]() { isRunning = true; - core->parallel.Init(renderWidget.imGuiVkInstanceFactory, renderWidget.wsiPlatform, renderWidget.windowInfo, + core->parallel.Init(renderWidget.wsiPlatform, renderWidget.windowInfo, core->cpu->GetMem().GetRDRAMPtr()); auto lastSample = std::chrono::high_resolution_clock::now(); diff --git a/src/frontend/KaizenGui.cpp b/src/frontend/KaizenGui.cpp index 10751cba..90b6ce94 100644 --- a/src/frontend/KaizenGui.cpp +++ b/src/frontend/KaizenGui.cpp @@ -3,7 +3,7 @@ #include #include -KaizenGui::KaizenGui() noexcept : core(std::make_shared()), vulkanWidget(core), emuThread(core, fpsCounter, vulkanWidget, settingsWindow) { +KaizenGui::KaizenGui() noexcept : window(SDL_CreateWindow("Kaizen", 1280, 720, SDL_WINDOW_HIGH_PIXEL_DENSITY | SDL_WINDOW_RESIZABLE | SDL_WINDOW_VULKAN)), core(std::make_shared()), vulkanWidget(core, window), emuThread(core, fpsCounter, vulkanWidget, settingsWindow) { emuExitFunc = [&]() { quit = true; if (emuThread.isRunning) { diff --git a/src/frontend/KaizenGui.hpp b/src/frontend/KaizenGui.hpp index 2c2726af..8e4691d2 100644 --- a/src/frontend/KaizenGui.hpp +++ b/src/frontend/KaizenGui.hpp @@ -6,6 +6,7 @@ #include class KaizenGui final { + std::shared_ptr window; public: explicit KaizenGui() noexcept; double fpsCounter; diff --git a/src/frontend/RenderWidget.cpp b/src/frontend/RenderWidget.cpp index 11151d06..24de5f31 100644 --- a/src/frontend/RenderWidget.cpp +++ b/src/frontend/RenderWidget.cpp @@ -3,17 +3,10 @@ #include #include -RenderWidget::RenderWidget(const std::shared_ptr &core) { +RenderWidget::RenderWidget(const std::shared_ptr &core, const std::shared_ptr& window) { if (!Vulkan::Context::init_loader(nullptr)) { Util::panic("Could not initialize Vulkan ICD"); } - - imGuiVkInstanceFactory = std::make_shared(); - //windowHandle()->setVulkanInstance(&imGuiVkInstanceFactory->create_instance()); - //windowHandle()->create(); - - //wsiPlatform = std::make_shared(core, windowHandle()); - // windowInfo = std::make_shared(windowHandle()); } void ImGuiWSIPlatform::poll_input() { diff --git a/src/frontend/RenderWidget.hpp b/src/frontend/RenderWidget.hpp index e5b45a62..663c424d 100644 --- a/src/frontend/RenderWidget.hpp +++ b/src/frontend/RenderWidget.hpp @@ -7,16 +7,9 @@ namespace n64 { struct Core; } -struct ImGuiInstanceFactory final : Vulkan::InstanceFactory { - VkInstance create_instance(const VkInstanceCreateInfo *info) override { - } - - VkInstance instance; -}; - class ImGuiParallelRdpWindowInfo final : public ParallelRDP::WindowInfo { public: - explicit ImGuiParallelRdpWindowInfo(SDL_Window *window) : window(window) {} + explicit ImGuiParallelRdpWindowInfo(const std::shared_ptr window) : window(window) {} CoordinatePair get_window_size() override { int w,h; SDL_GetWindowSizeInPixels(window.get(), &w, &h); @@ -29,7 +22,7 @@ private: class ImGuiWSIPlatform final : public Vulkan::WSIPlatform { public: - explicit ImGuiWSIPlatform(const std::shared_ptr &core, SDL_Window *window) : window(window), core(core) {} + explicit ImGuiWSIPlatform(const std::shared_ptr &core, const std::shared_ptr &window) : window(window), core(core) {} std::vector get_instance_extensions() override { auto vec = std::vector(); @@ -80,10 +73,8 @@ private: class RenderWidget final { public: - [[nodiscard]] VkInstance instance() const { return imGuiVkInstanceFactory->instance; } - explicit RenderWidget(const std::shared_ptr &); + explicit RenderWidget(const std::shared_ptr &, const std::shared_ptr&); std::shared_ptr windowInfo; std::shared_ptr wsiPlatform; - std::shared_ptr imGuiVkInstanceFactory; };