Rework the blit shader
This commit is contained in:
parent
661da5e12b
commit
79326025af
|
@ -26,6 +26,6 @@ out vec4 oFragColor;
|
|||
|
||||
void main(){
|
||||
vec4 color = texture(uSrc, vTexCoord);
|
||||
oFragColor = vec4(color . rgb * color . a, color . a);
|
||||
oFragColor = color;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,16 +18,17 @@ precision highp float;
|
|||
|
||||
|
||||
|
||||
uniform vec4 uDestRect;
|
||||
uniform vec2 uFramebufferSize;
|
||||
|
||||
in ivec2 aPosition;
|
||||
|
||||
out vec2 vTexCoord;
|
||||
|
||||
void main(){
|
||||
vec2 position = mix(uDestRect . xy, uDestRect . zw, vec2(aPosition))/ uFramebufferSize;
|
||||
vec2 texCoord = vec2(aPosition);
|
||||
|
||||
|
||||
|
||||
vTexCoord = texCoord;
|
||||
gl_Position = vec4(mix(vec2(- 1.0), vec2(1.0), vec2(aPosition)), 0.0, 1.0);
|
||||
gl_Position = vec4(mix(vec2(- 1.0), vec2(1.0), position), 0.0, 1.0);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,6 @@ out vec4 oFragColor;
|
|||
|
||||
void main(){
|
||||
vec4 color = texture(uSrc, vTexCoord);
|
||||
oFragColor = vec4(color . rgb * color . a, color . a);
|
||||
oFragColor = color;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,16 +18,17 @@ precision highp float;
|
|||
|
||||
|
||||
|
||||
uniform vec4 uDestRect;
|
||||
uniform vec2 uFramebufferSize;
|
||||
|
||||
in ivec2 aPosition;
|
||||
|
||||
out vec2 vTexCoord;
|
||||
|
||||
void main(){
|
||||
vec2 position = mix(uDestRect . xy, uDestRect . zw, vec2(aPosition))/ uFramebufferSize;
|
||||
vec2 texCoord = vec2(aPosition);
|
||||
|
||||
|
||||
|
||||
vTexCoord = texCoord;
|
||||
gl_Position = vec4(mix(vec2(- 1.0), vec2(1.0), vec2(aPosition)), 0.0, 1.0);
|
||||
gl_Position = vec4(mix(vec2(- 1.0), vec2(1.0), position), 0.0, 1.0);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> uSrc [[textu
|
|||
{
|
||||
main0_out out = {};
|
||||
float4 color = uSrc.sample(uSrcSmplr, in.vTexCoord);
|
||||
out.oFragColor = float4(color.xyz * color.w, color.w);
|
||||
out.oFragColor = color;
|
||||
return out;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,13 +15,13 @@ struct main0_in
|
|||
int2 aPosition [[attribute(0)]];
|
||||
};
|
||||
|
||||
vertex main0_out main0(main0_in in [[stage_in]])
|
||||
vertex main0_out main0(main0_in in [[stage_in]], constant float4& uDestRect [[buffer(0)]], constant float2& uFramebufferSize [[buffer(1)]])
|
||||
{
|
||||
main0_out out = {};
|
||||
float2 position = mix(uDestRect.xy, uDestRect.zw, float2(in.aPosition)) / uFramebufferSize;
|
||||
float2 texCoord = float2(in.aPosition);
|
||||
texCoord.y = 1.0 - texCoord.y;
|
||||
out.vTexCoord = texCoord;
|
||||
out.gl_Position = float4(mix(float2(-1.0), float2(1.0), float2(in.aPosition)), 0.0, 1.0);
|
||||
out.gl_Position = float4(mix(float2(-1.0), float2(1.0), position), 0.0, 1.0);
|
||||
return out;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,5 +24,5 @@ out vec4 oFragColor;
|
|||
|
||||
void main() {
|
||||
vec4 color = texture(uSrc, vTexCoord);
|
||||
oFragColor = vec4(color.rgb * color.a, color.a);
|
||||
oFragColor = color;
|
||||
}
|
||||
|
|
|
@ -16,15 +16,16 @@ precision highp float;
|
|||
precision highp sampler2D;
|
||||
#endif
|
||||
|
||||
uniform vec4 uDestRect;
|
||||
uniform vec2 uFramebufferSize;
|
||||
|
||||
in ivec2 aPosition;
|
||||
|
||||
out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
vec2 position = mix(uDestRect.xy, uDestRect.zw, vec2(aPosition)) / uFramebufferSize;
|
||||
vec2 texCoord = vec2(aPosition);
|
||||
#ifdef PF_ORIGIN_UPPER_LEFT
|
||||
texCoord.y = 1.0 - texCoord.y;
|
||||
#endif
|
||||
vTexCoord = texCoord;
|
||||
gl_Position = vec4(mix(vec2(-1.0), vec2(1.0), vec2(aPosition)), 0.0, 1.0);
|
||||
gl_Position = vec4(mix(vec2(-1.0), vec2(1.0), position), 0.0, 1.0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue