Wednesday, July 27, 2005


SWFIO Filters Design

All right, I sat down and hammered out the basics of the SWFIO Filters package. I still haven't documented the semantics of all of the calls yet, but I know what they are (I just need to write them down). Once I get the semantics documented, I can write the unit tests — after that, I can implement the code, or leave that for someone else to do while I move on to designing other pieces.

I've updated the Umbrello diagram on the server (check the links at the left), and have also generated an image of the diagram (click the image below to see the full-scale picture). Enjoy :).

An unreadable, low-res UML diagram representing the SWFIO filters package
Hmm, does this in any way relate to the current GPLFlash2 source code?
No; I'm just trying to create an ideal design. If the design at any point resembles the existing GPLFlash2 architecture, it will be because that part of GPLFlash2 had a good design idea in the first place.

If you're looking for information on the current GPLFlash2 design, your best bet would be to look at the doc/ directory in the GPLFlash2 CVS checkout.
I see. It is interesting to look at your design ideas.

After the ideal design is finished, do you intend to gradually refactor the current GPLFlash2 source code according to the new design, or are you considering yet another complete rewrite?
Yet Another Stoopid Rewrite :p. I'm of the opinion that good architecture can't really be kludged in after the fact. From what code I've seen, I get the impression that the effort of trying to re-use what we have would be more than the effort of just re-writing it so that it's correct in the first place.

If there is low-hanging fruit — stuff in the rewrite that the current GPLFlash2 could be ported to use in the interim — I'm all for taking it. I think that the SWFIO library will fit that description. However, some sections may be difficult or impossible to integrate into the current GPLFlash2 architecture without causing a virtual rewrite in other sections of the code — at which point, we aren't really gaining anything.
What you would gain by a gradual rewrite is to always have something that is more or less working and usable, and there would not be yet another separate project. On the other hand I realize that it might take a lot of time until the ideal design is reached in that way.
Post a Comment

Links to this post:

Create a Link

<< Home

Note: I have been told by someone who recently downloaded the SWF specification that Macromedia has added a restrictive license to the end of the document. Because of this, newcomers will not be able to get a copy of the spec and still be able to contribute to GPLFlash's development. Since other developers (such as myself) already have access to the specification without the license, this should not pose a major problem in the short term. Please bear with us, and do not seek out or use this specification in conjunction with the GPLFlash project.