X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=render.h;h=765f41b51319e18ddf2bbf425c3efe6d1f52593c;hb=ea41214530c8f3517b59ccbf7fad9f3bb159684a;hp=0abbdae0ce9f07a78b3b8c964fd38abf67117f53;hpb=1f1d636056450dcd23cce55c0795ec6276272531;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/render.h b/render.h index 0abbdae..765f41b 100644 --- a/render.h +++ b/render.h @@ -1,37 +1,48 @@ -#ifndef RENDER_H -#define RENDER_H -#define VG_3D -#include "vg/vg.h" +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ +#pragma once +#include "common.h" +#include "model.h" +#include "shader_props.h" +#include "vg/vg_framebuffer.h" +#include "vg/vg_camera.h" -static struct pipeline -{ - float fov; -} -gpipeline; +#include "shaders/blit.h" +#include "shaders/blitblur.h" +#include "shaders/blitcolour.h" +#include "shaders/blit_transition.h" + +#define WORKSHOP_PREVIEW_WIDTH 504 +#define WORKSHOP_PREVIEW_HEIGHT 336 -static void render_water_texture( m4x3f camera ); -static void render_water_surface( m4x4f pv ); -static void render_world( m4x4f pv ); +static f32 k_render_scale = 1.0f; +static i32 k_blur_effect = 1; +static f32 k_blur_strength = 0.3f; +static f32 k_fov = 0.86f; +static f32 k_cam_height = 0.8f; /* - * http://www.terathon.com/lengyel/Lengyel-Oblique.pdf + * All standard buffers used in rendering */ -static void plane_clip_projection( m4x4f mat, v4f plane ) +struct pipeline { - v4f c = - { - (vg_signf(plane[0]) + mat[2][0]) / mat[0][0], - (vg_signf(plane[1]) + mat[2][1]) / mat[1][1], - -1.0f, - (1.0f + mat[2][2]) / mat[3][2] - }; + glmesh fsquad; - v4_muls( plane, 2.0f / v4_dot(plane,c), c ); + vg_framebuffer *fb_main, + *fb_water_reflection, + *fb_water_beneath, + *fb_workshop_preview, + *fb_network_status; + int ready; - mat[0][2] = c[0]; - mat[1][2] = c[1]; - mat[2][2] = c[2] + 1.0f; - mat[3][2] = c[3]; + v2f blur_override; + vg_camera cam; } +static g_render; -#endif /* RENDER_H */ +void render_init(void); +void render_fsquad(void); +void render_fsquad1(void); +void render_fsquad2(void); +void postprocess_to_screen( vg_framebuffer *fb );