public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu) { curVo = vo; if (V2D.OUTPUT_TYPE == OutputType.Xna) { Gdi.GdiRenderer gr = new Gdi.GdiRenderer(); Dictionary <string, Bitmap> bmps = gr.GenerateTimelineMappedBitmaps(vo); paths = gr.ExportBitmaps(bmps); } Init(scu); ParseActions(scu); ParseRootTimeline(); GenerateActionData(); GenerateJointData(); string path = scu.FullPath; if (V2D.OUTPUT_TYPE == OutputType.Swf) { path = path.Replace(".swf", ".as"); GenActionscript gas = new GenActionscript(this, path); } else { path = path.Replace(".swf", ".xml"); GenXNA gx = new GenXNA(this, path, paths); } }
public void Init(DDW.Swf.SwfCompilationUnit scu) { Body2D ground = new Body2D(V2D.ROOT_NAME, "_root", -1, Rectangle.Empty); ground.Transforms = new List <Transform>(); ground.Transforms.Add(new Transform(0, (uint)(scu.Header.FrameCount * (1 / scu.Header.FrameRate)), new Matrix(1, 0, 0, 1, 0, 0), 1, ColorTransform.Identity)); bodies.Add(V2D.ROOT_NAME, ground); }
public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu) { curVo = vo; this.scu = scu; Init(); FilterMarkers(); ParseActions(); ParseTimeline(curVo.Root); GenerateWorldActionData(); // temp GenerateBitamps(); //genV2d = new GenV2DWorld(this, paths); //genV2d.Generate(); }
public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu) { curVo = vo; this.scu = scu; Init(); FilterMarkers(); ParseActions(); ParseTimeline(curVo.Root); GenerateWorldActionData(); // temp GenerateBitamps(); //genV2d = new GenV2DWorld(this, paths); //genV2d.Generate(); }
public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu) { curVo = vo; Init(scu); FilterMarkers(); ParseActions(scu); ParseRootTimeline(); ParseNamedDefinitions(); GenerateWorldActionData(); Gdi.GdiRenderer gr = new Gdi.GdiRenderer(); Dictionary <string, List <Bitmap> > bmps = new Dictionary <string, List <Bitmap> >(); gr.GenerateFilteredBitmaps(vo, usedImages, bmps); gr.ExportBitmapsAsPremultiplied(bmps); genV2d = new GenV2DWorld(this, usedImages); genV2d.Generate(); }
public void Init(DDW.Swf.SwfCompilationUnit scu) { root = new Definition2D(); root.DefinitionName = V2D.ROOT_NAME; root.LinkageName = V2D.ROOT_NAME; root.Bounds = Rectangle.Empty; root.FrameCount = 1; definitions.Add(root); rootInstance = new Instance2D(V2D.ROOT_NAME, root.DefinitionName, 0, 0, 0, 1, 1); rootInstance.Definition = root; rootInstance.Transforms.Add(new Transform( 0, (uint)(scu.Header.FrameCount * (1000 / scu.Header.FrameRate)), new Matrix(1, 0, 0, 1, 0, 0), 1, ColorTransform.Identity)); parentStack.Push(rootInstance); }
private void ParseActions(DDW.Swf.SwfCompilationUnit scu) { List <DDW.Swf.DoActionTag> dat = new List <DDW.Swf.DoActionTag>(); foreach (DDW.Swf.ISwfTag tag in scu.Tags) { if (tag is DDW.Swf.DoActionTag) { dat.Add((DDW.Swf.DoActionTag)tag); } } foreach (DDW.Swf.DoActionTag tag in dat) { DDW.Swf.ConstantPool cp = null; List <string> stack = new List <string>(); for (int i = 0; i < tag.Statements.Count; i++) { DDW.Swf.IAction a = tag.Statements[i]; if (a is DDW.Swf.ConstantPool) { cp = (DDW.Swf.ConstantPool)a; } else if (a is DDW.Swf.SetMember) { if (stack.Count > 2) { string s0 = stack[0]; string s1 = stack[1]; string s2 = stack[2]; if (!codeData.ContainsKey(s0)) { codeData.Add(s0, new Dictionary <string, string>()); } Dictionary <string, string> targData = codeData[s0]; targData.Add(s1, s2); } stack.Clear(); } else if (a is DDW.Swf.Push) { DDW.Swf.Push push = (DDW.Swf.Push)a; for (int j = 0; j < push.Values.Count; j++) { DDW.Swf.IPrimitive v = push.Values[j]; switch (v.PrimitiveType) { case DDW.Swf.PrimitiveType.String: stack.Add(((DDW.Swf.PrimitiveString)v).StringValue); break; case DDW.Swf.PrimitiveType.Constant8: stack.Add(cp.Constants[((DDW.Swf.PrimitiveConstant8)v).Constant8Value]); break; case DDW.Swf.PrimitiveType.Constant16: stack.Add(cp.Constants[((DDW.Swf.PrimitiveConstant16)v).Constant16Value]); break; case DDW.Swf.PrimitiveType.Integer: stack.Add(((DDW.Swf.PrimitiveInteger)v).IntegerValue.ToString()); break; case DDW.Swf.PrimitiveType.Float: stack.Add(((DDW.Swf.PrimitiveFloat)v).FloatValue.ToString()); break; case DDW.Swf.PrimitiveType.Double: stack.Add(((DDW.Swf.PrimitiveDouble)v).DoubleValue.ToString()); break; case DDW.Swf.PrimitiveType.Boolean: stack.Add(((DDW.Swf.PrimitiveBoolean)v).BooleanValue.ToString().ToLowerInvariant()); break; case DDW.Swf.PrimitiveType.Null: stack.Add("null"); break; case DDW.Swf.PrimitiveType.Undefined: stack.Add("null"); break; } } } } } }