31 lines
711 B
GLSL
31 lines
711 B
GLSL
#version 430 core
|
|
|
|
layout (location = 0) in vec2 position;
|
|
layout (location = 1) in vec4 color;
|
|
layout (location = 2) in vec2 uv;
|
|
|
|
out Fragment
|
|
{
|
|
// @Performance: Are this fields aligned to vec4? Is it better to reorder them?
|
|
vec2 position;
|
|
vec4 color;
|
|
vec2 uv;
|
|
} frag;
|
|
|
|
uniform int width; // Width of the screen in pixels
|
|
uniform int height; // Height of the screen in pixels
|
|
|
|
void main()
|
|
{
|
|
frag.position = position;
|
|
frag.color = color;
|
|
frag.uv = uv;
|
|
|
|
vec2 screen = vec2(width, height);
|
|
|
|
vec2 p = position / screen * 2.0 - 1.0; // Position relative to the screen size, in range [-1,+1)
|
|
p.y = -p.y; // OpenGL coordinates have y up, pixel coordinates have y down
|
|
|
|
gl_Position = vec4(p, 0.0, 1.0);
|
|
}
|