mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2025-12-16 22:19:31 +07:00
remove custom color mask
This commit is contained in:
@@ -145,7 +145,7 @@ Camera:
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 1
|
||||
orthographic size: 1.3
|
||||
orthographic size: 2.3
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
Shader "FlashTools/SwfGrabMasked" {
|
||||
Shader "FlashTools/SwfMaskedGrab" {
|
||||
Properties {
|
||||
[PerRendererData] _MainTex ("Main Texture", 2D ) = "white" {}
|
||||
[PerRendererData] _Tint ("Tint" , Color) = (1,1,1,1)
|
||||
|
||||
_StencilID ("Stencil ID", Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _SrcBlend ("SrcBlend" , Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _DstBlend ("DstBlend" , Int) = 10
|
||||
[Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorMask ("ColorMask", Int) = 15
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Int) = 10
|
||||
}
|
||||
|
||||
SubShader {
|
||||
@@ -19,10 +18,9 @@ Shader "FlashTools/SwfGrabMasked" {
|
||||
"CanUseSpriteAtlas" = "True"
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ColorMask [_ColorMask]
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
|
||||
BlendOp [_BlendOp]
|
||||
Blend [_SrcBlend] [_DstBlend]
|
||||
|
||||
@@ -4,10 +4,9 @@ Shader "FlashTools/SwfMasked" {
|
||||
[PerRendererData] _Tint ("Tint" , Color) = (1,1,1,1)
|
||||
|
||||
_StencilID ("Stencil ID", Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _SrcBlend ("SrcBlend" , Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _DstBlend ("DstBlend" , Int) = 10
|
||||
[Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorMask ("ColorMask", Int) = 15
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Int) = 10
|
||||
}
|
||||
|
||||
SubShader {
|
||||
@@ -19,10 +18,9 @@ Shader "FlashTools/SwfMasked" {
|
||||
"CanUseSpriteAtlas" = "True"
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ColorMask [_ColorMask]
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
|
||||
BlendOp [_BlendOp]
|
||||
Blend [_SrcBlend] [_DstBlend]
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
Shader "FlashTools/SwfGrabSimple" {
|
||||
Shader "FlashTools/SwfSimpleGrab" {
|
||||
Properties {
|
||||
[PerRendererData] _MainTex ("Main Texture", 2D ) = "white" {}
|
||||
[PerRendererData] _Tint ("Tint" , Color) = (1,1,1,1)
|
||||
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _SrcBlend ("SrcBlend" , Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _DstBlend ("DstBlend" , Int) = 10
|
||||
[Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorMask ("ColorMask", Int) = 15
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Int) = 10
|
||||
}
|
||||
|
||||
SubShader {
|
||||
@@ -18,10 +17,9 @@ Shader "FlashTools/SwfGrabSimple" {
|
||||
"CanUseSpriteAtlas" = "True"
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ColorMask [_ColorMask]
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
|
||||
BlendOp [_BlendOp]
|
||||
Blend [_SrcBlend] [_DstBlend]
|
||||
|
||||
@@ -3,10 +3,9 @@ Shader "FlashTools/SwfSimple" {
|
||||
[PerRendererData] _MainTex ("Main Texture", 2D ) = "white" {}
|
||||
[PerRendererData] _Tint ("Tint" , Color) = (1,1,1,1)
|
||||
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _SrcBlend ("SrcBlend" , Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode )] _DstBlend ("DstBlend" , Int) = 10
|
||||
[Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorMask ("ColorMask", Int) = 15
|
||||
[Enum(UnityEngine.Rendering.BlendOp )] _BlendOp ("BlendOp" , Int) = 0
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Int) = 1
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Int) = 10
|
||||
}
|
||||
|
||||
SubShader {
|
||||
@@ -18,10 +17,9 @@ Shader "FlashTools/SwfSimple" {
|
||||
"CanUseSpriteAtlas" = "True"
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
ColorMask [_ColorMask]
|
||||
Cull Off
|
||||
Lighting Off
|
||||
ZWrite Off
|
||||
|
||||
BlendOp [_BlendOp]
|
||||
Blend [_SrcBlend] [_DstBlend]
|
||||
|
||||
@@ -313,13 +313,12 @@ namespace FlashTools.Internal {
|
||||
}
|
||||
|
||||
class BakedGroup {
|
||||
public SwfInstanceData.Types Type;
|
||||
public SwfInstanceData.ColorModes ColorMode;
|
||||
public SwfBlendModeData.Types BlendMode;
|
||||
public int ClipDepth;
|
||||
public int StartVertex;
|
||||
public int TriangleCount;
|
||||
public Material Material;
|
||||
public SwfInstanceData.Types Type;
|
||||
public SwfBlendModeData.Types BlendMode;
|
||||
public int ClipDepth;
|
||||
public int StartVertex;
|
||||
public int TriangleCount;
|
||||
public Material Material;
|
||||
}
|
||||
|
||||
static SwfClipAsset.Frame BakeClipFrame(
|
||||
@@ -376,13 +375,11 @@ namespace FlashTools.Internal {
|
||||
|
||||
if ( baked_groups.Count == 0 ||
|
||||
baked_groups[baked_groups.Count - 1].Type != inst.Type ||
|
||||
baked_groups[baked_groups.Count - 1].ColorMode != inst.ColorMode ||
|
||||
baked_groups[baked_groups.Count - 1].BlendMode != inst.BlendMode.type ||
|
||||
baked_groups[baked_groups.Count - 1].ClipDepth != inst.ClipDepth )
|
||||
{
|
||||
baked_groups.Add(new BakedGroup{
|
||||
Type = inst.Type,
|
||||
ColorMode = inst.ColorMode,
|
||||
BlendMode = inst.BlendMode.type,
|
||||
ClipDepth = inst.ClipDepth,
|
||||
StartVertex = baked_vertices.Count - 4,
|
||||
@@ -403,12 +400,10 @@ namespace FlashTools.Internal {
|
||||
group.Material = settings_holder.GetIncrMaskMaterial();
|
||||
break;
|
||||
case SwfInstanceData.Types.Group:
|
||||
group.Material = settings_holder.GetSimpleMaterial(
|
||||
group.ColorMode, group.BlendMode);
|
||||
group.Material = settings_holder.GetSimpleMaterial(group.BlendMode);
|
||||
break;
|
||||
case SwfInstanceData.Types.Masked:
|
||||
group.Material = settings_holder.GetMaskedMaterial(
|
||||
group.ColorMode, group.BlendMode, group.ClipDepth);
|
||||
group.Material = settings_holder.GetMaskedMaterial(group.BlendMode, group.ClipDepth);
|
||||
break;
|
||||
case SwfInstanceData.Types.MaskReset:
|
||||
group.Material = settings_holder.GetDecrMaskMaterial();
|
||||
|
||||
@@ -96,24 +96,24 @@ namespace FlashTools.Internal {
|
||||
return AddDisplayListToFrame(
|
||||
library,
|
||||
display_list,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
Matrix4x4.identity,
|
||||
SwfBlendModeData.identity,
|
||||
SwfColorTransData.identity,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
frame);
|
||||
}
|
||||
|
||||
static SwfFrameData AddDisplayListToFrame(
|
||||
SwfLibrary library,
|
||||
SwfDisplayList display_list,
|
||||
ushort parent_masked,
|
||||
ushort parent_mask,
|
||||
List<SwfInstanceData> parent_masks,
|
||||
Matrix4x4 parent_matrix,
|
||||
SwfBlendModeData parent_blend_mode,
|
||||
SwfColorTransData parent_color_transform,
|
||||
ushort parent_masked,
|
||||
ushort parent_mask,
|
||||
List<SwfInstanceData> parent_masks,
|
||||
SwfFrameData frame)
|
||||
{
|
||||
var self_masks = new List<SwfInstanceData>();
|
||||
@@ -124,57 +124,30 @@ namespace FlashTools.Internal {
|
||||
var child_color_transform = parent_color_transform * inst.ColorTransform.ToColorTransData();
|
||||
switch ( inst.Type ) {
|
||||
case SwfDisplayInstanceType.Shape:
|
||||
var shape_def = library.FindDefine<SwfLibraryShapeDefine>(inst.Id);
|
||||
if ( shape_def != null ) {
|
||||
for ( var i = 0; i < shape_def.Bitmaps.Length; ++i ) {
|
||||
var bitmap_id = shape_def.Bitmaps[i];
|
||||
var bitmap_matrix = i < shape_def.Matrices.Length ? shape_def.Matrices[i] : SwfMatrix.identity;
|
||||
var bitmap_def = library.FindDefine<SwfLibraryBitmapDefine>(bitmap_id);
|
||||
if ( bitmap_def != null ) {
|
||||
var frame_inst_type =
|
||||
(parent_mask > 0 || inst.ClipDepth > 0)
|
||||
? SwfInstanceData.Types.Mask
|
||||
: (parent_masked > 0 || self_masks.Count > 0)
|
||||
? SwfInstanceData.Types.Masked
|
||||
: SwfInstanceData.Types.Group;
|
||||
var frame_inst_clip_depth =
|
||||
(parent_mask > 0)
|
||||
? parent_mask
|
||||
: (inst.ClipDepth > 0)
|
||||
? inst.ClipDepth
|
||||
: parent_masked + self_masks.Count;
|
||||
frame.Instances.Add(new SwfInstanceData{
|
||||
Type = frame_inst_type,
|
||||
ColorMode = SwfInstanceData.ColorModes.RGBA,
|
||||
ClipDepth = (ushort)frame_inst_clip_depth,
|
||||
Bitmap = bitmap_id,
|
||||
Matrix = SwfMatrixData.FromUMatrix(child_matrix * bitmap_matrix.ToUMatrix()),
|
||||
BlendMode = child_blend_mode,
|
||||
ColorTrans = child_color_transform});
|
||||
if ( parent_mask > 0 ) {
|
||||
parent_masks.Add(frame.Instances[frame.Instances.Count - 1]);
|
||||
} else if ( inst.ClipDepth > 0 ) {
|
||||
self_masks.Add(frame.Instances[frame.Instances.Count - 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
AddShapeInstanceToFrame(
|
||||
library,
|
||||
inst as SwfDisplayShapeInstance,
|
||||
child_matrix,
|
||||
child_blend_mode,
|
||||
child_color_transform,
|
||||
parent_masked,
|
||||
parent_mask,
|
||||
parent_masks,
|
||||
self_masks,
|
||||
frame);
|
||||
break;
|
||||
case SwfDisplayInstanceType.Sprite:
|
||||
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
|
||||
if ( sprite_def != null ) {
|
||||
var sprite_inst = inst as SwfDisplaySpriteInstance;
|
||||
AddDisplayListToFrame(
|
||||
library,
|
||||
sprite_inst.DisplayList,
|
||||
(ushort)(parent_masked + self_masks.Count),
|
||||
(ushort)(parent_mask > 0 ? parent_mask : (inst.ClipDepth > 0 ? inst.ClipDepth : (ushort)0)),
|
||||
parent_mask > 0 ? parent_masks : (inst.ClipDepth > 0 ? self_masks : null),
|
||||
child_matrix,
|
||||
child_blend_mode,
|
||||
child_color_transform,
|
||||
frame);
|
||||
}
|
||||
AddSpriteInstanceToFrame(
|
||||
library,
|
||||
inst as SwfDisplaySpriteInstance,
|
||||
child_matrix,
|
||||
child_blend_mode,
|
||||
child_color_transform,
|
||||
parent_masked,
|
||||
parent_mask,
|
||||
parent_masks,
|
||||
self_masks,
|
||||
frame);
|
||||
break;
|
||||
default:
|
||||
throw new UnityException(string.Format(
|
||||
@@ -185,14 +158,98 @@ namespace FlashTools.Internal {
|
||||
return frame;
|
||||
}
|
||||
|
||||
static void AddShapeInstanceToFrame(
|
||||
SwfLibrary library,
|
||||
SwfDisplayShapeInstance inst,
|
||||
Matrix4x4 inst_matrix,
|
||||
SwfBlendModeData inst_blend_mode,
|
||||
SwfColorTransData inst_color_transform,
|
||||
ushort parent_masked,
|
||||
ushort parent_mask,
|
||||
List<SwfInstanceData> parent_masks,
|
||||
List<SwfInstanceData> self_masks,
|
||||
SwfFrameData frame)
|
||||
{
|
||||
var shape_def = library.FindDefine<SwfLibraryShapeDefine>(inst.Id);
|
||||
if ( shape_def != null ) {
|
||||
for ( var i = 0; i < shape_def.Bitmaps.Length; ++i ) {
|
||||
var bitmap_id = shape_def.Bitmaps[i];
|
||||
var bitmap_matrix = i < shape_def.Matrices.Length ? shape_def.Matrices[i] : SwfMatrix.identity;
|
||||
var bitmap_def = library.FindDefine<SwfLibraryBitmapDefine>(bitmap_id);
|
||||
if ( bitmap_def != null ) {
|
||||
var frame_inst_type =
|
||||
(parent_mask > 0 || inst.ClipDepth > 0)
|
||||
? SwfInstanceData.Types.Mask
|
||||
: (parent_masked > 0 || self_masks.Count > 0)
|
||||
? SwfInstanceData.Types.Masked
|
||||
: SwfInstanceData.Types.Group;
|
||||
var frame_inst_clip_depth =
|
||||
(parent_mask > 0)
|
||||
? parent_mask
|
||||
: (inst.ClipDepth > 0)
|
||||
? inst.ClipDepth
|
||||
: parent_masked + self_masks.Count;
|
||||
frame.Instances.Add(new SwfInstanceData{
|
||||
Type = frame_inst_type,
|
||||
ClipDepth = (ushort)frame_inst_clip_depth,
|
||||
Bitmap = bitmap_id,
|
||||
Matrix = SwfMatrixData.FromUMatrix(inst_matrix * bitmap_matrix.ToUMatrix()),
|
||||
BlendMode = inst_blend_mode,
|
||||
ColorTrans = inst_color_transform});
|
||||
if ( parent_mask > 0 ) {
|
||||
parent_masks.Add(frame.Instances[frame.Instances.Count - 1]);
|
||||
} else if ( inst.ClipDepth > 0 ) {
|
||||
self_masks.Add(frame.Instances[frame.Instances.Count - 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void AddSpriteInstanceToFrame(
|
||||
SwfLibrary library,
|
||||
SwfDisplaySpriteInstance inst,
|
||||
Matrix4x4 inst_matrix,
|
||||
SwfBlendModeData inst_blend_mode,
|
||||
SwfColorTransData inst_color_transform,
|
||||
ushort parent_masked,
|
||||
ushort parent_mask,
|
||||
List<SwfInstanceData> parent_masks,
|
||||
List<SwfInstanceData> self_masks,
|
||||
SwfFrameData frame)
|
||||
{
|
||||
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
|
||||
if ( sprite_def != null ) {
|
||||
AddDisplayListToFrame(
|
||||
library,
|
||||
inst.DisplayList,
|
||||
inst_matrix,
|
||||
inst_blend_mode,
|
||||
inst_color_transform,
|
||||
(ushort)(parent_masked + self_masks.Count),
|
||||
(ushort)(parent_mask > 0
|
||||
? parent_mask
|
||||
: (inst.ClipDepth > 0
|
||||
? inst.ClipDepth
|
||||
: (ushort)0)),
|
||||
parent_mask > 0
|
||||
? parent_masks
|
||||
: (inst.ClipDepth > 0
|
||||
? self_masks
|
||||
: null),
|
||||
frame);
|
||||
}
|
||||
}
|
||||
|
||||
static void CheckSelfMasks(
|
||||
List<SwfInstanceData> masks, ushort depth, SwfFrameData frame)
|
||||
List<SwfInstanceData> masks,
|
||||
ushort depth,
|
||||
SwfFrameData frame)
|
||||
{
|
||||
foreach ( var mask in masks ) {
|
||||
if ( mask.ClipDepth < depth ) {
|
||||
frame.Instances.Add(new SwfInstanceData{
|
||||
Type = SwfInstanceData.Types.MaskReset,
|
||||
ColorMode = SwfInstanceData.ColorModes.RGBA,
|
||||
ClipDepth = 0,
|
||||
Bitmap = mask.Bitmap,
|
||||
Matrix = mask.Matrix,
|
||||
|
||||
@@ -99,14 +99,11 @@ namespace FlashTools.Internal {
|
||||
}
|
||||
|
||||
void PregenerateMaterials() {
|
||||
var color_modes = System.Enum.GetValues(typeof(SwfInstanceData.ColorModes));
|
||||
var blend_modes = System.Enum.GetValues(typeof(SwfBlendModeData.Types));
|
||||
foreach ( SwfInstanceData.ColorModes color_mode in color_modes ) {
|
||||
foreach ( SwfBlendModeData.Types blend_mode in blend_modes ) {
|
||||
GetSimpleMaterial(color_mode, blend_mode);
|
||||
for ( var i = 0; i < 10; ++i ) {
|
||||
GetMaskedMaterial(color_mode, blend_mode, i);
|
||||
}
|
||||
foreach ( SwfBlendModeData.Types blend_mode in blend_modes ) {
|
||||
GetSimpleMaterial(blend_mode);
|
||||
for ( var i = 0; i < 10; ++i ) {
|
||||
GetMaskedMaterial(blend_mode, i);
|
||||
}
|
||||
}
|
||||
GetIncrMaskMaterial();
|
||||
@@ -196,20 +193,8 @@ namespace FlashTools.Internal {
|
||||
}
|
||||
|
||||
static Material FillMaterial(
|
||||
Material material, SwfInstanceData.ColorModes color_mode, SwfBlendModeData.Types blend_mode, int stencil_id)
|
||||
Material material, SwfBlendModeData.Types blend_mode, int stencil_id)
|
||||
{
|
||||
switch ( color_mode ) {
|
||||
case SwfInstanceData.ColorModes.RGBA:
|
||||
material.SetInt("_ColorMask", (int)ColorWriteMask.All);
|
||||
break;
|
||||
case SwfInstanceData.ColorModes.A:
|
||||
material.SetInt("_ColorMask", (int)ColorWriteMask.Alpha);
|
||||
break;
|
||||
default:
|
||||
throw new UnityException(string.Format(
|
||||
"SwfSettings. Incorrect color mode: {0}",
|
||||
color_mode));
|
||||
}
|
||||
switch ( blend_mode ) {
|
||||
case SwfBlendModeData.Types.Normal:
|
||||
material.SetInt("_BlendOp" , (int)BlendOp.Add);
|
||||
@@ -286,33 +271,26 @@ namespace FlashTools.Internal {
|
||||
//
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
public Material GetSimpleMaterial(
|
||||
SwfInstanceData.ColorModes color_mode,
|
||||
SwfBlendModeData.Types blend_mode)
|
||||
{
|
||||
public Material GetSimpleMaterial(SwfBlendModeData.Types blend_mode) {
|
||||
return LoadOrCreateMaterial(
|
||||
CheckAndGetShader(SelectShader(false, blend_mode)),
|
||||
(dir_path, filename) => {
|
||||
return string.Format(
|
||||
"{0}/{1}_{2}_{3}.mat",
|
||||
dir_path, filename, color_mode, blend_mode);
|
||||
"{0}/{1}_{2}.mat",
|
||||
dir_path, filename, blend_mode);
|
||||
},
|
||||
material => FillMaterial(material, color_mode, blend_mode, 0));
|
||||
material => FillMaterial(material, blend_mode, 0));
|
||||
}
|
||||
|
||||
public Material GetMaskedMaterial(
|
||||
SwfInstanceData.ColorModes color_mode,
|
||||
SwfBlendModeData.Types blend_mode,
|
||||
int stencil_id)
|
||||
{
|
||||
public Material GetMaskedMaterial(SwfBlendModeData.Types blend_mode, int stencil_id) {
|
||||
return LoadOrCreateMaterial(
|
||||
CheckAndGetShader(SelectShader(true, blend_mode)),
|
||||
(dir_path, filename) => {
|
||||
return string.Format(
|
||||
"{0}/{1}_{2}_{3}_{4}.mat",
|
||||
dir_path, filename, color_mode, blend_mode, stencil_id);
|
||||
"{0}/{1}_{2}_{3}.mat",
|
||||
dir_path, filename, blend_mode, stencil_id);
|
||||
},
|
||||
material => FillMaterial(material, color_mode, blend_mode, stencil_id));
|
||||
material => FillMaterial(material, blend_mode, stencil_id));
|
||||
}
|
||||
|
||||
public Material GetIncrMaskMaterial() {
|
||||
|
||||
@@ -136,8 +136,7 @@ namespace FlashTools {
|
||||
public static SwfBlendModeData operator*(
|
||||
SwfBlendModeData a, SwfBlendModeData b)
|
||||
{
|
||||
return new SwfBlendModeData{
|
||||
type = a.type == Types.Normal ? b.type : a.type};
|
||||
return a.type == Types.Normal ? b : a;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,12 +186,7 @@ namespace FlashTools {
|
||||
Masked,
|
||||
MaskReset
|
||||
}
|
||||
public enum ColorModes {
|
||||
RGBA,
|
||||
A
|
||||
}
|
||||
public Types Type = Types.Group;
|
||||
public ColorModes ColorMode = ColorModes.RGBA;
|
||||
public ushort ClipDepth = 0;
|
||||
public ushort Bitmap = 0;
|
||||
public SwfMatrixData Matrix = SwfMatrixData.identity;
|
||||
|
||||
Reference in New Issue
Block a user