diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine.c | 5 | ||||
| -rw-r--r-- | src/mauri.c | 4 | ||||
| -rw-r--r-- | src/objects/pass.c | 2 | ||||
| -rw-r--r-- | src/shader.c | 5 |
4 files changed, 11 insertions, 5 deletions
diff --git a/src/engine.c b/src/engine.c index 1b21277..cf78ee1 100644 --- a/src/engine.c +++ b/src/engine.c @@ -78,7 +78,6 @@ static void draw_pass(mri_engine *engine, render_pass_stage s, mri_render_pass * glDrawArrays(GL_TRIANGLES, 0, 6); } - void mri_engine_load(mri_engine *engine, mri_scene *scene) { mvec_init(engine->objects); mvec_init(engine->framebuffers); @@ -96,7 +95,7 @@ void mri_engine_load(mri_engine *engine, mri_scene *scene) { engine->texel_half_size[1] = .5f / engine->height; engine->combine_buffer = mri_engine_get_or_new_framebuffer(engine, - mstr_c("_rt_FullFrameBuffer"), engine->context->width, engine->context->height, 1.f, + mstr_c("_rt_FullFrameBuffer"), engine->width, engine->height, 1.f, scene->clear_color); create_gl_object(&engine->default_gl_object, DEFAULT, 0, 0); @@ -173,7 +172,7 @@ mri_framebuffer *mri_engine_get_or_new_framebuffer(mri_engine *engine, } void mri_engine_draw(mri_engine *engine) { - mri_framebuffer_bind(engine->combine_buffer, true); + //mri_framebuffer_bind(engine->combine_buffer, true); mri_render_object *object; mvec_loop_ptr(engine->objects, object, i) { diff --git a/src/mauri.c b/src/mauri.c index 6e8e2ed..933f089 100644 --- a/src/mauri.c +++ b/src/mauri.c @@ -9,7 +9,7 @@ int main(int argc, char* argv[]) { mri_context *context = mri_glfw_context_new(); - context->create_window(context, 1600, 900, "mauri", false); + context->create_window(context, 3000, 2000, "mauri", false); if (argc == 2) { mri_asset_manager_load_pkg(mstr_c(argv[1])); @@ -17,6 +17,8 @@ int main(int argc, char* argv[]) { mri_scene scene = {0}; mri_scene_parse(&scene); + //context->resize_window(context, scene.width, scene.height); + mri_engine engine = {0}; engine.context = context; diff --git a/src/objects/pass.c b/src/objects/pass.c index 809fde5..fadac16 100644 --- a/src/objects/pass.c +++ b/src/objects/pass.c @@ -180,7 +180,7 @@ void mri_pass_load(mri_engine *engine, mri_pass *pass, mri_pass_stage stage) { // ex: g_Texture2Resolution (vec4) // ^ index if (mstr_eqn(shader_uniform->uname, mstr_c("g_Texture"), 9) && - shader_uniform->type == TYPE_VEC4) { + mstr_cmp(shader_uniform->uname, mstr_c("Resolution"), 10, 10) == 0) { int index = shader_uniform->uname->ptr[9] - '0'; if (rpass->textures[index]) { vec4 *texture_res = &rpass->textures[index]->texture_resolution; diff --git a/src/shader.c b/src/shader.c index b8d2ed9..d5b1ede 100644 --- a/src/shader.c +++ b/src/shader.c @@ -32,6 +32,7 @@ static const char *gl_compat = "#define atan2(y,x) atan(x,y)\n" "#define ddx dFdx\n" "#define ddy(x) dFdy(-(x))\n" + "#define VERSION 2\n" "#define GLSL 1\n"; static const char *version = "#version 120\n"; @@ -169,6 +170,8 @@ void mri_shader_compile(mri_shader *shader) { char *vs_source_c = mstr_to_cstr(vs_source); char *fs_source_c = mstr_to_cstr(fs_source); + printf("%s\n", fs_source_c); + create_gl_shader(&shader->gl_shader, vs_source_c, fs_source_c); free(vs_source_c); @@ -214,6 +217,8 @@ void mri_shader_bind(mri_engine *engine, mri_shader *shader, mat4 mvp) { mri_uniform *uniform; mvec_loop_ptr(shader->uniforms, uniform, i) { + if (mstr_find(uniform->uname, '[') >= 0) + continue; mri_uniform_set(shader, uniform); //printf("%.*s %f\n", uniform->uname->len, uniform->uname->ptr, uniform->value[0]); } |