blob: 1ceea6ca4741dffc2acae08310ec2458087ebfe6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/**
* @file renderpasses.h
* @author your name (you@domain.com)
* @brief Built-in renderpasses to the engine
* @version 0.1
* @date 2024-04-28
*
* @copyright Copyright (c) 2024
*
*/
#pragma once
#include "ral.h"
#include "ral_types.h"
#include "render_types.h"
// Shadowmap pass
// Blinn-phong pass
// Unlit pass
// Debug visualisations pass
// Don't need to pass in *anything*.
gpu_renderpass* renderpass_blinn_phong_create();
void renderpass_blinn_phong_execute(gpu_renderpass* pass, render_entity* entities,
size_t entity_count);
typedef struct ren_shadowmaps {
u32 width;
u32 height;
gpu_renderpass* rpass;
gpu_pipeline* static_pipeline;
gpu_pipeline* debug_quad;
texture_handle depth_tex;
} ren_shadowmaps;
typedef struct model_uniform {
mat4 model;
} model_uniform;
typedef struct lightspace_tf_uniform {
mat4 lightSpaceMatrix;
} lightspace_tf_uniform;
typedef struct debug_quad_uniform {
texture_handle depthMap;
} debug_quad_uniform;
shader_data_layout model_uniform_layout(void* data);
shader_data_layout lightspace_uniform_layout(void* data);
shader_data_layout debug_quad_layout(void* data);
void ren_shadowmaps_init(ren_shadowmaps* storage);
gpu_renderpass* shadowmaps_renderpass_create();
gpu_pipeline* shadowmaps_pipeline_create(gpu_renderpass* rpass);
void renderpass_shadowmap_execute(gpu_renderpass* pass, render_entity* entities,
size_t entity_count);
|