#ifndef RT_RENDERER_H #define RT_RENDERER_H #include "runtime/runtime.h" #ifdef _WIN32 struct HINSTANCE__; struct HWND__; #elif defined(RT_USE_XLIB) struct _XDisplay; #endif /* Platform specific init info for the renderer */ typedef struct { #ifdef _WIN32 struct HINSTANCE__ *hInstance; struct HWND__ *hWnd; #elif defined(RT_USE_XLIB) struct _XDisplay *display; unsigned long window; #endif unsigned int width; unsigned int height; int is_fullscreen; } rt_renderer_window_info; typedef enum { RT_SHADER_STAGE_VERTEX, RT_SHADER_STAGE_FRAGMENT, RT_SHADER_STAGE_COMPUTE, } rt_shader_stage; #ifdef __cplusplus extern "C" { #endif RT_DLLEXPORT void rtRegisterRenderCVARs(void); /* Loads the requested render backend */ RT_DLLEXPORT rt_result rtLoadRenderBackend(void); RT_DLLEXPORT void rtRegisterRenderBackendCVARs(void); RT_DLLEXPORT rt_result rtInitRenderer(const rt_renderer_window_info *window); RT_DLLEXPORT void rtShutdownRenderer(void); #ifdef __cplusplus } #endif #endif