#version 450 layout(location = 0) in vec2 inPosition; layout(location = 1) in vec4 inColor; layout(location = 2) in vec2 inTexCoord; layout(location = 0) out vec4 fragColor; layout(location = 1) out vec2 fragTexCoord; layout(location = 2) out vec2 fragPosition; layout(binding = 0, std140) uniform UniformBufferObject { float time; // offset 0 float resX; // offset 4 float resY; // offset 8 float rotation; // offset 12 float wavePhase; // offset 16 float padding1; // offset 20 float padding2; // offset 24 } ubo; void main() { gl_Position = vec4(inPosition, 0.0, 1.0); fragColor = inColor; fragTexCoord = inTexCoord; fragPosition = inPosition; }