diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-05 12:48:05 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-05 12:48:05 +1000 |
commit | dfb6adbcbcc7d50b770b6d5ea82efdd8f8c32e25 (patch) | |
tree | a470b91a90716d7ea46fde53ed395449c24583a2 /archive/src/ral/ral_common.h | |
parent | 54354e32c6498cc7f8839ab4deb1208d37216cc5 (diff) |
delete documentation workflow
Diffstat (limited to 'archive/src/ral/ral_common.h')
-rw-r--r-- | archive/src/ral/ral_common.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/archive/src/ral/ral_common.h b/archive/src/ral/ral_common.h new file mode 100644 index 0000000..5a797e5 --- /dev/null +++ b/archive/src/ral/ral_common.h @@ -0,0 +1,61 @@ +/** + * @brief Common functions that don't actually depend on the specific backend + */ +#pragma once +#include "buf.h" +#include "defines.h" +#include "mem.h" +#include "ral_types.h" +// #include "ral_impl.h" + +// Concrete implementation +#if defined(CEL_REND_BACKEND_OPENGL) +#include "backend_opengl.h" +#endif + +TYPED_POOL(GPU_Buffer, Buffer); +TYPED_POOL(GPU_Texture, Texture); +TYPED_POOL(GPU_PipelineLayout, PipelineLayout); +TYPED_POOL(GPU_Pipeline, Pipeline); +TYPED_POOL(GPU_Renderpass, Renderpass); + +// --- Handy macros +#define BUFFER_GET(h) (Buffer_pool_get(&context.resource_pools->buffers, h)) +#define TEXTURE_GET(h) (Texture_pool_get(&context.resource_pools->textures, h)) + +// --- Views +typedef struct GPU_BufferView { + BufferHandle buf; + size_t offset; + size_t bytes; +} GPU_BufferView; + +// --- Pools +typedef struct GPU_BackendPools { + Pipeline_pool pipelines; + PipelineLayout_pool pipeline_layouts; + Renderpass_pool renderpasses; +} GPU_BackendPools; +void BackendPools_Init(arena* a, GPU_BackendPools* backend_pools); + +struct ResourcePools { + Buffer_pool buffers; + Texture_pool textures; +}; +typedef struct ResourcePools ResourcePools; +void ResourcePools_Init(arena* a, struct ResourcePools* res_pools); + +PUB GPU_Renderpass* GPU_GetDefaultRenderpass(); // returns a renderpass that draws directly to + // default framebuffer with default depth + +// -- +// window resize callback +void GPU_WindowResizedCallback(u32 x, u32 y); + +// --- Vertex formats +VertexDescription static_3d_vertex_description(); + +void VertexDesc_AddAttr(VertexDescription* builder, const char* name, VertexAttribType type); +size_t VertexDesc_CalcStride(VertexDescription* desc); + +size_t VertexAttribSize(VertexAttribType attr); |