30 lines
596 B
GLSL
30 lines
596 B
GLSL
#version 330 core
|
|
layout (location = 0) in vec2 p0;
|
|
layout (location = 1) in vec2 p1;
|
|
layout (location = 2) in vec4 color;
|
|
|
|
uniform mat4 projection;
|
|
|
|
out vec4 fragment_color;
|
|
|
|
const vec2 rectangle_vertices[4] = vec2[](
|
|
vec2(-1, -1),
|
|
vec2(-1, 1),
|
|
vec2( 1, -1),
|
|
vec2( 1, 1)
|
|
);
|
|
|
|
void main() {
|
|
vec2 dest_half_size = (p1 - p0) / 2;
|
|
vec2 dest_center = (p1 + p0) / 2;
|
|
vec2 dest_position = rectangle_vertices[gl_VertexID] * dest_half_size + dest_center;
|
|
|
|
gl_Position = projection * vec4(
|
|
dest_position,
|
|
0,
|
|
1
|
|
);
|
|
|
|
fragment_color = color;
|
|
}
|