refactor(launcher): Remove api for live-recompilation
All checks were successful
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Successful in 1m36s
All checks were successful
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Successful in 1m36s
This commit is contained in:
parent
ca5d8ad8f0
commit
25006139f1
@ -234,7 +234,5 @@ LOAD_GAME_API_FUNC {
|
|||||||
.Update = MeshletsUpdate,
|
.Update = MeshletsUpdate,
|
||||||
.Render = MeshletsRender,
|
.Render = MeshletsRender,
|
||||||
.OnGameObjectFree = NULL,
|
.OnGameObjectFree = NULL,
|
||||||
.OnReload = NULL,
|
|
||||||
.OnUnload = NULL,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -66,12 +66,6 @@ typedef struct {
|
|||||||
|
|
||||||
/* Called by rt_laucher_api::AllocGameObject, if an old object is freed. */
|
/* Called by rt_laucher_api::AllocGameObject, if an old object is freed. */
|
||||||
rt_game_on_game_object_free_fn *OnGameObjectFree;
|
rt_game_on_game_object_free_fn *OnGameObjectFree;
|
||||||
|
|
||||||
/* Called after the game was reloaded during live re-compilation */
|
|
||||||
rt_game_on_reload_fn *OnReload;
|
|
||||||
|
|
||||||
/* Called before the game gets unloaded during live re-compilation */
|
|
||||||
rt_game_on_unload_fn *OnUnload;
|
|
||||||
} rt_game_api;
|
} rt_game_api;
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,11 +17,15 @@
|
|||||||
#include <runtime/config.h>
|
#include <runtime/config.h>
|
||||||
#include <runtime/dynamic_libs.h>
|
#include <runtime/dynamic_libs.h>
|
||||||
#include <renderer/common/renderer_api.h>
|
#include <renderer/common/renderer_api.h>
|
||||||
|
#include <runtime/fsutils.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "game_api.h"
|
#include "game_api.h"
|
||||||
|
|
||||||
|
|
||||||
RT_CVAR_S(rt_Renderer, "The used renderer. Available options: vk, dx11. (Default: vk)", "vk");
|
RT_CVAR_S(rt_Renderer, "The used renderer. Available options: vk, dx11. (Default: vk)", "vk");
|
||||||
RT_CVAR_S(rt_WindowTitle, "The title used for the game window. (Default: rtengine)", "rtengine");
|
RT_CVAR_S(rt_WindowTitle, "The title used for the game window. (Default: rtengine)", "rtengine");
|
||||||
RT_CVAR_I(rt_WindowWidth, "The window width. (Default: 1024)", 1024);
|
RT_CVAR_I(rt_WindowWidth, "The window width. (Default: 1024)", 1024);
|
||||||
@ -37,7 +41,7 @@ RT_CVAR_I(rt_LauncherCreateGLContext, "Create an OpenGL context in the launcher.
|
|||||||
RT_CVAR_I(rt_LauncherGLContextMajor, "OpenGL Major version. (Default: 4)", 4);
|
RT_CVAR_I(rt_LauncherGLContextMajor, "OpenGL Major version. (Default: 4)", 4);
|
||||||
RT_CVAR_I(rt_LauncherGLContextMinor, "OpenGL minor version. (Default: 5)", 5);
|
RT_CVAR_I(rt_LauncherGLContextMinor, "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(rt_GameLib, "Path to the game library. Only usable in internal builds. (Default: \"\")", "");
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
WINDOW_MODE_WINDOWED,
|
WINDOW_MODE_WINDOWED,
|
||||||
@ -52,6 +56,10 @@ enum {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static rt_dynlib *_game_lib = NULL;
|
static rt_dynlib *_game_lib = NULL;
|
||||||
|
static rt_game_api _game;
|
||||||
|
static rt_window _window;
|
||||||
|
static void *_game_obj = NULL;
|
||||||
|
static rt_launcher_api _launcher_api;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static HINSTANCE _hInstance;
|
static HINSTANCE _hInstance;
|
||||||
@ -128,6 +136,15 @@ static void __NullGame_Shutdown(rt_launcher_api *api, void *game_obj) {}
|
|||||||
static void __NullGame_Update(rt_launcher_api *api, rt_time_delta delta, void *game_obj) { RT_UNUSED(delta); }
|
static void __NullGame_Update(rt_launcher_api *api, rt_time_delta delta, void *game_obj) { RT_UNUSED(delta); }
|
||||||
static void __NullGame_Render(rt_launcher_api *api, void *game_obj) {}
|
static void __NullGame_Render(rt_launcher_api *api, void *game_obj) {}
|
||||||
|
|
||||||
|
static rt_game_api _null_api = {
|
||||||
|
.RegisterCVARs = __NullGame_RegisterCVARs,
|
||||||
|
.Init = __NullGame_Init,
|
||||||
|
.Shutdown = __NullGame_Shutdown,
|
||||||
|
.Update = __NullGame_Update,
|
||||||
|
.Render = __NullGame_Render,
|
||||||
|
.OnGameObjectFree = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
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
|
||||||
@ -140,9 +157,6 @@ static rt_game_api LoadGame(const char *cmdline_gamelib) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (strcmp(game_lib, "(null)") != 0) {
|
if (strcmp(game_lib, "(null)") != 0) {
|
||||||
#if defined(RT_DEBUG) && !defined(RT_DISABLE_LIVE_RECOMPILATION)
|
|
||||||
/* Copy to temporary location to enable rebuilds */
|
|
||||||
#endif
|
|
||||||
_game_lib = rtOpenLib(game_lib);
|
_game_lib = rtOpenLib(game_lib);
|
||||||
if (!_game_lib) {
|
if (!_game_lib) {
|
||||||
rtReportError("LAUNCHER", "Failed to open game library: %s", game_lib);
|
rtReportError("LAUNCHER", "Failed to open game library: %s", game_lib);
|
||||||
@ -160,23 +174,9 @@ static rt_game_api LoadGame(const char *cmdline_gamelib) {
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
/* Fall back to null implementation. */
|
/* Fall back to null implementation. */
|
||||||
return (rt_game_api){
|
return _null_api;
|
||||||
.RegisterCVARs = __NullGame_RegisterCVARs,
|
|
||||||
.Init = __NullGame_Init,
|
|
||||||
.Shutdown = __NullGame_Shutdown,
|
|
||||||
.Update = __NullGame_Update,
|
|
||||||
.Render = __NullGame_Render,
|
|
||||||
.OnGameObjectFree = NULL,
|
|
||||||
.OnReload = NULL,
|
|
||||||
.OnUnload = NULL,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static rt_game_api _game;
|
|
||||||
static rt_window _window;
|
|
||||||
static void *_game_obj = NULL;
|
|
||||||
static rt_launcher_api _launcher_api;
|
|
||||||
|
|
||||||
static rt_window LauncherAPIGetWindow(void) {
|
static rt_window LauncherAPIGetWindow(void) {
|
||||||
return _window;
|
return _window;
|
||||||
}
|
}
|
||||||
@ -367,10 +367,6 @@ static int Entry(int argc, char **argv) {
|
|||||||
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)) {
|
||||||
#ifdef RT_DEBUG
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
|
|
||||||
rt_timestamp current = rtTimeNow();
|
rt_timestamp current = rtTimeNow();
|
||||||
@ -387,7 +383,6 @@ static int Entry(int argc, char **argv) {
|
|||||||
|
|
||||||
int disp_w, disp_h;
|
int disp_w, disp_h;
|
||||||
glfwGetFramebufferSize(window, &disp_w, &disp_h);
|
glfwGetFramebufferSize(window, &disp_w, &disp_h);
|
||||||
rtLog("LAUNCHER", "%d %d", disp_w, disp_h);
|
|
||||||
_game.Render(&_launcher_api, _game_obj);
|
_game.Render(&_launcher_api, _game_obj);
|
||||||
|
|
||||||
if (rt_LauncherCreateGLContext.i) {
|
if (rt_LauncherCreateGLContext.i) {
|
||||||
|
Loading…
Reference in New Issue
Block a user