diff --git a/CMakeLists.txt b/CMakeLists.txt index bc407d3..1cb7f5c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set(ENABLE_WINDOWS TRUE) set(ENABLE_VULKAN TRUE) + set(ENABLE_DX12 TRUE) set(NEEDS_HOSTED_SHADER_COMPILER FALSE) set(REQUIRED_SHADER_LANGUAGE "spirv") diff --git a/engine/gfx/CMakeLists.txt b/engine/gfx/CMakeLists.txt index c3888bf..4ab028d 100755 --- a/engine/gfx/CMakeLists.txt +++ b/engine/gfx/CMakeLists.txt @@ -33,4 +33,4 @@ endif() if(ENABLE_WEBGPU) add_subdirectory(webgpu) -endif() +endif() \ No newline at end of file diff --git a/engine/gfx/dx12/CMakeLists.txt b/engine/gfx/dx12/CMakeLists.txt index a3cde0c..d2f0fe5 100755 --- a/engine/gfx/dx12/CMakeLists.txt +++ b/engine/gfx/dx12/CMakeLists.txt @@ -1,3 +1,3 @@ -add_library(GFXDX12 STATIC src/gfx_dummy.cpp) +add_library(GFXDX12 STATIC src/gfx_dx12.cpp) target_include_directories(GFXDX12 PUBLIC include) target_link_libraries(GFXDX12 PUBLIC GFX) \ No newline at end of file diff --git a/engine/gfx/dx12/include/gfx_dummy.hpp b/engine/gfx/dx12/include/gfx_dummy.hpp deleted file mode 100755 index ec46911..0000000 --- a/engine/gfx/dx12/include/gfx_dummy.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "gfx.hpp" - -class GFXDummy : public GFX { -public: - bool initialize() override; - void initializeView(void* native_handle, uint32_t width, uint32_t height) override; - - // buffer operations - GFXBuffer* createBuffer(void* data, GFXSize size, GFXBufferUsage usage) override; - void copyBuffer(GFXBuffer* buffer, void* data, GFXSize offset, GFXSize size) override; - - // texture operations - GFXTexture* createTexture(uint32_t width, uint32_t height, GFXPixelFormat format, GFXStorageMode storageMode, GFXTextureUsage usage) override; - void copyTexture(GFXTexture* texture, void* data, GFXSize size) override; - - // framebuffer operations - GFXFramebuffer* createFramebuffer(GFXFramebufferCreateInfo& info) override; - - // render pass operations - GFXRenderPass* createRenderPass(GFXRenderPassCreateInfo& info) override; - - // pipeline operations - GFXPipeline* createPipeline(GFXPipelineCreateInfo& info) override; - - void render(GFXCommandBuffer* command_buffer) override; - - const char* getName() override; -}; diff --git a/engine/gfx/dx12/include/gfx_dx12.hpp b/engine/gfx/dx12/include/gfx_dx12.hpp new file mode 100755 index 0000000..cf154d5 --- /dev/null +++ b/engine/gfx/dx12/include/gfx_dx12.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include "gfx.hpp" + +class gfx_dx12 : public GFX { +public: + bool initialize() override; + + const char* getName() override; +}; diff --git a/engine/gfx/dx12/src/gfx_dummy.cpp b/engine/gfx/dx12/src/gfx_dummy.cpp deleted file mode 100755 index 05f3b8b..0000000 --- a/engine/gfx/dx12/src/gfx_dummy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "gfx_dummy.hpp" - -bool GFXDummy::initialize() { - return true; -} - -void GFXDummy::initializeView(void* native_handle, uint32_t width, uint32_t height) { - -} - -GFXBuffer* GFXDummy::createBuffer(void* data, GFXSize size, GFXBufferUsage usage) { - return nullptr; -} - -void GFXDummy::copyBuffer(GFXBuffer* buffer, void* data, GFXSize offset, GFXSize size) { - -} - -GFXTexture* GFXDummy::createTexture(uint32_t width, uint32_t height, GFXPixelFormat format, GFXStorageMode storageMode, GFXTextureUsage usage) { - return nullptr; -} - -void GFXDummy::copyTexture(GFXTexture* texture, void* data, GFXSize size) { - -} - - -GFXFramebuffer* GFXDummy::createFramebuffer(GFXFramebufferCreateInfo& info) { - return nullptr; -} - -GFXRenderPass* GFXDummy::createRenderPass(GFXRenderPassCreateInfo& info) { - return nullptr; -} - -GFXPipeline* GFXDummy::createPipeline(GFXPipelineCreateInfo& info) { - return nullptr; -} - -void GFXDummy::render(GFXCommandBuffer* command_buffer) { - -} - -const char* GFXDummy::getName() { - return "None"; -} diff --git a/engine/gfx/dx12/src/gfx_dx12.cpp b/engine/gfx/dx12/src/gfx_dx12.cpp new file mode 100755 index 0000000..ba7feda --- /dev/null +++ b/engine/gfx/dx12/src/gfx_dx12.cpp @@ -0,0 +1,19 @@ +#include "gfx_dx12.hpp" + +#include +#include +#include + +#include + +using namespace Microsoft::WRL; + +ComPtr g_Device; + +bool gfx_dx12::initialize() { + return true; +} + +const char* gfx_dx12::getName() { + return "DX12"; +}