Add interface for command buffers
This commit is contained in:
parent
765e263979
commit
b44b3e651b
14
src/renderer/vk/command_buffers.c
Normal file
14
src/renderer/vk/command_buffers.c
Normal file
@ -0,0 +1,14 @@
|
||||
#include "runtime/renderer_api.h"
|
||||
|
||||
rt_result
|
||||
RT_RENDERER_API_FN(AllocCommandBuffers)(uint32_t count,
|
||||
rt_render_command_buffer_handle *p_command_buffers,
|
||||
rt_gpu_semaphore_handle *p_semaphores) {
|
||||
return RT_SUCCESS;
|
||||
}
|
||||
|
||||
rt_result
|
||||
RT_RENDERER_API_FN(SubmitCommandBuffers)(uint32_t count,
|
||||
const rt_render_command_buffer_handle *command_buffers) {
|
||||
return RT_SUCCESS;
|
||||
}
|
6
src/renderer/vk/command_buffers.h
Normal file
6
src/renderer/vk/command_buffers.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef RT_COMMAND_BUFFERS_H
|
||||
#define RT_COMMAND_BUFFERS_H
|
||||
|
||||
#include "runtime/runtime.h"
|
||||
|
||||
#endif
|
@ -9,11 +9,13 @@ if vk_dep.found()
|
||||
vk_inc_dep = vk_dep.partial_dependency(compile_args : true, includes : true)
|
||||
vk_renderer_lib = library('rtvk',
|
||||
# Project Sources
|
||||
'command_buffers.h',
|
||||
'gpu.h',
|
||||
'pipelines.h',
|
||||
'render_targets.h',
|
||||
'swapchain.h',
|
||||
|
||||
'command_buffers.c',
|
||||
'helper.c',
|
||||
'init.c',
|
||||
'pipelines.c',
|
||||
|
@ -18,7 +18,8 @@ rt_renderer_api g_renderer;
|
||||
static rt_dynlib _renderer_lib;
|
||||
static bool _renderer_loaded = false;
|
||||
|
||||
RT_DLLEXPORT RT_CVAR_S(rt_Renderer, "Select the render backend. Available options: [vk], Default: vk", "vk");
|
||||
RT_DLLEXPORT
|
||||
RT_CVAR_S(rt_Renderer, "Select the render backend. Available options: [vk], Default: vk", "vk");
|
||||
|
||||
#ifdef RT_STATIC_LIB
|
||||
extern void RT_RENDERER_API_FN(RegisterCVars)(void);
|
||||
@ -29,6 +30,12 @@ extern void RT_RENDERER_API_FN(DestroyPipeline)(rt_pipeline_handle);
|
||||
extern rt_render_target_handle
|
||||
RT_RENDERER_API_FN(CreateRenderTarget)(const rt_render_target_info *);
|
||||
extern void RT_RENDERER_API_FN(DestroyRenderTarget)(rt_render_target_handle);
|
||||
extern rt_result
|
||||
RT_RENDERER_API_FN(AllocCommandBuffers)(uint32_t count,
|
||||
rt_render_command_buffer_handle *p_command_buffers,
|
||||
rt_gpu_semaphore_handle *p_semaphores);
|
||||
extern rt_result RT_RENDERER_API_FN(
|
||||
SubmitCommandBuffers)(uint32_t count, const rt_render_command_buffer_handle *command_buffers);
|
||||
#endif
|
||||
|
||||
extern rt_result InitFramegraphManager(void);
|
||||
@ -59,6 +66,8 @@ static bool LoadRenderer(void) {
|
||||
RETRIEVE_SYMBOL(DestroyPipeline, rt_destroy_pipeline_fn);
|
||||
RETRIEVE_SYMBOL(CreateRenderTarget, rt_create_render_target_fn);
|
||||
RETRIEVE_SYMBOL(DestroyRenderTarget, rt_destroy_render_target_fn);
|
||||
RETRIEVE_SYMBOL(AllocCommandBuffers, rt_alloc_command_buffers_fn);
|
||||
RETRIEVE_SYMBOL(SubmitCommandBuffers, rt_submit_command_buffers_fn);
|
||||
} else {
|
||||
rtReportError("GFX",
|
||||
"Unsupported renderer backend: (%s) %s",
|
||||
@ -75,6 +84,8 @@ static bool LoadRenderer(void) {
|
||||
g_renderer.DestroyPipeline = &rtRenDestroyPipeline;
|
||||
g_renderer.CreateRenderTarget = &rtRenCreateRenderTarget;
|
||||
g_renderer.DestroyRenderTarget = &rtRenDestroyRenderTarget;
|
||||
g_renderer.AllocCommandBuffers = &rtRenAllocCommandBuffers;
|
||||
g_renderer.SubmitCommandBuffers = &rtRenSubmitCommandBuffers;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ runtime_lib = library('rt',
|
||||
'jobs.h',
|
||||
'main_loop.h',
|
||||
'mem_arena.h',
|
||||
'render_list.h',
|
||||
'renderer_api.h',
|
||||
'resources.h',
|
||||
'runtime.h',
|
||||
|
4
src/runtime/render_list.h
Normal file
4
src/runtime/render_list.h
Normal file
@ -0,0 +1,4 @@
|
||||
#ifndef RT_RENDER_LIST_H
|
||||
#define RT_RENDER_LIST_H
|
||||
|
||||
#endif
|
@ -99,6 +99,7 @@ typedef struct {
|
||||
RT_RENDER_BACKEND_HANDLE(rt_pipeline_handle);
|
||||
RT_RENDER_BACKEND_HANDLE(rt_render_target_handle);
|
||||
RT_RENDER_BACKEND_HANDLE(rt_render_command_buffer_handle);
|
||||
RT_RENDER_BACKEND_HANDLE(rt_gpu_semaphore_handle);
|
||||
|
||||
#undef RT_RENDER_BACKEND_HANDLE
|
||||
|
||||
@ -109,6 +110,12 @@ typedef rt_pipeline_handle rt_compile_pipeline_fn(const rt_pipeline_info *info);
|
||||
typedef void rt_destroy_pipeline_fn(rt_pipeline_handle handle);
|
||||
typedef rt_render_target_handle rt_create_render_target_fn(const rt_render_target_info *info);
|
||||
typedef void rt_destroy_render_target_fn(rt_render_target_handle handle);
|
||||
typedef rt_result rt_alloc_command_buffers_fn(uint32_t count,
|
||||
rt_render_command_buffer_handle *p_command_buffers,
|
||||
rt_gpu_semaphore_handle *p_semaphores);
|
||||
typedef rt_result
|
||||
rt_submit_command_buffers_fn(uint32_t count,
|
||||
const rt_render_command_buffer_handle *command_buffers);
|
||||
|
||||
typedef struct {
|
||||
rt_register_renderer_cvars_fn *RegisterCVars;
|
||||
@ -118,6 +125,8 @@ typedef struct {
|
||||
rt_destroy_pipeline_fn *DestroyPipeline;
|
||||
rt_create_render_target_fn *CreateRenderTarget;
|
||||
rt_destroy_render_target_fn *DestroyRenderTarget;
|
||||
rt_alloc_command_buffers_fn *AllocCommandBuffers;
|
||||
rt_submit_command_buffers_fn *SubmitCommandBuffers;
|
||||
} rt_renderer_api;
|
||||
|
||||
#define RT_RENDERER_API_FN(name) RT_DLLEXPORT rtRen##name
|
||||
|
Loading…
Reference in New Issue
Block a user