Redefine ID types to be actual pointers
Redefined various ID types to be aliases of pointers instead of casting a uintptr_t to the needed pointer. e.g. SurfaceID = Surface*
This commit is contained in:
@@ -7,17 +7,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <nova/api.h>
|
||||
#include <nova/platform/window_api.h>
|
||||
#include <nova/platform/window_fwd.h>
|
||||
#include <nova/render/render_fwd.h>
|
||||
#include <nova/types.h>
|
||||
|
||||
#include <string_view>
|
||||
|
||||
namespace Nova {
|
||||
using WindowID = uptr;
|
||||
using SurfaceID = uptr;
|
||||
|
||||
class RenderDriver;
|
||||
|
||||
class NOVA_API WindowDriver {
|
||||
public:
|
||||
static WindowDriver* create();
|
||||
|
||||
@@ -8,4 +8,9 @@
|
||||
|
||||
namespace Nova {
|
||||
enum class WindowAPI { WAYLAND, WINDOWS, X11 };
|
||||
|
||||
class WindowDriver;
|
||||
|
||||
struct Window;
|
||||
using WindowID = Window*;
|
||||
} // namespace Nova
|
||||
@@ -7,6 +7,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <nova/api.h>
|
||||
#include <nova/render/render_fwd.h>
|
||||
#include <nova/types.h>
|
||||
|
||||
#include <initializer_list>
|
||||
@@ -14,10 +15,6 @@
|
||||
#include <string>
|
||||
|
||||
namespace Nova {
|
||||
using SurfaceID = uptr;
|
||||
|
||||
class RenderDriver;
|
||||
|
||||
struct NOVA_API RenderDevice {
|
||||
enum class Vendor { UNKNOWN = 0, INTEL = 0x8086, AMD = 0x1002, NVIDIA = 0x10de };
|
||||
enum class Type { OTHER = 0, INTEGRATED = 1, DISCRETE = 2, VIRTUAL = 3, CPU = 4 };
|
||||
@@ -29,7 +26,7 @@ namespace Nova {
|
||||
void* handle;
|
||||
|
||||
static u32 choose_device(RenderDriver* driver, std::span<const SurfaceID> surfaces = {});
|
||||
static u32 choose_device(RenderDriver* driver, std::initializer_list<SurfaceID> surfaces) {
|
||||
static u32 choose_device(RenderDriver* driver, std::initializer_list<const SurfaceID> surfaces) {
|
||||
return choose_device(driver, {surfaces.begin(), surfaces.end()});
|
||||
}
|
||||
static u32 choose_device(RenderDriver* driver, SurfaceID surface) {
|
||||
|
||||
@@ -7,18 +7,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <nova/api.h>
|
||||
#include <nova/render/render_api.h>
|
||||
#include <nova/platform/window_fwd.h>
|
||||
#include <nova/render/render_fwd.h>
|
||||
#include <nova/types.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace Nova {
|
||||
using WindowID = uptr;
|
||||
using SurfaceID = uptr;
|
||||
|
||||
struct RenderDevice;
|
||||
class WindowDriver;
|
||||
|
||||
class NOVA_API RenderDriver {
|
||||
public:
|
||||
static RenderDriver* create(RenderAPI api, WindowDriver* window_driver = nullptr);
|
||||
|
||||
@@ -8,4 +8,10 @@
|
||||
|
||||
namespace Nova {
|
||||
enum class RenderAPI { DX12, VULKAN };
|
||||
|
||||
class RenderDriver;
|
||||
struct RenderDevice;
|
||||
|
||||
struct Surface;
|
||||
using SurfaceID = Surface*;
|
||||
} // namespace Nova
|
||||
@@ -7,8 +7,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <nova/api.h>
|
||||
#include <nova/render/render_api.h>
|
||||
#include <nova/render/render_driver.h>
|
||||
#include <nova/render/render_fwd.h>
|
||||
|
||||
namespace Nova {
|
||||
class NOVA_API Renderer {
|
||||
|
||||
Reference in New Issue
Block a user