Added util function for shaders
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user