LDKRHIShaderCodeFormat
typedef enum LDKRHIShaderCodeFormat{
LDK_RHI_SHADER_CODE_FORMAT_GLSL=0,
LDK_RHI_SHADER_CODE_FORMAT_SPIRV,
LDK_RHI_SHADER_CODE_FORMAT_DXIL,
LDK_RHI_SHADER_CODE_FORMAT_MSL
}LDKRHIShaderCodeFormat;
typedef enum LDKRHIShaderCodeFormat{
LDK_RHI_SHADER_CODE_FORMAT_GLSL=0,
LDK_RHI_SHADER_CODE_FORMAT_SPIRV,
LDK_RHI_SHADER_CODE_FORMAT_DXIL,
LDK_RHI_SHADER_CODE_FORMAT_MSL
}LDKRHIShaderCodeFormat;
typedef LDKRHIResource LDKRHIShaderModule;
typedef struct LDKRHIShaderModuleDesc{
uint32_t stage;
LDKRHIShaderCodeFormat code_format;
const void *code;
uint32_t code_size;
const char *entry_point;
}LDKRHIShaderModuleDesc;
typedef enum LDKRHIShaderStage{
LDK_RHI_SHADER_STAGE_NONE=0,
LDK_RHI_SHADER_STAGE_VERTEX=1<<0,
LDK_RHI_SHADER_STAGE_FRAGMENT=1<<1,
LDK_RHI_SHADER_STAGE_COMPUTE=1<<2
}LDKRHIShaderStage;
Checks if a shader module handle is valid.
LDK_API bool ldk_rhi_is_valid_shader_module(LDKRHIShaderModule shader_module);
LDKRHIShaderModule shader_moduletrue if valid, false otherwise.
Validates a shader module descriptor.
LDK_API bool ldk_rhi_is_valid_shader_module_desc(const LDKRHIShaderModuleDesc *desc);
const LDKRHIShaderModuleDesc *desctrue if valid, false otherwise.
Creates a shader module.
LDK_API LDKRHIShaderModule ldk_rhi_shader_module_create(
LDKRHIContext *context,
const LDKRHIShaderModuleDesc *desc
);
LDKRHIContext *contextconst LDKRHIShaderModuleDesc *descA valid shader module handle on success, or an invalid handle on failure.
Initializes a shader module descriptor with default values.
LDK_API void ldk_rhi_shader_module_desc_defaults(LDKRHIShaderModuleDesc *desc);
LDKRHIShaderModuleDesc *descDestroys a shader module.
LDK_API void ldk_rhi_shader_module_destroy(
LDKRHIContext *context,
LDKRHIShaderModule shader_module
);
LDKRHIContext *contextLDKRHIShaderModule shader_module