remove dummy alpha and erase blend modes

This commit is contained in:
2016-10-01 03:00:51 +07:00
parent 549235460b
commit 874fc29375
7 changed files with 2 additions and 45 deletions

View File

@@ -23,14 +23,6 @@ inline fixed4 swf_invert(fixed4 ca, fixed4 cb) {
return r;
}
inline fixed4 swf_alpha(fixed4 ca, fixed4 cb) {
return cb;
}
inline fixed4 swf_erase(fixed4 ca, fixed4 cb) {
return cb;
}
inline fixed4 swf_overlay(fixed4 ca, fixed4 cb) {
fixed4 r = ca > 0.5 ? 1.0 - 2.0 * (1.0 - ca) * (1.0 - cb) : 2.0 * ca * cb;
r.a = cb.a;
@@ -56,10 +48,6 @@ inline fixed4 grab_blend(sampler2D grab_tex, float4 screenpos, fixed4 c) {
c = swf_difference(grab_c, c);
#elif SWF_INVERT_BLEND
c = swf_invert(grab_c, c);
#elif SWF_ALPHA_BLEND
c = swf_alpha(grab_c, c);
#elif SWF_ERASE_BLEND
c = swf_erase(grab_c, c);
#elif SWF_OVERLAY_BLEND
c = swf_overlay(grab_c, c);
#elif SWF_HARDLIGHT_BLEND

View File

@@ -39,7 +39,7 @@ Shader "FlashTools/SwfMaskedGrab" {
sampler2D _MainTex;
sampler2D _GrabTexture;
#pragma multi_compile SWF_DARKEN_BLEND SWF_DIFFERENCE_BLEND SWF_INVERT_BLEND SWF_ALPHA_BLEND SWF_ERASE_BLEND SWF_OVERLAY_BLEND SWF_HARDLIGHT_BLEND
#pragma multi_compile SWF_DARKEN_BLEND SWF_DIFFERENCE_BLEND SWF_INVERT_BLEND SWF_OVERLAY_BLEND SWF_HARDLIGHT_BLEND
#include "UnityCG.cginc"
#include "SwfBaseCG.cginc"

View File

@@ -34,7 +34,7 @@ Shader "FlashTools/SwfSimpleGrab" {
sampler2D _MainTex;
sampler2D _GrabTexture;
#pragma multi_compile SWF_DARKEN_BLEND SWF_DIFFERENCE_BLEND SWF_INVERT_BLEND SWF_ALPHA_BLEND SWF_ERASE_BLEND SWF_OVERLAY_BLEND SWF_HARDLIGHT_BLEND
#pragma multi_compile SWF_DARKEN_BLEND SWF_DIFFERENCE_BLEND SWF_INVERT_BLEND SWF_OVERLAY_BLEND SWF_HARDLIGHT_BLEND
#include "UnityCG.cginc"
#include "SwfBaseCG.cginc"

View File

@@ -102,7 +102,6 @@ namespace FlashTools.Internal {
0,
0,
null,
false,
frame);
}
@@ -115,7 +114,6 @@ namespace FlashTools.Internal {
ushort parent_masked,
ushort parent_mask,
List<SwfInstanceData> parent_masks,
bool erasable,
SwfFrameData frame)
{
var self_masks = new List<SwfInstanceData>();
@@ -124,7 +122,6 @@ namespace FlashTools.Internal {
var child_matrix = parent_matrix * inst.Matrix .ToUMatrix();
var child_blend_mode = parent_blend_mode * inst.BlendMode .ToBlendModeData();
var child_color_transform = parent_color_transform * inst.ColorTransform.ToColorTransData();
var child_erasable = (erasable || inst.BlendMode.Value != SwfBlendMode.Mode.Normal);
switch ( inst.Type ) {
case SwfDisplayInstanceType.Shape:
AddShapeInstanceToFrame(
@@ -137,7 +134,6 @@ namespace FlashTools.Internal {
parent_mask,
parent_masks,
self_masks,
child_erasable,
frame);
break;
case SwfDisplayInstanceType.Sprite:
@@ -151,7 +147,6 @@ namespace FlashTools.Internal {
parent_mask,
parent_masks,
self_masks,
child_erasable,
frame);
break;
default:
@@ -173,7 +168,6 @@ namespace FlashTools.Internal {
ushort parent_mask,
List<SwfInstanceData> parent_masks,
List<SwfInstanceData> self_masks,
bool erasable,
SwfFrameData frame)
{
var shape_def = library.FindDefine<SwfLibraryShapeDefine>(inst.Id);
@@ -223,7 +217,6 @@ namespace FlashTools.Internal {
ushort parent_mask,
List<SwfInstanceData> parent_masks,
List<SwfInstanceData> self_masks,
bool erasable,
SwfFrameData frame)
{
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
@@ -245,7 +238,6 @@ namespace FlashTools.Internal {
: (inst.ClipDepth > 0
? self_masks
: null),
erasable,
frame);
}
}

View File

@@ -61,10 +61,6 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
return new SwfBlendModeData(SwfBlendModeData.Types.Subtract);
case Mode.Invert:
return new SwfBlendModeData(SwfBlendModeData.Types.Invert);
case Mode.Alpha:
return new SwfBlendModeData(SwfBlendModeData.Types.Alpha);
case Mode.Erase:
return new SwfBlendModeData(SwfBlendModeData.Types.Erase);
case Mode.Hardlight:
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
default:

View File

@@ -172,8 +172,6 @@ namespace FlashTools.Internal {
case SwfBlendModeData.Types.Darken:
case SwfBlendModeData.Types.Difference:
case SwfBlendModeData.Types.Invert:
case SwfBlendModeData.Types.Alpha:
case SwfBlendModeData.Types.Erase:
case SwfBlendModeData.Types.Overlay:
case SwfBlendModeData.Types.Hardlight:
return CheckAndGetShader(masked ? MaskedGrabShader : SimpleGrabShader);
@@ -270,18 +268,6 @@ namespace FlashTools.Internal {
material.SetInt("_DstBlend", (int)BlendMode.OneMinusSrcAlpha);
material.EnableKeyword("SWF_INVERT_BLEND");
break;
case SwfBlendModeData.Types.Alpha:
material.SetInt("_BlendOp" , (int)BlendOp.Add);
material.SetInt("_SrcBlend", (int)BlendMode.One);
material.SetInt("_DstBlend", (int)BlendMode.OneMinusSrcAlpha);
material.EnableKeyword("SWF_ALPHA_BLEND");
break;
case SwfBlendModeData.Types.Erase:
material.SetInt("_BlendOp" , (int)BlendOp.Add);
material.SetInt("_SrcBlend", (int)BlendMode.One);
material.SetInt("_DstBlend", (int)BlendMode.OneMinusSrcAlpha);
material.EnableKeyword("SWF_ERASE_BLEND");
break;
case SwfBlendModeData.Types.Overlay:
material.SetInt("_BlendOp" , (int)BlendOp.Add);
material.SetInt("_SrcBlend", (int)BlendMode.One);

View File

@@ -138,8 +138,6 @@ namespace FlashTools {
Add,
Subtract,
Invert, // GrabPass
Alpha, // GrabPass
Erase, // GrabPass
Overlay, // GrabPass
Hardlight // GrabPass
}
@@ -159,9 +157,6 @@ namespace FlashTools {
public static SwfBlendModeData operator*(
SwfBlendModeData a, SwfBlendModeData b)
{
if ( b.type == Types.Alpha || b.type == Types.Erase ) {
return b;
}
return (a.type == Types.Normal || a.type == Types.Layer) ? b : a;
}
}