rtengine/src/runtime/config.h
Kevin Trogant 9670844bb2 Move towards using DXC for compiling shaders
This is recommended by the vulkan documentation.
2024-01-25 23:33:29 +01:00

47 lines
1.3 KiB
C

#ifndef RT_CONFIG_H
#define RT_CONFIG_H
#include "runtime.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
RT_CVAR_TYPE_INT,
RT_CVAR_TYPE_FLOAT,
RT_CVAR_TYPE_STRING,
RT_CVAR_TYPE_SIZE,
} rt_cvar_type;
typedef struct {
const char *name;
const char *description;
union {
int i;
float f;
const char *s;
size_t sz;
};
rt_cvar_type type;
} rt_cvar;
/* n variable name, d description string, v default value*/
#define RT_CVAR_I(n, d, v) \
rt_cvar n = {.name = #n, .description = d, .i = (v), .type = RT_CVAR_TYPE_INT}
#define RT_CVAR_F(n, d, v) \
rt_cvar n = {.name = #n, .description = d, .f = (v), .type = RT_CVAR_TYPE_FLOAT}
#define RT_CVAR_S(n, d, v) \
rt_cvar n = {.name = #n, .description = d, .s = (v), .type = RT_CVAR_TYPE_STRING}
#define RT_CVAR_SZ(n, d, v) \
rt_cvar n = {.name = #n, .description = d, .sz = (v), .type = RT_CVAR_TYPE_SIZE}
RT_DLLEXPORT void rtRegisterCVAR(rt_cvar *cvar);
RT_DLLEXPORT rt_cvar *rtGetCVAR(const char *name);
#ifdef __cplusplus
}
#endif
#endif