Re: [Alephmodular-devel] Interesting milestone... world_pixels removed this night
Status: Pre-Alpha
Brought to you by:
brefin
From: Br'fin <br...@ma...> - 2003-08-30 17:53:04
|
On Saturday, August 30, 2003, at 12:08 PM, Timothy Collett wrote: >> It's my impression that (in keeping with AM's spirit) these early >> versions of AM are as close to M2 as possible "from the outside". > > Yeah; that's pretty much my understanding, as well. I'd still like to > know what all the under-the-hood changes are, though :-) - Runs on MacOS X (This required appropriate serializers and glue. Sometimes new, sometimes adapted from my work and others upon A1.) - Has very few warnings when compiled 15 known warnings, 11 of which are me putting in #warning messages on things that should be touched upon. - Has basic file abstraction (CFileDesc) File paths are handled by a generic system which, when you open a file, hands you an enhanced iostream for the file. Saved files are also handled 'safely' in that the original file isn't touched until the temporary version of the file has been completely written to. Files implicitly close themselves when they go out of scope. There is a mechanism for handling file types. - Has an improved serializer AStreams replaces packing.h/.cpp and attempts to provide a typed and generally safe serializing facility. It can also raise exceptions if usage goes beyond the end of the stream and has api to process any structure as a list provided the structure has basic operators (<</>>) to read from/write to a stream. The work that I'm currently doing for Display Abstraction all relates to separating the Marathon code from the Mac Quickdraw APIs for it's view port. This consists of changes through many parts of the code. - A new abstraction for bitmaps/textures. (CBitmap) that specifies a potentially encoded array of pixels. (For instance, the bitmap for a wall or the viewport is a basic rectangular bitmap, but others, such as sprites are a bitmap with a distinct CMarathon2RLEDecoder class - A hierarchy of CBuffer classes that translate from a full out native buffer/GrafPtr to specialized abstract buffers which represent sub-parts of other buffers and which can even do pixel-quadrupling on a portion of a buffer. - A display hierarchy to handle asking for a main screen and handling updates of fades, colors, and buffers on that screen. - A drawing context that you can request of a buffer to perform higher level drawing operations on a buffer. Such as painting rectangles and pasting CBitmaps. The display abstraction isn't done yet. I've still got to get text handled by the system, and then bunches of loose ends to track down, such as places using Rect or other direct Quickdraw API. At which point I may land the Drawing Abstraction even though there's further tweaks to do on top of it (Things that are appropriate, but which aren't necessary for basic M2 operation, such as toggling from full screen to window, or fully fleshing out the drawing contexts). One of the builds on sf.net (the 0.3+) version represents the first time I got all of the basic CBuffer hierarchy in place. The results are rather dramatic, in part because that was the first time I had the infrastructure to clean up all of the most obvious graphical bugs. Fades don't flicker previous screens and software mode runs at full speed even in high-resolution mode. -Jeremy Parsons |