v/shaders/triangle.vert

45 lines
1.2 KiB
GLSL

#version 460
#extension GL_EXT_buffer_reference : require
struct Vertex {
vec2 pos;
vec2 uv;
vec4 color;
float alpha;
uint textureID;
};
layout(location = 0) in vec2 inPos; // Matches VK_FORMAT_R32G32_SFLOAT
layout(location = 1) in vec2 inTexCoord; // Matches VK_FORMAT_R32G32_SFLOAT
layout(location = 2) in vec4 inColor; // Matches VK_FORMAT_R32G32B32A32_SFLOAT
layout(location = 3) in float inAlpha; // Matches VK_FORMAT_R32_SFLOAT
layout(location = 4) in uint inTextureID; // Matches VK_FORMAT_R32_UINT
//layout(std430, set = 0, binding = 1) readonly buffer VertexBuffer {
// Vertex vertices[];
//} vBuf;
//layout(buffer_reference, std430) readonly buffer VertexBuffer{
// Vertex vertices[];
//};
//push constants block
//layout(push_constant) uniform constants {
// mat4 render_matrix;
// VertexBuffer vertexBuffer;
//} PushConstants;
layout(location = 0) out vec2 uv;
layout(location = 1) out vec4 color;
layout(location = 2) out float alpha;
layout(location = 3) out flat uint tex_id;
void main() {
uv = inTexCoord;
color = inColor;
alpha = inAlpha;
tex_id = inTextureID;
gl_Position = vec4(inPos, 0.0, 1.0);
}