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 e9cffa3..8cc1645 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o differ diff --git a/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o index a6c40bd..aa21e60 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o differ diff --git a/build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o b/build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o index 8b7261c..1aa1385 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o differ diff --git a/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o index 1d173be..3e422ed 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o differ diff --git a/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o index 8eb57d6..661d127 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o differ diff --git a/build/CMakeFiles/engine_demo.dir/src/main.cpp.o b/build/CMakeFiles/engine_demo.dir/src/main.cpp.o index 4ef65f4..1994fd8 100644 Binary files a/build/CMakeFiles/engine_demo.dir/src/main.cpp.o and b/build/CMakeFiles/engine_demo.dir/src/main.cpp.o differ diff --git a/build/engine_demo b/build/engine_demo index c0ce7c0..d5e547e 100755 Binary files a/build/engine_demo and b/build/engine_demo differ 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) {