diff options
Diffstat (limited to 'src/objects')
| -rw-r--r-- | src/objects/object.cc | 8 | ||||
| -rw-r--r-- | src/objects/object.h | 3 | ||||
| -rw-r--r-- | src/objects/pass.cc | 21 | ||||
| -rw-r--r-- | src/objects/scene.cc | 6 | ||||
| -rw-r--r-- | src/objects/scene.h | 3 |
5 files changed, 13 insertions, 28 deletions
diff --git a/src/objects/object.cc b/src/objects/object.cc index 4c7273b..833620a 100644 --- a/src/objects/object.cc +++ b/src/objects/object.cc @@ -23,7 +23,6 @@ Object::Object(Parser &p, json &root) // on the scene in order of deps but I'm not sure if that would // break other things. std::vector<s32>::const_iterator it = deps.begin(); - while (it != deps.end()) { bool remove = false; @@ -54,9 +53,7 @@ Object::Object(Parser &p, json &root) //origin[2] = 0.f; p.get_value<s32>(root, "colorBlendMode", &color_blend_mode, 0); - p.get_value<f32>(root, "alpha", &alpha, 1.f); - p.get_value<bool>(root, "visible", &visible, true); auto _image = root["image"]; @@ -72,11 +69,10 @@ Object::Object(Parser &p, json &root) for (auto &effect : root["effects"]) { effects.emplace_back(new Effect(p, effect)); - } } -void Object::get_model(f32 width, f32 height, bool flip) +void Object::get_model(Engine *engine, f32 width, f32 height, bool flip) { model = mat4x4(1.f); @@ -149,7 +145,7 @@ void Object::load(Engine *engine) engine->create_framebuffer(buffer_a, size[0], size[1], 1.f); engine->create_framebuffer(buffer_b, size[0], size[1], 1.f); - get_model(engine->view.width, engine->view.height, effects.size() == 0); + get_model(engine, engine->view.width, engine->view.height, effects.size() == 0); ortho = glm::ortho(-size[0], size[0], -size[1], size[1], 0.f, 1.f); diff --git a/src/objects/object.h b/src/objects/object.h index d4a31a5..37b8bce 100644 --- a/src/objects/object.h +++ b/src/objects/object.h @@ -38,13 +38,12 @@ class Object vec2 size; - void get_model(f32 width, f32 height, bool flip); + void get_model(Engine *engine, f32 width, f32 height, bool flip); mat4x4 ortho; mat4x4 model; RenderObject *gl_uv_object = nullptr; - RenderObject *gl_object = nullptr; RenderObject *gl_object_flipped = nullptr; diff --git a/src/objects/pass.cc b/src/objects/pass.cc index db5084a..feea725 100644 --- a/src/objects/pass.cc +++ b/src/objects/pass.cc @@ -1,3 +1,5 @@ +#include <thread> + #include "../assets.h" #include "../engine.h" #include "../gl.h" @@ -19,46 +21,39 @@ Pass::Pass(Parser &p, json &root, PassStage stage) { case EFFECT0_PASS: { auto _uniforms = root["constantshadervalues"]; - for (auto &value : _uniforms.items()) { uniforms.emplace_back(new UniformOverride({vec4(0.f), value.key()})); p.get_value<vec4>(_uniforms, value.key(), &uniforms.back()->value, vec4(0.f)); } - break; } case EFFECT1_PASS: { auto _material = root["material"]; - if (_material.is_string()) { material = new Material(p, _material); } auto _command = root["command"]; - if (_command.is_string() && _command == "copy") { command = COPY; } auto _target = root["target"]; - if (_target.is_string()) { target = _target; } auto _source = root["source"]; - if (_source.is_string()) { source = _source; } binds[0] = "previous"; - for (auto &bind : root["bind"]) { u32 index = bind["index"]; @@ -74,7 +69,6 @@ Pass::Pass(Parser &p, json &root, PassStage stage) } auto _textures = root["textures"]; - for (auto i = 0u; i < _textures.size(); i++) { auto texture = _textures[i]; @@ -167,18 +161,16 @@ RenderPass::RenderPass(Engine *engine, Pass *pass) command = pass->command; combine = pass->combine; - // This object contains information needed for - // getting previous framebuffer textures and targets. + // This object contains information needed for getting previous + // framebuffer textures and targets. object = pass->object; if (command == COPY) { // Target and source is the only needed information // for a COPY pass. - target = engine->get_framebuffer(pass->target); source = engine->get_framebuffer(pass->source); - return; } @@ -209,7 +201,6 @@ RenderPass::RenderPass(Engine *engine, Pass *pass) // Check if texture is referencing a framebuffer. textures[i] = engine->get_framebuffer_texture(pass->textures[i]); - if (textures[i] == nullptr) { // The texture wasn't a framebuffer so try to load it from an asset. @@ -328,9 +319,7 @@ RenderPass::RenderPass(Engine *engine, Pass *pass) robject = pass->object->gl_object; model = &pass->object->model; } - - // Default everything. - else + else // Default everything. { robject = engine->default_object; model = &engine->default_model; diff --git a/src/objects/scene.cc b/src/objects/scene.cc index 9bdc86c..6df5e02 100644 --- a/src/objects/scene.cc +++ b/src/objects/scene.cc @@ -11,7 +11,6 @@ using namespace Mauri; Scene::Scene(Parser &p, const std::string &path) { auto asset = asset_manager()->get_file(path, NONE); - if (asset->type == ASSET_VOID) { log_error("%s", "failed to open scene.json"); @@ -21,18 +20,17 @@ Scene::Scene(Parser &p, const std::string &path) auto root = json::parse(asset->as_string()); auto camera = root["camera"]; - p.get_value<vec3>(camera, "center", &cam.center, vec3(0.f)); p.get_value<vec3>(camera, "eye", &cam.eye, vec3(0.f)); p.get_value<vec3>(camera, "up", &cam.up, vec3(0.f)); auto general = root["general"]; - p.get_value<bool>(general, "clearenabled", &clear_enabled, true); p.get_value<vec4>(general, "clearcolor", &clear_color, vec4(1.f)); + p.get_value<f32>(general, "nearz", &nearz, 0.f); + p.get_value<f32>(general, "farz", &farz, 1.f); auto ortho = general["orthogonalprojection"]; - p.get_value<f32>(ortho, "width", &width, 0.f); p.get_value<f32>(ortho, "height", &height, 0.f); diff --git a/src/objects/scene.h b/src/objects/scene.h index 7dda288..8f13f3a 100644 --- a/src/objects/scene.h +++ b/src/objects/scene.h @@ -30,6 +30,9 @@ class Scene f32 width; f32 height; + f32 nearz; + f32 farz; + bool clear_enabled; vec4 clear_color; |