Fill out DX12 backend
This commit is contained in:
parent
8e360fa971
commit
83acffbf5c
7 changed files with 32 additions and 78 deletions
|
@ -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")
|
||||
|
|
|
@ -33,4 +33,4 @@ endif()
|
|||
|
||||
if(ENABLE_WEBGPU)
|
||||
add_subdirectory(webgpu)
|
||||
endif()
|
||||
endif()
|
|
@ -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)
|
|
@ -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;
|
||||
};
|
10
engine/gfx/dx12/include/gfx_dx12.hpp
Executable file
10
engine/gfx/dx12/include/gfx_dx12.hpp
Executable file
|
@ -0,0 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include "gfx.hpp"
|
||||
|
||||
class gfx_dx12 : public GFX {
|
||||
public:
|
||||
bool initialize() override;
|
||||
|
||||
const char* getName() override;
|
||||
};
|
|
@ -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";
|
||||
}
|
19
engine/gfx/dx12/src/gfx_dx12.cpp
Executable file
19
engine/gfx/dx12/src/gfx_dx12.cpp
Executable file
|
@ -0,0 +1,19 @@
|
|||
#include "gfx_dx12.hpp"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <dxgi1_6.h>
|
||||
#include <d3dcompiler.h>
|
||||
|
||||
#include <wrl.h>
|
||||
|
||||
using namespace Microsoft::WRL;
|
||||
|
||||
ComPtr<ID3D12Device> g_Device;
|
||||
|
||||
bool gfx_dx12::initialize() {
|
||||
return true;
|
||||
}
|
||||
|
||||
const char* gfx_dx12::getName() {
|
||||
return "DX12";
|
||||
}
|
Reference in a new issue