|
|
|
|
@ -1,457 +0,0 @@
|
|
|
|
|
/*
|
|
|
|
|
#version:1# (machine generated, don't edit!)
|
|
|
|
|
|
|
|
|
|
Generated by sokol-shdc (https://github.com/floooh/sokol-tools)
|
|
|
|
|
|
|
|
|
|
Cmdline:
|
|
|
|
|
sokol-shdc -i shader_gbuffer.glsl -o ./jai/shader_gbuffer.jai -l glsl430:glsl300es:metal_macos -f sokol_jai
|
|
|
|
|
|
|
|
|
|
Overview:
|
|
|
|
|
=========
|
|
|
|
|
Shader program: 'gbuffer':
|
|
|
|
|
Get shader desc: gbuffer_shader_desc(sg_query_backend())
|
|
|
|
|
Vertex Shader: vs_g
|
|
|
|
|
Fragment Shader: fs_g
|
|
|
|
|
Attributes:
|
|
|
|
|
ATTR_gbuffer_position => 0
|
|
|
|
|
ATTR_gbuffer_normal => 1
|
|
|
|
|
ATTR_gbuffer_centre => 2
|
|
|
|
|
ATTR_gbuffer_instance => 3
|
|
|
|
|
Bindings:
|
|
|
|
|
Uniform block 'gbuffer_vs_params':
|
|
|
|
|
Jai struct: Gbuffer_Vs_Params
|
|
|
|
|
Bind slot: UB_gbuffer_vs_params => 0
|
|
|
|
|
*/
|
|
|
|
|
ATTR_gbuffer_position :: 0;
|
|
|
|
|
ATTR_gbuffer_normal :: 1;
|
|
|
|
|
ATTR_gbuffer_centre :: 2;
|
|
|
|
|
ATTR_gbuffer_instance :: 3;
|
|
|
|
|
UB_gbuffer_vs_params :: 0;
|
|
|
|
|
Gbuffer_Vs_Params :: struct {
|
|
|
|
|
mvp: [16]float;
|
|
|
|
|
view_matrix: [16]float;
|
|
|
|
|
};
|
|
|
|
|
/*
|
|
|
|
|
#version 430
|
|
|
|
|
|
|
|
|
|
uniform vec4 gbuffer_vs_params[8];
|
|
|
|
|
layout(location = 0) in vec4 position;
|
|
|
|
|
layout(location = 3) in vec4 instance;
|
|
|
|
|
layout(location = 0) out vec3 view_space_pos;
|
|
|
|
|
layout(location = 1) out vec3 view_space_normal;
|
|
|
|
|
layout(location = 1) in vec4 normal;
|
|
|
|
|
layout(location = 2) in vec4 centre;
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
vec4 _23 = vec4(position.xyz + instance.xyz, 1.0);
|
|
|
|
|
mat4 _33 = mat4(gbuffer_vs_params[4], gbuffer_vs_params[5], gbuffer_vs_params[6], gbuffer_vs_params[7]);
|
|
|
|
|
gl_Position = mat4(gbuffer_vs_params[0], gbuffer_vs_params[1], gbuffer_vs_params[2], gbuffer_vs_params[3]) * _23;
|
|
|
|
|
view_space_pos = (_33 * _23).xyz;
|
|
|
|
|
view_space_normal = mat3(_33[0].xyz, _33[1].xyz, _33[2].xyz) * normal.xyz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
vs_g_source_glsl430 := u8.[
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x75,0x6e,
|
|
|
|
|
0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x67,0x62,0x75,0x66,0x66,
|
|
|
|
|
0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x38,0x5d,0x3b,
|
|
|
|
|
0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,
|
|
|
|
|
0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,
|
|
|
|
|
0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,
|
|
|
|
|
0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x6c,
|
|
|
|
|
0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,
|
|
|
|
|
0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,0x65,
|
|
|
|
|
0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,
|
|
|
|
|
0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,
|
|
|
|
|
0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,0x65,0x77,0x5f,
|
|
|
|
|
0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,
|
|
|
|
|
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
|
|
|
|
0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,
|
|
|
|
|
0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,
|
|
|
|
|
0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,
|
|
|
|
|
0x63,0x65,0x6e,0x74,0x72,0x65,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,
|
|
|
|
|
0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,
|
|
|
|
|
0x5f,0x32,0x33,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,
|
|
|
|
|
0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,
|
|
|
|
|
0x63,0x65,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,
|
|
|
|
|
0x20,0x20,0x6d,0x61,0x74,0x34,0x20,0x5f,0x33,0x33,0x20,0x3d,0x20,0x6d,0x61,0x74,
|
|
|
|
|
0x34,0x28,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,
|
|
|
|
|
0x61,0x6d,0x73,0x5b,0x34,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,
|
|
|
|
|
0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x35,0x5d,0x2c,0x20,0x67,0x62,
|
|
|
|
|
0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,
|
|
|
|
|
0x36,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,
|
|
|
|
|
0x61,0x72,0x61,0x6d,0x73,0x5b,0x37,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,
|
|
|
|
|
0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,
|
|
|
|
|
0x34,0x28,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,
|
|
|
|
|
0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,
|
|
|
|
|
0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x67,0x62,
|
|
|
|
|
0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,
|
|
|
|
|
0x32,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,
|
|
|
|
|
0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x5f,0x32,0x33,0x3b,
|
|
|
|
|
0x0a,0x20,0x20,0x20,0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,
|
|
|
|
|
0x70,0x6f,0x73,0x20,0x3d,0x20,0x28,0x5f,0x33,0x33,0x20,0x2a,0x20,0x5f,0x32,0x33,
|
|
|
|
|
0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x69,0x65,0x77,0x5f,
|
|
|
|
|
0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x6d,
|
|
|
|
|
0x61,0x74,0x33,0x28,0x5f,0x33,0x33,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x7a,0x2c,0x20,
|
|
|
|
|
0x5f,0x33,0x33,0x5b,0x31,0x5d,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x5f,0x33,0x33,0x5b,
|
|
|
|
|
0x32,0x5d,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,
|
|
|
|
|
0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
/*
|
|
|
|
|
#version 430
|
|
|
|
|
|
|
|
|
|
layout(location = 0) out vec4 out_position;
|
|
|
|
|
layout(location = 0) in vec3 view_space_pos;
|
|
|
|
|
layout(location = 1) out vec4 out_normal;
|
|
|
|
|
layout(location = 1) in vec3 view_space_normal;
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
out_position = vec4(view_space_pos, 1.0);
|
|
|
|
|
out_normal = vec4(normalize(view_space_normal), 1.0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
fs_g_source_glsl430 := u8.[
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x6c,0x61,
|
|
|
|
|
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
|
|
|
|
0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x6f,0x75,0x74,0x5f,
|
|
|
|
|
0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,
|
|
|
|
|
0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,
|
|
|
|
|
0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,
|
|
|
|
|
0x65,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,
|
|
|
|
|
0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,
|
|
|
|
|
0x76,0x65,0x63,0x34,0x20,0x6f,0x75,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,
|
|
|
|
|
0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,
|
|
|
|
|
0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,
|
|
|
|
|
0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,
|
|
|
|
|
0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,
|
|
|
|
|
0x63,0x65,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,
|
|
|
|
|
0x20,0x20,0x6f,0x75,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x76,
|
|
|
|
|
0x65,0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x69,
|
|
|
|
|
0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,
|
|
|
|
|
0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
/*
|
|
|
|
|
#version 300 es
|
|
|
|
|
|
|
|
|
|
uniform vec4 gbuffer_vs_params[8];
|
|
|
|
|
layout(location = 0) in vec4 position;
|
|
|
|
|
layout(location = 3) in vec4 instance;
|
|
|
|
|
out vec3 view_space_pos;
|
|
|
|
|
out vec3 view_space_normal;
|
|
|
|
|
layout(location = 1) in vec4 normal;
|
|
|
|
|
layout(location = 2) in vec4 centre;
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
vec4 _23 = vec4(position.xyz + instance.xyz, 1.0);
|
|
|
|
|
mat4 _33 = mat4(gbuffer_vs_params[4], gbuffer_vs_params[5], gbuffer_vs_params[6], gbuffer_vs_params[7]);
|
|
|
|
|
gl_Position = mat4(gbuffer_vs_params[0], gbuffer_vs_params[1], gbuffer_vs_params[2], gbuffer_vs_params[3]) * _23;
|
|
|
|
|
view_space_pos = (_33 * _23).xyz;
|
|
|
|
|
view_space_normal = mat3(_33[0].xyz, _33[1].xyz, _33[2].xyz) * normal.xyz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
vs_g_source_glsl300es := u8.[
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
|
|
|
|
0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x67,0x62,
|
|
|
|
|
0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,
|
|
|
|
|
0x38,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,
|
|
|
|
|
0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,
|
|
|
|
|
0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,
|
|
|
|
|
0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,
|
|
|
|
|
0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,
|
|
|
|
|
0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,0x65,0x77,0x5f,
|
|
|
|
|
0x73,0x70,0x61,0x63,0x65,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,
|
|
|
|
|
0x65,0x63,0x33,0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,
|
|
|
|
|
0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,
|
|
|
|
|
0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,
|
|
|
|
|
0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,
|
|
|
|
|
0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,
|
|
|
|
|
0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x65,0x6e,0x74,0x72,0x65,0x3b,
|
|
|
|
|
0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,
|
|
|
|
|
0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x32,0x33,0x20,0x3d,0x20,0x76,
|
|
|
|
|
0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,
|
|
|
|
|
0x20,0x2b,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x78,0x79,0x7a,0x2c,
|
|
|
|
|
0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x34,0x20,
|
|
|
|
|
0x5f,0x33,0x33,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34,0x28,0x67,0x62,0x75,0x66,0x66,
|
|
|
|
|
0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34,0x5d,0x2c,
|
|
|
|
|
0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,
|
|
|
|
|
0x6d,0x73,0x5b,0x35,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,
|
|
|
|
|
0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x36,0x5d,0x2c,0x20,0x67,0x62,0x75,
|
|
|
|
|
0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x37,
|
|
|
|
|
0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,
|
|
|
|
|
0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34,0x28,0x67,0x62,0x75,0x66,0x66,
|
|
|
|
|
0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,
|
|
|
|
|
0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,
|
|
|
|
|
0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,
|
|
|
|
|
0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x67,0x62,0x75,
|
|
|
|
|
0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,
|
|
|
|
|
0x5d,0x29,0x20,0x2a,0x20,0x5f,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x69,
|
|
|
|
|
0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x28,
|
|
|
|
|
0x5f,0x33,0x33,0x20,0x2a,0x20,0x5f,0x32,0x33,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,
|
|
|
|
|
0x20,0x20,0x20,0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,
|
|
|
|
|
0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x61,0x74,0x33,0x28,0x5f,0x33,0x33,
|
|
|
|
|
0x5b,0x30,0x5d,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x5f,0x33,0x33,0x5b,0x31,0x5d,0x2e,
|
|
|
|
|
0x78,0x79,0x7a,0x2c,0x20,0x5f,0x33,0x33,0x5b,0x32,0x5d,0x2e,0x78,0x79,0x7a,0x29,
|
|
|
|
|
0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,
|
|
|
|
|
0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
/*
|
|
|
|
|
#version 300 es
|
|
|
|
|
precision mediump float;
|
|
|
|
|
precision highp int;
|
|
|
|
|
|
|
|
|
|
layout(location = 0) out highp vec4 out_position;
|
|
|
|
|
in highp vec3 view_space_pos;
|
|
|
|
|
layout(location = 1) out highp vec4 out_normal;
|
|
|
|
|
in highp vec3 view_space_normal;
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
out_position = vec4(view_space_pos, 1.0);
|
|
|
|
|
out_normal = vec4(normalize(view_space_normal), 1.0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
fs_g_source_glsl300es := u8.[
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
|
|
|
|
0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d,
|
|
|
|
|
0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69,
|
|
|
|
|
0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x6c,
|
|
|
|
|
0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,
|
|
|
|
|
0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,
|
|
|
|
|
0x63,0x34,0x20,0x6f,0x75,0x74,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,
|
|
|
|
|
0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,
|
|
|
|
|
0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6c,
|
|
|
|
|
0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,
|
|
|
|
|
0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,
|
|
|
|
|
0x63,0x34,0x20,0x6f,0x75,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x69,
|
|
|
|
|
0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x69,0x65,
|
|
|
|
|
0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,
|
|
|
|
|
0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,
|
|
|
|
|
0x20,0x20,0x20,0x6f,0x75,0x74,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,
|
|
|
|
|
0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,
|
|
|
|
|
0x65,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,
|
|
|
|
|
0x20,0x6f,0x75,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x76,0x65,
|
|
|
|
|
0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x69,0x65,
|
|
|
|
|
0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x2c,
|
|
|
|
|
0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
/*
|
|
|
|
|
#include <metal_stdlib>
|
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
|
|
|
|
|
using namespace metal;
|
|
|
|
|
|
|
|
|
|
struct gbuffer_vs_params
|
|
|
|
|
{
|
|
|
|
|
float4x4 mvp;
|
|
|
|
|
float4x4 view_matrix;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct main0_out
|
|
|
|
|
{
|
|
|
|
|
float3 view_space_pos [[user(locn0)]];
|
|
|
|
|
float3 view_space_normal [[user(locn1)]];
|
|
|
|
|
float4 gl_Position [[position]];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct main0_in
|
|
|
|
|
{
|
|
|
|
|
float4 position [[attribute(0)]];
|
|
|
|
|
float4 normal [[attribute(1)]];
|
|
|
|
|
float4 instance [[attribute(3)]];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
vertex main0_out main0(main0_in in [[stage_in]], constant gbuffer_vs_params& _28 [[buffer(0)]])
|
|
|
|
|
{
|
|
|
|
|
main0_out out = {};
|
|
|
|
|
float4 _23 = float4(in.position.xyz + in.instance.xyz, 1.0);
|
|
|
|
|
out.gl_Position = _28.mvp * _23;
|
|
|
|
|
out.view_space_pos = (_28.view_matrix * _23).xyz;
|
|
|
|
|
out.view_space_normal = float3x3(_28.view_matrix[0].xyz, _28.view_matrix[1].xyz, _28.view_matrix[2].xyz) * in.normal.xyz;
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
vs_g_source_metal_macos := u8.[
|
|
|
|
|
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
|
|
|
|
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
|
|
|
|
0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
|
|
|
|
|
0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
|
|
|
|
|
0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x67,
|
|
|
|
|
0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,
|
|
|
|
|
0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
|
|
|
|
|
0x6d,0x76,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
|
|
|
|
|
0x34,0x20,0x76,0x69,0x65,0x77,0x5f,0x6d,0x61,0x74,0x72,0x69,0x78,0x3b,0x0a,0x7d,
|
|
|
|
|
0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,
|
|
|
|
|
0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
|
|
|
|
|
0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x70,0x6f,0x73,0x20,
|
|
|
|
|
0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,
|
|
|
|
|
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x69,0x65,0x77,
|
|
|
|
|
0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,
|
|
|
|
|
0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,
|
|
|
|
|
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,
|
|
|
|
|
0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,
|
|
|
|
|
0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
|
|
|
|
|
0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,
|
|
|
|
|
0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,
|
|
|
|
|
0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,
|
|
|
|
|
0x6c,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,
|
|
|
|
|
0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,
|
|
|
|
|
0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,
|
|
|
|
|
0x75,0x74,0x65,0x28,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,
|
|
|
|
|
0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,
|
|
|
|
|
0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,
|
|
|
|
|
0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,
|
|
|
|
|
0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x67,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,
|
|
|
|
|
0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38,0x20,0x5b,
|
|
|
|
|
0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,
|
|
|
|
|
0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,
|
|
|
|
|
0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
|
|
|
|
|
0x74,0x34,0x20,0x5f,0x32,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,
|
|
|
|
|
0x69,0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,
|
|
|
|
|
0x2b,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x78,0x79,
|
|
|
|
|
0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,
|
|
|
|
|
0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x5f,
|
|
|
|
|
0x32,0x38,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x5f,0x32,0x33,0x3b,0x0a,0x20,0x20,
|
|
|
|
|
0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,
|
|
|
|
|
0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x28,0x5f,0x32,0x38,0x2e,0x76,0x69,0x65,0x77,
|
|
|
|
|
0x5f,0x6d,0x61,0x74,0x72,0x69,0x78,0x20,0x2a,0x20,0x5f,0x32,0x33,0x29,0x2e,0x78,
|
|
|
|
|
0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x69,0x65,0x77,
|
|
|
|
|
0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,
|
|
|
|
|
0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x5f,0x32,0x38,0x2e,0x76,0x69,0x65,
|
|
|
|
|
0x77,0x5f,0x6d,0x61,0x74,0x72,0x69,0x78,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x7a,0x2c,
|
|
|
|
|
0x20,0x5f,0x32,0x38,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x61,0x74,0x72,0x69,0x78,
|
|
|
|
|
0x5b,0x31,0x5d,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x5f,0x32,0x38,0x2e,0x76,0x69,0x65,
|
|
|
|
|
0x77,0x5f,0x6d,0x61,0x74,0x72,0x69,0x78,0x5b,0x32,0x5d,0x2e,0x78,0x79,0x7a,0x29,
|
|
|
|
|
0x20,0x2a,0x20,0x69,0x6e,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,
|
|
|
|
|
0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,
|
|
|
|
|
0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
/*
|
|
|
|
|
#include <metal_stdlib>
|
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
|
|
|
|
|
using namespace metal;
|
|
|
|
|
|
|
|
|
|
struct main0_out
|
|
|
|
|
{
|
|
|
|
|
float4 out_position [[color(0)]];
|
|
|
|
|
float4 out_normal [[color(1)]];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct main0_in
|
|
|
|
|
{
|
|
|
|
|
float3 view_space_pos [[user(locn0)]];
|
|
|
|
|
float3 view_space_normal [[user(locn1)]];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
fragment main0_out main0(main0_in in [[stage_in]])
|
|
|
|
|
{
|
|
|
|
|
main0_out out = {};
|
|
|
|
|
out.out_position = float4(in.view_space_pos, 1.0);
|
|
|
|
|
out.out_normal = float4(fast::normalize(in.view_space_normal), 1.0);
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
fs_g_source_metal_macos := u8.[
|
|
|
|
|
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
|
|
|
|
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
|
|
|
|
0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
|
|
|
|
|
0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
|
|
|
|
|
0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,
|
|
|
|
|
0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x75,0x74,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,
|
|
|
|
|
0x6f,0x6e,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,
|
|
|
|
|
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x75,0x74,0x5f,
|
|
|
|
|
0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x31,
|
|
|
|
|
0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,
|
|
|
|
|
0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,
|
|
|
|
|
0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,
|
|
|
|
|
0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
|
|
|
|
|
0x20,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,
|
|
|
|
|
0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,
|
|
|
|
|
0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,
|
|
|
|
|
0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,
|
|
|
|
|
0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,
|
|
|
|
|
0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,
|
|
|
|
|
0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,
|
|
|
|
|
0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x6f,0x75,0x74,
|
|
|
|
|
0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,
|
|
|
|
|
0x74,0x34,0x28,0x69,0x6e,0x2e,0x76,0x69,0x65,0x77,0x5f,0x73,0x70,0x61,0x63,0x65,
|
|
|
|
|
0x5f,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
|
|
|
|
|
0x6f,0x75,0x74,0x2e,0x6f,0x75,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,
|
|
|
|
|
0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,
|
|
|
|
|
0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x76,0x69,0x65,0x77,0x5f,
|
|
|
|
|
0x73,0x70,0x61,0x63,0x65,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x2c,0x20,0x31,
|
|
|
|
|
0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,
|
|
|
|
|
0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
];
|
|
|
|
|
gbuffer_shader_desc :: (backend: sg_backend) -> sg_shader_desc {
|
|
|
|
|
desc: sg_shader_desc;
|
|
|
|
|
desc.label = "gbuffer_shader";
|
|
|
|
|
if backend == {
|
|
|
|
|
case .GLCORE;
|
|
|
|
|
desc.vertex_func.source = xx *vs_g_source_glsl430;
|
|
|
|
|
desc.vertex_func.entry = "main";
|
|
|
|
|
desc.fragment_func.source = xx *fs_g_source_glsl430;
|
|
|
|
|
desc.fragment_func.entry = "main";
|
|
|
|
|
desc.attrs[0].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[0].glsl_name = "position";
|
|
|
|
|
desc.attrs[1].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[1].glsl_name = "normal";
|
|
|
|
|
desc.attrs[2].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[2].glsl_name = "centre";
|
|
|
|
|
desc.attrs[3].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[3].glsl_name = "instance";
|
|
|
|
|
desc.uniform_blocks[0].stage = .VERTEX;
|
|
|
|
|
desc.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
desc.uniform_blocks[0].size = 128;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 8;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "gbuffer_vs_params";
|
|
|
|
|
case .GLES3;
|
|
|
|
|
desc.vertex_func.source = xx *vs_g_source_glsl300es;
|
|
|
|
|
desc.vertex_func.entry = "main";
|
|
|
|
|
desc.fragment_func.source = xx *fs_g_source_glsl300es;
|
|
|
|
|
desc.fragment_func.entry = "main";
|
|
|
|
|
desc.attrs[0].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[0].glsl_name = "position";
|
|
|
|
|
desc.attrs[1].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[1].glsl_name = "normal";
|
|
|
|
|
desc.attrs[2].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[2].glsl_name = "centre";
|
|
|
|
|
desc.attrs[3].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[3].glsl_name = "instance";
|
|
|
|
|
desc.uniform_blocks[0].stage = .VERTEX;
|
|
|
|
|
desc.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
desc.uniform_blocks[0].size = 128;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 8;
|
|
|
|
|
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "gbuffer_vs_params";
|
|
|
|
|
case .METAL_MACOS;
|
|
|
|
|
desc.vertex_func.source = xx *vs_g_source_metal_macos;
|
|
|
|
|
desc.vertex_func.entry = "main0";
|
|
|
|
|
desc.fragment_func.source = xx *fs_g_source_metal_macos;
|
|
|
|
|
desc.fragment_func.entry = "main0";
|
|
|
|
|
desc.attrs[0].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[1].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[2].base_type = .FLOAT;
|
|
|
|
|
desc.attrs[3].base_type = .FLOAT;
|
|
|
|
|
desc.uniform_blocks[0].stage = .VERTEX;
|
|
|
|
|
desc.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
desc.uniform_blocks[0].size = 128;
|
|
|
|
|
desc.uniform_blocks[0].msl_buffer_n = 0;
|
|
|
|
|
}
|
|
|
|
|
return desc;
|
|
|
|
|
}
|