Add DX12RenderDriver class stub
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
|
set(NOVA_DX12 ON CACHE BOOL "Enable DirectX 12 support")
|
||||||
set(NOVA_VULKAN ON CACHE BOOL "Enable Vulkan support")
|
set(NOVA_VULKAN ON CACHE BOOL "Enable Vulkan support")
|
||||||
set(NOVA_WAYLAND ON CACHE BOOL "Enable Wayland support")
|
set(NOVA_WAYLAND ON CACHE BOOL "Enable Wayland support")
|
||||||
set(NOVA_X11 ON CACHE BOOL "Enable X11 support")
|
set(NOVA_X11 ON CACHE BOOL "Enable X11 support")
|
||||||
@@ -26,8 +27,15 @@ else ()
|
|||||||
${ENGINE_SRC}
|
${ENGINE_SRC}
|
||||||
drivers/linux/system_driver.cpp
|
drivers/linux/system_driver.cpp
|
||||||
)
|
)
|
||||||
|
set(NOVA_DX12 OFF)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (NOVA_DX12)
|
||||||
|
set(ENGINE_SRC
|
||||||
|
${ENGINE_SRC}
|
||||||
|
drivers/dx12/render_driver.cpp
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
if (NOVA_VULKAN)
|
if (NOVA_VULKAN)
|
||||||
find_package(Vulkan REQUIRED)
|
find_package(Vulkan REQUIRED)
|
||||||
set(ENGINE_SRC
|
set(ENGINE_SRC
|
||||||
@@ -83,6 +91,7 @@ set(ENGINE_LIBS_PUBLIC
|
|||||||
spdlog::spdlog
|
spdlog::spdlog
|
||||||
)
|
)
|
||||||
set(ENGINE_DEFS
|
set(ENGINE_DEFS
|
||||||
|
$<$<BOOL:${NOVA_DX12}>:NOVA_DX12>
|
||||||
$<$<BOOL:${NOVA_VULKAN}>:NOVA_VULKAN>
|
$<$<BOOL:${NOVA_VULKAN}>:NOVA_VULKAN>
|
||||||
$<$<BOOL:${NOVA_WAYLAND}>:NOVA_WAYLAND>
|
$<$<BOOL:${NOVA_WAYLAND}>:NOVA_WAYLAND>
|
||||||
$<$<BOOL:${NOVA_X11}>:NOVA_X11>
|
$<$<BOOL:${NOVA_X11}>:NOVA_X11>
|
||||||
|
|||||||
@@ -7,5 +7,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace Nova {
|
namespace Nova {
|
||||||
enum class RenderAPI { VULKAN };
|
enum class RenderAPI { DX12, VULKAN };
|
||||||
} // namespace Nova
|
} // namespace Nova
|
||||||
|
|||||||
19
engine/src/drivers/dx12/render_driver.cpp
Normal file
19
engine/src/drivers/dx12/render_driver.cpp
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "drivers/dx12/render_driver.h"
|
||||||
|
|
||||||
|
#include <nova/core/debug.h>
|
||||||
|
|
||||||
|
using namespace Nova;
|
||||||
|
|
||||||
|
DX12RenderDriver::DX12RenderDriver() {
|
||||||
|
NOVA_AUTO_TRACE();
|
||||||
|
}
|
||||||
|
|
||||||
|
DX12RenderDriver::~DX12RenderDriver() {
|
||||||
|
NOVA_AUTO_TRACE();
|
||||||
|
}
|
||||||
17
engine/src/drivers/dx12/render_driver.h
Normal file
17
engine/src/drivers/dx12/render_driver.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <nova/render/render_driver.h>
|
||||||
|
|
||||||
|
namespace Nova {
|
||||||
|
class DX12RenderDriver final : public RenderDriver {
|
||||||
|
public:
|
||||||
|
DX12RenderDriver();
|
||||||
|
~DX12RenderDriver() override;
|
||||||
|
};
|
||||||
|
} // namespace Nova
|
||||||
@@ -4,6 +4,9 @@
|
|||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef NOVA_DX12
|
||||||
|
#include "drivers/dx12/render_driver.h"
|
||||||
|
#endif
|
||||||
#ifdef NOVA_VULKAN
|
#ifdef NOVA_VULKAN
|
||||||
#include "drivers/vulkan/render_driver.h"
|
#include "drivers/vulkan/render_driver.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -22,6 +25,11 @@ void Renderer::init(const RenderAPI api) {
|
|||||||
NOVA_ASSERT(!s_driver);
|
NOVA_ASSERT(!s_driver);
|
||||||
|
|
||||||
switch (api) {
|
switch (api) {
|
||||||
|
#ifdef NOVA_DX12
|
||||||
|
case RenderAPI::DX12:
|
||||||
|
s_driver = std::make_unique<DX12RenderDriver>();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef NOVA_VULKAN
|
#ifdef NOVA_VULKAN
|
||||||
case RenderAPI::VULKAN:
|
case RenderAPI::VULKAN:
|
||||||
s_driver = std::make_unique<VulkanRenderDriver>();
|
s_driver = std::make_unique<VulkanRenderDriver>();
|
||||||
|
|||||||
Reference in New Issue
Block a user