From fd6a774c7318651948e9a49482a8c4f2b32f04f0 Mon Sep 17 00:00:00 2001 From: Nathan Date: Wed, 26 Mar 2025 13:07:18 -0500 Subject: [PATCH] move utils to include. utils implimentations should be headers --- flake.nix | 8 +-- include/Archimedes.h | 4 +- {src => include/utils/GuiModule}/GuiModule.h | 0 {src => include/utils/Module}/Module.h | 0 .../utils}/Renderer/Renderer.cpp | 0 {utils => include/utils}/Renderer/Renderer.h | 0 .../Renderer/RendererOpenGL/RendererOpenGL.h | 39 +++++++++++ {utils => include/utils}/Window/Window.cpp | 0 {utils => include/utils}/Window/Window.h | 0 include/utils/Window/WindowGLFW/WindowGLFW.h | 65 +++++++++++++++++++ src/App.h | 3 +- .../RendererOpenGL/RendererOpenGL.cpp | 26 -------- .../Renderer/RendererOpenGL/RendererOpenGL.h | 24 ------- utils/Window/WindowGLFW/WindowGLFW.cpp | 38 ----------- utils/Window/WindowGLFW/WindowGLFW.h | 34 ---------- 15 files changed, 110 insertions(+), 131 deletions(-) rename {src => include/utils/GuiModule}/GuiModule.h (100%) rename {src => include/utils/Module}/Module.h (100%) rename {utils => include/utils}/Renderer/Renderer.cpp (100%) rename {utils => include/utils}/Renderer/Renderer.h (100%) create mode 100644 include/utils/Renderer/RendererOpenGL/RendererOpenGL.h rename {utils => include/utils}/Window/Window.cpp (100%) rename {utils => include/utils}/Window/Window.h (100%) create mode 100644 include/utils/Window/WindowGLFW/WindowGLFW.h delete mode 100644 utils/Renderer/RendererOpenGL/RendererOpenGL.cpp delete mode 100644 utils/Renderer/RendererOpenGL/RendererOpenGL.h delete mode 100644 utils/Window/WindowGLFW/WindowGLFW.cpp delete mode 100644 utils/Window/WindowGLFW/WindowGLFW.h diff --git a/flake.nix b/flake.nix index 5ef2568..d528d70 100755 --- a/flake.nix +++ b/flake.nix @@ -24,8 +24,6 @@ src = ./.; - #imgui = inputs.imgui; - nativeBuildInputs = with pkgs; [ gcc ]; @@ -38,8 +36,8 @@ buildPhase = '' g++ \ src/*.cpp \ - utils/Window/*.cpp utils/Window/WindowGLFW/*.cpp \ - utils/Renderer/*.cpp utils/Renderer/RendererOpenGL/*.cpp \ + utils/Window/*.cpp \ + utils/Renderer/*.cpp \ -I src -I include -I utils \ -DRENDERER_OPENGL \ -DWINDOW_GLFW \ @@ -278,7 +276,7 @@ apps.${system}.default = { type = "app"; - program = "${self.Archimedes}/bin/Archimedes ${self.TestImgui}/bin/TestImgui"; + program = "${pkgs.writeShellScriptBin "RunArchimedes" "${self.Archimedes}/bin/Archimedes ${self.TestImgui}/bin/TestImgui"}"; }; }; diff --git a/include/Archimedes.h b/include/Archimedes.h index 939b783..01d260c 100644 --- a/include/Archimedes.h +++ b/include/Archimedes.h @@ -1,8 +1,8 @@ #ifndef ARCHIMEDES_H #define ARCHIMEDES_H -#include "Module.h" -#include "GuiModule.h" +#include "utils/Module/Module.h" +#include "utils/GuiModule/GuiModule.h" #include "App.h" #endif diff --git a/src/GuiModule.h b/include/utils/GuiModule/GuiModule.h similarity index 100% rename from src/GuiModule.h rename to include/utils/GuiModule/GuiModule.h diff --git a/src/Module.h b/include/utils/Module/Module.h similarity index 100% rename from src/Module.h rename to include/utils/Module/Module.h diff --git a/utils/Renderer/Renderer.cpp b/include/utils/Renderer/Renderer.cpp similarity index 100% rename from utils/Renderer/Renderer.cpp rename to include/utils/Renderer/Renderer.cpp diff --git a/utils/Renderer/Renderer.h b/include/utils/Renderer/Renderer.h similarity index 100% rename from utils/Renderer/Renderer.h rename to include/utils/Renderer/Renderer.h diff --git a/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h b/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h new file mode 100644 index 0000000..4299e67 --- /dev/null +++ b/include/utils/Renderer/RendererOpenGL/RendererOpenGL.h @@ -0,0 +1,39 @@ +#ifdef RENDERER_OPENGL +#undef RENDERER_OPENGL + +#include "pch.hpp" + +#define GLEW_STATIC +#include + + +namespace Archimedes { + + class RendererOpenGL { + + public: + typedef void renderCmd(); + + RendererOpenGL() {}; + ~RendererOpenGL() {}; + + void init() { glewInit(); }; + + void render(std::list cmdList, int& w, int& h) { + + glViewport(0, 0, w, h); + + glClear(GL_COLOR_BUFFER_BIT); + + for(auto* f : cmdList) + f(); + cmdList.clear(); + } + }; + + typedef RendererOpenGL RendererImpl; + + +} + +#endif diff --git a/utils/Window/Window.cpp b/include/utils/Window/Window.cpp similarity index 100% rename from utils/Window/Window.cpp rename to include/utils/Window/Window.cpp diff --git a/utils/Window/Window.h b/include/utils/Window/Window.h similarity index 100% rename from utils/Window/Window.h rename to include/utils/Window/Window.h diff --git a/include/utils/Window/WindowGLFW/WindowGLFW.h b/include/utils/Window/WindowGLFW/WindowGLFW.h new file mode 100644 index 0000000..e6c92a4 --- /dev/null +++ b/include/utils/Window/WindowGLFW/WindowGLFW.h @@ -0,0 +1,65 @@ +#include "pch.hpp" + +#ifdef WINDOW_GLFW +#undef WINDOW_GLFW + +#include + + +namespace Archimedes { + + class WindowGLFW { + + public: + + WindowGLFW() { + + glfwSetErrorCallback([](int e, const char* m){ + std::cout << "GLFW Error: " << m << std::endl; + }); + + if(!glfwInit()) { + std::cout << "glfwInit failed!\n"; + std::abort(); + } + w = glfwCreateWindow(640, 480, "Archimedes", NULL, NULL); + + if(!w) { + glfwTerminate(); + std::abort(); + } + std::cout << "Window Created!\n"; + glfwMakeContextCurrent(w); + glfwSwapInterval(1); + } + + ~WindowGLFW() { + glfwTerminate(); + } + + + bool shouldClose() { + return glfwWindowShouldClose(w); + } + + void doFrame() { restoreContext(); glfwSwapBuffers(w); } + + void pollEvents() { glfwPollEvents(); } + + void restoreContext() { glfwMakeContextCurrent(w); } + + void getSize(int& w, int& h) { + glfwGetFramebufferSize(this->w, &w, &h); + } + + GLFWwindow* getWindow() { return w; } + + private: + GLFWwindow* w; + }; + + typedef WindowGLFW WindowImpl; + +} + +#endif diff --git a/src/App.h b/src/App.h index 577495a..8e309b5 100644 --- a/src/App.h +++ b/src/App.h @@ -2,8 +2,7 @@ #define APP_H #include "pch.hpp" -#include "Module.h" -#include "GuiModule.h" +#include "Module/Module.h" namespace Archimedes { diff --git a/utils/Renderer/RendererOpenGL/RendererOpenGL.cpp b/utils/Renderer/RendererOpenGL/RendererOpenGL.cpp deleted file mode 100644 index 28a190e..0000000 --- a/utils/Renderer/RendererOpenGL/RendererOpenGL.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "RendererOpenGL.h" - -#define GLEW_STATIC -#include - -namespace Archimedes { - - RendererOpenGL::RendererOpenGL() {} - - RendererOpenGL::~RendererOpenGL() {} - - void RendererOpenGL::init() { - glewInit(); - } - - void RendererOpenGL::render(std::list cmdList, int& w, int& h) { - - glViewport(0, 0, w, h); - - glClear(GL_COLOR_BUFFER_BIT); - - for(auto* f : cmdList) - f(); - cmdList.clear(); - } -} diff --git a/utils/Renderer/RendererOpenGL/RendererOpenGL.h b/utils/Renderer/RendererOpenGL/RendererOpenGL.h deleted file mode 100644 index 0bbf5c8..0000000 --- a/utils/Renderer/RendererOpenGL/RendererOpenGL.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifdef RENDERER_OPENGL -#undef RENDERER_OPENGL - -#include "pch.hpp" - -namespace Archimedes { - - class RendererOpenGL { - - public: - typedef void renderCmd(); - - RendererOpenGL(); - ~RendererOpenGL(); - - void init(); - - void render(std::list, int&, int&); - }; - - typedef RendererOpenGL RendererImpl; -} - -#endif diff --git a/utils/Window/WindowGLFW/WindowGLFW.cpp b/utils/Window/WindowGLFW/WindowGLFW.cpp deleted file mode 100644 index 41825a4..0000000 --- a/utils/Window/WindowGLFW/WindowGLFW.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "pch.hpp" - -#include "WindowGLFW.h" - -namespace Archimedes { - WindowGLFW::WindowGLFW() { - - glfwSetErrorCallback([](int e, const char* m){ - std::cout << "GLFW Error: " << m << std::endl; - }); - - if(!glfwInit()) { - std::cout << "glfwInit failed!\n"; - std::abort(); - } - w = glfwCreateWindow(640, 480, "Archimedes", NULL, NULL); - - if(!w) { - glfwTerminate(); - std::abort(); - } - std::cout << "Window Created!\n"; - glfwMakeContextCurrent(w); - glfwSwapInterval(1); - } - - bool WindowGLFW::shouldClose() { - return glfwWindowShouldClose(w); - } - - void WindowGLFW::getSize(int& w, int& h) { - glfwGetFramebufferSize(this->w, &w, &h); - } - - WindowGLFW::~WindowGLFW() { - glfwTerminate(); - } -} diff --git a/utils/Window/WindowGLFW/WindowGLFW.h b/utils/Window/WindowGLFW/WindowGLFW.h deleted file mode 100644 index 397eb8c..0000000 --- a/utils/Window/WindowGLFW/WindowGLFW.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifdef WINDOW_GLFW -#undef WINDOW_GLFW - -#include - -namespace Archimedes { - - class WindowGLFW { - - public: - - WindowGLFW(); - ~WindowGLFW(); - - bool shouldClose(); - - void doFrame() { restoreContext(); glfwSwapBuffers(w); } - - void pollEvents() { glfwPollEvents(); } - - void restoreContext() { glfwMakeContextCurrent(w); } - - void getSize(int&, int&); - - GLFWwindow* getWindow() { return w; } - - private: - GLFWwindow* w; - }; - - typedef WindowGLFW WindowImpl; -} - -#endif