X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=render.h;h=6b956de3eb867a8d261057c95dbf5b34e9243ba3;hb=96f8ce1f47009e5f763b05566db3f6cca07cdc76;hp=440af479f605195d0c763d27e88ef55e631ec1b3;hpb=b4a83d4fcab39bee5a8cd6e8e6eec06314864e5b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/render.h b/render.h index 440af47..6b956de 100644 --- a/render.h +++ b/render.h @@ -11,18 +11,8 @@ #include "shaders/blitblur.h" #include "shaders/blitcolour.h" -#if 0 -#include "shaders/standard.h" -#include "shaders/vblend.h" -#endif - -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 ); -VG_STATIC void render_world( world_instance *world, camera *cam, - int layer_depth ); -VG_STATIC void render_world_depth( world_instance *world, camera *cam ); - +#define WORKSHOP_PREVIEW_WIDTH 504 +#define WORKSHOP_PREVIEW_HEIGHT 336 #ifndef RENDER_H #define RENDER_H @@ -36,7 +26,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 +166,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 + } + } } }; @@ -514,12 +526,14 @@ VG_STATIC void async_render_init( void *payload, u32 size ) render_fb_allocate( fb ); } + f32 rh = 0x1p-4f, ih = 0.3f; + 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,rh, 0.00f,rh, /* fsquad1 */ + 0.00f,0.00f, 1.00f,0.00f, 1.00f,rh, /* 9x9 debug grid */ /* row0 */ @@ -543,10 +557,15 @@ VG_STATIC void async_render_init( void *payload, u32 size ) 0.30f,0.60f, 0.60f,0.60f, 0.60f,0.90f, 0.60f,0.60f, 0.90f,0.90f, 0.60f,0.90f, 0.60f,0.60f, 0.90f,0.60f, 0.90f,0.90f, + + 0.00f,ih, 1.00f,ih+rh, 0.00f,ih+rh, /* fsquad2 */ + 0.00f,ih, 1.00f,ih, 1.00f,ih+rh, }; 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 +589,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 ); } /* @@ -589,11 +607,18 @@ VG_STATIC void render_fsquad1(void) glDrawArrays( GL_TRIANGLES, 6, 6 ); } +VG_STATIC void render_fsquad2(void) +{ + glBindVertexArray( gpipeline.fsquad.vao ); + glDrawArrays( GL_TRIANGLES, 66,6 ); +} + /* * Call this inside the UI function */ VG_STATIC void render_view_framebuffer_ui(void) { +#if 0 int viewing_count = 0; glBindVertexArray( gpipeline.fsquad.vao ); @@ -644,6 +669,7 @@ VG_STATIC void render_view_framebuffer_ui(void) viewing_count ++; } } +#endif } VG_STATIC void render_framebuffer_show( struct framebuffer *fb,