framebuffer change
[carveJwlIkooP6JGAAIwe30JlM.git] / render.h
index 64556ffbcfac1390a7c4789976c524e990d2608a..f5b0afdbd721820ed9f427108d5bd607c585e450 100644 (file)
--- 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);