1This file is part of the sswf library. 2 3This file includes the changes I think of 4writing down. Some bugs fixes may not appear if 5(1) they are not that relevent or (2) I work too 6fast and don't have the time to write down the 7changes here. It will get fix anyway! 8 9 10 o Feb 08, 2009 (1.8.4) 11 12Added support for internal ASC files. Now the compiler can be 13used with the libsswf_asc library that includes all the scripts 14defined under include/sswf/scripts. This way, you do not have to 15provide these text files to your users. 16 17In order to compile the sswf tool to use this new feature, use 18the --enable-internal-scripts flag on the configure script. By 19default, all the pre-compiled sswf files that I offer will not 20have that flag turned on. 21 22Fixed a bug in the complex package. One of the operation was 23wrong. 24 25 26 o Jan 03, 2008 (1.8.3) 27 28Fixed the compiler so enumeration names are taken as types. 29 30Fixed the xml.asc so it compiles. Also updated the XMLNode to the 31full Flash 8 definition. 32 33Fixed the assembler that would not properly set the value in 34an array. There were two swaps missing. 35(i.e. "a[expr] = b;" now works) 36 37Fixed the src/misc/Makefile.am so the libsswf_c is linked with 38../lib (where the libsswf is found.) Somehow, it works fine 39under Linux but not exaclty well in cross-compiling with mingw32 40 41Fixed small mistakes in different documentations. 42 43 44 45 46 o Jul 11, 2007 (1.8.2) 47 48Fixed a really bad bug with the TEXT node in sswf. This one would 49not save the string properly unless it was the very first but it 50cannot since you need to specify the text setup. So... you could 51not really use it anymore! 52 53Added some static_cast<> to make double's int's before changing them 54to enumerations to please g++ 3.3.5. (Problem reported by Robert) 55 56Added support for the CSM Text Settings tag in SSWF. 57Updated the corresponding documentation. 58 59Fixed a bug in the button because if no actions are defined we would 60not save the ActionEnd. 61 62Fixed the saving of the TagShape when saving a morph shape. The 63shape4 flag was not properly initialized. 64 65Fixed several things in HTML documents (particularly, switched from 66using IDs to CLASSes for much better correctness.) Fixed a few 67gramatical errors. 68 69Included a new sample: the clock by bi. 70 71Moved the SSWF website to Made to Order Software Corporate website. 72 73Fixed a bug with 64bit CPU running in big endian. The PUSH DATA 74and IMAGE FORMAT were using an enum (32 bits) that was saved as 75a long (64 bit) by the node code. This would make the enum value 76look like zero instead of the correct value in the save code. 77 78Fixed a bug with 64bit CPU running in big endian. The PUSH DATA 79library implementation would save double's swapped as if always 80in little endian. Now the endianness is taken in account. 81 82Added support to assemble fscommand() as a geturl(). And made 83the geturl() an internal function (though, it sounds like this 84may not be a good idea.) 85 86Updated the library VC project so it includes all the new files. 87(Reported by Lise) 88 89Got an SSWF RPM package for the Z-Series computers (for an s390x 90processor, a big endian 64bit CPU!) The computer was running 91Suse 10 SLES. 92 93 94 95 96 o May 14, 2007 (1.8.1) 97 98Added the TagProductInfo in the library and the sswf tool which 99now saves its version information (this forces a version 3 movie...) 100 101Added the TagBinaryData in the library. Not tested! 102 103Added support in the swf_dump tool for the TagProductInfo. 104 105Added the TagDefineShape4 and Enhanced Line style (LINE2) with the 106Focal Gradient in sswf & swf_dump. 107 108Added support for the DefineFont3 tag. 109 110Added support for the AlignFontZones tag. 111 112Added support for the CSMTextSettings tag. 113 114Added much more documentation. 115 116Added much more and better error handling in the library. 117 118Added the Scene Frame Data tag. 119 120Fixed cpp-to-c++ to support [u]int64_t which is required for V8+. 121 122Fixed some of the import features so it does not crash for sound. 123I still have to work on the font... 124 125Fixed the export feature in regard to fonts so it exports the 126entire font (by default) or the specified glyphs. 127 128 129 130 o Oct 12, 2006 (1.8.0) 131 132Fixed the different tags which require a long tag definition 133(i.e. Lossless, JPEG and StreamBlock.) Small images & sound 134blocks would otherwise not work (go figure!) 135 136Fixed the documentation about the DefineScalingGrid since 137there are many restrictions. I successfully tested with a 138button. You can find the example in samples/grid-button/*. 139 140Fixed the C library version so it has its own and does not 141share the version from the C++ library. The C library will 142be very much more stable than the C++ library. A change in 143the C++ library will require a recompiling of the C library, 144but the C library interface will certainly not change as 145much (thought both changed in this version already!) 146 147Fixed the C sample so it actually uses gcc and not g++. 148This shown a bug with the amakefile which linked using 149$(LD) instead of $(CXX)... and gcc does not like it. 150 151Fixed all the sample HTML files so there is no align="left" 152or align="center" parameter for the flash animation. That 153causes problems on some browsers (notably, Mozilla under 154Debian with Flash player 7, Firefox has been reported to 155have that problem too.) I had fixed the website but it 156looks like the samples had not been fixed yet. 157 158Fixed the cpp-to-c tool to avoid emitting the many useless 159casts it generated before. This makes the code much easier 160to compile on newer versions of g++ (especially version 4.1) 161 162Fixed the State class so it includes a set of well defined 163flags and not just an unsigned char and good luck! 164 165Fixed the loading of 32 bits targas according to what the 166Gimp saves. That is the format is expected to be BGRA and 167not ABGR (I'm not totally sure this is correct; if you have 168an image which doesn't work anymore, let me know! it could 169be that the flag 3 of the header indicates where the alpha 170is found...) 171 172Fixed the extraction of lossless images saved in XRGB. The 173extraction to targa images works properly now (i.e. takes 174the X component in account.) Also, the extraction of ARGB 175was fixed too. It saves the components at the right place. 176 177Fixed the extraction of lossless images with a colormap 178and no alpha channel in swf_dump. The width was improperly 179handled. 180 181Fixed the TagProtect. Not like anyone was using it much, 182but it seemed normal to fix it anyway... Two important bugs: 183(1) it would let you save the protect tag of your choice, now 184it uses the one you are supposed to use depending on the 185version you're using and (2) I really save the password 186supposed to be saved and not the wrong string (I suppose 187the old version could have crashed.) 188 189Fixed the TagBaseID::NoIdentification(). Now the f_id variable 190member is set to SSWF_ID_NONE so it is not possible to find 191that tag instead of another! Also, the SaveID() will fail 192whenever the identification was released. 193 194Added the TagScalingGrid object to save scaling grids in 195version 8 movies. You cannot directly access this tag. Instead 196you must create a TagButton or TagSprite and define the grid 197on these objects. SSWF does the rest for you. 198 199Added a fix to the FSCommand2 in the doc/html/SWFalexref.html 200as described by Ammar Mardawi. He tested and could describe 201how to use that action. 202 203Ameliorated the Implements action documentation to include 204an example of what you need to do to make it work. You can 205always look inside the src/libasas/assembler.c++ for more 206info about the other object actions. 207 208Added the generation of manual pages (man3) for the SSWF 209library. Many things are not so good, but it's a start. 210 211More fixes to the Fink info file to try to enter fink. 212 213Added the C samples to the amakefile sample test. 214 215Fixed the dotar so the fink info file has a version. 216 217Fixed the ActionTry by adding the GetMaxRegister() function. 218It needed to check all the sub-actions for the largest 219register number. 220 221Fixed a bug in the ft2sswf tool where a string named mbs 222could be used before being defined. 223 224"Fixed" the code so it compiles at once with Visual Studio 225version 8 (Express Version). 226 227Added the projects and solution working with VC8. These 228are under VC\sswf\* -- older versions of VC may not work 229as is with this code. At this time, you can download VC8 230for free, including the IDE, from here: 231 232http://msdn.microsoft.com/vstudio/express/visualc/default.aspx 233 234You still need to have MinGW for the JPEG, PNG, Z and IConv 235libraries. 236 237Changed a variable called mbs in ft2sswf.c to allocate the 238buffer instead of using a buffer on the stack with MS-Windows. 239The problem is that the size is defined in a variable in 240Windows (instead of a simple #define number.) The Unix version 241is unchanged. 242 243Moved the blend_mode_t from the TagPlace to a separate class 244named BlendMode so it can be reused by the State as well as 245the TagPlace classes. There is a new file (libsswf_blendmode.c++) 246 247Added support for a blend mode in a State. 248 249Fixed a bug in the TagEnd which would increase the number of 250frames by one even when that tag was preceeded by a TagShowFrame. 251In this special case, the TagEnd does not count as an extra 252frame! 253 254Added the ErrorManager to generate errors from anywhere in 255the library. Added error support to the different save functions. 256Expect only a few changes to your code if you were using these 257in your code. Mainly one class to catch the errors and check the 258result of the Save() function against the different errors to 259know what to do next. 260 261Tweaked the configuration and libraries in an attempt to get DLLs 262under MS-Windows (for the SSWF, ActionScript and Assembler libs.) 263 264Fixed dotar so it does not delete the entire package directories 265when building a new set of packages. This means it keeps the 266repository directory (i.e. .svn in my case.) 267 268Fixed 4 Makefile.am so the $(top_dir)/include does not end with 269a slash. That was making the make fail under MSYS. 270 271Added the missing .pc files for the libraries. 272 273Changed the dotar to take additional changes in account. The 274source package is now created after the destination receives 275all the additions I want in that package (i.e. grammar C source 276and header, authors, change log, etc.) 277 278Removed the linking with gcc 3.4 from dotar. The Debian and 279Slackware packages now include the gcc 4.1 binaries. 280 281Enhanced the swap() function so it swaps using 64 bits values 282on 64 bits processors. Also, fixed the different casts. 28364 bits enhancements by Fabio A. Correa <facorread at gmail> 284 285Fixed several static const variable members names from f_... 286to g_... (important for my editor with colors.) 287 288Fixed the TagButton so the set of condition flags which are 289valid for a button are being checked. If flags for a TagPlace 290are specified, the PreSave() function generates an error. 291 292Fixed the AddEvent() functions of the TagButton and TagPlace to 293check that none of the flags of the other is set. Thus you get 294an error at that time and the offensive events are not added to 295the object. (That is, you can modify the event after adding it 296so this is not a 100% safe test!) 297 298Fixed ColorTransform::IsSolidCompatible() so it first transforms 299the color to an 8.8 fixed point value. Also, fixed the 300ColorTransform::IsNull() function so it transform to an 8.8 fixed 301point instead of a 16.16 fixed point value. That may help a very 302little in optimizing some movies. 303 304Fixed the Matrix::IsNull() and comparison operators to test the 305matrix using 16.16 fixed points instead of testing the doubles 306directly. This means many more matrices will appear as being 307null, equal or inequal and thus more optimizations will happen. 308 309Added a doxygen documentation of the library. 310 311 312 313 314 315 316 317 o May 29, 2006 (1.7.5) 318 319The license was transfered from Made to Order Software, Ltd 320to Made to Order Software Corp. 321 322Straighten the version controls from the SSWF main sequence. 323Before you had a maximum_version variable you could use to 324force a very specific version. Now you can define a range 325within which you want your movie to be saved with the 326minimum_version and maximum_version variables. And you can 327also use the version variable to force a specific version 328(what the maximum_version was doing before!) 329 330Fixed the file names in many of the libsswf_tag_<name>.c++ 331files. 332 333Added the tool src/misc/cpp-to-c.c++ used to generate a 334C library to access the SSWF library directly from C. 335This generates the include/sswf/libsswf-c.h header and 336the lib/libsswf_c* libraries (one static and one shared.) 337I'm glad I didn't type that by hand. It's a total of 3975 338lines at time of writing and some lines are really long! 339(175650 bytes in size.) It will certainly change by the 340time I publish since I need to make everything compile 341on all systems now! (It processes 54 classes, 436 functions, 3424 structures, 18 enumerations) 343 344I copied the simple news sample (samples/news-samples/simple*) 345to a C directory (smaples/c-samples) and made it compile with 346the new C library. This shown me that 5 functions declared 347in the libsswf.h file were not implemented (and actually totally 348unused and not necessary!) So I removed those and for C 349programmers you have a working sample! 350 351I added an option on the configure command line to enable 352the building of the cpp-to-c tool (i.e. --enable-cpp-to-c) 353By default this is off since the tarball comes with 354pre-generated files which should be sufficient. 355 356I made the notes-to-html (and cpp-to-c as I was at it) 357non-installed tools since these are really only for the 358package and not for general install. 359 360Added the samples and misc directories to share/sswf 361under MinGW (binary package). 362 363Added proper support for the libraries to have a 364system version. We'll be at 1:0:0 for version 1.7.5. 365 366I moved a few more files around in the fink package. 367You shouldn't have to worry about that on your end. 368What has dramatically changed is the versioned name 369of the dynamic library. Yet, if you just link with 370"-lsswf" it will be totally transparent to you. 371 372Fixed the .dmg file for Mac users by: 373 3741. moved the documentation in 375 376 /usr/share/doc/sswf-<version>/... 377 3782. added the version/release to the libraries 379(test with: otool -L <lib>) 380 3813. added links for the libraries (that will be used 382by other packages too!) so you can have different 383versions installed 384 385Updated the SWFalexref.html reference to include 386version 8 and fix many things which had not been 387reviewed in a while. 388 389Updated the TagHeader to automatically save the 390required TagFileAttributes (i.e. whenever you 391save a movie version 8 or more that is.) Note that 392you cannot directly create such a tag, the TagHeader 393creates it automatically if you save a version 8 or 394better movie. 395 396Updated the TagHeader to catch unicity errors for 397the JPEGTables and Metadata tags. 398 399Fixed the TagImport so it properly saves a TagImport2 400in a movie version 8. This is important according to 401Macromedia. You cannot choose which tag to save. If 402your movie version is 7 or less, TagImport is used. 403When the version is 8 or more, TagImport2 is used. 404 405Added support in sswf to turn ON or OFF the use of 406the network in locally played movies. This is done 407either on the command line (-n, --use-network or 408--no-network) or in the main sequence 409(use_network = true | false). 410 411Since the addition of that use_network flag, I added 412that flag in all the samples which all want to have 413the flag set to true (none of my samples currently 414include a version 8 movie and thus you'd otherwise get 415a warning when compiling them.) 416 417 418 419 o Nov 3, 2005 (1.7.4) 420 421Added the __FILE__ and __LINE__ special keywords. 422These are transformed in the Lexer and thus are 423directly viewed as a String and an Integer for 424the rest of the compiler and assembler functions. 425 426Fixed the CheckFunctionWithParams() function which 427would force you to have a parameter for the rest 428(...) of a function. 429 430Fixed the documentation saying "pragma ..." in 431"use pragma ..." instead. 432 433Added the fink .info file to the list of packages 434so people can directly download it from SourceForge 435and thus they won't have to try to find it in fink 436(which can be a problem until the fink people put 437it up). 438 439Also, fixed the .info very much so it includes all 440the necessary documentations in all packages, created 441a -bin package, added the missing javascript libraries 442in the -shlib, moved the actual HTML and image files 443of the documentation in the right package. 444 445Added the missing EVENT_CONSTRUCT in the PlaceObject2 446event (V7 flag). Adjusted the code to test for that flag 447and mark the event as a V7 flag. 448 449Fixed an error in the error handling which wouldn't 450increase the error counter. 451 452Removed the "auto-import" feature for packages defined 453in the same program as some other code. 454 455Added a compile of the javascript packages which are 456imported. 457 458Fixed a Set() of the type of a function parameter so 459it doesn't happen twice (and in debug make sure the 460type doesn't change between calls.) 461 462Fixed the global .asc files so operators don't reference 463the same parameter name twice. 464 465Updated the SEQUENCE and Grammar in the ScriptSWF.html 466documentation. 467 468Added the FSCOMMAND2 action in SSWF. (no action script 469yet). It is described as a Flash Lite 1.1 action so 470it certainly won't work with version 7, but it should 471be included in version 8 of Flash. If you know anything 472about the parameters, let me know. Thank you. 473 474Fixed a bug in the PreSave() function of the PlaceObject 475which would use the wrong version as the minimum (it 476often would be equal to the largest version already). 477 478Added some support for the PLACEOBJECT3 tag. It supports 479blending mode and bitmap caching flag. Still missing are 480filters and parenting. 481 482Added extern "C" {} around the #include grammar.h which 483is supposed to be C only and not C++. cl didn't like it. 484 485Added the missing action script StrictMode in the library. 486 487Added some code to better support the Javascript compiler 488under Windows (i.e. it will use the path of the tool in 489order to compute the path to the different header files) 490 491Fixed the errors under Win32 since whether we compile 492with VC or MinGW, the snprintf() functions do not work 493like under Linux! (is this BSD behavior or just Win32?) 494 495Fixed the NSIS installer so: 496 497 . the source code and samples go at the right place; 498 . the new tools are included (jpg2swf, asc); 499 . the installation includes the version and thus you 500 will be able to install multiple versions (1.7.4+) 501 and uninstall the one you want; 502 . install in a sub-directory named after the version 503 so the installation directory between multiple 504 versions doesn't affect the result. 505 506Fixed the RPM so the HTML documentation goes in 507/usr/share/doc/sswf-<version>/html instead of 508/usr/share/sswf/doc/html (release 3) 509 510The Linux On Power system I use to compile SSWF has 511changed to 64 bits. I made small tweaks to the environment 512to be able to compile. Namely, I added an LDFLAGS 513environment variable as follow: 514 515 export LDFLAGS=-L/usr/lib64 516 517otherwise it couldn't link with the stdc++ and JPEG 518libraries (libtool would generate the wrong command line.) 519 520I also added a flag to the configure --enable-rpm-docs 521to avoid installing the documentations in share/sswf/html 522but instead I put them in share/doc/sswf-<VERSION>/html 523and that's done with the %doc rather than the Makefile. 524 525Fixed the RPM by adding the misc directory to the RPM and 526the missing 'script/*/*.asc' files. 527 528Fixed the IRIX tardist which did not include the scripts. 529Also, I added the missing .so libraries. 530 531 532 533 534 535 o May 11, 2005 (1.7.3) 536 537Updated the NOTES.txt to reflect the new tools, 538new distributions, etc. 539 540Added the action script library (libas) and the 541asc tool to test the parser, compiler and 542optimizer. And of course, documented the whole lot. 543 544Added a library which takes a tree parsed & compiled 545with the libas library and transform it to a list of 546actions as understood by the sswf library. 547 548Made the actionscript keyword in sswf work. Note that 549at this time, it can't be used along action objects. 550(i.e. you either write your script with action objects 551or an action script). For instance, you can do this: 552 553 Do Action { 554 Action Script "MyTest" { 555 var a = "Hello World!"; 556 my_sprite.text = a; 557 }; 558 }; 559 560Added a tool to create slideshows from JPEGs and 561Targa images with a simple command line. You can 562specify the background color, the rate of animation 563whether to play just once or loop forever and a 564few other things. This is mainly presented as a 565sample on how to use the library from your C++ 566application. Includes a manual page. 567 568Fixed several entries in the documentation about 569Flash version 7 (Especially the DeclareFunction2 570action). 571 572Fixed the configuration files so the project 573can really be created in a seperate directory 574from where you extracted the tarballs. 575 576Fixed the test of the identifier so we are sure 577they only include uppercase letters or 578underscores. 579 580Fixed the TagEditText which wouldn't properly 581transform your UTF-8 input string in Unicode. 582This meant it would try to use your UTF-8 583string as an ISO-8859-1. This fixes the use of 584accentuated letters in the default (initial) 585value in the TagEditText entry. 586 587Updated the amakefile to support the two new libraries. 588Note that for Mac OS/X, the dynamic versions are bound 589to version 10.3+. The static libraries can be used with 590version 10.1. 591 592Similarly, the 'usedstring' and 'usedglyphs' entries 593as defined in the 'edit text' construct in the SSWF 594language can include Unicode characters. 595 596Fixed a signed char bug in the ft2sswf tool. This 597would transform characters 0x80 to 0xFF in a signed 598value between 0xFF80 and 0xFFFF. 599 600Fixed the dosamakefile.cl so I can really use it to 601test whether the code compiles with cl (the Microsoft 602C/C++ compiler). It will NOT build executables, only 603object files. It is up to you to make the link work. 604All I offer is a seemingly working compile. 605 606As I was at it, I fixed a few problems with some code 607in sswf which wasn't compatible with cl. 608 609Fixed the \<value> in the ft2sswf tool which would 610improperly accept the digits 8 and 9. 611 612Fixed the <EMBED> tags: removed the ALIGN="LEFT" 613attribute which causes problems in the FireFox 614browser. 615 616(Finally) Added links to the sourceforge.net download 617area along the FTP links in the list of source and 618binary files on the website. 619 620Updated the configure script and different Makefile.am 621to include the new ActionScript library and compiler. 622 623Fixed the swf_dump tool so if there is garbage after 624the END action, it is presented and it continues on 625properly. 626 627Fixed some error messages in the compiler. 628 629Fixed the AddRegister() function of the PushData action 630so we can add registers of any number (0 to 255) as 631supported in version 7. 632 633Fixed the swf_dump tool so it doesn't say that a 634register number is invalid if larger than 4 and we 635are within a function 2 body. 636 637Added support for direct frame numbers in the ActionGoto 638using the ACTION_GOTO_FRAME type. Use SetFrameName() with 639a string of digits only (0-9) representing the frame number 640you want to jump back to (anything else will make it fail 641to find a frame number and it will be taken as a tag name 642instead, as it was before.) 643 644Fixed SUBTRACT in the swf_dump tool (was SUBSTRACT.) 645 646Fixed the swf_dump tool so it can dump DefineButton2 tags 647which have absolutly no conditions. Updated the documentation 648in link with that special case. 649 650Fixed the swf_dump tool so actions starting at an offset 651other than zero in a tag reflect that specific offset. 652 653Added support to keep around the dicrectory strings so 654later references to the directory can be accompagnied by 655the actual string being referenced. This helps a lot in 656a dump session. 657 658Added a statistics so I know how long the dotar script 659takes to regenerate the packages. It takes quite some 660time! (8 minutes for all the Linux modules) 661 662Fixed a bug saving a second END actions at the end 663if the user already put his own END action. 664 665Fixed the wctomb() function in the sswf library. It 666would take one too many bytes from the input for 667characters using 3 or more bytes. 668 669Removed the samples/trail directory since it only 670contained a copy of the samples/new-anim code. The 671day I actually program this movie, I will put it 672back in the tree. 673 674And all these other things I forgot to write down... 675 676 677 678 679 o Jan 12, 2005 (1.7.2) 680 681Fixed an endian bug which prevented our Mac OS/X 682users from including wave files in their Flash 683animations. 684 685Added a few command lines in the dotar script to 686create a Slackware package. Note that the very first 687version was created by: William McCormick 688(http://www.pimpinlinux.com), if you have any problem 689with that package, please, contact him directly. 690See the INSTALL-SLACKWARE.txt file for more info. 691 692Removed the build dependency to flex in the Mac OS/X 693info file. We are not using flex anymore. 694 695Fixed the sprite so it can now include a sound info 696(in sswf, the library was already working fine.) Thus 697you can now start a sound effect from a sprite. 698 699Added some support to load and incorporate an MP3 file 700in your Flash animations. Note that the input MP3 file 701needs to be valid for a Flash animation. This means you 702need the correct mode and bitrate. MPEG 1.0 and 2.0 703Layer 3 are supported. Mono or stereo with or without 704CRC checks. Special thanks to Steve Crook who once 705again help in this project. 706 707Fixed several bugs with the loading of a Wave file. 708Especially, the input file wasn't being closed if the 709loading was successful. 710 711Fixed several problems with 64bits systens. The use 712of long can be a problem in some cases. Special thanks 713to Adam Polkosnik for finding these problems and fixing 714them. 715 716Fixed the Makefile.am in src/lib and src/sswf so you 717can run the configure script in a different directory 718than the directory were you extracted the software. 719This is useful so you can try multiple configuration 720flags in different directories (but watch out in case 721you want to install them all... you will need varying 722prefixes) 723 724Added a line of code to prevent creating a text without 725a color. This seems to be a problem in some circonstances. 726 727Added command line options to show where input files are 728being searched. So one can now use --show-input-filenames 729to know what files are loaded as input and --show-input-search 730to see the different directories where the files are being 731searched. You can still use the -I option to add search 732paths to sswf. Updated the sswf manual pages accordingly. 733 734Made some small changes to the dotar script so it is more 735usable (At least for me 8-). The options can now be specified 736in any order. The use of the words "packages" and "modules" 737has been straighten out. 738 739Split the huge libsswf_tags.c++ in a set of files such as 740libsswf_tag_base.c++. This doesn't make much difference in 741the library, just in the development, it will be a bit easier 742to find things. Also, once I program the Load() function, it 743will grow separate files instead of growing the libsswf_tags.c++ 744file alone. 745 746Fixed the 'run' scripts for Unices so they (should) run from 747where they are being installed. At first they were created to 748run from withing the development environment using amake. Now, 749these should work on your system (RedHat, Debian, Slackware...) 750If you find out that it doesn't search in the right order or 751missed a directory from your system, please, let me know! 752 753Created a package for Linux on Power ppc64. 754 755Fixed a bug in the font for big endian machines. This would 756generate fonts which would crash the Macromedia player. 757 758 759 760 761 o Oct 05, 2004 (1.7.1) 762 763Fixed the Win32 link so it links with the static version 764of iconv as intended. 765 766Added a Win32 installer (a .exe file to run on your 767Windows box to install SSWF on your computer) 768 769Fixed the dotar so it can regenerate the Mac OS/X version 770properly (note also that you can't have SSWF already 771installed to re-gereneate the Mac OS/X modules). 772 773 774 o Oct 05, 2004 (1.7.0) 775 776Finally merged my work (since 2002!) so SSWF is fully 777Unicode compliant. Internally, the strings are managed 778as UTF-8. However, you now have the possibility to save 779a movie prior version 6 in any specified encoding and 780also the input files (the .sswf scripts) can be in 781pretty much any text format. 782 783Fixed the makefiles for the news-samples and the showfont 784so they run the commands using ./ in front of them instead 785of being as is. 786 787I enhanced the INSTALL*.txt documentation files. 788 789I fixed the rename_all script so it actually works (yeah... 790well... you know...) It uses \ instead of / and doesn't 791repeat the path in the 2nd part (it is a rename, not a 792move). And the result actually works. Note that I tried to 793compile the library with cl and it works also. 794 795The search for scripts is slightly different in that only 796ENOENT are accepted as an error to open a script. If any 797other error occurs, the search stops and an error is 798reported (thus files on an NFS network or read protected 799generate an error instead of being ignored). 800 801Changed the lexical to a C++ file (instead of flex) in order 802to handle any source format (UTF-8, UCS-2, UCS-4, etc.) 803Note that now an encoding must be specified in each .sswf 804file as in: 805 806 // encoding="utf-8" 807 808or 809 810 // encoding="iso_8859-9" 811 812Internally, all the characters are kept in UTF-8 until 813used by a font or some other such object and need to be 814converted to UCS-4. 815 816Changed the library to support UTF-8 when a V6.x movie is 817created. 818 819Added an output encoding (defaults to ISO_8859-1) which is 820used to convert strings when saving movies in V5.x or 821earlier. Note that if a string convertion fails, an error 822is reported. 823 824Enhanced the font support to include UCS-4 as the type for 825glyphs. The 16 higher bits are ignored when the final 826Flash movie is generated. At this time you should only us 827the first 65535 characters (0 is not allowed). Note that 828the use of 32 bits for characters ensures that the final 829file(s) can use any character as long as the player doesn't 830try to use an external font. 831 832I updated the README.txt file according to the many changes 833which occured in SSWF. 834 835Fixed the font character names which can now be normally 836specified with a single backslash as in "\x1ee" instead 837of the "\\x1ee". The old syntax is still supported. 838 839Fixed the font kerning information so two characters will 840properly be used (we use UCS-4 chars now). 841 842The TagFont accepts font names which starts with an 843underscore (_) as a direct font name and thus requests 844the final movie to be saved as a V6.x movie. Names 845such as _sans and _serif are direct names. You have 846several Western and Japanese names at this time. 847 848Fixed some error messages so these handle UCS-4 849characters on any system (at this time, we write ASCII 850or only the U+XXXX form). 851 852Added support for "\U+XXXX" in input strings. Note 853that to be conform it should only accept uppercase 854characters yet we do accept any case. 855 856Fixed the "\0???" which would add the character instead 857of the digit (forgot a <<... - '0'>>). 858 859For those who already downloaded a V1.7.0, this newer 860version includes a fix to the lexical. Commands such 861as: DO ACTION had to be written with a space with 862the first version. With this fix, like with the lex 863version, it can be written DOACTION as well. Note that 864there is one thing still unsupported: a keyword composed 865of more than 2 words need to either be written without 866any spaces or with all the necessary spaces. This means 867the following is acceptable: SET BACKGROUND COLOR 868and SETBACKGROUNDCOLOR; but the following won't work 869SETBACKGROUND COLOR and SET BACKGROUNDCOLOR. 870 871Made some fixes to the configure script (the JPEG 872library variable was improperly named when initialized.) 873Also added the required library iconv with the different 874"flavors" (i.e. whether it is iconv_open, libiconv_open 875and in -liconv or -lc). 876 877Fixed the Makefile.am in the src/lib directory which 878referenced the package version as is instead of as 879the macro: $(PACKAGE_VERSION). 880 881Added a Makefile.am in the doc directory so the HTML and 882Manual pages are automatically installed. Added a 883reference to the samples in the main Makefile.am so they 884too are automatically installed. 885 886Added the default include path to support Mac OS/X and 887the configure script under Linux too. Now the SSWF scripts 888will (by default) reside in /usr/local/share/sswf/script 889(NOTE: this is only if you use the configure script, 890the amakefile still installs in /usr/include/sswf/script) 891For Mac OS/X, it's in /sw/local/share/sswf/script. 892 893Renamed to darwin any reference to macosx and to ppc as 894powerpc. This is better since the Mac OS/X system is 895really called darwin and not macosx. 896 897Patched the libsswf.h to avoid declaring wint_t 898under Mac OS/X. I need to do something in the configure 899script instead... 900 901Made AMake work under Mac OS/X so as to allow a version 902not using fink (statically link SSWF). 903 904Added the auto-generation of a package on Mac OS/X 905within the dotar script. 906 907Added a distribution for IRIX (a .tardist file). This 908includes everything you need to run the software on a 909Silicon Graphics (binaries, man pages, documention 910and the source tarball). 911 912Added a doc/INSTALL-IRIX.txt file to explain quickly 913how to install the new tardist file for IRIX. 914 915Heavy changes to the dotar script to include all the 916changes, new packages, additional automation... The 917script is longer and has a command line now to avoid 918re-doing everything everytime (especially useful when 919debugging that script!). 920 921The MinGW modules automated generation (using the dotar 922script) now requires the pscp tool from putty: 923 924 http://www.chiark.greenend.org.uk/~sgtatham/putty/ 925 926and of course you need to properly setup your keys. 927 928Added the generation of the RPM binary package back in 929the dotar script. Note that since I was at it, I create 930a source RPM too. However, this doesn't include 931everything you can find in the -dev package. The binary 932package also includes all the documentation, samples and 933scripts. Since it is automatically created, I include 934the debuginfo package. 935 936Added a file doc/INSTALL-RPM.txt to explain quickly how 937to install an RPM package. 938 939Added a version & last modification date in the 940manual pages (sswf.1, swf_dump.1, ft2sswf.1). 941For this reason, it moved from doc/man/man1/* to 942dev/man/*. However, the dotar script will make a 943copy in doc/man/man1/* as appropriate with the 944current version of the package and the last 945modification date of the source file. 946 947Added HTML links in the HTML manual pages. 948 949Fixed the showfont sample so the Blue Highway can be 950diplayed and also the size of the fotinos is used 951as is (instead of 40 times to small.) 952 953Fixed a bug in the TagImport constructor found by 954Tom M. (the filename pointer wasn't initialized.) 955 956Fixed the sound effect resampling function (it however 957still isn't perfect at this time.) Fixed the signed 958and unsigned flag (i.e. WAVE files have unsigned 959bytes but signed shorts!) Fixed the documentation 960since we need to always save signed values in SWF 961files (opposed to what I wrote in the doc.!). 962 963Removed references to flex from the amakefile and 964the Makefile.am accordingly. The dosamakefile 965also doesn't use flex anymore and doesn't try to 966pack the sswf_lexical.c file either. 967 968Added the 'gray' colors (instead of just having 'grey') 969to the colors.sswf script coming with SSWF. 970 971Added the simple actions "THROW", "CAST OBJECT", 972"IMPLEMENTS" and "EXTENDS". 973 974Added the ScriptLimits and SetTabIndex tags. 975 976Added the TAB_INDEX label for the PLACE OBJECT tag 977so one can setup the tab index at the same time an 978object is inserted (instead of two steps). That's 979in SSWF only, not in the library and two tags will 980be generated anyway. 981 982Added the complex actions "TRY", "CATCH" and 983"FINALLY". Also implemented the new "FUNCTION2". 984In SSWF scripts, the FUNCTION accepts parameters with 985a new syntax to tell what to ignore, pre-define and 986whether to use registers or not. 987 988Added documentation about all of the new tags and 989actions (TagScriptLimits, TagSetTabIndex, THROW, 990CAST OBJECT, IMPLEMENTS, EXTENDS, TRY, CATCH, 991FINALLY and FUNCTION2). 992 993Added support for the automatic maximum_version 994check within the SSWF compiler. The main sequence 995can include a variable named "maximum[_]version" 996which you set to the maximum version the output 997movie should be. If some tag(s) force the movie to 998be of a higher version, then the creation of the 999movie fails. 1000 1001Added support for the minimum and maximum operators 1002as in g++ (<? and >? respectively). 1003 1004Updated the sswf.vim file so all the new tags and 1005variables are recognized properly. 1006 1007Fixed and enhanced different documents. 1008 1009Fixed a memory leak in the ActionFunction::AddParameter() 1010which wouldn't record the parameters in the memory 1011manager. 1012 1013Fixed a memory leak in the ActionDictionary::AddString() 1014function which wouldn't record the string_t in the 1015memory manager. 1016 1017Fixed the ActionGoto::Duplicate() which wouldn't copy 1018the play flag. 1019 1020Fixed the [dos]amakefile so the lexical and grammar are recompiled 1021whenever the header files they include change. 1022 1023 1024 1025 o Oct 15, 2004 (1.6.3) 1026 1027Ooops... This didn't make it in the package, but that's 1028on the website and part of the release notes. 1029 1030The version 1.6.3 got the different fixes made to 1.7.0 1031in order to support many more sound effects. That means 1032if your sound effect is in 8 or 16 bits and in 8Khz or 1033some other sampling speed, SSWF will properly resample 1034without asserting. 1035 1036 1037 o Jul 16, 2004 (1.6.2) 1038 1039Added a tutorial written by Ray Gardener. You can view 1040the tutorial at the time the SSWF package was created 1041in the doc/html/tutorial directory. You can also see 1042it online either on the SSWF website or at: 1043 1044http://www.daylongraphics.com/other/sswf/ 1045 1046Added an index.html in the doc/html directory. This 1047allows you to browse all the documents from a common 1048place. 1049 1050Fixed the dotar so the .pdf files are included in the 1051MinGW documentation packages. 1052 1053Added control over the SKEW of the matrices. Skewing can 1054help in getting interesting effects such as italic text 1055from a regular font. Use with caution. I suggest you avoid 1056using the rotation at the same time. Note that a very small 1057amount is enough to get a strong effect (i.e. italic will 1058be already good using a skew: -0.3, 0.0;.) 1059 1060Worked on the MorphShape. Fixed swf_dump so it prints out 1061a DefineMorphShape tag properly. Worked on sswf and the 1062library so it accepts a shape definition with a shape0 1063and a shape1 (i.e. morph mode 0, 1 or 2.) It works with 1064solid fills and lines. At this time, I didn't check 1065the gradients and bitmaps. It's likely that it will 1066work too. 1067 1068Added the fill modes HARD-EDGE TILLED and HARD-EDGE CLIPPED 1069so you can draw images with a sharp edge (Flash V7). 1070This can be useful for well finished images. 1071 1072Added the new info in the different documents. 1073 1074Fixed a bug in swf_dump which would give the offset of 1075tags at -8 bytes. 1076 1077Moved the generation of the HTML versions of the different 1078manuals in the dotar script since it is included in the 1079documentation and the web page is supposed to be sent 1080AFTER the dotar script runs. 1081 1082Moved the generation of packages on the other systems 1083before the creation of the Linux packages because some 1084of the files are used in the dev/src tar balls (and 1085who knows where later!) 1086 1087Created the USA flag in include/sswf/scripts/flags.sswf 1088 1089Added the sun-flower sample. Added the sample to the 1090amakefile. 1091 1092Many fixes to the dotar script. 1093 1094Fix in the ActionBranch::Duplicate() function which 1095would not duplicate the type of action and thus you'd 1096always end up with a "branch always". 1097 1098Changed the SWFalexref.html so the explainations about 1099how to transform the coordinates in SWF is explained 1100in Appendix A instead of a full chapter. 1101 1102Fix in the sendweb so the <OBJECT> tag is now closed 1103(otherwise it doesn't work well in Internet Explorer.) 1104 1105Fixed the table of file to download from the FTP site 1106so it creates one real row per file. This way it works 1107properly under Internet Explorer and also it will still 1108work if the user shrinks his browsers to insanely small 1109widths (like 640x440...). 1110 1111Fixed the action script keyword substract into the 1112proper term: subtract. 1113 1114Added the action script keyword "constant pool" as 1115an equivalent to "dictionary". 1116 1117Fixed the node_link_parent() function so it accepts 1118a null pointer as a child (this would otherwise 1119prevent you from having a conditional without 1120an else { ... } part; so now if(condition) { ... } 1121by itself works). This was a problem only in the 1122debug version. 1123 1124 1125Thanks to Jacek Naglak for the following: 1126 1127Fixed the order of compiling SSWF, the grammar & lexical 1128are now generated first. 1129 1130Added two command line options (--enable-[yy]debug) to 1131the configure script so one can turn the debug flags off. 1132 1133Fixed the sswf source files so it can be compiled without 1134the debug flags turned on. 1135 1136 1137 1138 o Jul 09, 2004 (1.6.1) 1139 1140Added the configure.ac and Makefile.am files (by Jacek Naglak). 1141 1142Made many fixes to the amakefile script. Also fixed 1143the dosamakefile to re-compile under MS-Windows. 1144 1145Added the dotar script and fixed it so it works 1146with the new setup (tree architecture & three 1147architectures auto-recompile!). It generates a 1148total of 36 modules, not including the 4 1149intermediate. 1150 1151Added the sendall script. 1152 1153Fixed many documents to reflect most of the changes. I'm 1154sure I'm still behind on many of them. 1155 1156 1157 1158 o Feb 03, 2004 (1.6.0) 1159 1160Restructured the package so it uses sub-directories 1161to sort all the sources, includes, docs, etc. better. 1162 1163Fixed a few things in regard to empty glyphs in 1164the ft2sswf tool. 1165 1166Fixed the layout in the ft2sswf tool. I didn't know 1167that the box had to be resized to 1024 (TrueType fonts 1168would be slightly too small and TrueFonts would be 1169misplaced). 1170 1171Fixed the amakefile so it works with the new directory 1172structure. As you will see, there is just one makefile 1173script for AMake. 1174 1175Fixed the -ll flag to -lfl so it works as is on Debian 1176distributions. It is the default rule to use Flex on 1177a Linux system. 1178 1179Added the necessary code for SSWF to accept JPEG as 1180input files. So now SSWF supports Targa and JPEG. 1181 1182 1183 1184 o Nov 10, 2003 (1.5.1) 1185 1186I fixed two error messages in sswf_node.c so when 1187you use the wrong label for an object or the wrong 1188type for a label, you know what label & object. 1189 1190I fixed a bug in saving an image. When using the 1191Best Lossless option, the 16 bits would be choosen 1192each time if the very first pixel was acceptable 1193in 16 bits. Now all the pixels are really tested. 1194 1195I added an error in case a sound file can't be 1196loaded. I still need to add a good message so 1197we know why it failed (can't read file, unknown 1198format, etc.) 1199 1200Fixed several crashing bugs (in link with the memory 1201leaks fixes). 1202 1203Added a sound effect (my voice!) to the SSWF 1204animation sample. This shows a working example 1205of the sound support by SSWF. 1206 1207Fixed several casting in the ft2sswf.c file. I 1208think I had casted the characters to (char) for 1209a good reason, but now these are casted to (wchar_t). 1210If you encounter problems with these, let me know 1211and I will try to understand what the problem was. 1212(it could be that some fonts I tried with were 1213broken too!) 1214 1215In ft2sswf.c I also changed the %lc into a %s with 1216a wctomb() call before to transform the wchar_t 1217in a multibyte sequence. This should compile on 1218more systems. 1219 1220Fixed the GNUmakefile so the sswf tool is linked 1221using g++ instead of gcc. This works better since 1222the sswf source is in C++ and also the library 1223is full of C++ objects. 1224 1225Added the showfont sample (in 1.5.0 it wasn't 1226functional at all). This only works with the 1227fotinos font at this time. But it helped me 1228make the fotinos font ANSI (all chars from 1229the space to delete are now available, and 1230nearly all letters in the 2nd part of the 1231ISO-8859-1). 1232 1233Fixed a few things for the MacOS/X version 1234which is included in this version. Note that 1235the ft2sswf tool will be available in the 1236Fink version. I didn't get the binary to 1237put here (at least not yet). However, if you 1238know how to compile, you should be able to 1239regenerate it without too much trouble. 1240 1241I think that's about it in this version... 1242 1243I hope MP3 will make it in the year 2004 as 1244will the internationalization. 1245 1246 1247 1248 1249 o Oct 16, 2003 (1.5.0) 1250 1251Long time since I worked on the sswf project! 1252 1253I have fixed a lot of problems with the allocation 1254of nodes so they will properly get released once 1255the application quits (well, in memory debug mode 1256that is, otherwise I don't waste any time). It 1257will even release the all_objects and the 1258include_paths nodes. 1259 1260The result nodes in sswf.c++ are also properly 1261cleaned up. This will release the largest block 1262of memory allocated. 1263 1264The data objects where allocated at different places 1265in the sswf_node.c++ file. I now have a single 1266function which will properly initialize the label 1267and node fields which wasn't done each time before. 1268 1269SSWF supports two new tags: DefineSound and StartSound. 1270These are defined as the named block "sound" and the 1271block "sound info" referencing a "sound" block. 1272The only sound file format supported at this time is 1273uncompressed WAVE (usually a .wav extension). It can 1274be in 8 or 16 bits, stereo or mono. I don't support 1275any compression in this version, however, I support 1276the DefineSound v2.x and v4.x (specified endian). 1277 1278The MinGW version will automatically generate the 1279scroller sample. 1280 1281The MinGW/MS-Windows has what I'd rather call a hack 1282it will use LITTLE_ENDIAN whatever the system you're 1283using. This will eventually change later, in any 1284event, if you have a MS-Windows running under a 1285big endian processor, edit the libsswf-config.h 1286and change the endianess there. 1287 1288The MinGW is properly tested and thus the cbrt() 1289was removed only on that system (yes! so far it 1290was mistakingly removed from all systems). 1291The fix may have some other (positive?) effects 1292on the entire software. 1293 1294 1295 1296 1297 o Dec 4, 2002 (1.4.4) 1298 1299Fixed the Export tag so Fonts are saved as if used 1300by a "text edit". This is important since we can't 1301know how the font will be used before all the other 1302movies are created. 1303 1304The Export tag now checks the validity of the identifier 1305and that the referenced objects are definitions (fonts, 1306shapes, texts, buttons, sprites, etc.) 1307 1308The "import" object in sswf properly exposes the names 1309declared within. This means you can now have references 1310to imported objects. In order to strengthen the use of 1311imported objects, the type of the objects can be specified. 1312At this time, the only limit is a reference from a "text" 1313object to an imported "font". It won't work because the 1314"text" object needs to know the width of each character 1315in order to generate a correct text layout. I will do 1316that later. Note that the "edit text" is certainly likely 1317bugus. I will check that later to make sure it also works 1318properly. 1319 1320The + and & operators where enhanced in order to accept 1321a string + integer entry in which case the integer is 1322transformed in a string before to be concatenated. 1323This is similar to: strf("%s%d", string, integer). 1324If you need to convert an integer in a string you can 1325use: "" + <integer>. 1326 1327Error messages were enhanced in some places. The number 1328of error was also increased. 1329 1330Dynamically named objects defined as the last part of 1331a field ('c' in a.b.c) can now be specified as part 1332of a field. The following shows an example: 1333 1334 ... 1335 list "test" { 1336 label { "my_sprite" + number }; 1337 sprite { 1338 ... 1339 }; 1340 }; 1341 ... 1342 list "use_test" { number = 3; test }; 1343 ... 1344 place object { 1345 id: test.my_sprite3; 1346 depth: 1; 1347 }; 1348 ... 1349 1350In earlier versions, the sprite was seen as an unamed 1351object. Note that only the very last level can be 1352dynamic in this way. Others will currently fail. This 1353will hopefully change in the future. 1354 1355Each object now has to have a TypeFlags() which gives 1356a set of flags typing the tag. You can then test these 1357flags as required (DEFINE, CONTROL, UNIQUE, START, 1358SPRITE, SCRIPT, HEADER, HAS_ID). 1359 1360The TagRemove has a PreSave() so it properly sets a 1361minimum version of 3 when it is used without an 1362object identifier (only a depth). 1363 1364The TagHeader has a DefineMinimumVersion() function. 1365This can be used before to call the Save() function 1366in order to (1) determine the minimum version and 1367(2) ensures everything can be saved as defined. 1368 1369swf_dump now knows how to dump a compressed v6.x 1370movie. 1371 1372swf_dump can dump all the sound tags (DefineSound, 1373StartSound, StreamSoundHead[2], StreamBlock, 1374DefineButtonSound). 1375 1376swf_dump had a new bug and couldn't properly dump 1377a DefineFont2. This was fixed. 1378 1379The SWF Alex's Reference documentation includes the 1380different sound tags (DefineSound, StartSound, 1381StreamSoundHead[2] and StreamSoundBlock.) 1382 1383The documentations include the DefineButton2 1384definitions. 1385 1386The documentations include the DefineButtonSound 1387definitions. 1388 1389The "remove" command wouldn't accept "edit text" 1390objects. 1391 1392 1393 1394 1395 1396 1397 o Nov 24, 2002 (1.4.3) 1398 1399The sswf manual page was updated to include the 1400-c/--[un]compress and --[un]protect flags. 1401 1402Ensured that the MinimumVersion() function was 1403never called but in PreSave() and PreSave2ndPass(). 1404Thus we know what version we save as when we 1405reach the Save() function. This is very important 1406for v6.x movies which save all the strings in 1407Unicode UTF-8 (not fully done yet). 1408 1409Added a PreSave2ndPass() in order to compute 1410the fonts (which can change the version in the 14112nd pass). 1412 1413If the version changes from before v6.x to 1414v6.x or more, all the PreSave() functions 1415are called again. At this time it can't happen. 1416 1417Fixed the fonts very much so it will properly 1418save a DefineFont + DefineFontInfo[2] instead 1419of a DefineFont2 whenever possible. 1420 1421The new algorithm to save a font was very much 1422simplified: 1423 14241. if the font is used by a DefineEditText 1425 or is too large to fit in a DefineFont 1426 (i.e. when 32bits offsets are required) 1427 then save a complete DefineFont2 1428 14292. if the font is not used by a DefineEditText 1430 and can use 16bits offsets 1431 1432 2a. if the font doesn't include a name, only 1433 save a DefineFont 1434 1435 2b. if the font includes a name 1436 1437 2b1. if the font includes a language forces 1438 a v6.x movie 1439 1440 2b2. if we are saving a v6.x movie, save 1441 a DefineFontInfo2, otherwise use a 1442 DefineFontInfo 1443 1444 1445You can specify the language for the font as 1446defined in v6.x (locale, latin, japanese, 1447korean and simplified or traditional chinese) 1448 1449Ensures that the font glyphs are ordered. 1450(they have to be in maps!) 1451 1452Added an rnd() function which returns a 1453random value from 0 to 1.0 included. 1454 1455The TagFont had a Name() function which was 1456renamed FontName() so the TagBase::Name() 1457function wouldn't be hidden. 1458 1459Added the v6.x compression in the library. 1460You simply set the compression flag with a 1461call to your TagHeader::SetCompress() function. 1462With SSWF you can either use the -c or --compress 1463option or define a 'compress = true' flag like 1464you would set the frame_rate value. 1465I put an example in the new-anim. Change the 1466'false' to 'true' if you wish to get a compressed 1467version of that animation (I will keep it 1468uncompressed so only Flash V5 is required to 1469look at the SSWF web page at this time...). 1470 1471VERSION variable properly set in GNUmakefile. 1472 1473Made many fixes and additions to the SWFalexref.html 1474file to reflect all the additions. 1475 1476The ScriptSWF.html was heavilly modified to include 1477all the newest insertions so it looks closer to 1478what the tool really offers. 1479 1480The grammar.c and lexical.c were overwritten in 1481the VC/sswf sub-directory with the Linux versions 1482(which thus made them uncompilable under 1483Visual C/C++). I now keep the MinGW versions which 1484will compile properly. 1485 1486swf_dump understands the DefineFontInfo2 and the 1487language field in the DefineFont2. Also, something 1488which was in one of my versions, but didn't make 1489it in v1.4.2, it can dump the PlaceObjet2 and 1490DefineButton2 tags. 1491 1492 1493 1494 o Oct 30, 2002 (1.4.2) 1495 1496The .zip versions are now properly handled - i.e. 1497the files which are excluded from the .tar files 1498are also excluded from the .zip and the MinGW 1499versions won't have the extra sswf-<version> 1500in the path. 1501 1502The IRIX version is greatly debugged. This version 1503won't crash as easilly as the previous once. I 1504fixed one endian problem as I was at it. There may 1505be a few more. The New, Dynamic Button and SSWF 1506animations (as seen on the web page) can all be 1507created with this version under IRIX. 1508 1509All the data is now 8 bytes aligned (sizeof(double) 1510to be precise). It may be slightly faster, even on 1511Intel processors, since all the data will now be 1512properly aligned. This was a major change and it may 1513cause some other problems. Let me know if you have 1514new problems arising in this version which you 1515didn't have in the previous ones. 1516 1517 1518 1519 1520 o Oct 30, 2002 (1.4.1) 1521 1522The sswf.vim had its minlines synchronization set 1523to 150 so most comments should appear blue (or 1524whatever color you selected). 1525 1526Fixed the code in the sswf_save.c++ search for 1527action name as this one would eventually not 1528find the given action(s) (especially: "substring"). 1529This is because a binary search was used but 1530because of the "." within names, the order is 1531not really 100% correct for all entries. 1532 1533Added the String object definitions in the 1534Alexis' SWF reference of which each method 1535was tested so as to be able to give a full 1536description of each of them. 1537 1538Changed the "can't execute expression" error so 1539that way it prints that as an ERROR instead of 1540an INTERNAL ERROR and prints the line # and 1541filename. 1542 1543The button.sswf sample was ameliorated so the 1544background color of the button can be changed 1545to any color from within the HTML files (the 1546button and its source are already available on 1547SSWF web site: http://sswf.sourceforge.net). 1548 1549Fixed the SHOWFRAME count label so it doesn't 1550need to be specified (that's back to normal 1551actually! sorry about that...) 1552 1553Added SHELL:=/bin/sh in the amakefile. 1554 1555Fixed the font horizontal offset so each character 1556advance value is properly taken in account. 1557 1558A version of the source will be available for 1559people running IRIX 6.5. You will need bison 1560v1.25, gcc/g++ v3.0.4, freetype v2.1.x and 1561amake v2.10.11 or v2.10.12. Note that the 1562freetype library v2.1.x isn't currently 1563available as a distribution from SGI. You 1564will have to compile and install it properly 1565yourself! Now, that's a great library 1566everyone should have. 1567 1568A Label() function was added to the TagBase object 1569so now you can get the name of the object (as 1570defined in sswf) from anywhere. Watch out, the 1571Name() function returns the actual type of the 1572object (name of the tag such as "edit" or 1573"button"). 1574 1575Fixed a (really bad) bug to do with arrays of 1576objects. Under Linux, You need to use the 1577delete [] ... on C++ objects which are derived 1578from multiple classes. It caused a lot of problems 1579with my memory manager. I fixed the handling of the 1580font_info_t and edge_t which both are now plain 1581structures. The font_info_t is allocated with 1582MemAlloc(). The edge_t arrays are defined in 1583a structure allowing the MemBuffer (derived in 1584the ItemBase) to be allocated once instead of 158564! (even just for my well being, that's a 1586great improvement, think about it! 256 less 1587bytes per duplication of arrays and each Edges 1588object). 1589 1590I discovered another bug in AMake. You will need 1591the v2.10.13 to test the samples/check_version. 1592Well, that's if you want to use amake to test 1593that sample... (or if you wish to create the 1594samples with 'make samples'). 1595 1596Added a 'samples' rule in the amakefile so samples 1597can be created with a simple: 'make samples'. This 1598is only for Unix systems and is primarily used to 1599ensure everything works before I ship it to 1600SourceForge. 1601 1602 1603 1604 1605 1606 1607 o Oct 30, 2002 (1.4.0) 1608 1609Added the necessary directory tree and project 1610files to create the SSWF tools and library with 1611VC++ v6.x. 1612 1613Added support for the PushData #9 - access to 1614directory entries larger than 255. 1615 1616Added support for the PushData #4 - read register. 1617 1618Added support for the DoInitAction tag for V6.x 1619compatible movies. You simply have to define a 1620sprite identifier in a regular "do action { ... }" 1621declaration. 1622 1623Added support for the InstanceOf action. 1624 1625Added support for the Import and Export tags. 1626However, at this time, the import doesn't work 1627(I still need to transform the names in the list 1628of imported entries in "real objects" which can 1629be re-used in later.) 1630 1631Added the ProtectDebug[2] in swf_dump (called 1632EnableDebugger[2] by Macromedia) and the library 1633but not in the sswf tool (rather useless anyway!) 1634 1635Added support for the frame label so you can create 1636anchors (V6.x). 1637 1638Added support for the HTML and AUTOSIZE flags 1639in the EditText tag. 1640 1641Fixed a bug where the backward branches in an 1642action script wouldn't work unless they were 1643at least -256 bytes. 1644 1645Fixed a memory bug which could have deleted the 1646same objects multiple times. 1647 1648Fixed the Duplicate() function for the PushData 1649action script. 1650 1651Fixed the PushData ROOT into UNDEFINED. 1652 1653Fixed the makefile so the -config/version.h 1654changes are taken in consideration. Also the 1655sswf.h includes the libsswf.h 1656 1657Added a makefile.install in each of the lib, 1658bin and doc packages so you don't need to get 1659the source to install them. 1660 1661Noticed that the sswf.vim file (to use with 1662gvim) wasn't included. It will now be part of 1663the binary and source tar balls (and the RPM). 1664 1665Added .rpm packages for the library, binaries 1666and documentation for RedHat (and other 1667flavors) lovers. NOTE: this is my first 1668attempt. Just be careful! 8-) 1669 1670Now buttons also accept an Edit Text object 1671(which is right!). Fixed the documents 1672accordingly. 1673 1674Fixed the Alexis' SWF Reference to make sure 1675that I mentioned the fact that the button hit 1676areas must be shapes and nothing else. 1677 1678The Edit Text document wrongly spelled out 1679OUTLINES (plurial) whereas the software 1680accepted only the singular. Now the software 1681accepts both and the document says: OUTLINE[S]. 1682 1683Added the Dynamic Button sample (also used on 1684the web page as the "Download Now" button). 1685 1686 1687 1688 o Oct 24, 2002 (1.3.5) 1689 1690Added an install target in the amakefile so the 1691targets, docs and manuals can automatically 1692installed on your system with '[a]make install'. 1693The root path can be changed in the makefiles. 1694 1695The GNUmakefile was fixed a bit. The install target 1696was added and my management targets removed. You can 1697find these in the amakefile. If you wish to use them 1698you'll probably need to get amake or ensure they 1699work in the GNUmakefile. It just is too difficult 1700to maintain these in two places especially since I 1701should be the only one using them for a while. 1702 1703Added a set of default include paths and also the 1704-I option on the command line. The scripts will 1705be installed in /usr/include/sswf/scripts by 1706default which is one of the include paths 1707automatically searched. The sswf manual page was 1708updated accordingly. 1709 1710Fixed a char into unsigned char in two places to 1711handle strings of text properly. 1712 1713Parsing errors (called YACC ERROR) now display 1714the filename where the error is found. 1715 1716Added scripts drawing flags. (Belgium, England, 1717Italic, France...) 1718 1719The ft2sswf tool now skips empty characters 1720altogether by default (use -n1 to revert to 1721getting all glyphs including empty ones). 1722Added the info in the corresponding man page. 1723 1724The memory management of the SSWF library was 1725fixed in several places. Note that tags can't 1726be attached to anything or an error will 1727result. These objects are automatically managed 1728by their parent and thus don't require to be 1729attached to any memory manager. 1730 1731The font is now automatically reduced to declare 1732as few glyphs as possible. This is particuliarly 1733useful if you use only of very few characters of 1734a very large font. Note that if you use an 1735EditText (also called a DefineFontField by 1736Macromedia) with the Outline flag set to true, 1737then the default is to include the entire font. 1738Use the Used_String: or Used_Glyphs: entries 1739to reduce the set to whatever characters you will 1740use. One of my movies went from about 24Kb to less 1741than 3Kb with this new feature! 1742 1743 1744 1745 1746 o Oct 23, 2002 (1.3.4) 1747 1748Forgot to mention (I'm not sure since which version) 1749there is also a Blue Highway Condensed font available 1750by default in the archives. This is a complete font 1751with a very high and good definition you can use 1752to draw anything you'd like (it's defined as a Unicode 1753font and generates a 38Kb .swf file if you keep all 1754the glyphs - you may want to copy it and delete all 1755the glyphs you will never use!). 1756 1757The lists get merged properly. Thus, you can link 1758multiple fonts in the same movie: 1759 1760 sswf.fnt.fotinos.insert; 1761 sswf.fnt.blue.insert; 1762 1763Releases prior v1.3.4 would get confused because 1764the lists would link the 2nd instance at sswf.<...> 1765instead of sswf.fnt.<...>. Obviously this works 1766with any number of lists named the same way. 1767 1768Changed the modules so there are two binaries, one 1769including the tools and one the libraries. 1770 1771When two different objects use the same name, then 1772their full names are now printed in the error 1773message. 1774 1775The swf_dump and ft2sswf have manual pages too. 1776The sswf manual page was fixed a little. 1777 1778 1779 o Oct 22, 2002 (1.3.3) 1780 1781Changed the code so it compiles under RedHat v7.1 1782and MinGW. 1783 1784Changed the modularisation of the packages so one 1785can only download a binary or the docs instead of 1786the whole thing at once. 1787 1788 1789 o Oct 18, 2002 (1.3.2) 1790 1791Reverted some code so it compiles properly the 1792sswf_node.c file. 1793 1794 1795 o Oct 18, 2002 (1.3.1) 1796 1797Ameliorated the errors somewhat. It still has to 1798be enhance much though. 1799 1800A GNUmakefile was created so people who don't 1801want amake can still work with SSWF. 1802 1803The amakefile was changed slightly so the compile 1804would work first time instead of after two calls 1805to amake. Also the .MAIN were removed so the other 1806targets such as clobber, clean, rmtargets can 1807be used properly. 1808 1809The ft2sswf missed the License info in v1.3.0 1810This was fixed. 1811 1812The sswf was missing the full License and had only 1813a small Copyright. This was fixed. 1814 1815The README.txt was made a bit more up to date so 1816all the files are included. 1817 1818The script/test.sswf was removed as this isn't 1819anything useful at this time. 1820 1821 1822 1823 1824 1825 o Oct 9, 2002 (1.3.0) 1826 1827The default output changed from result.swf 1828to a.swf to be in accordance with the C 1829compiler (which generates a.out by default). 1830 1831Created the ft_to_sswf tool which transform 1832fonts (.ttf, .pfa, .pfb and many more) in a 1833.sswf script file that you can directly reuse 1834with the sswf tool. 1835 1836Added the missing code so the font TYPE label 1837in SSWF is taken in account. 1838 1839Changed the code so fonts V3.x save an array 1840of offsets including a size. 1841 1842Added \X?? support (only \x was accepted before). 1843 1844Added unicode entries in fonts (with the use 1845of \\[xX]<value> in the strings.) 1846 1847Started a set of man pages for the shell tools. 1848You can already type 1849 1850 man -M doc/man sswf 1851 1852to see the sswf manual pages. 1853 1854 1855 1856 o Oct 9, 2002 (1.2.1) 1857 1858Fixed a problem with labels (if more than one 1859SetLabel() was done on an object, the memory of 1860the previous strings would be lost until the 1861object was deleted). 1862 1863Cleaned up the sswf_node.c from the out of memory 1864errors since these are all checked in the 1865sswf_memory.c file. 1866 1867Added support for the GET URL2 action. This uses 1868the Action "URL" without any parameter or only 1869one: GET, POST or NOVAR[IABLE]. 1870 1871Fixed a bug with the f_min_version which could 1872be set to a negative value (thus a movie version 1873could be saved with as -4 instead of 4). This 1874was in link with actions. 1875 1876Added support for the (useless?) STORE REGISTER 1877action (is this for debug purposes only?). This 1878was the last V5.x action not yet available. 1879 1880Fixed a bug with the dumping of functions (the size 1881given to the end user was improperly computed). 1882 1883 1884 1885 1886 o Oct 8, 2002 (1.2.0) 1887 1888Added support for the DECLARE DICTIONARY action 1889(Action "dictionary" { strings... };). 1890 1891Added support for the CALL FRAME action. Note 1892that it is a special tag as it is necessary to 1893have a size though there isn't any data. 1894 1895Added support for all the actions in the swf_dump 1896tool. 1897 1898Added support for the DEFINE INFO tag (assumed 1899format from other .swf files...) in both the 1900swf_dump and sswf tools. Later removed from the 1901sswf tool since it otherwise makes it fail to 1902run the movie (I probably need more info about 1903this tag...). 1904 1905Added some tests to ensure proper memory allocations 1906(i.e. some new calls weren't checked for possibly 1907returning zero). 1908 1909Added a version within the files using a specific 1910version include: libsswf-version.h. This include 1911file is also used by other tools such as the 1912swf_dump tool. This enabled me to add a --version 1913on the sswf and swf_dump command lines. Also the 1914library has now an sswf_version() function call 1915which returns the version string also (useful to 1916use .so library though I still have many inlines 1917which should most probably disappear to have a 1918correct .so library!). 1919 1920 1921 1922 o Oct 4, 2002 (1.1.1) 1923 1924Added support so one can define variables on the 1925command line with -D<varname>=<value> 1926 1927 1928 1929 o Oct 3, 2002 (1.1.0) 1930 1931Completed the integration of the "edit text" tag 1932(DefineTextField). 1933 1934Added the function fabs(). 1935 1936NOTE: at this time the library always forces the 1937 'outline' flag to zero since setting it to 1938 1 makes the macromedia plugins crash. 1939 1940 1941 1942 o Sept. 30, 2002 1943 1944Publication of the lirarby & tools on the internet. 1945 1946