Added util function for shaders

This commit is contained in:
Ne_Eo
2024-09-16 00:59:41 +02:00
parent 753de2f056
commit 53c77466f5
+27 -10
View File
@@ -438,29 +438,46 @@ uniform sampler2D bitmap;
uniform bool hasTransform; uniform bool hasTransform;
uniform bool hasColorTransform; uniform bool hasColorTransform;
vec4 flixel_texture2D(sampler2D bitmap, vec2 coord) vec4 flixel_texture2D(sampler2D bitmap, vec2 coord) {
{
vec4 color = texture2D(bitmap, coord); vec4 color = texture2D(bitmap, coord);
if (!hasTransform) if (!hasTransform) {
{
return color; return color;
} }
if (color.a == 0.0) if (color.a == 0.0) {
{
return vec4(0.0, 0.0, 0.0, 0.0); return vec4(0.0, 0.0, 0.0, 0.0);
} }
if (!hasColorTransform) if (!hasColorTransform) {
{
return color * openfl_Alphav; return color * openfl_Alphav;
} }
color = vec4(color.rgb / color.a, color.a); color = vec4(color.rgb / color.a, color.a);
color = clamp(openfl_ColorOffsetv + (color * openfl_ColorMultiplierv), 0.0, 1.0); color = clamp(openfl_ColorOffsetv + (color * openfl_ColorMultiplierv), 0.0, 1.0);
if (color.a > 0.0) if (color.a > 0.0) {
{ return vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);
}
return vec4(0.0, 0.0, 0.0, 0.0);
}
vec4 applyFlixelEffects(vec4 color) {
if (!hasTransform) {
return color;
}
if (color.a == 0.0) {
return vec4(0.0, 0.0, 0.0, 0.0);
}
if (!hasColorTransform) {
return color * openfl_Alphav;
}
color = vec4(color.rgb / color.a, color.a);
color = clamp(openfl_ColorOffsetv + (color * openfl_ColorMultiplierv), 0.0, 1.0);
if (color.a > 0.0) {
return vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav); return vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);
} }
return vec4(0.0, 0.0, 0.0, 0.0); return vec4(0.0, 0.0, 0.0, 0.0);