X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=render.h;h=765f41b51319e18ddf2bbf425c3efe6d1f52593c;hb=ea41214530c8f3517b59ccbf7fad9f3bb159684a;hp=64556ffbcfac1390a7c4789976c524e990d2608a;hpb=93790b71d3a89724255dc73239e38c08ad4bbac7;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/render.h b/render.h index 64556ff..765f41b 100644 --- a/render.h +++ b/render.h @@ -4,7 +4,9 @@ #pragma once #include "common.h" #include "model.h" -#include "camera.h" +#include "shader_props.h" +#include "vg/vg_framebuffer.h" +#include "vg/vg_camera.h" #include "shaders/blit.h" #include "shaders/blitblur.h" @@ -20,110 +22,27 @@ static f32 k_blur_strength = 0.3f; static f32 k_fov = 0.86f; static f32 k_cam_height = 0.8f; -typedef struct framebuffer framebuffer; - /* * All standard buffers used in rendering */ -static struct pipeline{ +struct pipeline +{ glmesh fsquad; - framebuffer *fb_main, - *fb_water_reflection, - *fb_water_beneath, - *fb_workshop_preview, - *fb_network_status; + vg_framebuffer *fb_main, + *fb_water_reflection, + *fb_water_beneath, + *fb_workshop_preview, + *fb_network_status; int ready; -} -gpipeline; - -struct framebuffer{ - const char *display_name; - int resolution_div, /* definition */ - fixed_w, - fixed_h, - - render_w, /* runtime */ - render_h; - struct framebuffer_attachment{ - const char *display_name; - - enum framebuffer_attachment_type{ - k_framebuffer_attachment_type_none, - k_framebuffer_attachment_type_texture, - k_framebuffer_attachment_type_renderbuffer, - k_framebuffer_attachment_type_texture_depth - } - purpose; - - enum framebuffer_quality_profile{ - k_framebuffer_quality_all, - k_framebuffer_quality_high_only - } - quality; - - GLenum internalformat, - format, - type, - attachment; - - GLuint id; - - /* Runtime */ - int debug_view; - } - attachments[5]; - GLuint fb; - framebuffer **link; + v2f blur_override; + vg_camera cam; } -extern framebuffers[]; - - -struct shader_props_standard -{ - u32 tex_diffuse; -}; - -struct shader_props_terrain -{ - u32 tex_diffuse; - v2f blend_offset; - v4f sand_colour; -}; - -struct shader_props_vertex_blend -{ - u32 tex_diffuse; - v2f blend_offset; -}; - -struct shader_props_water -{ - v4f shore_colour; - v4f deep_colour; - f32 fog_scale; - f32 fresnel; - f32 water_sale; - v4f wave_speed; -}; - -struct shader_props_cubemapped -{ - u32 tex_diffuse; - u32 cubemap_entity; - v4f tint; -}; +static g_render; void render_init(void); void render_fsquad(void); void render_fsquad1(void); void render_fsquad2(void); -void render_view_framebuffer_ui(void); -void render_fb_bind_texture( framebuffer *fb, int attachment, int slot ); -void render_fb_inverse_ratio( framebuffer *fb, v2f inverse ); -void render_fb_get_current_res( struct framebuffer *fb, int *x, int *y ); -void render_fb_bind( framebuffer *fb, int use_scaling ); -void render_fb_bind_texture( framebuffer *fb, int attachment, int slot ); -void render_fb_allocate( struct framebuffer *fb ); -void render_fb_resize(void); +void postprocess_to_screen( vg_framebuffer *fb );