From f328200c651346d2a6bda97d7425c28ac09ee298 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 22 Jul 2023 20:24:49 +0300 Subject: [PATCH] Add empty sw renderer class --- CMakeLists.txt | 7 +++++-- include/renderer_sw/renderer_sw.hpp | 17 +++++++++++++++++ src/core/renderer_sw/renderer_sw.cpp | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 include/renderer_sw/renderer_sw.hpp create mode 100644 src/core/renderer_sw/renderer_sw.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d9c5b07..3af5ad00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,6 +126,8 @@ set(FS_SOURCE_FILES src/core/fs/archive_self_ncch.cpp src/core/fs/archive_save_d src/core/fs/archive_ext_save_data.cpp src/core/fs/archive_ncch.cpp ) +set(RENDERER_SW_SOURCE_FILES src/core/renderer_sw/renderer_sw.cpp) + set(HEADER_FILES include/emulator.hpp include/helpers.hpp include/termcolor.hpp include/cpu.hpp include/cpu_dynarmic.hpp include/memory.hpp include/renderer.hpp include/kernel/kernel.hpp include/dynarmic_cp15.hpp include/kernel/resource_limits.hpp include/kernel/kernel_types.hpp @@ -150,7 +152,7 @@ set(HEADER_FILES include/emulator.hpp include/helpers.hpp include/termcolor.hpp include/result/result_gsp.hpp include/result/result_kernel.hpp include/result/result_os.hpp include/crypto/aes_engine.hpp include/metaprogramming.hpp include/PICA/pica_vertex.hpp include/config.hpp include/services/ir_user.hpp include/httpserver.hpp include/cheats.hpp - include/action_replay.hpp + include/action_replay.hpp include/renderer_sw/renderer_sw.hpp ) set(THIRD_PARTY_SOURCE_FILES third_party/imgui/imgui.cpp @@ -169,6 +171,7 @@ source_group("Source Files\\Core\\Kernel" FILES ${KERNEL_SOURCE_FILES}) source_group("Source Files\\Core\\Loader" FILES ${LOADER_SOURCE_FILES}) source_group("Source Files\\Core\\Services" FILES ${SERVICE_SOURCE_FILES}) source_group("Source Files\\Core\\PICA" FILES ${PICA_SOURCE_FILES}) +source_group("Source Files\\Core\\Software Renderer" FILES ${RENDERER_SW_SOURCE_FILES}) source_group("Source Files\\Third Party" FILES ${THIRD_PARTY_SOURCE_FILES}) set(RENDERER_GL_SOURCE_FILES "") # Empty by default unless we are compiling with the GL renderer @@ -205,7 +208,7 @@ endif() source_group("Header Files\\Core" FILES ${HEADER_FILES}) set(ALL_SOURCES ${SOURCE_FILES} ${FS_SOURCE_FILES} ${CRYPTO_SOURCE_FILES} ${KERNEL_SOURCE_FILES} ${LOADER_SOURCE_FILES} ${SERVICE_SOURCE_FILES} - ${PICA_SOURCE_FILES} ${THIRD_PARTY_SOURCE_FILES} ${HEADER_FILES}) + ${RENDERER_SW_SOURCE_FILES} ${PICA_SOURCE_FILES} ${THIRD_PARTY_SOURCE_FILES} ${HEADER_FILES}) if(ENABLE_OPENGL) # Add the OpenGL source files to ALL_SOURCES diff --git a/include/renderer_sw/renderer_sw.hpp b/include/renderer_sw/renderer_sw.hpp new file mode 100644 index 00000000..f638a51e --- /dev/null +++ b/include/renderer_sw/renderer_sw.hpp @@ -0,0 +1,17 @@ +#include "renderer.hpp" + +class GPU; + +class RendererSw final : public Renderer { + public: + RendererSw(GPU& gpu, const std::array& internalRegs); + ~RendererSw() override; + + void reset() override; + void display() override; + void initGraphicsContext() override; + void clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) override; + void displayTransfer(u32 inputAddr, u32 outputAddr, u32 inputSize, u32 outputSize, u32 flags) override; + void drawVertices(PICA::PrimType primType, std::span vertices) override; + void screenshot(const std::string& name) override; +}; \ No newline at end of file diff --git a/src/core/renderer_sw/renderer_sw.cpp b/src/core/renderer_sw/renderer_sw.cpp new file mode 100644 index 00000000..77689699 --- /dev/null +++ b/src/core/renderer_sw/renderer_sw.cpp @@ -0,0 +1,20 @@ +#include "renderer_sw/renderer_sw.hpp" + +RendererSw::RendererSw(GPU& gpu, const std::array& internalRegs) : Renderer(gpu, internalRegs) {} +RendererSw::~RendererSw() {} + +void RendererSw::reset() { printf("RendererSW: Unimplemented reset call\n"); } +void RendererSw::display() { printf("RendererSW: Unimplemented display call\n"); } + +void RendererSw::initGraphicsContext() { printf("RendererSW: Unimplemented initGraphicsContext call\n"); } +void RendererSw::clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) { printf("RendererSW: Unimplemented clearBuffer call\n"); } + +void RendererSw::displayTransfer(u32 inputAddr, u32 outputAddr, u32 inputSize, u32 outputSize, u32 flags) { + printf("RendererSW: Unimplemented displayTransfer call\n"); +} + +void RendererSw::drawVertices(PICA::PrimType primType, std::span vertices) { + printf("RendererSW: Unimplemented drawVertices call\n"); +} + +void RendererSw::screenshot(const std::string& name) { printf("RendererSW: Unimplemented screenshot call\n"); } \ No newline at end of file