From c5e477a9d62748b4d91becdaa27297b8b5d46d77 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Sat, 28 Mar 2020 10:44:39 +0100 Subject: [PATCH] Apply mask fixes --- Shaders/painter/glsl/layer_copy.frag.glsl | 17 +---------------- Shaders/painter/glsl/layer_view.frag.glsl | 3 +++ Shaders/painter/hlsl/layer_copy.frag.glsl | Bin 1470 -> 726 bytes Shaders/painter/hlsl/layer_view.frag.glsl | Bin 1498 -> 1634 bytes Shaders/painter/hlsl/src/layer_copy.frag.hlsl | 17 +---------------- Shaders/painter/hlsl/src/layer_view.frag.hlsl | 3 +++ Sources/arm/ui/UIView2D.hx | 3 ++- 7 files changed, 10 insertions(+), 33 deletions(-) diff --git a/Shaders/painter/glsl/layer_copy.frag.glsl b/Shaders/painter/glsl/layer_copy.frag.glsl index 5d3fdd19..b0b28b3a 100644 --- a/Shaders/painter/glsl/layer_copy.frag.glsl +++ b/Shaders/painter/glsl/layer_copy.frag.glsl @@ -1,23 +1,8 @@ #version 330 uniform sampler2D tex; -uniform int channel; in vec2 texCoord; in vec4 color; out vec4 FragColor; void main() { - if (channel == 1) { - FragColor = textureLod(tex, texCoord, 0).rrra * color; - } - else if (channel == 2) { - FragColor = textureLod(tex, texCoord, 0).ggga * color; - } - else if (channel == 3) { - FragColor = textureLod(tex, texCoord, 0).bbba * color; - } - else if (channel == 4) { - FragColor = textureLod(tex, texCoord, 0).aaaa * color; - } - else { - FragColor = textureLod(tex, texCoord, 0).rgba * color; - } + FragColor = textureLod(tex, texCoord, 0).rgba * color; } diff --git a/Shaders/painter/glsl/layer_view.frag.glsl b/Shaders/painter/glsl/layer_view.frag.glsl index 569c48fc..e5951c65 100644 --- a/Shaders/painter/glsl/layer_view.frag.glsl +++ b/Shaders/painter/glsl/layer_view.frag.glsl @@ -17,6 +17,9 @@ void main() { else if (channel == 4) { FragColor = textureLod(tex, texCoord, 0).aaaa * color; } + else if (channel == 5) { + FragColor = textureLod(tex, texCoord, 0).rgba * color; + } else { vec4 tex_sample = textureLod(tex, texCoord, 0).rgba; tex_sample.rgb *= tex_sample.a; diff --git a/Shaders/painter/hlsl/layer_copy.frag.glsl b/Shaders/painter/hlsl/layer_copy.frag.glsl index 8ec76148fd3d09406886d5976d3808d00112f29c..e732fbcf778890d9dde5e88e8a0967e53dff4262 100644 GIT binary patch delta 264 zcmdnTeT}uAfhoQuwIaSaF}ENmwTOWM$YEe$aEWko4!$s9(@kez6Wdyj|JNs!1uz1| z4=^z>umWilApQcx4nV;YAXWj22f4Vq?Es3w08og*2E<|g|DOS#Wt5~gw~Y1ONlP=QcshTCLy_@f=CxP zb#n9{kfTEl`QGon_xE!Nnbk1ZulD@CPBZ8d z;X*XO-fY+WW{=3&sr#)~&?J@=U>H_qEq}bQ?Re?h(etIJKTl3iKN)!PVuA=Cy1_aO zUx4XzMBfqSSOt3vclLV^n7}eX6N3R8vw&mea%`Ie1ds*hfoXu{4Zv~3!Z}&q0w@>v zz?}{tIO3X|$61nuQ z(rIbebF!Uv6N*=;nHQ28NZnDmOrtN{;T4fF|QAg_KGEpr_6-U7t*g|yePTDA#{IHR^d zb%2`^4Gg;M5}dR`=Yc}#SWFVE7Vve_#4hbJ^|Hwi{1_lNLHU+koCQoGboV tex; SamplerState _tex_sampler; -uniform int channel; float4 main(float4 color : TEXCOORD0, float2 texCoord : TEXCOORD1) : SV_Target0 { - if (channel == 1) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).rrra * color; - } - else if (channel == 2) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).ggga * color; - } - else if (channel == 3) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).bbba * color; - } - else if (channel == 4) { - return tex.SampleLevel(_tex_sampler, texCoord, 0).aaaa * color; - } - else { - return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; - } + return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; } diff --git a/Shaders/painter/hlsl/src/layer_view.frag.hlsl b/Shaders/painter/hlsl/src/layer_view.frag.hlsl index 34b19d06..419fdfbe 100644 --- a/Shaders/painter/hlsl/src/layer_view.frag.hlsl +++ b/Shaders/painter/hlsl/src/layer_view.frag.hlsl @@ -14,6 +14,9 @@ float4 main(float4 color : TEXCOORD0, float2 texCoord : TEXCOORD1) : SV_Target0 else if (channel == 4) { return tex.SampleLevel(_tex_sampler, texCoord, 0).aaaa * color; } + else if (channel == 5) { + return tex.SampleLevel(_tex_sampler, texCoord, 0).rgba * color; + } else { float4 sample = tex.SampleLevel(_tex_sampler, texCoord, 0).rgba; sample.rgb *= sample.a; diff --git a/Sources/arm/ui/UIView2D.hx b/Sources/arm/ui/UIView2D.hx index 378016ee..8a965366 100644 --- a/Sources/arm/ui/UIView2D.hx +++ b/Sources/arm/ui/UIView2D.hx @@ -112,11 +112,12 @@ class UIView2D { layer.texpaint_pack; channel = - Context.layerIsMask ? 1 : + Context.layerIsMask ? 1 : texType == TexOcclusion ? 1 : texType == TexRoughness ? 2 : texType == TexMetallic ? 3 : texType == TexOpacity ? 4 : + texType == TexNormal ? 5 : 0; } else { // View2DAsset