summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gl.cc7
-rw-r--r--src/log.h6
-rw-r--r--src/mauri.cc36
-rw-r--r--src/objects/pass.cc3
4 files changed, 30 insertions, 22 deletions
diff --git a/src/gl.cc b/src/gl.cc
index 6ae8f1f..9cf1b2d 100644
--- a/src/gl.cc
+++ b/src/gl.cc
@@ -473,7 +473,7 @@ RenderFramebuffer::RenderFramebuffer(s32 width, s32 height, f32 scale)
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, this->texture->id, 0);
- GLenum attatchment[] = {GL_COLOR_ATTACHMENT0};
+ GLenum attatchment[] = { GL_COLOR_ATTACHMENT0 };
glDrawBuffers(1, attatchment);
}
@@ -488,14 +488,15 @@ auto RenderFramebuffer::blit(u32 dest, s32 width, s32 height) -> void
if (!context()->is_draw_enabled()) return;
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, dest);
glBindFramebuffer(GL_READ_FRAMEBUFFER, this->id);
- glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+ GLbitfield mask = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT;
+ glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, GL_NEAREST);
}
auto RenderFramebuffer::clear(vec4 color) -> void
{
if (!context()->is_draw_enabled()) return;
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, this->id);
- glClearBufferfv(GL_COLOR, 0, glm::value_ptr(color));
+ glClearBufferfv(GL_COLOR | GL_DEPTH, 0, glm::value_ptr(color));
}
RenderFramebuffer::~RenderFramebuffer()
diff --git a/src/log.h b/src/log.h
index 43d0e09..b7fa31f 100644
--- a/src/log.h
+++ b/src/log.h
@@ -5,4 +5,10 @@ extern "C" {
#include <al/log.h>
}
+#define info(fmt, ...) log_info(fmt, ##__VA_ARGS__)
+#define warn(fmt, ...) log_warn(fmt, ##__VA_ARGS__)
+#define error(fmt, ...) log_error(fmt, ##__VA_ARGS__)
+#define debug(fmt, ...) log_debug(fmt, ##__VA_ARGS__)
+#define trace(fmt, ...) log_trace(fmt, ##__VA_ARGS__)
+
#endif // _LOG_H
diff --git a/src/mauri.cc b/src/mauri.cc
index 9351320..6e0bcbf 100644
--- a/src/mauri.cc
+++ b/src/mauri.cc
@@ -28,18 +28,18 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
{
(void)argc;
(void)argv;
- janus::ArgParser args = *(janus::ArgParser *)extra;
+ janus::ArgParser *args = (janus::ArgParser *)extra;
- if (!(args.found("package") ^ args.found("directory")))
+ if (!(args->found("package") ^ args->found("directory")))
{
- al_printf("%s\n", args.helptext.c_str());
+ al_printf("%s\n", args->helptext.c_str());
return EXIT_FAILURE;
}
s32 width = 720;
s32 height = 480;
- if (args.found("width")) width = args.getInt("width");
- if (args.found("height")) height = args.getInt("height");
+ if (args->found("width")) width = args->getInt("width");
+ if (args->found("height")) height = args->getInt("height");
if (width == 0 || height == 0)
{
error("invalid width and/or height in arguments");
@@ -48,36 +48,36 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
s32 xoffset;
s32 yoffset;
- if (sscanf(args.getString("offset").c_str(), "%d,%d", &xoffset, &yoffset) != 2)
+ if (sscanf(args->getString("offset").c_str(), "%d,%d", &xoffset, &yoffset) != 2)
{
error("invalid offset in arguments");
return EXIT_FAILURE;
}
bool gifscene = false;
- if (args.found("package"))
+ if (args->found("package"))
{
- std::string package_path = args.getString("package");
+ std::string package_path = args->getString("package");
size_t slash = package_path.rfind("/");
std::string filename;
if (slash != std::string::npos) filename = package_path.substr(slash + 1);
else filename = package_path;
gifscene = filename == "gifscene.pkg";
- if (!asset_manager()->arm_package(package_path, args.found("target")))
+ if (!asset_manager()->arm_package(package_path, args->found("target")))
{
return EXIT_FAILURE;
}
}
- if (args.found("directory"))
+ if (args->found("directory"))
{
- asset_manager()->prepare_output = args.found("target");
- asset_manager()->add_search_directory(args.getString("directory"));
+ asset_manager()->prepare_output = args->found("target");
+ asset_manager()->add_search_directory(args->getString("directory"));
}
- if (args.found("assets"))
+ if (args->found("assets"))
{
- asset_manager()->add_search_directory(args.getString("assets"));
+ asset_manager()->add_search_directory(args->getString("assets"));
}
Scene *scene = Scene::parse(gifscene ? "gifscene.json" : "scene.json");
@@ -89,7 +89,7 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
height = scene->height;
}
- if (args.getFlag("scale"))
+ if (args->getFlag("scale"))
{
f32 ratio = scene->width / (f32)scene->height;
if (ratio > 1.f) height = width / ratio;
@@ -97,7 +97,7 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
}
Context *new_context = new Context();
- if (!new_context->create_window(width, height, "mauri", args.getString("monitor")))
+ if (!new_context->create_window(width, height, "mauri", args->getString("monitor")))
{
return EXIT_FAILURE;
}
@@ -116,7 +116,7 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
u64 duration = nn_get_timestamp() - begin;
info("scene loaded in %.2fs", duration / 1000000.f);
- if (asset_manager()->prepare_output) asset_manager()->dump(args.getString("target"));
+ if (asset_manager()->prepare_output) asset_manager()->dump(args->getString("target"));
else engine->run();
delete scene;
@@ -124,7 +124,7 @@ auto window_system_main(u32 argc, str *argv, void *extra) -> s32
unload_shaders();
- if (args.found("package")) asset_manager()->unload_package();
+ if (args->found("package")) asset_manager()->unload_package();
context()->close_window();
set_context(nullptr);
diff --git a/src/objects/pass.cc b/src/objects/pass.cc
index dc19378..e2dc02d 100644
--- a/src/objects/pass.cc
+++ b/src/objects/pass.cc
@@ -337,7 +337,8 @@ auto RenderPass::draw(Engine *engine) -> void
if (this->combine) Render::blend_func(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
else Render::blend_func(GL_ONE, GL_ZERO);
- Render::color_mask(1.f, 1.f, 1.f, this->combine ? 0.f : 1.f);
+ //Render::color_mask(1.f, 1.f, 1.f, this->combine ? 0.f : 1.f);
+ Render::color_mask(1.f, 1.f, 1.f, 1.f);
engine->view.default_viewport(adjusted_target->buffer->width, adjusted_target->buffer->height);