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,
 | 
			
		||||
        .Render = MeshletsRender,
 | 
			
		||||
        .OnGameObjectFree = NULL,
 | 
			
		||||
        .OnReload = NULL,
 | 
			
		||||
        .OnUnload = NULL,
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -66,12 +66,6 @@ typedef struct {
 | 
			
		||||
 | 
			
		||||
    /* Called by rt_laucher_api::AllocGameObject, if an old object is freed. */
 | 
			
		||||
    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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -17,11 +17,15 @@
 | 
			
		||||
#include <runtime/config.h>
 | 
			
		||||
#include <runtime/dynamic_libs.h>
 | 
			
		||||
#include <renderer/common/renderer_api.h>
 | 
			
		||||
#include <runtime/fsutils.h>
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 
 | 
			
		||||
#include "game_api.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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_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_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 {
 | 
			
		||||
  WINDOW_MODE_WINDOWED,
 | 
			
		||||
@ -52,6 +56,10 @@ enum {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
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_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) {
 | 
			
		||||
    const char *game_lib = RT_GAME_LIB_PATH;
 | 
			
		||||
#ifdef RT_DEBUG
 | 
			
		||||
@ -140,9 +157,6 @@ static rt_game_api LoadGame(const char *cmdline_gamelib) {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
        if (!_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:
 | 
			
		||||
    /* Fall back to null implementation. */
 | 
			
		||||
    return (rt_game_api){
 | 
			
		||||
        .RegisterCVARs    = __NullGame_RegisterCVARs,
 | 
			
		||||
        .Init             = __NullGame_Init,
 | 
			
		||||
        .Shutdown         = __NullGame_Shutdown,
 | 
			
		||||
        .Update           = __NullGame_Update,
 | 
			
		||||
        .Render           = __NullGame_Render,
 | 
			
		||||
        .OnGameObjectFree = NULL,
 | 
			
		||||
        .OnReload         = NULL,
 | 
			
		||||
        .OnUnload         = NULL,
 | 
			
		||||
    };
 | 
			
		||||
    return _null_api;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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) {
 | 
			
		||||
    return _window;      
 | 
			
		||||
}
 | 
			
		||||
@ -367,10 +367,6 @@ static int Entry(int argc, char **argv) {
 | 
			
		||||
    rt_timestamp previous = rtTimeNow();
 | 
			
		||||
    rt_time_delta lag = time_per_update;
 | 
			
		||||
    while (!glfwWindowShouldClose(window)) {
 | 
			
		||||
#ifdef RT_DEBUG
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
        
 | 
			
		||||
        glfwPollEvents();
 | 
			
		||||
 | 
			
		||||
        rt_timestamp current = rtTimeNow();
 | 
			
		||||
@ -387,7 +383,6 @@ static int Entry(int argc, char **argv) {
 | 
			
		||||
 | 
			
		||||
        int disp_w, disp_h;
 | 
			
		||||
        glfwGetFramebufferSize(window, &disp_w, &disp_h);
 | 
			
		||||
        rtLog("LAUNCHER", "%d %d", disp_w, disp_h);
 | 
			
		||||
        _game.Render(&_launcher_api, _game_obj);
 | 
			
		||||
        
 | 
			
		||||
        if (rt_LauncherCreateGLContext.i) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user