X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=render.h;h=541f047e7396562fd1b74a5c3daf8b4d75205a05;hb=e5d79dc0355e04baecce8908e29b8e7569d1e857;hp=440af479f605195d0c763d27e88ef55e631ec1b3;hpb=b4a83d4fcab39bee5a8cd6e8e6eec06314864e5b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/render.h b/render.h index 440af47..541f047 100644 --- a/render.h +++ b/render.h @@ -16,6 +16,9 @@ #include "shaders/vblend.h" #endif +#define WORKSHOP_PREVIEW_WIDTH 504 +#define WORKSHOP_PREVIEW_HEIGHT 336 + VG_STATIC void render_water_texture( world_instance *world, camera *cam, int layer_depth ); VG_STATIC void render_water_surface( world_instance *world, camera *cam ); @@ -36,7 +39,8 @@ VG_STATIC struct pipeline{ framebuffer *fb_main, *fb_water_reflection, - *fb_water_beneath; + *fb_water_beneath, + *fb_workshop_preview; int ready; float view_render_scale, @@ -175,6 +179,27 @@ framebuffers[] = .attachment = GL_DEPTH_STENCIL_ATTACHMENT } } + }, + { + "workshop_preview", + .link = &gpipeline.fb_workshop_preview, + .resolution_div = 0, + .fixed_w = WORKSHOP_PREVIEW_WIDTH, .fixed_h = WORKSHOP_PREVIEW_HEIGHT, + .attachments = + { + { + "colour", k_framebuffer_attachment_type_texture, + .internalformat = GL_RGB, + .format = GL_RGB, + .type = GL_UNSIGNED_BYTE, + .attachment = GL_COLOR_ATTACHMENT0 + }, + { + "depth_stencil", k_framebuffer_attachment_type_renderbuffer, + .internalformat = GL_DEPTH24_STENCIL8, + .attachment = GL_DEPTH_STENCIL_ATTACHMENT + } + } } }; @@ -515,11 +540,11 @@ VG_STATIC void async_render_init( void *payload, u32 size ) } float quad[] = { - 0.00f,0.00f, 1.00f,1.00f, 0.00f,1.00f, - 0.00f,0.00f, 1.00f,0.00f, 1.00f,1.00f, + 0.00f,0.00f, 1.00f,1.00f, 0.00f,1.00f, /* fsquad */ + 0.00f,0.00f, 1.00f,0.00f, 1.00f,1.00f, - 0.20f,0.00f, 0.80f,1.00f, 0.20f,1.00f, - 0.20f,0.00f, 0.80f,0.00f, 0.80f,1.00f, + 0.00f,0.00f, 1.00f,0x1p-4f,0.00f,0x1p-4f, /* fsquad1 */ + 0.00f,0.00f, 1.00f,0.00f, 1.00f,0x1p-4f, /* 9x9 debug grid */ /* row0 */ @@ -547,6 +572,8 @@ VG_STATIC void async_render_init( void *payload, u32 size ) vg_console_reg_cmd( "fb", render_framebuffer_control, render_framebuffer_poll ); + vg_console_reg_var( "render_scale", &gpipeline.view_render_scale, + k_var_dtype_f32, VG_VAR_PERSISTENT ); glGenVertexArrays( 1, &gpipeline.fsquad.vao ); glGenBuffers( 1, &gpipeline.fsquad.vbo ); @@ -570,8 +597,7 @@ VG_STATIC void render_init(void) shader_blitblur_register(); shader_blitcolour_register(); - vg_async_item *call = vg_async_alloc(0); - vg_async_dispatch( call, async_render_init ); + vg_async_call( async_render_init, NULL, 0 ); } /* @@ -594,6 +620,7 @@ VG_STATIC void render_fsquad1(void) */ VG_STATIC void render_view_framebuffer_ui(void) { +#if 0 int viewing_count = 0; glBindVertexArray( gpipeline.fsquad.vao ); @@ -644,6 +671,7 @@ VG_STATIC void render_view_framebuffer_ui(void) viewing_count ++; } } +#endif } VG_STATIC void render_framebuffer_show( struct framebuffer *fb,