summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile45
-rw-r--r--config.mk5
-rw-r--r--editor/editor-main.cpp2
-rw-r--r--editor/editor-plugin.cpp10
-rw-r--r--editor/editor-plugin.hpp8
-rw-r--r--editor/editor.cpp3
-rw-r--r--runtime/runtime.cpp6
7 files changed, 52 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index d4ac4cc..d60e4b7 100644
--- a/Makefile
+++ b/Makefile
@@ -97,7 +97,7 @@ DST_SHADERS = \
$(DIR_OBJ)/shaders/ui-base.frag.spv \
.PHONY: default
-default: options .WAIT $(DIR_EXE)/pke-editor $(DIR_OBJ)/libpke-example.$(LIB_EXT) $(DIR_EXE)/pke-runtime ;
+default: options .WAIT $(DIR_OBJ)/libpke-editor.$(OBJ_EXT) $(DIR_OBJ)/libpke-example.$(LIB_EXT) $(DIR_EXE)/pke-runtime ;
.PHONY: prepare
prepare: config.h
@@ -137,7 +137,7 @@ $(DIR_OBJ)/%.$(OBJ_EXT) : src/%.c | prepare
$(cc-command) $(FLG_PKE)
$(DIR_OBJ)/%.$(OBJ_EXT) : embed/%.c | prepare
$(cc-command) $(FLG_PKE)
-$(DIR_OBJ)/%.$(OBJ_EXT) : src/vendor/tinyfiledialogs/%.c | prepare
+$(DIR_OBJ)/%.$(OBJ_EXT) : editor/%.c | prepare
$(cc-command) $(FLG_PKE)
$(DIR_OBJ)/%.$(OBJ_EXT) : tests/%.c | prepare
$(cc-command) $(FLG_TST)
@@ -155,24 +155,24 @@ $(DIR_OBJ)/%.$(OBJ_EXT) : runtime/%.cpp | prepare
$(DIR_OBJ)/%.$(OBJ_EXT) : tests/%.cpp | prepare
$(cxx-command) $(FLG_TST)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_demo.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_draw.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_tables.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_widgets.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_impl_glfw.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_impl_vulkan.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/imgui_stdlib.$(OBJ_EXT)
-$(DIR_OBJ)/libImgui.$(LIB_EXT): $(DIR_OBJ)/vendor-imgui-ext.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_demo.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_draw.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_tables.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_widgets.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_impl_glfw.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_impl_vulkan.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/imgui_stdlib.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-imgui.$(LIB_EXT): $(DIR_OBJ)/vendor-imgui-ext.$(OBJ_EXT)
ar rc $@ $^
ranlib $@
# -j$$((`nproc`-1))
-$(DIR_OBJ)/libBullet3.$(LIB_EXT):
+$(DIR_OBJ)/libpke-bullet3.$(LIB_EXT):
(cd sub/bullet3/build3 && ./premake4_linux64 gmake)
${MAKE} no-demos=1 no-extras=1 no-test=1 config=$(BLT_BUILD_MODE) -C sub/bullet3/build3/gmake \
- BulletDynamics BulletCollision LinearMath Bullet3Common
- ar r $@ sub/bullet3/build3/gmake/obj/x64/$(BLT_BUILD_DIR)/*/*.o
+ BulletDynamics BulletCollision LinearMath Bullet3Common Bullet3Geometry
+ ar rc $@ sub/bullet3/build3/gmake/obj/x64/$(BLT_BUILD_DIR)/*/*.o
ranlib $@
$(DIR_OBJ)/libpke.$(LIB_EXT): $(DST_SHADERS)
@@ -218,14 +218,19 @@ $(DIR_OBJ)/libpke.$(LIB_EXT):
ar rc $@ $(filter %.$(OBJ_EXT),$^)
ranlib $@
-$(DIR_OBJ)/libpke-editor.$(LIB_EXT): $(DIR_OBJ)/editor-main.$(OBJ_EXT)
$(DIR_OBJ)/libpke-editor.$(LIB_EXT): $(DIR_OBJ)/editor-types.$(OBJ_EXT)
$(DIR_OBJ)/libpke-editor.$(LIB_EXT): $(DIR_OBJ)/editor-io.$(OBJ_EXT)
+$(DIR_OBJ)/libpke-editor.$(LIB_EXT): $(DIR_OBJ)/editor-plugin.$(OBJ_EXT)
$(DIR_OBJ)/libpke-editor.$(LIB_EXT): $(DIR_OBJ)/editor.$(OBJ_EXT)
$(DIR_OBJ)/libpke-editor.$(LIB_EXT):
ar rc $@ $(filter %.$(OBJ_EXT),$^)
ranlib $@
+$(DIR_OBJ)/libpke-editor.$(OBJ_EXT): $(DIR_OBJ)/libpke-editor.$(LIB_EXT)
+$(DIR_OBJ)/libpke-editor.$(OBJ_EXT): /home/pikum/build/msdf-atlas-gen/dbg/msdf-atlas-gen.a
+$(DIR_OBJ)/libpke-editor.$(OBJ_EXT): /home/pikum/build/msdfgen/dbg/msdfgen.a
+ $(CXX) -shared -Wl,-soname,libpke-editor.$(OBJ_EXT).$(PKE_VERSION_MAJ).$(PKE_VERSION_MIN) -o $@ -Wl,--whole-archive $^ -Wl,--no-whole-archive $(LDFLAGS)
+
$(DIR_OBJ)/libpke-example.$(LIB_EXT): $(DIR_OBJ)/example.$(OBJ_EXT)
ar rc $@ $(filter %.$(OBJ_EXT),$^)
ranlib $@
@@ -237,16 +242,16 @@ $(DIR_OBJ)/libpke-test.$(LIB_EXT): $(DIR_OBJ)/pke-test-serialization.$(OBJ_EXT)
$(DIR_OBJ)/libpke-test.$(LIB_EXT): $(DIR_OBJ)/pke-test-asset-manager.$(OBJ_EXT)
ar rcs $@ $(filter %.$(OBJ_EXT),$^)
-$(DIR_EXE)/pke-editor: $(DIR_OBJ)/libpke-editor.$(LIB_EXT) $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libImgui.$(LIB_EXT) $(DIR_OBJ)/libBullet3.$(LIB_EXT)
-$(DIR_EXE)/pke-editor:
+$(DIR_EXE)/pke-editor: $(DIR_OBJ)/libpke-editor.$(LIB_EXT) $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libpke-imgui.$(LIB_EXT) $(DIR_OBJ)/libpke-bullet3.$(LIB_EXT)
+$(DIR_EXE)/pke-editor: $(DIR_OBJ)/editor-main.$(OBJ_EXT)
$(CXX) -v -std=c++23 $(OPT_FLAGS) $(INCS) $^ /home/pikum/build/msdf-atlas-gen/dbg/msdf-atlas-gen.a /home/pikum/build/msdfgen/dbg/msdfgen.a $(LDFLAGS) $(CXXFLAGS) -o $@
-$(DIR_EXE)/pke-runtime: $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libImgui.$(LIB_EXT) $(DIR_OBJ)/libBullet3.$(LIB_EXT)
+$(DIR_EXE)/pke-runtime: $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libpke-bullet3.$(LIB_EXT) $(DIR_OBJ)/libpke-imgui.$(LIB_EXT)
$(DIR_EXE)/pke-runtime: $(DIR_OBJ)/runtime.$(OBJ_EXT)
@echo $^
- $(CXX) -v -std=c++23 $(OPT_FLAGS) $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -o $@
+ $(CXX) -v -std=c++23 $(CXXFLAGS) $(OPT_FLAGS) $(INCS) $(DIR_OBJ)/runtime.$(OBJ_EXT) -Lobj -Wl,--whole-archive $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libpke-bullet3.$(LIB_EXT) $(DIR_OBJ)/libpke-imgui.$(LIB_EXT) -Wl,--no-whole-archive -ldl $(LDFLAGS) -o $@
-$(DIR_EXE)/pke-test: $(DIR_OBJ)/libpke-test.$(LIB_EXT) $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libImgui.$(LIB_EXT) $(DIR_OBJ)/libBullet3.$(LIB_EXT)
+$(DIR_EXE)/pke-test: $(DIR_OBJ)/libpke-test.$(LIB_EXT) $(DIR_OBJ)/libpke.$(LIB_EXT) $(DIR_OBJ)/libpke-imgui.$(LIB_EXT) $(DIR_OBJ)/libpke-bullet3.$(LIB_EXT)
$(DIR_EXE)/pke-test: $(DIR_OBJ)/pke-test.$(OBJ_EXT)
@echo $^
$(CXX) -v -std=c++23 $(OPT_FLAGS) $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -o $@
diff --git a/config.mk b/config.mk
index 40d9088..817ca09 100644
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,8 @@
# pikul_two version
-PKE_VERSION=0.1.0
+PKE_VERSION_MAJ=0
+PKE_VERSION_MIN=1
+PKE_VERSION_PAT=0
+PKE_VERSION=$(PKE_VERSION_MAJ).$(PKE_VERSION_MIN).$(PKE_VERSION_PAT)
# paths
PREFIX = /usr/local
diff --git a/editor/editor-main.cpp b/editor/editor-main.cpp
index 9bb6d8f..541e11f 100644
--- a/editor/editor-main.cpp
+++ b/editor/editor-main.cpp
@@ -22,8 +22,6 @@ int main(int argc, char *argv[]) {
struct pk_membucket *bkt_editor = pk_mem_bucket_create("pke-editor", 2048, PK_MEMBUCKET_FLAG_NONE);
// setup
{
- pkeSettings.isSimulationPaused = true;
- pkeSettings.isShowingEditor = true;
PKEPluginInterface itfc;
itfc.OnInit = PkeEditor_Init;
itfc.OnTick = PkeEditor_Tick;
diff --git a/editor/editor-plugin.cpp b/editor/editor-plugin.cpp
new file mode 100644
index 0000000..4acdb6c
--- /dev/null
+++ b/editor/editor-plugin.cpp
@@ -0,0 +1,10 @@
+
+#include "editor-plugin.hpp"
+#include "editor.hpp"
+
+struct PKEPluginInterface pkePluginInterface = {
+ .OnInit = PkeEditor_Init,
+ .OnTick = PkeEditor_Tick,
+ .OnTeardown = PkeEditor_Teardown,
+ .OnImGuiRender = PkeEditor_RecordImGui,
+};
diff --git a/editor/editor-plugin.hpp b/editor/editor-plugin.hpp
new file mode 100644
index 0000000..b166a02
--- /dev/null
+++ b/editor/editor-plugin.hpp
@@ -0,0 +1,8 @@
+#ifndef PKE_EDITOR_PLUGIN_HPP
+#define PKE_EDITOR_PLUGIN_HPP
+
+#include "plugin-types.hpp"
+
+extern PKEPluginInterface pkePluginInterface;
+
+#endif /* PKE_EDITOR_PLUGIN_HPP */
diff --git a/editor/editor.cpp b/editor/editor.cpp
index 094e555..c9c673b 100644
--- a/editor/editor.cpp
+++ b/editor/editor.cpp
@@ -1953,6 +1953,9 @@ void PkeEditor_Teardown() {
}
void PkeEditor_Init() {
+ pkeSettings.isSimulationPaused = true;
+ pkeSettings.isShowingEditor = true;
+
PkeInputSet debugControlsSet{};
debugControlsSet.title = "debug-editor-controls";
debugControlsSet.actionCount = 14;
diff --git a/runtime/runtime.cpp b/runtime/runtime.cpp
index e0e9a11..99836b4 100644
--- a/runtime/runtime.cpp
+++ b/runtime/runtime.cpp
@@ -2,10 +2,8 @@
#include <csignal>
#include "arg-handler.hpp"
-#include "plugins.hpp"
#include "game.hpp"
#include "game-settings.hpp"
-#include "window-types.hpp"
void signal_handler(int signal_num) {
fprintf(stdout, "Received signal: %d - shutting down\n", signal_num);
@@ -14,9 +12,9 @@ void signal_handler(int signal_num) {
int main(int argc, char *argv[]) {
signal(SIGTERM, signal_handler);
- fprintf(stdout, "PKE_EDITOR ENTERING\n");
+ fprintf(stdout, "PKE_RUNTIME ENTERING\n");
PkeArgs_Parse(argc, argv);
Game_Main({}, argv[0]);
- fprintf(stdout, "PKE_EDITOR EXITING\n");
+ fprintf(stdout, "PKE_RUNTIME EXITING\n");
return 0;
}