when you pass a null ptr, the ptr is null?! who'd a thought

This commit is contained in:
Ben Kyd
2023-10-14 13:36:34 +01:00
parent 3dcea96b94
commit 6d80f1e4e2
3 changed files with 28 additions and 20 deletions

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -1,5 +1,7 @@
#include "scene.hpp"
#include <yolo/yolo.hpp>
#include <memory>
#include <scene/camera.hpp>
#include <scene/mesh.hpp>
@@ -10,7 +12,9 @@ namespace inferno::scene {
Scene* scene_create()
{
Scene* scene = new Scene;
scene->Objects = std::vector<SceneObject*>();
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;
}