TerminalEmbed
This commit is contained in:
@@ -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 \
|
||||||
|
|||||||
31
src/example_apps/TerminalEmbed/TerminalEmbed.cpp
Normal file
31
src/example_apps/TerminalEmbed/TerminalEmbed.cpp
Normal 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
27
src/example_apps/TerminalEmbed/TerminalEmbed.h
Normal file
27
src/example_apps/TerminalEmbed/TerminalEmbed.h
Normal 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"
|
||||||
Reference in New Issue
Block a user