27 lines
793 B
GLSL
27 lines
793 B
GLSL
/*
|
|
* MIT License
|
|
* Author: Mark Allyn
|
|
*
|
|
* graticule.vert — vertex shader for the incandescent bearing graticule,
|
|
* the yellow cursor, and any other 2-D screen-space line geometry.
|
|
*
|
|
* Vertices are supplied in window pixels (origin top-left, y down).
|
|
* The shader converts them to OpenGL NDC (origin bottom-left, y up).
|
|
*/
|
|
#version 330 core
|
|
|
|
layout(location = 0) in vec2 aPos; // screen pixels, top-left origin
|
|
|
|
uniform vec2 u_viewportSize; // (WINDOW_WIDTH, WINDOW_HEIGHT)
|
|
|
|
void main() {
|
|
// Convert: pixel → NDC
|
|
// ndc.x: 0 → -1, width → +1
|
|
// ndc.y: 0 → +1 (top), height → -1 (bottom)
|
|
vec2 ndc = vec2(
|
|
aPos.x / u_viewportSize.x * 2.0 - 1.0,
|
|
-aPos.y / u_viewportSize.y * 2.0 + 1.0
|
|
);
|
|
gl_Position = vec4(ndc, 0.0, 1.0);
|
|
}
|