diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b5363a..33edf86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,8 @@ elseif (APPLE) target_compile_options(inferno PRIVATE -O1) endif() else() - target_compile_options(inferno PRIVATE -std=c++17) + target_compile_options(inferno PRIVATE -std=c++20) + target_compile_options(inferno PRIVATE -m64) if (CMAKE_BUILD_TYPE MATCHES "Debug") target_compile_options(inferno PRIVATE -O1) target_compile_options(inferno PRIVATE -Wall) diff --git a/src/inferno.cpp b/src/inferno.cpp index d07c2c3..a08349a 100644 --- a/src/inferno.cpp +++ b/src/inferno.cpp @@ -33,24 +33,25 @@ InfernoApp* inferno_create() // Create window graphics::window_create("Inferno v" INFERNO_VERSION, 1280, 720); - // // setup the scene - // scene::Material basicMaterial("basic"); - // - // graphics::Shader* basicShader = graphics::shader_create(); - // graphics::shader_load(basicShader, "res/shaders/basic.glsl"); - // graphics::shader_link(basicShader); - // - // scene::SceneObject* object = scene::scene_object_create(); - // - // scene::Mesh cornell; - // cornell.loadOBJ("res/cornell-box.obj"); - // // cornell.loadOBJ("res/sponza.obj"); - // cornell.ready(); - // cornell.setMaterial(&basicMaterial); - // - // scene::scene_object_add_mesh(object, &cornell); - // scene::scene_add_object(app->Scene, object); - // + // setup the scene + scene::Material basicMaterial("basic"); + graphics::Shader* basicShader = graphics::shader_create(); + graphics::shader_load(basicShader, "res/shaders/basic.glsl"); + graphics::shader_link(basicShader); + + app->Scene = scene::scene_create(); + scene::SceneObject* object = scene::scene_object_create(); + + scene::Mesh cornell; + cornell.loadOBJ("res/cornell-box.obj"); + // cornell.loadOBJ("res/sponza.obj"); + cornell.ready(); + cornell.setMaterial(&basicMaterial); + scene::scene_object_add_mesh(object, &cornell); + + yolo::info("{} {}", app->Scene, object); + scene::scene_add_object(app->Scene, object); + return app; } diff --git a/src/scene/scene.cpp b/src/scene/scene.cpp index 50bb3a2..843d0d2 100644 --- a/src/scene/scene.cpp +++ b/src/scene/scene.cpp @@ -1,5 +1,7 @@ #include "scene.hpp" +#include + #include #include #include @@ -10,7 +12,9 @@ namespace inferno::scene { Scene* scene_create() { Scene* scene = new Scene; + scene->Objects = std::vector(); scene->Camera = new graphics::Camera; + yolo::debug("Created scene {}", scene); return scene; } @@ -20,7 +24,9 @@ void scene_cleanup(Scene* scene) void scene_add_object(Scene* scene, SceneObject* object) { - scene->Objects.emplace_back(std::move(object)); + yolo::debug("Using scene {}", scene); + yolo::debug("Adding object to scene, no Objects: {}, adding to pool of: {}", object->Meshs.size(), scene->Objects.size()); + scene->Objects.push_back(object); scene->DidUpdate = true; }