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