49a0a4b78a
Add proper queue init and fetch functionality to RenderDriver
2025-05-04 02:54:06 +10:00
7039fdf93e
Misc bug and typo fixes
2025-05-03 17:28:47 +10:00
e18d165217
Add Queue, CommandPool and CommandBuffer functions to RenderDriver
2025-05-01 01:35:25 +10:00
22f9878d38
Add RenderPass creation to RenderDriver::create_swapchain()
2025-04-30 17:21:46 +10:00
e710b80f36
Move ShaderStage and name into Shader struct
...
These fields will eventually be determined automatically but for now it
makes more sense to pass them as arguements to RenderDriver::create_shader.
2025-04-23 00:25:15 +10:00
74eba7266e
Add VertexAttribute and VertexBinding to GraphicsPipelineParams
2025-04-23 00:08:35 +10:00
4bcabdebd1
Add RenderDriver::create_render_pass() stub
2025-04-22 19:00:36 +10:00
8d398b9c00
Started implementing Pipeline system for RenderDriver
2025-04-22 13:04:14 +10:00
c7249eeb62
Add create/destroy_shader functions to RenderDriver
2025-04-18 22:27:15 +10:00
47a07ea6a8
Add create/resize/destroy_swapchain functions to RenderDriver
2025-04-18 20:43:17 +10:00
b23d2d9c3c
Add Vec2, Vec3 and Vec4 structs (incomplete)
2025-04-17 02:07:40 +10:00
1f43f629e2
Add pragma.h header for various long pragma definitions
...
e.g. NOVA_BEGIN/END_ALLOW_ANONYMOUS_TYPES
2025-04-17 02:00:33 +10:00
4c6712e2fe
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*
2025-04-16 23:46:00 +10:00
b003eca687
Rename WindowAPI::WIN32 to WindowAPI::WINDOWS
...
Renamed to avoid conflict with WIN32 macro when compiling on Windows.
2025-04-13 10:06:23 +10:00
859547570b
Rename local parameter variables to use p_ prefix
2025-04-13 10:04:53 +10:00
930bba636e
Check surface support when choosing device
2025-04-12 20:27:30 +10:00
6cbf8df17a
Add get_api() and get_api_name() to WindowDriver
2025-04-12 10:32:30 +10:00
6e1393ce64
Add basic surface handling to RenderDriver and WindowDriver
...
This will likely require significant rework but it will do for now. A
considerations worth thinking about:
- What happends when the WindowDriver destroys a window, what happens to
the corresponding surface?
2025-04-10 17:53:48 +10:00
536a1e8773
Misc fixes
2025-04-08 22:10:07 +10:00
6055ae1ebc
Add WindowDriver::beep function
2025-04-08 18:55:27 +10:00
9ab1b306b3
Rename RenderDriver::create_device to RenderDriver::select_device
2025-04-08 18:43:06 +10:00
608af1b866
Moved RenderDriver/WindorDriver init code to static create functions
2025-04-08 18:24:33 +10:00
286dd0fb0e
Add basic Window creation to X11WindowDriver
2025-04-05 07:07:54 +10:00
5e7c94ba8f
Rename SystemDriver to WindowDriver and removed LinuxSystemDriver
...
Hopefully the last time I change my mind on what I want these to be
called. Reason behind this change is to minimize scope of a single
module. The WindowDriver should really only handle stuff related to
windows. If we need OS level functionality (e.g. get_os_name), that
should be the responsibility of the OS driver (or whatever that ends
being called). Remember, composition over inheritance.
2025-04-03 04:47:22 +10:00
6a77722ff5
Use preprocessor to exclude platform specify code instead of cmake
2025-03-31 22:17:35 +10:00
a6962bfba8
Add get_surface_extension to X11SystenDriver
2025-03-28 22:30:03 +10:00
d64b283319
Add DX12RenderDriver class stub
2025-03-28 18:51:46 +10:00
40cfa9901e
Conditionally compile different drivers
2025-03-28 18:36:37 +10:00
f727261a84
Rename Renderer::create to Renderer::init
...
All functions that the create/destroy a global static singleton should
use the names init and shutdown, while any static functions that
return/take a new object should use the names create and destroy.
e.g.
void Renderer::init() and void Renderer::shutdown()
Window* Window::create() and void Window::destroy(Window* window)
2025-03-28 13:46:59 +10:00
8eb5a39c4c
Add System, SystemDriver, Win32SystemDriver and X11SystemDriver classes
2025-03-28 13:36:24 +10:00
4e47c97539
Move VulkanRenderDriver::_pick_device to RenderDevice::choose_device
2025-03-27 15:07:24 +10:00
e1392f6f8e
Add RenderDevice::AUTO for create_device()
2025-03-19 21:57:32 +10:00
f968d0cb22
Add get_api_name() and get_api_version_string()
2025-03-19 20:11:44 +10:00
76b0e87f28
Add various assertions throughout renderer
2025-03-16 12:58:15 +10:00
ee2637cd36
Add RenderDriver::create_device()
2025-03-16 00:15:24 +10:00
f979b782cc
Add RenderDevice struct and driver accessor functions
2025-03-15 18:01:57 +10:00
a8f8555612
Add NOVA_FUNC_NAME macro
2025-03-14 20:41:03 +10:00
0d080e01b5
Fix _format_func_name with static (or other) qualifiers
2025-03-13 16:42:11 +10:00
c3e91e48a8
Add spdlog dependency and Debug class
2025-03-13 01:13:42 +10:00
8a635cc15f
Simplify static Renderer class implementation
2025-03-07 22:12:01 +10:00
3009a4c6d9
Add basic Renderer and RenderDriver classes
2025-02-12 00:59:35 +10:00
5f718ff966
Add common type aliases
2025-02-11 00:25:21 +10:00
a7a7deb938
Add NOVA_VERSION_ macro
2025-02-10 23:40:10 +10:00
f6bcee45bb
Add basic project setup with engine and editor subdirectories
2025-02-04 10:28:49 +10:00