Fixing staging buffers not getting deleted

remove vgcore
This commit is contained in:
2023-11-06 15:08:27 +01:00
parent d35f7acddc
commit 4c567b60f3
69 changed files with 505 additions and 304 deletions
+5 -1
View File
@@ -1 +1,5 @@
add_subdirectory(Windows/)
if(WIN32)
add_subdirectory(Windows/)
else()
add_subdirectory(Linux/)
endif()
+10
View File
@@ -0,0 +1,10 @@
target_sources(Engine
PRIVATE
GameInterface.h
GameInterface.cpp)
target_sources(Engine
PUBLIC FILE_SET HEADERS
FILES
GameInterface.h)
@@ -0,0 +1,32 @@
#include "GameInterface.h"
using namespace Seele;
GameInterface::GameInterface(std::string soPath)
: lib(NULL)
, soPath(soPath)
{
}
GameInterface::~GameInterface()
{
}
Game* GameInterface::getGame()
{
return game;
}
void GameInterface::reload(AssetRegistry* registry)
{
if(lib != NULL)
{
destroyInstance(game);
dlclose(lib);
}
lib = dlopen(soPath.c_str(), RTLD_NOW);
createInstance = (decltype(createInstance))dlsym(lib, "createInstance");
destroyInstance = (decltype(destroyInstance))dlsym(lib, "destroyInstance");
game = createInstance(registry);
}
+21
View File
@@ -0,0 +1,21 @@
#pragma once
#include "Game.h"
#include "dlfcn.h"
namespace Seele
{
class GameInterface
{
public:
GameInterface(std::string soPath);
~GameInterface();
Game* getGame();
void reload(AssetRegistry* registry);
private:
void* lib;
std::string soPath;
Game* game;
Game* (*createInstance)(AssetRegistry*) = nullptr;
void (*destroyInstance)(Game*) = nullptr;
};
} // namespace Seele