|
|
|
@ -0,0 +1,29 @@ |
|
|
|
// Copyright 2020 yuzu Emulator Project |
|
|
|
// Licensed under GPLv2 or any later version |
|
|
|
// Refer to the license.txt file included. |
|
|
|
|
|
|
|
#version 450 |
|
|
|
|
|
|
|
#ifdef VULKAN |
|
|
|
#define BEGIN_PUSH_CONSTANTS layout(push_constant) uniform PushConstants { |
|
|
|
#define END_PUSH_CONSTANTS }; |
|
|
|
#define UNIFORM(n) |
|
|
|
#else // ^^^ Vulkan ^^^ // vvv OpenGL vvv |
|
|
|
#define BEGIN_PUSH_CONSTANTS |
|
|
|
#define END_PUSH_CONSTANTS |
|
|
|
#define UNIFORM(n) layout (location = n) uniform |
|
|
|
#endif |
|
|
|
|
|
|
|
BEGIN_PUSH_CONSTANTS |
|
|
|
UNIFORM(0) vec2 tex_scale; |
|
|
|
UNIFORM(1) vec2 tex_offset; |
|
|
|
END_PUSH_CONSTANTS |
|
|
|
|
|
|
|
layout(location = 0) out vec2 texcoord; |
|
|
|
|
|
|
|
void main() { |
|
|
|
float x = float((gl_VertexIndex & 1) << 2); |
|
|
|
float y = float((gl_VertexIndex & 2) << 1); |
|
|
|
gl_Position = vec4(x - 1.0, y - 1.0, 0.0, 1.0); |
|
|
|
texcoord = fma(vec2(x, y) / 2.0, tex_scale, tex_offset); |
|
|
|
} |