X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=render.h;h=f5b0afdbd721820ed9f427108d5bd607c585e450;hb=329828f689e880b825b396c7be5b243aad6ae5ea;hp=64556ffbcfac1390a7c4789976c524e990d2608a;hpb=93790b71d3a89724255dc73239e38c08ad4bbac7;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/render.h b/render.h index 64556ff..f5b0afd 100644 --- a/render.h +++ b/render.h @@ -5,6 +5,8 @@ #include "common.h" #include "model.h" #include "camera.h" +#include "shader_props.h" +#include "vg/vg_framebuffer.h" #include "shaders/blit.h" #include "shaders/blitblur.h" @@ -20,110 +22,23 @@ 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; -} -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 gpipeline; 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);