#version 450 // vertex layout(location = 0) in vec2 in_position; layout(location = 1) in vec2 in_uv; // instance layout(location = 2) in mat4 pos_scale; layout(location = 6) in vec4 in_border_color; layout(location = 7) in vec4 in_background_color; layout(location = 8) in vec2 px_scale; layout(location = 9) in float depth; layout(location = 10) in float texture_layer; layout(location = 0) out vec4 out_border_color; layout(location = 1) out vec4 out_background_color; layout(location = 2) out vec2 out_px_scale; layout(location = 3) out vec3 out_uv; out gl_PerVertex { vec4 gl_Position; }; void main() { vec4 transformed_position = pos_scale * vec4(in_position, 0.0, 1.0); gl_Position = vec4(transformed_position.xy, depth, 1.0); out_border_color = in_border_color; out_background_color = in_background_color; out_px_scale = px_scale; out_uv = vec3(in_uv, texture_layer); }