From f6f19889438ac2f0542d83c9baf6044d72399ac7 Mon Sep 17 00:00:00 2001 From: ben de roo Date: Sun, 6 Sep 2026 21:30:55 +0200 Subject: [PATCH] add guide --- GUIDE.md | 406 ++++++++++++++++++ README.md | 0 build/CMakeCache.txt | 2 +- build/CMakeFiles/CMakeConfigureLog.yaml | 104 ++--- .../engine_demo.dir/src/Camera.cpp.o | Bin 4896 -> 4840 bytes .../engine_demo.dir/src/Engine.cpp.o | Bin 7456 -> 7360 bytes .../engine_demo.dir/src/GLFunctions.cpp.o | Bin 11376 -> 11184 bytes .../CMakeFiles/engine_demo.dir/src/Mesh.cpp.o | Bin 16968 -> 16800 bytes .../engine_demo.dir/src/Shader.cpp.o | Bin 13768 -> 13552 bytes .../CMakeFiles/engine_demo.dir/src/main.cpp.o | Bin 13720 -> 13648 bytes build/engine_demo | Bin 53048 -> 52536 bytes include/Camera.hpp | 4 +- include/Engine.hpp | 10 +- include/GLFunctions.hpp | 6 +- include/Mesh.hpp | 4 +- include/Shader.hpp | 4 +- src/Camera.cpp | 4 +- src/Engine.cpp | 4 +- src/GLFunctions.cpp | 4 +- src/Mesh.cpp | 4 +- src/Shader.cpp | 4 +- src/main.cpp | 4 +- 22 files changed, 485 insertions(+), 79 deletions(-) create mode 100644 GUIDE.md delete mode 100644 README.md diff --git a/GUIDE.md b/GUIDE.md new file mode 100644 index 0000000..143d94a --- /dev/null +++ b/GUIDE.md @@ -0,0 +1,406 @@ +# Engine — gebruikshandleiding + +Deze handleiding legt uit hoe de engine in elkaar zit, hoe je hem gebruikt, +hoe je eigen elementen (objecten die getekend/geüpdatet worden) toevoegt, +en hoe je input afhandelt. De engine bestaat uit vier onderdelen: + +| Klasse | Bestand | Verantwoordelijkheid | +|----------------|-----------------------------------|----------------------------------------------------------| +| `Engine` | `include/Engine.hpp` / `src/Engine.cpp` | Venster, GL-context, main loop, ruwe input → Camera | +| `Camera` | `include/Camera.hpp` / `src/Camera.cpp` | Arcball-camera (orbit/pan/zoom, cinematisch smoothed) | +| `Shader` | `include/Shader.hpp` / `src/Shader.cpp` | RAII-wrapper om een gelinkt GLSL-programma | +| `Mesh` | `include/Mesh.hpp` / `src/Mesh.cpp` | VAO/VBO/EBO-wrapper + procedurele geometrie (sphere/ring/circle) | + +Alle vier zitten in de `engine` namespace, zodat er geen naamsbotsingen +ontstaan met GLFW/OpenGL-symbolen of andere libraries. Voeg je eigen +elementen (zie sectie 3) toe aan diezelfde namespace. + +--- + +## 1. Basisgebruik + +```cpp +#include "Engine.hpp" + +int main() { + engine::Engine engine; + if (!engine.initialize(1280, 720, "Mijn App")) { + return 1; + } + + engine.setUpdateCallback([](float deltaTime) { + // hier zit jouw simulatie/game-state update, één keer per frame + }); + + engine.setRenderCallback([](int framebufferWidth, int framebufferHeight) { + // hier zit jouw OpenGL-tekenwerk, één keer per frame + }); + + engine.run(); + return 0; +} +``` + +`initialize()` doet alles wat met GLFW/OpenGL-opstart te maken heeft: +venster aanmaken, context activeren, de OpenGL 3.3-functiepointers laden +(`gl::loadGLFunctions()`), en de GLFW-callbacks aan de instantie koppelen. + +`run()` is de main loop: pollen van events, delta-time berekenen, `update()` +en `render()` aanroepen, buffers swappen. Dat blijft zo doorlopen tot het +venster gesloten wordt (kruisje, of Escape — zie hieronder). + +Je hoeft `Engine.hpp` niet aan te passen om iets te laten gebeuren: alles +gaat via de twee callbacks. Dat houdt de engine zelf generiek en jouw +project-specifieke code gescheiden. + +--- + +## 2. De Camera gebruiken + +`Engine` bezit al een `Camera` en stuurt muisinput er automatisch naartoe: + +- **linker muisknop + slepen** → oriënteren (yaw/pitch) +- **middelste muisknop + slepen** → pannen +- **scrollwiel** → in-/uitzoomen +- **R** → camera terugzetten naar standaardstand +- **Escape** → venster sluiten + +Je haalt de camera op met `engine.camera()` en gebruikt hem in je +render-callback: + +```cpp +glm::mat4 view = engine.camera().viewMatrix(); +glm::vec3 eye = engine.camera().position(); +``` + +Wil je de camera ergens naartoe laten bewegen (bijv. "focus op dit object"), +gebruik dan `focusOn(worldPoint, suggestedDistance)` — dat zet alleen het +*doel* van de smoothing, `update()` (elke frame al door `Engine` aangeroepen) +beweegt er geleidelijk naartoe. + +```cpp +engine.camera().focusOn(objectPosition, 8.0f); +``` + +--- + +## 3. Een eigen element maken + +Met "element" bedoelen we een zelfstandig object dat iets voorstelt in je +scene: een blokje, personage, deeltjeseffect, wat dan ook. Het patroon dat +deze engine gebruikt (en dat je zelf ook aanhoudt) is steeds: **data + +gedrag in een klasse, header in `include/`, implementatie in `src/`, +buiten de klasse gebeurt niets rechtstreeks met OpenGL.** + +### 3.1 Bestandsstructuur + +Voor een nieuw element `Cube` maak je: + +``` +include/Cube.hpp +src/Cube.cpp +``` + +`Cube.hpp`: + +```cpp +#pragma once + +#include "Mesh.hpp" +#include "Shader.hpp" + +#include + +namespace engine { + +// ----------------------------------------------------------------------- +// Cube +// +// Eén gekleurd blokje: eigen transform + eigen shader-uniforms, tekent +// zichzelf met de gedeelde Mesh-geometrie. +// ----------------------------------------------------------------------- +class Cube { +public: + bool initialize(); // compileert shader, bouwt mesh — kan mislukken + void update(float deltaTime); + void draw(const glm::mat4& view, const glm::mat4& projection, + const glm::vec3& viewPos) const; + + glm::vec3 position{0.0f}; + glm::vec3 baseColor{0.8f, 0.3f, 0.2f}; + +private: + Mesh mesh_; + Shader shader_; + float spinDeg_ = 0.0f; +}; + +} // namespace engine +``` + +`Cube.cpp`: + +```cpp +#include "Cube.hpp" + +#include + +namespace engine { + +bool Cube::initialize() { + // Mesh::createUVSphere/createRing/createOrbitCircle bestaan al; voor een + // echte kubus zou je een Mesh::createBox() toevoegen aan Mesh (zie + // sectie 4). Voor dit voorbeeld hergebruiken we de bol als placeholder. + mesh_ = Mesh::createUVSphere(16, 16); + return shader_.loadFromFiles("assets/shaders/basic.vert", "assets/shaders/basic.frag"); +} + +void Cube::update(float deltaTime) { + spinDeg_ += deltaTime * 45.0f; +} + +void Cube::draw(const glm::mat4& view, const glm::mat4& projection, + const glm::vec3& viewPos) const { + glm::mat4 model = glm::translate(glm::mat4(1.0f), position); + model = glm::rotate(model, glm::radians(spinDeg_), glm::vec3(0.0f, 1.0f, 0.0f)); + + shader_.use(); + shader_.setMat4("uModel", model); + shader_.setMat4("uView", view); + shader_.setMat4("uProjection", projection); + shader_.setVec3("uBaseColor", baseColor); + shader_.setVec3("uLightDir", glm::vec3(-0.4f, -1.0f, -0.3f)); + shader_.setVec3("uViewPos", viewPos); + + mesh_.draw(); +} + +} // namespace engine +``` + +### 3.2 Aanhaken in main.cpp + +```cpp +#include "Cube.hpp" +#include "Engine.hpp" + +engine::Cube cube; + +int main() { + engine::Engine engine; + engine.initialize(1280, 720, "Mijn App"); + + cube.initialize(); + cube.position = glm::vec3(0.0f, 0.0f, 0.0f); + + engine.setUpdateCallback([&](float dt) { + cube.update(dt); + }); + + engine.setRenderCallback([&](int w, int h) { + glViewport(0, 0, w, h); + glClearColor(0.05f, 0.06f, 0.09f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glEnable(GL_DEPTH_TEST); + + float aspect = static_cast(w) / static_cast(h); + glm::mat4 proj = glm::perspective(glm::radians(50.0f), aspect, 0.05f, 200.0f); + + cube.draw(engine.camera().viewMatrix(), proj, engine.camera().position()); + }); + + engine.run(); + return 0; +} +``` + +Zodra je meerdere elementen hebt, wordt dit al snel een simpele lijst: + +```cpp +std::vector> cubes; +// update: for (auto& c : cubes) c->update(dt); +// render: for (auto& c : cubes) c->draw(view, proj, eye); +``` + +Er zit geen "Scene"- of "Entity"-systeem in deze engine — dat is bewust +weggelaten, zodat je zelf kiest hoe zwaar je dat wilt maken (een simpele +`std::vector`, of iets uitgebreiders als je project groeit). + +--- + +## 4. Nieuwe geometrie toevoegen aan `Mesh` + +`Mesh` heeft nu `createUVSphere`, `createRing` en `createOrbitCircle` als +static factory-methodes. Een nieuwe vorm (bijv. een kubus) voeg je op +dezelfde manier toe: + +**In `include/Mesh.hpp`**, bij de andere static methodes: + +```cpp +static Mesh createBox(float halfExtent); +``` + +**In `src/Mesh.cpp`**, een nieuwe functie die `Vertex`-en `unsigned int`-arrays +vult en via `upload()` naar de GPU stuurt (zoals `createUVSphere` doet): + +```cpp +Mesh Mesh::createBox(float halfExtent) { + std::vector vertices; + std::vector indices; + // ... vul vertices/indices met de 8 hoekpunten + 12 driehoeken ... + Mesh mesh; + mesh.upload(vertices, indices); + return mesh; +} +``` + +Het patroon is steeds: bouw CPU-side arrays van `Vertex{position, normal, uv}` +en `unsigned int`-indices, en geef die aan `upload()`. Voor een lijnvorm +(zoals een orbit-pad) gebruik je `uploadLineStrip()` in plaats daarvan. + +--- + +## 5. Eigen shaders toevoegen + +Shaders zijn losse `.vert`/`.frag`-bestanden in `assets/shaders/`. Om een +nieuwe te gebruiken: + +1. Zet `mijnshader.vert` en `mijnshader.frag` in `assets/shaders/`. +2. `Shader shader; shader.loadFromFiles("assets/shaders/mijnshader.vert", "assets/shaders/mijnshader.frag");` +3. Uniforms zet je via `setMat4`/`setVec3`/`setVec4`/`setFloat`/`setInt` — de + namen moeten exact overeenkomen met de `uniform`-declaraties in de shader. + +Er is geen build-stap nodig voor nieuwe shaders: `CMakeLists.txt` kopieert +gewoon de hele `assets/`-map naast de executable na elke build +(`add_custom_command(TARGET ... POST_BUILD ...)`), dus een nieuw bestand +daarin verschijnt vanzelf mee. + +--- + +## 6. Input afhandelen + +### 6.1 Wat de Engine al doet + +`Engine` routeert standaard alleen muis (orbit/pan/zoom) naar de `Camera`, +plus **R** (camera reset) en **Escape** (venster sluiten) als toetsen. Dat +zit in de private GLFW-callbacks in `Engine.cpp` +(`cursorPosCallback`, `mouseButtonCallback`, `scrollCallback`, `keyCallback`). + +### 6.2 Eigen input toevoegen zonder Engine aan te passen + +Voor input die niet met de camera te maken heeft (bijv. spatie om te pauzeren, +een klik om iets te selecteren) poll je zelf, direct in je update-callback, +via `engine.window()`: + +```cpp +engine.setUpdateCallback([&](float dt) { + if (glfwGetKey(engine.window(), GLFW_KEY_SPACE) == GLFW_PRESS) { + paused = !paused; + } +}); +``` + +Let op: dit is *polling* (elke frame checken of een toets nu ingedrukt is), +wat prima werkt voor "hou ingedrukt"-gedrag maar bij "één druk = één actie" +kan dubbel triggeren zolang de toets ingedrukt blijft. Hou daarvoor zelf een +"was dit al ingedrukt vorige frame"-vlag bij, of ga naar optie 6.3. + +### 6.3 Eigen input toevoegen mét een discrete "press"-callback + +Wil je events (niet polling) zoals de originele game had +(`keyCallback` die éénmalig reageert op `GLFW_PRESS`), dan breid je `Engine` +zelf uit met een extra callback-slot, op dezelfde manier als +`updateCallback_`/`renderCallback_`: + +**In `include/Engine.hpp`:** + +```cpp +using KeyCallback = std::function; +void setKeyCallback(KeyCallback cb) { keyCallback_ = std::move(cb); } +// ... +KeyCallback keyCallback_; +``` + +**In `src/Engine.cpp`**, in de bestaande static `Engine::keyCallback` +(de GLFW-trampoline), roep je hem aan: + +```cpp +void Engine::keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + if (action == GLFW_PRESS) { + switch (key) { + case GLFW_KEY_R: engine->camera_.reset(); break; + case GLFW_KEY_ESCAPE: glfwSetWindowShouldClose(window, GLFW_TRUE); break; + default: break; + } + } + if (engine->keyCallback_) engine->keyCallback_(key, action); +} +``` + +Dan in je eigen `main.cpp`: + +```cpp +engine.setKeyCallback([&](int key, int action) { + if (key == GLFW_KEY_SPACE && action == GLFW_PRESS) { + paused = !paused; + } +}); +``` + +Dit is exact het patroon dat de engine al gebruikt voor `update`/`render` — +een `std::function`-lid + een setter + een aanroep op de juiste plek in de +bestaande GLFW-trampoline. Muisklikken (bijv. voor object-picking) volgen +dezelfde aanpak via `mouseButtonCallback`. + +--- + +## 7. Hoe je `.hpp`/`.cpp`-bestanden zo opzet dat ze echt bij de engine horen + +Drie regels houden nieuwe code consistent met wat er al staat: + +1. **Eén klasse per bestandspaar**, header in `include/`, implementatie in + `src/`, zelfde bestandsnaam als de klasse (`Cube.hpp` ↔ `Cube.cpp`). + `#include "Cube.hpp"` bovenaan `Cube.cpp` als eerste include. +2. **Alles in de `engine`-namespace** (of je eigen naam, zie hieronder), zodat + er geen naamsbotsingen ontstaan met GLFW/OpenGL-symbolen of andere + libraries. +3. **RAII voor GPU-resources.** Kijk naar `Mesh` en `Shader`: een destructor + die opruimt, `= delete` op de copy-constructor/-assignment (GPU-handles + mogen niet per ongeluk gekopieerd worden), en een move-constructor/ + -assignment die de handle overneemt en de bron op `0`/leeg zet. Elk + nieuw element dat zelf een VAO/VBO/shader-programma bezit volgt hetzelfde + patroon. + +Je hoeft `CMakeLists.txt` niet aan te passen voor nieuwe `.cpp`-bestanden: +`file(GLOB ENGINE_SOURCES ${CMAKE_SOURCE_DIR}/src/*.cpp)` pakt alles in +`src/` automatisch mee bij de volgende keer dat je `cmake ..` opnieuw +draait (nodig omdat GLOB niet automatisch herconfigureert bij een build — +dus na een nieuw bestand: eenmalig opnieuw `cmake ..` in je build-map). + +--- + +## 8. Namespace hernoemen + +Alles zit in de generieke `engine`-namespace, zonder verwijzingen naar het +project waar deze code oorspronkelijk uit kwam. Wil je toch een andere naam +(bijv. de naam van je eigen project), dan is dat een kwestie van een +projectbrede find-and-replace van `engine` naar jouw naam in alle +`.hpp`/`.cpp`-bestanden — er zit verder geen afhankelijkheid aan die +specifieke naam. Let op: de klasse heet ook `Engine` (met hoofdletter) — +die hoef je niet mee te hernoemen, `jouwnaam::Engine` blijft prima werken. + +--- + +## 9. Bouwen + +```bash +sudo apt install cmake libglfw3-dev libglm-dev libgl1-mesa-dev libglu1-mesa-dev xorg-dev +cd engine && mkdir build && cd build +cmake .. && make -j$(nproc) +./engine_demo +``` + +Na het toevoegen van nieuwe `.cpp`-bestanden: draai `cmake ..` opnieuw in de +build-map voordat je `make` draait (zie sectie 7). diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt index 7271dad..2212f5b 100644 --- a/build/CMakeCache.txt +++ b/build/CMakeCache.txt @@ -22,7 +22,7 @@ CMAKE_AR:FILEPATH=/usr/bin/ar //Choose the type of build, options are: None Debug Release RelWithDebInfo // MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Release +CMAKE_BUILD_TYPE:STRING= //Enable/Disable color output during build. CMAKE_COLOR_MAKEFILE:BOOL=ON diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index 25b8b5d..30a2f84 100644 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -39,8 +39,8 @@ events: checks: - "Detecting CXX compiler ABI info" directories: - source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK" - binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK" + source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB" + binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -50,13 +50,13 @@ events: variable: "CMAKE_CXX_ABI_COMPILED" cached: true stdout: | - Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK' + Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_171b0/fast - /usr/bin/gmake -f CMakeFiles/cmTC_171b0.dir/build.make CMakeFiles/cmTC_171b0.dir/build - gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK' - Building CXX object CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_87765/fast + /usr/bin/gmake -f CMakeFiles/cmTC_87765.dir/build.make CMakeFiles/cmTC_87765.dir/build + gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB' + Building CXX object CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp Using built-in specs. COLLECT_GCC=/usr/bin/c++ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa @@ -66,8 +66,8 @@ events: Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.2.0 (Debian 14.2.0-19) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/14/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_171b0.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccvZwpE1.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/14/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_87765.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccax2DBV.s GNU C++17 (Debian 14.2.0-19) version 14.2.0 (x86_64-linux-gnu) compiled by GNU C version 14.2.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.27-GMP @@ -89,14 +89,14 @@ events: /usr/include End of search list. Compiler executable checksum: a0e1d70a4b6c50c7ed1b3d36dfd3f9a4 - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/' - as -v --64 -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccvZwpE1.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/' + as -v --64 -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccax2DBV.s GNU assembler version 2.44 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.44 COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_171b0 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_171b0.dir/link.txt --verbose=1 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_87765 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87765.dir/link.txt --verbose=1 Using built-in specs. COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper @@ -109,14 +109,14 @@ events: gcc version 14.2.0 (Debian 14.2.0-19) COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.' - /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.' + /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWKqsp9.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_87765 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o collect2 version 14.2.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWKqsp9.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_87765 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o GNU ld (GNU Binutils for Debian) 2.44 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.' - /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_171b0 - gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK' + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.' + /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_87765 + gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB' exitCode: 0 - @@ -157,13 +157,13 @@ events: Parsed CXX implicit link information: link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'] + ignore line: [Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_171b0/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_171b0.dir/build.make CMakeFiles/cmTC_171b0.dir/build] - ignore line: [gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'] - ignore line: [Building CXX object CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_87765/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_87765.dir/build.make CMakeFiles/cmTC_87765.dir/build] + ignore line: [gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB'] + ignore line: [Building CXX object CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] @@ -173,8 +173,8 @@ events: ignore line: [Thread model: posix] ignore line: [Supported LTO compression algorithms: zlib zstd] ignore line: [gcc version 14.2.0 (Debian 14.2.0-19) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_171b0.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccvZwpE1.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_87765.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccax2DBV.s] ignore line: [GNU C++17 (Debian 14.2.0-19) version 14.2.0 (x86_64-linux-gnu)] ignore line: [ compiled by GNU C version 14.2.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP] ignore line: [] @@ -196,14 +196,14 @@ events: ignore line: [ /usr/include] ignore line: [End of search list.] ignore line: [Compiler executable checksum: a0e1d70a4b6c50c7ed1b3d36dfd3f9a4] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccvZwpE1.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccax2DBV.s] ignore line: [GNU assembler version 2.44 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.44] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_171b0] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_171b0.dir/link.txt --verbose=1] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_87765] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87765.dir/link.txt --verbose=1] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper] @@ -216,13 +216,13 @@ events: ignore line: [gcc version 14.2.0 (Debian 14.2.0-19) ] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWKqsp9.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_87765 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] arg [/usr/libexec/gcc/x86_64-linux-gnu/14/collect2] ==> ignore arg [-plugin] ==> ignore arg [/usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so] ==> ignore arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccqSoTLo.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccWKqsp9.res] ==> ignore arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore arg [-plugin-opt=-pass-through=-lgcc] ==> ignore arg [-plugin-opt=-pass-through=-lc] ==> ignore @@ -238,7 +238,7 @@ events: arg [/lib64/ld-linux-x86-64.so.2] ==> ignore arg [-pie] ==> ignore arg [-o] ==> ignore - arg [cmTC_171b0] ==> ignore + arg [cmTC_87765] ==> ignore arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] arg [/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o] @@ -251,7 +251,7 @@ events: arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] arg [-L/usr/lib/gcc/x86_64-linux-gnu/14/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../..] arg [-v] ==> ignore - arg [CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore arg [-lstdc++] ==> lib [stdc++] arg [-lm] ==> lib [m] arg [-lgcc_s] ==> lib [gcc_s] @@ -262,7 +262,7 @@ events: arg [/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o] arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] ignore line: [collect2 version 14.2.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWKqsp9.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_87765 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] linker tool for 'CXX': /usr/bin/ld collapse obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] collapse obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] @@ -304,8 +304,8 @@ events: checks: - "Performing Test CMAKE_HAVE_LIBC_PTHREAD" directories: - source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l" - binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l" + source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa" + binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -314,17 +314,17 @@ events: variable: "CMAKE_HAVE_LIBC_PTHREAD" cached: true stdout: | - Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' + Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9e2ab/fast - /usr/bin/gmake -f CMakeFiles/cmTC_9e2ab.dir/build.make CMakeFiles/cmTC_9e2ab.dir/build - gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' - Building CXX object CMakeFiles/cmTC_9e2ab.dir/src.cxx.o - /usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -o CMakeFiles/cmTC_9e2ab.dir/src.cxx.o -c /home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l/src.cxx - Linking CXX executable cmTC_9e2ab - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9e2ab.dir/link.txt --verbose=1 - /usr/bin/c++ CMakeFiles/cmTC_9e2ab.dir/src.cxx.o -o cmTC_9e2ab - gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_6041b/fast + /usr/bin/gmake -f CMakeFiles/cmTC_6041b.dir/build.make CMakeFiles/cmTC_6041b.dir/build + gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa' + Building CXX object CMakeFiles/cmTC_6041b.dir/src.cxx.o + /usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -o CMakeFiles/cmTC_6041b.dir/src.cxx.o -c /home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa/src.cxx + Linking CXX executable cmTC_6041b + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6041b.dir/link.txt --verbose=1 + /usr/bin/c++ CMakeFiles/cmTC_6041b.dir/src.cxx.o -o cmTC_6041b + gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa' exitCode: 0 ... diff --git a/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o index e9cffa347e0cf23f8e825989a7587873c6fe4d75..8cc164542a42238a28951b3898229e517821bd90 100644 GIT binary patch delta 369 zcmZ3W_Cj@n24luX&2&!2^vM%B#U*PQ7#M^Y7#SRZGzfS?D2Dly4+3Qm0C^x;115;D z2UPa%%zMrZE)cm#5*f$FwN5IJE?uUGuoD(CoU;t)zm@E<=N|%+zw<#FC=S3ZO|0 sn`L<(Gc!hPW)%3($e1yiQK+49&*V-ab50F@Nbrx>W+4ghHoaDz|`Z-IP8CN3zCfq?_c;+!1FCC(@f zA|*AMuY3|5%~Cab|@513pECij5JvtaTam}H+U$SuyO1ST!Oq&Jw%0+Wqk zvKLHF0g;lknW44=X%Kh@p%^xU)f@tocfsUaFv&c5B9FMF91BF(2Otdsju49B3n(-u z-{4VZH%rY+&&*4m%)#pgXUFrJz}X9U_2BH=ywVy_^=8hAxv52oh6ee0zWJrasR4<3 zu4!ou@lk#-1GV_HRZtaMxJ}6_(X&??!eQt82q&xuc9=kaJ delta 849 zcmX?Lxxi|I24liT&G#IPag!4{#Tm;d8*++E?qFbG5Mp3rXaLe6Fcm^Ed;9F>*PQ#amH{E zDVd5xZ{y@fpqkZSm0Q5%VK8|GOuhw^ERzel#TiAxqz#x11(O9}vJFhm1d}_!9Nz6+vNi51N&7I7|>xCu~%xi)s(#NY8gQCmKIWaf2DACX` zKhHP6v^dqJC^6kNEsY^Q$`7kL1E{)y#5`=uCbRKr8(`CDk)IcwT$G=a@X`WNJ%V7#o`e&h$GC3Qu9($i-0a+;GS$KD8AW1a0NSK#pat5{~4Jg#3tX8`o~x> Z`KEL`A8!Em7O`MSlV%G*VaqY<;fp&#KWf!2ymQGgW z7q6cJm7Rbly9FxVfhK+lD&Bx5{uL@-fhI1(3~^flnz#u>eDZdFLCIjKngld8g_9ow zT{r_1c@PE}nNF_bkmNx&Ve)ce6*YtkLzDCz=c3falGNag z#FW$`6s3QKC0vn|0xfpV&n?Kz!J-!AFk_JSN+9NBmZ6xGBO>F5WD?L)h!-#|h58WU zrhuaS^rFOE6r&!9NFWCl&{ChwylgBgK_&q$0y+sQiRLChQCYOe2`x^=V$S5*qLT2~ zJt!&%XTK4ZsYmh@(7w>T%(VQXT;ntp--8^2kTk)RG=%FkOhfi7NF$P5Cc2zy`sAfz z!Z7!2J}P!th|yqkr{;e~rUmMgyR_SQe*=>)98CVGB|O?-npG96H{5J9m;VTh`*8@uK z1A69(=O=vQ4U^qblM+!Uke?&`8uHVG-$On@_$u--!aqkGmIjsjZ}jXVo}r$oTbA%s z$Oj3ZL*DsTI`{j?(JpoPD(8F#yy#PUn&C4%@6*6gHWG$WaZQf}rtehCAg2yr|Bn=H z*BH0mv&_51{D9RaecxQZbw--IIuqxca=e?{jG_;gQ+r6}(^RG|%;LG>tf{JHF<%@L z)(S2Er`)1i$6b}kEwcRAXrDX`|Pt*9(G+ksVJv=7F z^DWJKjeug diff --git a/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o index 1d173be74460387e5083742ccbc84d3a5a773c77..3e422ed50e56ce97e4143a59469fc21faffcaa9f 100644 GIT binary patch delta 1306 zcmZ`&%}*0S6yGUq2qbE;gw1M%wm`d(fZbX^Ds)?H~#^HFMqOpr0M%z;heTfx{V2nl(QZR~11=ZG zt`o}+i`5SHXI|sW(7_c|Fy-P#}>#!cW zS)$ALL}>qXg`*c|N1GCv3^RD`LJLkOl{5xPIA(83jHQOH&X=`SCHaK)+GbNPsjD~j zjyitA$nhsreqS=xg;O|(`>>kB;}KPr?`5MF(ty^zON`#x>pSa@UX1$&_qoLb-Ew@_ z?bLUm%&jWvE@yE8KU8}<%z+ipaZ{i5RCezUFSaIAol1JxGP-qgvYtqOT1MyXkrAv~ zgYef=Y0|pAHI2KpeleLcD04Ygxp8SsN$2)dKk&xQ>Tljg!KkJyiKm8D`EHDSr8p_i z6mBL7S+j6exMk{X^}W>vB!PsAkaU^&|-k$riweF7mLxIz=QjR3p~dC)3sh9v$YxqR9i3LDQtzmmiT zm*hnZ^hgr_=RY|suo!Z{2dM%DVN;S&3`)Zie~!#}5Tg&|uosQP)3C%&ksL(#*a{11 k4oV{uKbx=1k6_62AV(hCJ{QAwq@`@-wC;V4V7tBQAN#61!TF|7@xPcmcr)0!?Z~5&h9!h2Bo8`q02hEn_C^SKaPcnphG@$NVjEnErd#} zz)M8&9SkaL6Rb;+EES&0An;hH=n%QLE)jamOTBqB4LZB_V1D0^-|u_h_syGmPj92O zJLtaX+80?q)Zs^6p!%B;h6jGu3yiVqC~k*`uu9w~RI1!=Q2q=yi2I!ITE=a=$1S!B z9LJ(>aE@RZ)C5@X5mY+!B+QZ=Oz{>hbF6p4%8Zd{tRXWn@1Q_3D|YS@Iu~`Uwj#9;+wAxUH!csa|F4n-=>D8$nk3L*1Gpw~b6@od5cM z)4IIZjBCcp!`YC>BT4BAHHEXPu1!tCXej7V?u8m0NrmvzhM66` z!o4^%-XkTiGQ)$Xi=AVw$ummJ@GhqGA5&F!F?~kIqdK0zY6h3+3tt+ej;ZVU`j#ED zwO*Q#$a4ax5>sPiSkEMjCWJx0UMaOHp`}L6UB#QMx~AQuX4T>pc*8qC&N}aN3|uZK z4rN3*9NsYvJ$R{YR9CN^(o$H->RP(gX}lIPj#ACyq(fO0dz(rW4`0-=n#JcYDCu#m z@-a-o(W*CnGRC{W}g23I5V=vDrAWCo#6Fddz7 zjkm*Alt&+d>z2`bC`4Jb4%6KNDu*0V5aeXmHP8WD-8_l`C(Ec0RD!*RL29hX0=fwW nqRasolhI>P3C=?<#-bmv5}R`kxginns2J!pFU(7rjr;xr-solC diff --git a/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o index 8eb57d616f709bb6904e26f18864948ba1e7081e..661d12783f3c80314bc03734ed9da1fb455e4c92 100644 GIT binary patch delta 1423 zcmZ{jO-vI}5Xbke7BOHc6xdd5q(ltLSGNU%#`pz|5dpz!LhwMAvXqswm8GBuQ{*5q zdO$N?yrGGAp&mSNfCCXP226~^7!?w4YETazAnM!Mx0^*_lm6bkng7h2H@jWvUsLXt z!DMabR3P9aDo9Sj`-0;*p39^(o;PeQh5OEGatr3D<_^)F8C)5Qnac!xcM9YI_;Uo3 zM!rV=K)Rrv`a{U0$kRv(a$N$s1}iiQ=t=9IvoCp$%cH$4vhrDMUERjN&itR4uAZ&= zFz6B-l{+}j1xtI}qzN9;{iM0~%~MN1rwwn#aY2@Ma;KRQ1(GW`-kE#fFKX!-vn(UP zGE@i4@ZF`Bu2^G=YNq&TDb|^yn0Bo{hm3`5$zU}cie*h$)?>?hWm?1ybGZUJfgC_i zA-^JXpgm6@$B;4PL*z5$JaQT7ffcIkKq|;5$hXL17<3Dy45=cgkw0O{T}?zF`2y)e z4(jxd(bt7DqJ8Sm2Ajlt)NCM&K%!YkkR8Yr_zMp1s*}~2qRMcw;Id`U6kM>`t*)wQ zBHqJwb+($~(ZaqkvxBj?SQCpkXtI=)BYjejtc7h-7B&Kr#IP2X?O`}BcuQ@SLb3Q6 zIccbskxk0mLb=t{tl+Wi&o;l$;~izy>Wm_dVtB;X4)Zny!{;M`t}O!MHUTMO1YBk^K-EZ0B-l1~aDC%hiRq0J=11(Zg zQ?A$a8uPH~1okHEqtj0`^r3&1i`yyxt9iAk`GBnl(W)u-Zob5qq9(KPbi=+%hq-~# z!nQ2iT;YS?+i0suKb2F-q!jJj`ct9rzgbcH?Q>(v&{AT(^R!m-&B;Iar@O@z;U^En tYB0s$tbp!Niho)GtD)cg0$pmx`5W1ArM7POa+UGNScb7mH_V9He*wboi3tDz delta 1648 zcmaKsPe>F|9LMKvZkV~7>z|!nH>(jUQ_P*+^-n=ks6?fkxEcK+WYBRPnsszs#V&>& zO03BEL5D!dguHZE5rQB>=}?D=mNGhY$U}4sCFo*AZ+`PO*qOCCeBR9W`}@B4elu@( zU3qhLrphrDT&!+zlO#xP-v5E)I0u(cX^5p`7Bkaa=Lo%X>EcPBu1dp?5R= zE30c_V-kjocqdS|2-2<+@(kwab8#Mft~f^TjCDG(D~=1X+{;V_`3}UxJNuk0;lD-i zjKnfa1X&^vRy@4_;C9npXKo#HC()f}?mmYpA7bvN;gSjvih0t4JdeDAe2x5x6kw6o z$jCY5E95#d04GX#(t#X6UPInNzC{*7n$}bxFCuRvKO(;vgkY(U^n+N+lLh1_1DJjPWq&``1v&C4EX~(oty;sg% zR8MEp5<`mmpQ$QUF&tM<%1LuNWz0Smbn!KzT-$7wRe9@e!aQGN?~d-tjCJZ-T$d8| zVLw2EzGw$_=~5^6ge3-)Yjiy6B;`-QW(6wCP0Gg*BxKRh}j=U5yxA8+}#cYV<# zSu@aY6AI${>>gD5H9gU;^-4)a8^k`dSA%^2NTW3^HpNvI?U0hXG9KwSKZzy##IK3A zEM1*t!?{yO%QZ^}sd8&i@5rxAM|6nXbe*F= X>VFpuhf5$8@$E>lf4|R=4(|O6J;C2| diff --git a/build/CMakeFiles/engine_demo.dir/src/main.cpp.o b/build/CMakeFiles/engine_demo.dir/src/main.cpp.o index 4ef65f4d346266ab91a166793ce8c80f8906ce5a..1994fd8cde6994e64d76f1fbcc1e708ceac94f9a 100644 GIT binary patch delta 478 zcmbP{eIaXt2Ga%Ijaqi1j8&5-iik6Q1(RZv8%4z#dqL#n4Wbf^FTwmDVDdkhw4eMC zsGgWO;c{aQJOblkehZ zRG9ox?>{5M=8yXJjEoVJ4GrrVJvMIyl8h@R8yeR$-O!r6$@t%717nWKJ4_lF9Vc6w MnlpAxE;LmK075pJi2wiq delta 542 zcmcbRH6we129t!|MlCy0#)iogMZ_5yCvOxLXVd_a`izIcZ1%~HV&aTqU{V%L#sW#{ z$u43dk_T8B7=#$O8DPMU1;RQCQa5>lm;@vD7H7C%vke*ySmh>Pl=IxI zAm72ym@#>!-hW1q%`5fo85tK$erZt8IAL?9VLc<`hsiIE>X{U@CubS|W3m8JCT)!U PlRui6GhUdiX{rtY#9*<% diff --git a/build/engine_demo b/build/engine_demo index c0ce7c07e5103f6c4b7b05a315fe6a0a3bb0bf1b..d5e547e501091391f1e8c88cce3f217ea5e14ef6 100755 GIT binary patch delta 5826 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 delta 6327 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 D#{Skh diff --git a/include/Camera.hpp b/include/Camera.hpp index 0e4a83e..88ef0da 100644 --- a/include/Camera.hpp +++ b/include/Camera.hpp @@ -2,7 +2,7 @@ #include -namespace planetarium { +namespace engine { // ----------------------------------------------------------------------- // Camera @@ -59,4 +59,4 @@ private: static constexpr float kSmoothingSpeed = 6.0f; }; -} // namespace planetarium +} // namespace engine diff --git a/include/Engine.hpp b/include/Engine.hpp index bfc2cb6..c49a4d2 100644 --- a/include/Engine.hpp +++ b/include/Engine.hpp @@ -6,7 +6,7 @@ struct GLFWwindow; -namespace planetarium { +namespace engine { // ----------------------------------------------------------------------- // Engine @@ -15,9 +15,9 @@ namespace planetarium { // routing between raw GLFW callbacks and the Camera. This is the only // class that knows about GLFW directly. // -// This is the reusable "engine" half of the original Planetarium project -// with every game-specific piece (SolarSystem, Planet, UI, picking) -// removed. Hook your own logic in via setUpdateCallback/setRenderCallback: +// A generic reusable "engine" shell: window/context setup, the main loop, +// and camera input routing, with no game-specific logic baked in. Hook +// your own logic in via setUpdateCallback/setRenderCallback: // // Engine engine; // engine.initialize(1600, 900, "My App"); @@ -74,4 +74,4 @@ private: double lastFrameTime_ = 0.0; }; -} // namespace planetarium +} // namespace engine diff --git a/include/GLFunctions.hpp b/include/GLFunctions.hpp index f0999f1..eb7ade1 100644 --- a/include/GLFunctions.hpp +++ b/include/GLFunctions.hpp @@ -13,7 +13,7 @@ // loaders are mixed in the same program - see the comment at the top of // that file for details. // -// Usage: call planetarium::gl::loadGLFunctions() exactly once, right +// Usage: call engine::gl::loadGLFunctions() exactly once, right // after the GLFW OpenGL context has been made current and before any // other GL call in the project's own rendering code. // ----------------------------------------------------------------------- @@ -68,7 +68,7 @@ typedef char GLchar; typedef ptrdiff_t GLsizeiptr; typedef ptrdiff_t GLintptr; -namespace planetarium::gl { +namespace engine::gl { using PFNGLGENVERTEXARRAYS = void (*)(GLsizei, GLuint*); using PFNGLBINDVERTEXARRAY = void (*)(GLuint); @@ -143,4 +143,4 @@ extern PFNGLGENERATEMIPMAP glGenerateMipmap; // required entry point could not be resolved. bool loadGLFunctions(); -} // namespace planetarium::gl +} // namespace engine::gl diff --git a/include/Mesh.hpp b/include/Mesh.hpp index 1330974..a45f2cc 100644 --- a/include/Mesh.hpp +++ b/include/Mesh.hpp @@ -5,7 +5,7 @@ #include #include -namespace planetarium { +namespace engine { // ----------------------------------------------------------------------- // Mesh @@ -51,4 +51,4 @@ private: bool isLineStrip_ = false; }; -} // namespace planetarium +} // namespace engine diff --git a/include/Shader.hpp b/include/Shader.hpp index 25532a2..a012f1f 100644 --- a/include/Shader.hpp +++ b/include/Shader.hpp @@ -5,7 +5,7 @@ #include #include -namespace planetarium { +namespace engine { // ----------------------------------------------------------------------- // Shader @@ -42,4 +42,4 @@ private: GLint locationOf(const std::string& name) const; }; -} // namespace planetarium +} // namespace engine diff --git a/src/Camera.cpp b/src/Camera.cpp index fc813b3..2c1c1e7 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -5,7 +5,7 @@ #include #include -namespace planetarium { +namespace engine { Camera::Camera() { reset(); } @@ -68,4 +68,4 @@ glm::mat4 Camera::viewMatrix() const { return glm::lookAt(currentPosition_, currentFocus_, glm::vec3(0.0f, 1.0f, 0.0f)); } -} // namespace planetarium +} // namespace engine diff --git a/src/Engine.cpp b/src/Engine.cpp index 40dfb54..c1e94a2 100644 --- a/src/Engine.cpp +++ b/src/Engine.cpp @@ -7,7 +7,7 @@ #include #include -namespace planetarium { +namespace engine { Engine::~Engine() { if (window_) { @@ -145,4 +145,4 @@ void Engine::framebufferSizeCallback(GLFWwindow* window, int width, int height) engine->framebufferHeight_ = height; } -} // namespace planetarium +} // namespace engine diff --git a/src/GLFunctions.cpp b/src/GLFunctions.cpp index e49a566..f777cdf 100644 --- a/src/GLFunctions.cpp +++ b/src/GLFunctions.cpp @@ -3,7 +3,7 @@ #include #include -namespace planetarium::gl { +namespace engine::gl { PFNGLGENVERTEXARRAYS glGenVertexArrays = nullptr; PFNGLBINDVERTEXARRAY glBindVertexArray = nullptr; @@ -89,4 +89,4 @@ bool loadGLFunctions() { return ok; } -} // namespace planetarium::gl +} // namespace engine::gl diff --git a/src/Mesh.cpp b/src/Mesh.cpp index e560a5e..0a28349 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -3,7 +3,7 @@ #include #include -namespace planetarium { +namespace engine { using namespace gl; Mesh::~Mesh() { release(); } @@ -213,4 +213,4 @@ Mesh Mesh::createOrbitCircle(int segments) { return mesh; } -} // namespace planetarium +} // namespace engine diff --git a/src/Shader.cpp b/src/Shader.cpp index ba6d8e5..808122d 100644 --- a/src/Shader.cpp +++ b/src/Shader.cpp @@ -6,7 +6,7 @@ #include #include -namespace planetarium { +namespace engine { using namespace gl; namespace { @@ -118,4 +118,4 @@ void Shader::setInt(const std::string& name, int i) const { glUniform1i(locationOf(name), i); } -} // namespace planetarium +} // namespace engine diff --git a/src/main.cpp b/src/main.cpp index e50f4d6..528bbd8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,8 +8,8 @@ #include #include -using namespace planetarium; -using namespace planetarium::gl; +using namespace engine; +using namespace engine::gl; namespace { bool directoryExists(const std::string& path) {