diff options
| author | bunnei <bunneidev@gmail.com> | 2020-08-26 22:57:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-26 22:57:39 -0400 |
| commit | 1bb8c27a70657eb36cc6b4860f9285cbff736a00 (patch) | |
| tree | 5fbdf8680a0fe31b95c1f6be00fdb5548086011e /src/video_core/host_shaders/opengl_present.vert | |
| parent | 1e2a92918b0dea7867c5fcb8adba1a139afe6c22 (diff) | |
| parent | 91df2beee394afc17f379511007a7b26b911278f (diff) | |
Merge pull request #4569 from ReinUsesLisp/glsl-cmake
video_core/host_shaders: Add CMake integration for string shaders
Diffstat (limited to 'src/video_core/host_shaders/opengl_present.vert')
| -rw-r--r-- | src/video_core/host_shaders/opengl_present.vert | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/video_core/host_shaders/opengl_present.vert b/src/video_core/host_shaders/opengl_present.vert new file mode 100644 index 000000000..2235d31a4 --- /dev/null +++ b/src/video_core/host_shaders/opengl_present.vert @@ -0,0 +1,24 @@ +#version 430 core + +out gl_PerVertex { + vec4 gl_Position; +}; + +layout (location = 0) in vec2 vert_position; +layout (location = 1) in vec2 vert_tex_coord; +layout (location = 0) out vec2 frag_tex_coord; + +// This is a truncated 3x3 matrix for 2D transformations: +// The upper-left 2x2 submatrix performs scaling/rotation/mirroring. +// The third column performs translation. +// The third row could be used for projection, which we don't need in 2D. It hence is assumed to +// implicitly be [0, 0, 1] +layout (location = 0) uniform mat3x2 modelview_matrix; + +void main() { + // Multiply input position by the rotscale part of the matrix and then manually translate by + // the last column. This is equivalent to using a full 3x3 matrix and expanding the vector + // to `vec3(vert_position.xy, 1.0)` + gl_Position = vec4(mat2(modelview_matrix) * vert_position + modelview_matrix[2], 0.0, 1.0); + frag_tex_coord = vert_tex_coord; +} |
