Here comes a brief update on the current progress in the development of FBSL v3.5.
A new Compression layer has been fully implemented in FBSL v3.5. It enables the user to:
1. Compress and decompress user data buffers using an advanced Deflate algorithm with a compression ratio varying within 0 .. 9.
2. Write and read natively standard .ZIP archives using the Deflate algorithm which amounts to approx. 95% of all zipped data usable under MS Windows. The archives can contain both distinct files and folders and are 100% compatible with the existing multi-purpose archivers such as WinZip, WinRar, 7-zip and many others.
3. Write and load .PNG images natively and independently of image codecs available on the user PC.
4. Compress and decompress user data buffers using the most advanced LZMA algorithm with a compression ratio varying within 0 .. 9. LZMA compresses data up to 40% better than Deflate at comparable compression/decompression speeds.
5. Write and read natively standard .LZMA archives readable also with the free and open source 7-zip archiver.
6. Read natively standard .7Z archives with data compressed using LZMA and LZMA2 algorithms with and without BCJ and BCJ2 filters. This amounts to 99.99% of all .7Z archives usable under MS Windows.
As a side effect of FBSL's new LZMA functionality, it now uses LZMA to compress/decompress its own scripts embedded in user generated executables. Of course, FBSL also preserves backward compatibility with Lzo- and Zip-compressed script stubs embedded in executables which were compiled under v3.4.10 and v3.5 Alpha .. RC2 builds, respectively.
A new Resources layer is under construction now. Yes, FBSL is going to have its own resource functionality modeled after VB6. The compilation process will include a Compile Resources stage whereby the user will be allowed to add arbitrary image, string and user data resources to the executable.
The resources precompiled into the executable will be accessible at run time from within the script via LoadResImage(), LoadResString(), and LoadResData() function calls.
I have a lot of code developed and accumulated over the years concerning image handling and processing. I can be completely independent of image codecs installed in the system or of 3rd party libraries and still be able to load and save a lot of image formats quickly and efficiently. So I'm on the verge of adding a completely new Image layer to FBSL v3.5.
I'm planning to enrich the existing FbslLoadImage()/FbslSaveImage() functionality with comprehensive and automatically format-aware support of such widely used image formats as BMP, JPEG, GIF, TIFF, PNG and TGA with bit depths in the range of 1 to 48 bits per pixel and with color and alpha transparency where applicable. I am also planning to add read-only support of more obscure but still very useful image formats such as PNM (PPM/PGM/PBM portable maps), DDS (MS DirectDraw surfaces), PSD (Photoshop images including duotone), and HDR (HDRI/RGBA high dynamic range images).
This is going to make FBSL completely MS-platform independent, consistent, and exceptionally rich image-wise compared to ordinary general purpose scripting languages.
"Я старый солдат, мадам, и не знаю слов любви."
"I am an old soldier, ma'am, and I don't know the words of love."
"Je suis un vieux soldat, madame, et je ne connais pas les mots d'amour."
"Ich bin ein alter Soldat, gnädige Frau, und ich weiß nicht die Worte der Liebe."
(3.2GHz i5 Core Quad, 8GB RAM / 2 x nVidia GTX 550Ti SLI-bridged, 2GB VRAM)
(x86 Win XP Pro Russian Sp3/x86 Win Vista Ultimate Sp2/x64 Win 7 Ultimate Sp1/Wine in x64 elementaryOS Luna)