45 lines
1.2 KiB
GLSL
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);
|
|
}
|