#version 150 core in vec4 vCoord; in vec2 tCoord; out vec2 sampleCoord; out vec2 sCoordUp; out vec2 sCoordDown; out vec2 sCoordLeft; out vec2 sCoordRight; uniform mat4 modelViewMatrix; uniform mat4 projectionMatrix; uniform vec2 textureScale; uniform vec2 shift; uniform float dpr; void main() { sampleCoord = tCoord * textureScale; sCoordUp = (tCoord - vec2(0.0, -1.0)) * textureScale; sCoordDown = (tCoord - vec2(0.0, 1.0)) * textureScale; sCoordLeft = (tCoord - vec2(-1.0, 0.0)) * textureScale; sCoordRight = (tCoord - vec2(1.0, 0.0)) * textureScale; vec4 xformed = modelViewMatrix * vCoord; gl_Position = projectionMatrix * vec4(floor(xformed.xyz * dpr + 0.5) / dpr, xformed.w); }