pureikyubu/build/Data/gfx.vert
2023-08-15 10:13:31 +03:00

60 lines
1.7 KiB
GLSL

// Flipper GFX Engine vertex shader
#version 330 core
// Define the input attributes of the vertex passed through the VBO
in vec3 in_Position;
in vec3 in_Normal;
in vec3 in_Binormal;
in vec3 in_Tangent;
in uvec4 in_Color0; // RGBA
in uvec4 in_Color1;
in vec2 in_TexCoord0;
in vec2 in_TexCoord1;
in vec2 in_TexCoord2;
in vec2 in_TexCoord3;
in vec2 in_TexCoord4;
in vec2 in_TexCoord5;
in vec2 in_TexCoord6;
in vec2 in_TexCoord7;
in uint MatrixIndex0;
in uint MatrixIndex1;
// Define uniforms to be updated when registers of the XF block are updated
uniform float matrix_mem[0x100]; // 0x0000-0x00ff (IndexA)
uniform float norm_matrix_mem[96]; // 0x0400-0x045f (IndexB)
uniform float dual_tex_matrix_mem[0x100]; // 0x0500-0x05ff (IndexC)
uniform struct Light
{
uvec4 rgba;
vec3 a;
vec3 k;
vec3 lpx;
vec3 dhx;
} ligth_mem[8]; // 0x0600-0x067f (IndexD)
uniform uint vtx_spec; // 0x1008
uniform uint num_colors; // 0x1009
uniform uvec4 ambient[2]; // 0x100a, 0x100b
uniform uvec4 material[2]; // 0x100c, 0x100d
uniform uint color_control[2]; // 0x100e, 0x100f
uniform uint alpha_control[2]; // 0x1010, 0x1011
uniform uint dual_tex_tran; // 0x1012
// matIdxA?
// matIdxB?
uniform float viewport_scale[3]; // 0x101a-0x101c
uniform float viewport_offset[3]; // 0x101d-0x101f
uniform float projection_param[6]; // 0x1020-0x1025
uniform uint projection_ortho; // 0x1026
uniform uint num_tex; // 0x103f
uniform uint texgen_param[8]; // 0x1040-0x1047
uniform uint dual_texgen_param[8]; // 0x1050-0x1057
// bitfieldExtract
void main(void)
{
gl_Position = vec4(in_Position.x, in_Position.y, 1.0, 1.0);
}