1#version 450 2 3layout(push_constant) uniform Push 4{ 5 vec4 SourceSize; 6 vec4 OriginalSize; 7 vec4 OutputSize; 8 uint FrameCount; 9 float GAMMA_INPUT; 10} params; 11 12#pragma parameter GAMMA_INPUT "Gamma Input" 2.4 0.1 5.0 0.01 13 14layout(std140, set = 0, binding = 0) uniform UBO 15{ 16 mat4 MVP; 17} global; 18 19#pragma stage vertex 20layout(location = 0) in vec4 Position; 21layout(location = 1) in vec2 TexCoord; 22layout(location = 0) out vec2 vTexCoord; 23 24void main() 25{ 26 gl_Position = global.MVP * Position; 27 vTexCoord = TexCoord; 28} 29 30#pragma stage fragment 31layout(location = 0) in vec2 vTexCoord; 32layout(location = 0) out vec4 FragColor; 33layout(set = 0, binding = 2) uniform sampler2D Source; 34 35void main() 36{ 37 FragColor = pow(vec4(texture(Source, vTexCoord)), vec4(params.GAMMA_INPUT)); 38} 39