Commit Graph

21 Commits

Author SHA1 Message Date
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
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
930bba636e Check surface support when choosing device 2025-04-12 20:27: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
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
d64b283319 Add DX12RenderDriver class stub 2025-03-28 18:51:46 +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
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
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