Ramblings...
- Posted by David Cuny <dcuny at LANSET.COM> May 11, 1999
- 524 views
Just a few thoughts... [Llama Status] I'll try to post the latest version of Llama some time this week. The major change has been to create an explicit class initialization routine. I also found (and fixed) some major bugs, and got some additional Win32Lib demos to run. I spent some time on the Canvas class trying to get graphics up and running, but it's not working yet. [Portable Bitmap Graphic Support in Llama] One of the questions I've been kicking around is how much Win32 specific graphic support to add to Llama. I want the base code to be portable, and if the code is too Win32 specific, it obviously can't be moved to other platforms. I've decided to support BitBlt and StretchBlt as the "core" bitmap graphic routines. Transparent bitmaps (sprites) can be emulated with these functions. Pete's already got these built into Neil, which will probably serve as the basis for the Dos32 port of Llama. And I've got them written up in "pure" Euphoria, just in case some target OS doesn't support them. What kind of bitmap graphics will you be able to do in Llama? I'm expecting that you could code something as simple as a "classic" video game (PacMan or DgDug come to mind); Doom-style 3D rendering is out of the question. [Themes] I'm writing a toolkit that read WindowBlinds UIS files. These files contain bitmaps and parameters which allow Windows to adopt the look and feel of a different operating system. I picked WindowBlids because their file format is well documented, and a number of different styles are available. The code (mostly) is up and running, and I can render a number of different UIS styles - Mac, KDE, WebOS, etc. The key word here is 'render' - you can't actually manipulate the windows or controls yet, although that's planned, too. I'm in the process of rewriting the code to use BitBlt routines, which should make it screamingly fast if it gets ported to Neil. The Theme toolkit makes use of a number of small (unreleased) libraries of mine; I plan on releasing some of them in the near future as stand-alone kits: INI: A couple of routines that make it easy to read INI files. XPM: Read and write XPM (X Pixmaps), a text bitmap format that can be embedded in code. Sprite: Routines to support "transparent" bitmaps in DOS. Coded in "pure" Euphoria, relatively slow. BitBlt: Emulation of Win32's BitBlt and StretchBlt routines. [GTK+] I've mentioned before that I plan to try supporting an X Window port of Llama using only XLib, the lowest interface to the X Windows system. However, I've continued to look at various X Windows libraries to see if any might be especially well suited for Euphoria/Linux. Most libraries have the initial strike against them of being written in C++. This makes them a bit more difficult to link into Euphoria. In addition, many good libraries (Qt/KDE, for example) are under GPL-style licenses, which require that the source code using the libraries be made public, and ruling them out entirely from consideration. There is one strong contender for an acceptable toolkit, however: GTK+. It's written in C, is stable, complete, and has no licensing restrictions. It's well documented - I even did the unthinkable and shelled out $35 for the "Developing Linux Applications" text, available at my local bookstore. At this point, GTK+ looks to me like the best toolkit that Robert could link Euphoria/Linux to, although the Linux world seems to be changing almost daily. -- David Cuny