refactor: Change launcher cvar names
Some checks failed
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Has been cancelled

This commit is contained in:
Kevin Trogant 2024-07-31 21:36:54 +02:00
parent e25dde131a
commit 03f61b31ec
4 changed files with 53 additions and 50 deletions

View File

@ -1,6 +1,6 @@
rt_Renderer = vk l_Renderer = vk
rt_WindowTitle = rtengine l_WindowTitle = rtengine
rt_WindowWidth = 1024 l_WindowWidth = 1024
rt_WindowHeight = 768 l_WindowHeight = 768
rt_WindowMode = 0 l_WindowMode = 0
rt_GameLib = (null) l_GameLib = (null)

View File

@ -30,21 +30,24 @@
#include "game_api.h" #include "game_api.h"
RT_CVAR_S(rt_WindowTitle, "The title used for the game window. (Default: rtengine)", "rtengine"); /* This is a launcher cvar, because launcher must configure this _before_ the renderer is initialized. */
RT_CVAR_I(rt_WindowWidth, "The window width. (Default: 1024)", 1024); RT_CVAR_S(l_Renderer, "The used renderer. Available options: vk, dx11. (Default: vk)", "vk");
RT_CVAR_I(rt_WindowHeight, "The window height. (Default: 768)", 768);
RT_CVAR_I(rt_WindowMode, "The window mode. Available options: 0 (=Windowed), 1 (=Borderless Fullscreen), 2 (=Exclusive Fullscreen) (Default: 0)", 0);
RT_CVAR_I(rt_FullscreenRefreshRate, "Requested refresh rate for exclusive fullscreen. Set to 0 to use the monitors current setting. (Default: 0)", 0);
RT_CVAR_S(rt_Monitor, "Name of the monitor on which the window should be created. Leave empty to use the primary monitor. (Default: "")", "");
RT_CVAR_F(rt_Framerate, "Target framerate in FPS. (Default: 60.0)", 60.0); RT_CVAR_S(l_WindowTitle, "The title used for the game window. (Default: rtengine)", "rtengine");
RT_CVAR_I(l_WindowWidth, "The window width. (Default: 1024)", 1024);
RT_CVAR_I(l_WindowHeight, "The window height. (Default: 768)", 768);
RT_CVAR_I(l_WindowMode, "The window mode. Available options: 0 (=Windowed), 1 (=Borderless Fullscreen), 2 (=Exclusive Fullscreen) (Default: 0)", 0);
RT_CVAR_I(l_FullscreenRefreshRate, "Requested refresh rate for exclusive fullscreen. Set to 0 to use the monitors current setting. (Default: 0)", 0);
RT_CVAR_S(l_Monitor, "Name of the monitor on which the window should be created. Leave empty to use the primary monitor. (Default: "")", "");
RT_CVAR_F(l_Framerate, "Target framerate in FPS. (Default: 60.0)", 60.0);
/* These are for experiments and debugging */ /* These are for experiments and debugging */
RT_CVAR_I(rt_LauncherCreateGLContext, "Create an OpenGL context in the launcher. 1: on, 0: off. (Default: 0)", 0); RT_CVAR_I(l_CreateGLContext, "Create an OpenGL context in the launcher. 1: on, 0: off. (Default: 0)", 0);
RT_CVAR_I(rt_LauncherGLContextMajor, "OpenGL Major version. (Default: 4)", 4); RT_CVAR_I(l_GLContextMajor, "OpenGL Major version. (Default: 4)", 4);
RT_CVAR_I(rt_LauncherGLContextMinor, "OpenGL minor version. (Default: 5)", 5); RT_CVAR_I(l_GLContextMinor, "OpenGL minor version. (Default: 5)", 5);
RT_CVAR_S(rt_GameLib, "Path to the game library. Only usable in internal builds. (Default: \"\")", ""); RT_CVAR_S(l_GameLib, "Path to the game library. Only usable in internal builds. (Default: (null))", "(null)");
enum { enum {
WINDOW_MODE_WINDOWED, WINDOW_MODE_WINDOWED,
@ -69,19 +72,20 @@ static HINSTANCE _hInstance;
#endif #endif
static void SetupConfig(void) { static void SetupConfig(void) {
rtRegisterCVAR(&rt_WindowTitle); rtRegisterCVAR(&l_Renderer);
rtRegisterCVAR(&rt_WindowWidth); rtRegisterCVAR(&l_WindowTitle);
rtRegisterCVAR(&rt_WindowHeight); rtRegisterCVAR(&l_WindowWidth);
rtRegisterCVAR(&rt_WindowMode); rtRegisterCVAR(&l_WindowHeight);
rtRegisterCVAR(&rt_Monitor); rtRegisterCVAR(&l_WindowMode);
rtRegisterCVAR(&l_Monitor);
rtRegisterCVAR(&rt_Framerate); rtRegisterCVAR(&l_Framerate);
rtRegisterCVAR(&rt_LauncherCreateGLContext); rtRegisterCVAR(&l_CreateGLContext);
rtRegisterCVAR(&rt_LauncherGLContextMajor); rtRegisterCVAR(&l_GLContextMajor);
rtRegisterCVAR(&rt_LauncherGLContextMinor); rtRegisterCVAR(&l_GLContextMinor);
rtRegisterCVAR(&rt_GameLib); rtRegisterCVAR(&l_GameLib);
rt_file_id config_fid = rtAddFile("cfg/launcher.cfg"); rt_file_id config_fid = rtAddFile("cfg/launcher.cfg");
if (rtProcessConfigFiles(1, &config_fid) != RT_SUCCESS) { if (rtProcessConfigFiles(1, &config_fid) != RT_SUCCESS) {
@ -150,8 +154,8 @@ static rt_game_api _null_api = {
static rt_game_api LoadGame(const char *cmdline_gamelib) { static rt_game_api LoadGame(const char *cmdline_gamelib) {
const char *game_lib = RT_GAME_LIB_PATH; const char *game_lib = RT_GAME_LIB_PATH;
#ifdef RT_DEBUG #ifdef RT_DEBUG
if (strlen(rt_GameLib.s) > 0) { if (strlen(l_GameLib.s) > 0) {
game_lib = rt_GameLib.s; game_lib = l_GameLib.s;
} }
if (cmdline_gamelib && strlen(cmdline_gamelib) > 0) { if (cmdline_gamelib && strlen(cmdline_gamelib) > 0) {
game_lib = cmdline_gamelib; game_lib = cmdline_gamelib;
@ -215,13 +219,13 @@ static GLFWmonitor *ChooseMonitor(void) {
GLFWmonitor *monitor = glfwGetPrimaryMonitor(); GLFWmonitor *monitor = glfwGetPrimaryMonitor();
int count = 0; int count = 0;
if (strcmp(rt_Monitor.s, "") == 0) { if (strcmp(l_Monitor.s, "") == 0) {
return monitor; return monitor;
} }
GLFWmonitor **monitors = glfwGetMonitors(&count); GLFWmonitor **monitors = glfwGetMonitors(&count);
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
const char *name = glfwGetMonitorName(monitors[i]); const char *name = glfwGetMonitorName(monitors[i]);
if (strcmp(name, rt_Monitor.s) == 0) if (strcmp(name, l_Monitor.s) == 0)
return monitors[i]; return monitors[i];
} }
return monitor; return monitor;
@ -272,29 +276,29 @@ static int Entry(int argc, char **argv) {
GLFWmonitor *monitor = ChooseMonitor(); GLFWmonitor *monitor = ChooseMonitor();
GLFWwindow *window = NULL; GLFWwindow *window = NULL;
if (!rt_LauncherCreateGLContext.i) { if (!l_CreateGLContext.i) {
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
} else { } else {
rtLog("LAUNCHER", "Creating an OpenGL %d.%d context", rt_LauncherGLContextMajor.i, rt_LauncherGLContextMinor.i); rtLog("LAUNCHER", "Creating an OpenGL %d.%d context", l_GLContextMajor.i, l_GLContextMinor.i);
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API); glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, rt_LauncherGLContextMajor.i); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, l_GLContextMajor.i);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, rt_LauncherGLContextMinor.i); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, l_GLContextMinor.i);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
} }
glfwWindowHint(GLFW_FOCUSED, GLFW_TRUE); glfwWindowHint(GLFW_FOCUSED, GLFW_TRUE);
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
glfwWindowHint(GLFW_CENTER_CURSOR, GLFW_TRUE); glfwWindowHint(GLFW_CENTER_CURSOR, GLFW_TRUE);
if (rt_WindowMode.i == WINDOW_MODE_BORDERLESS_FULLSCREEN) { if (l_WindowMode.i == WINDOW_MODE_BORDERLESS_FULLSCREEN) {
const GLFWvidmode *mode = glfwGetVideoMode(glfwGetPrimaryMonitor()); const GLFWvidmode *mode = glfwGetVideoMode(glfwGetPrimaryMonitor());
glfwWindowHint(GLFW_RED_BITS, mode->redBits); glfwWindowHint(GLFW_RED_BITS, mode->redBits);
glfwWindowHint(GLFW_GREEN_BITS, mode->greenBits); glfwWindowHint(GLFW_GREEN_BITS, mode->greenBits);
glfwWindowHint(GLFW_BLUE_BITS, mode->blueBits); glfwWindowHint(GLFW_BLUE_BITS, mode->blueBits);
glfwWindowHint(GLFW_REFRESH_RATE, mode->refreshRate); glfwWindowHint(GLFW_REFRESH_RATE, mode->refreshRate);
window = glfwCreateWindow(mode->width, mode->height, rt_WindowTitle.s, monitor, NULL); window = glfwCreateWindow(mode->width, mode->height, l_WindowTitle.s, monitor, NULL);
} }
else if (rt_WindowMode.i == WINDOW_MODE_FULLSCREEN) { else if (l_WindowMode.i == WINDOW_MODE_FULLSCREEN) {
int refresh_rate = rt_FullscreenRefreshRate.i; int refresh_rate = l_FullscreenRefreshRate.i;
if (refresh_rate == 0) { if (refresh_rate == 0) {
refresh_rate = glfwGetVideoMode(glfwGetPrimaryMonitor())->refreshRate; refresh_rate = glfwGetVideoMode(glfwGetPrimaryMonitor())->refreshRate;
} }
@ -317,10 +321,10 @@ static int Entry(int argc, char **argv) {
} }
} }
glfwWindowHint(GLFW_REFRESH_RATE, refresh_rate); glfwWindowHint(GLFW_REFRESH_RATE, refresh_rate);
window = glfwCreateWindow(rt_WindowWidth.i, rt_WindowHeight.i, rt_WindowTitle.s, monitor, NULL); window = glfwCreateWindow(l_WindowWidth.i, l_WindowHeight.i, l_WindowTitle.s, monitor, NULL);
} }
else { else {
window = glfwCreateWindow(rt_WindowWidth.i, rt_WindowHeight.i, rt_WindowTitle.s, NULL, NULL); window = glfwCreateWindow(l_WindowWidth.i, l_WindowHeight.i, l_WindowTitle.s, NULL, NULL);
} }
if (!window) { if (!window) {
@ -334,7 +338,7 @@ static int Entry(int argc, char **argv) {
_window.type = RT_WINDOW_TYPE_GLFW; _window.type = RT_WINDOW_TYPE_GLFW;
_window.glfw = window; _window.glfw = window;
if (rt_LauncherCreateGLContext.i) { if (l_CreateGLContext.i) {
glfwMakeContextCurrent(window); glfwMakeContextCurrent(window);
} }
@ -347,7 +351,7 @@ static int Entry(int argc, char **argv) {
renderer_init_info.display = glfwGetX11Display(); renderer_init_info.display = glfwGetX11Display();
renderer_init_info.window = glfwGetX11Window(window); renderer_init_info.window = glfwGetX11Window(window);
#endif #endif
renderer_init_info.is_fullscreen = rt_WindowMode.i != WINDOW_MODE_WINDOWED; renderer_init_info.is_fullscreen = l_WindowMode.i != WINDOW_MODE_WINDOWED;
glfwGetFramebufferSize(window, (int*)&renderer_init_info.width, (int*)&renderer_init_info.height); glfwGetFramebufferSize(window, (int*)&renderer_init_info.width, (int*)&renderer_init_info.height);
if (rtInitRenderer(&renderer_init_info) != RT_SUCCESS) { if (rtInitRenderer(&renderer_init_info) != RT_SUCCESS) {
rtReportError("LAUNCHER", "Failed to initialize the renderer."); rtReportError("LAUNCHER", "Failed to initialize the renderer.");
@ -367,7 +371,7 @@ static int Entry(int argc, char **argv) {
return -1; return -1;
} }
rt_time_delta time_per_update = 1.0 / (double)rt_Framerate.f; rt_time_delta time_per_update = 1.0 / (double)l_Framerate.f;
rt_timestamp previous = rtTimeNow(); rt_timestamp previous = rtTimeNow();
rt_time_delta lag = time_per_update; rt_time_delta lag = time_per_update;
while (!glfwWindowShouldClose(window)) { while (!glfwWindowShouldClose(window)) {
@ -389,7 +393,7 @@ static int Entry(int argc, char **argv) {
glfwGetFramebufferSize(window, &disp_w, &disp_h); glfwGetFramebufferSize(window, &disp_w, &disp_h);
_game.Render(&_launcher_api, _game_obj); _game.Render(&_launcher_api, _game_obj);
if (rt_LauncherCreateGLContext.i) { if (l_CreateGLContext.i) {
glfwSwapBuffers(window); glfwSwapBuffers(window);
} }
} }

View File

@ -5,11 +5,10 @@
#include <SDL2/SDL_syswm.h> #include <SDL2/SDL_syswm.h>
#include <runtime/config.h> #include <runtime/config.h>
RT_CVAR_S(rt_Renderer, "The used renderer. Available options: vk, dx11. (Default: vk)", "vk");
extern rt_cvar r_MaxRenderResources; extern rt_cvar r_MaxRenderResources;
RT_DLLEXPORT void rtRegisterRenderCVARs(void) { RT_DLLEXPORT void rtRegisterRenderCVARs(void) {
rtRegisterCVAR(&rt_Renderer); rtRegisterCVAR(&r_MaxRenderResources);
} }
RT_DLLEXPORT void rtRegisterRenderBackendCVARs(void) { RT_DLLEXPORT void rtRegisterRenderBackendCVARs(void) {

View File

@ -20,13 +20,13 @@ static rt_dynlib _renderer_lib;
RT_DLLEXPORT rt_result rtLoadRenderBackend(void) { RT_DLLEXPORT rt_result rtLoadRenderBackend(void) {
rt_load_renderer_impl_fn *LoadRenderBackendImpl = NULL; rt_load_renderer_impl_fn *LoadRenderBackendImpl = NULL;
rt_cvar *rt_Renderer = rtGetCVAR("rt_Renderer"); rt_cvar *l_Renderer = rtGetCVAR("l_Renderer");
const char *renderer = DEFAULT_RENDERER; const char *renderer = DEFAULT_RENDERER;
if (!rt_Renderer) { if (!l_Renderer) {
rtReportError("RENDERER", "rt_Renderer CVAR is not registered. Falling back to '%s'.", DEFAULT_RENDERER); rtReportError("RENDERER", "rt_Renderer CVAR is not registered. Falling back to '%s'.", DEFAULT_RENDERER);
} }
else { else {
renderer = rt_Renderer->s; renderer = l_Renderer->s;
} }
#ifdef RT_STATIC_LIB #ifdef RT_STATIC_LIB