[libksd-devel] Phase I of the graphics core rewrite
Status: Beta
Brought to you by:
xevol
|
From: David S. <xe...@ne...> - 2003-05-27 03:15:09
|
I have just commited the first phase of the graphics core rewrite to the libksd CVS repository. This change set includes the most fundamental changes I plan on making. The next steps include fine tuning the rest of the library (mostly the widget related code) to take advantage of the new internals. Like all "rewrites", this new code contains new bugs that we will have to iron out in the future. So if you have any work that depends on the CVS version of libksd, I suggest hanging onto the last version for the time being. The new graphics core affords the following advantages: - Much cleaner TSurface heirarchy. The code from 0.0.4 allowed for new TSurfaceData classes (with an additional layer of abstraction), which is an intriguing concept but the current libksd implementation is still completely bound to an SDL based TSurfaceData. In other words, you could add new TSurfaceData types but they wouldn't work, so why add more complexity. - Removed the overuse of functors and CPP macros in favor of proper object oriented design. - It is now possible to do drawing WITHOUT TCanvas. Previously, you were either stuck with the slowness of TCanvas or the complexity of using the KSD_DRAW macro. Now all TSurfaces have a make_iterator() function which will give you an ImageIterator that follows the dimensions, offset, and scroll of the TSurface. - A clearly defined protocol for interfacing libksd with C or C++ libraries that were designed to work with SDL and have no concept of libksd's structures. Libksd has done this internally with a few libraries but now it is possible to correctly do this (given that you follow the protocol) using the external API. Thank you. -- David Snopek Satellite Computing Solutions, LLC |