TerminalEmbed

This commit is contained in:
2025-04-12 13:44:34 -05:00
parent 259cc9a3fa
commit 3e3b87d62e
3 changed files with 100 additions and 4 deletions

View File

@@ -27,7 +27,7 @@
''; '';
}; };
ImguiEmbed = pkgs.stdenvNoCC.mkDerivation { ImguiEmbed = pkgs.stdenvNoCC.mkDerivation {
name = "Archimedes"; name = "Archimedes";
@@ -56,9 +56,47 @@
$imgui/*.cpp \ $imgui/*.cpp \
-DRENDERER_OPENGL \ -DRENDERER_OPENGL \
-DWINDOW_GLFW \ -DWINDOW_GLFW \
-DGUIMODULE \ -I src -I include -I $imgui -I . \
-DTESTIMGUI_STATIC \ -lGL -lglfw -lGLEW \
-DWINDOWMODULE_STATIC \ -Wall \
-o $name
'';
installPhase = ''
mkdir -p $out/bin
cp $name $out/bin
'';
};
TerminalEmbed = pkgs.stdenvNoCC.mkDerivation {
name = "Archimedes";
src = ./.;
imgui = inputs.imgui;
nativeBuildInputs = with pkgs; [
clang
];
buildInputs = with pkgs; [
glfw
glew
];
buildPhase = ''
clang++ \
src/example_apps/TerminalEmbed/*.cpp \
modules/Terminal/src/*.cpp \
modules/WindowModule/src/*.cpp \
modules/ImguiModule/src/*.cpp \
$imgui/backends/imgui_impl_glfw.cpp \
$imgui/backends/imgui_impl_opengl3.cpp \
$imgui/*.cpp \
-DRENDERER_OPENGL \
-DWINDOW_GLFW \
-I src -I include -I $imgui -I . \ -I src -I include -I $imgui -I . \
-lGL -lglfw -lGLEW \ -lGL -lglfw -lGLEW \
-Wall \ -Wall \

View File

@@ -0,0 +1,31 @@
#include "TerminalEmbed.h"
void TerminalEmbed::run() {
for(auto m : runOrder)
modules[m]->onLoad();
// Main loop
while (!done && !runOrder.empty()) {
for(auto m : runOrder) {
modules[m]->run();
}
for(auto m : toClose) {
unload(m);
}
toClose.clear();
for(auto m : toOpen) {
if(std::holds_alternative<std::string>(m)) {
load(std::get<std::string>(m))->onLoad();
} else {
load(std::get<Archimedes::Module*>(m))->onLoad();
}
}
toOpen.clear();
}
}

View File

@@ -0,0 +1,27 @@
#define ENTRYPOINT
#include "Archimedes.h"
#include "modules/Terminal/src/Terminal.h"
class TerminalEmbed : public Archimedes::App {
private:
void printHelp() {};
public:
TerminalEmbed() {
Archimedes::Module* m = (Archimedes::Module*) new Terminal(Get(), nullptr);
load(m);
};
~TerminalEmbed() {};
void handleArgs(const int& argc, char* argv[]) {};
void run();
};
#define APP_TYPE TerminalEmbed
#include "endApp.h"