From 859ea7e23d2bbbc4b32b43727ae50aebe399e720 Mon Sep 17 00:00:00 2001 From: omniscient <17525998+omnisci3nce@users.noreply.github.com> Date: Sun, 9 Jun 2024 01:43:02 +1000 Subject: metal is back, baby --- src/renderer/backends/metal/backend_metal.h | 74 +++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/renderer/backends/metal/backend_metal.h (limited to 'src/renderer/backends/metal/backend_metal.h') diff --git a/src/renderer/backends/metal/backend_metal.h b/src/renderer/backends/metal/backend_metal.h new file mode 100644 index 0000000..59b21d6 --- /dev/null +++ b/src/renderer/backends/metal/backend_metal.h @@ -0,0 +1,74 @@ +#pragma once +#define CEL_REND_BACKEND_METAL +#if defined(CEL_REND_BACKEND_METAL) + +#include "defines.h" +#include "maths_types.h" +#ifdef __OBJC__ +#import +#import +#import +#import +#else +typedef void* id; +#endif + +typedef struct gpu_swapchain { + u32x2 dimensions; + #ifdef __OBJC__ + CAMetalLayer* swapchain; + #else + void* swapchain; + #endif +} gpu_swapchain; +typedef struct gpu_device { + /** @brief `device` gives us access to our GPU */ + #ifdef __OBJC__ + id id; + #else + void* id; + #endif +} gpu_device; +typedef struct gpu_pipeline_layout { + void* pad; +} gpu_pipeline_layout; +typedef struct gpu_pipeline { + #ifdef __OBJC__ + id pipeline_state; + #else + void* pipeline_state; + #endif +} gpu_pipeline; +typedef struct gpu_renderpass { + #ifdef __OBJC__ + MTLRenderPassDescriptor* rpass_descriptor; + #else + void* rpass_descriptor; + #endif +} gpu_renderpass; +typedef struct gpu_cmd_encoder { + #ifdef __OBJC__ + id cmd_buffer; + id render_encoder; + #else + void* cmd_buffer; + void* render_encoder; + #endif +} gpu_cmd_encoder; +typedef struct gpu_cmd_buffer { + void* pad; +} gpu_cmd_buffer; + +typedef struct gpu_buffer { + #ifdef __OBJC__ + id id; + #else + void* id; + #endif + u64 size; +} gpu_buffer; +typedef struct gpu_texture { + void* pad; +} gpu_texture; + +#endif \ No newline at end of file -- cgit v1.2.3-70-g09d2