Add render passes
This commit is contained in:
@@ -83,9 +83,10 @@ internal i32 tinyrenderer(Arena *arena, TinyArgs args) {
|
||||
Colour bg = {.r = 42, .g = 45, .b = 52, .a = 255};
|
||||
Colour main_colour = {.r = 14, .g = 156, .b = 208, .a = 255};
|
||||
|
||||
Render shadowbuffer, framebuffer;
|
||||
if (!init_render(arena, &shadowbuffer, IMAGE_DIMENSION, IMAGE_DIMENSION) ||
|
||||
!init_render(arena, &framebuffer, IMAGE_DIMENSION, IMAGE_DIMENSION)) {
|
||||
Render *shadowbuffer = &(g_render_passes[RENDER_PASS_SHADOW]);
|
||||
Render *framebuffer = &(g_render_passes[RENDER_PASS_MAIN]);
|
||||
if (!init_render(arena, shadowbuffer, IMAGE_DIMENSION, IMAGE_DIMENSION) ||
|
||||
!init_render(arena, framebuffer, IMAGE_DIMENSION, IMAGE_DIMENSION)) {
|
||||
return TINY_EXIT_RENDER_INIT_FAILED;
|
||||
}
|
||||
|
||||
@@ -99,12 +100,12 @@ internal i32 tinyrenderer(Arena *arena, TinyArgs args) {
|
||||
|
||||
load_shaders(viewport(0, 0, IMAGE_DIMENSION, IMAGE_DIMENSION));
|
||||
|
||||
clear_buffer(&(framebuffer.img), &bg);
|
||||
clear_buffer(&(framebuffer->img), &bg);
|
||||
|
||||
render_model(&obj, &shadowbuffer, depth, RENDER_TYPE_SHADED, main_colour);
|
||||
render_model(&obj, &framebuffer, perspective_diffuse, RENDER_TYPE_SHADED, main_colour);
|
||||
render_model(&obj, shadowbuffer, depth, RENDER_TYPE_SHADED, main_colour);
|
||||
render_model(&obj, framebuffer, perspective_diffuse, RENDER_TYPE_SHADED, main_colour);
|
||||
|
||||
save_image(&(framebuffer.img), "result.pam");
|
||||
save_image(&(framebuffer->img), "result.pam");
|
||||
|
||||
return TINY_EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user