View Full Version : Asphyre - expectations

20-01-2004, 12:48 AM
Greetings, It's been a long time since PowerDraw-related stuff was updated. We're in the process of developing Asphyre which we hoped to release in first days of 2004 year, but things got complicated and other projects started so currently we're overwhelmed with lot of work.
Right now we've got "abstract" structure of graphics engine and we are making implementations of each render. At the moment, software rendering engine is almost ready (we plan on having both DirectDraw software renderer and GDI software renderer), as well as other miscelaneous components like VTDb, Networking and AsphyreBitmap (derived from TBitmap but with much more functionality, even ASCII Renderer which we used in TMDC demo contest :wink:).
Anyway, if there is interest, we could release the miscelaneous components; as for graphics components, due to their complexity it'll take some time before we finish them; meanwhile if there are some ideas or things that could be made better in PowerDraw - feel free to post here or e-mail me.

- Lifepower

20-01-2004, 01:08 PM
I am glad to see it is still alive.. It was awfully quiet around here.. I myself am quite interested in the new VTDb format, and the ASCII renderer sounds very nice to study as well (curious me;)). So if it isn't to much of a hassle, please don't keep us .. me waiting :D

22-01-2004, 02:29 PM
Nice to see, that PowerDraw & Asphyre is not dead !
I am looking forward to new version...

my ideas to new version:
- some support of automatic "Format" parameter of all components (in actual version program must decide which format of texture is the best for use; it can be done by TPowerDraw, because it known everything about mode, settings, graphic card, etc)

- some (protected method can be good enough) acces to internal structures of TPowerDraw component; especially to internal vertex buffer; posibility to specify Z-axis coordinate (I need it to combine use of zbuffer simple planar rendering from d3d and bitmaps from PowerDraw)

- publish your internal (or in-tools) procedures; mainly for manipulating Vtdb, AGFImage, fonts. I created some hard-code in my VTDbManager, my unit PDrawUtils contains procedures (which are not in PowerDraw pack):

//PowerDraw exception
EPDrawError = class(Exception);

//checks PowerDraw return code<>0 and raises exception with string from ErrFunc procedure or standard ErrorString proc.
procedure CheckError&#40;err&#58;Integer;ErrFunc&#58;TErrCallFunc=nil&#41;;

//saves font extra data, e.g. header and widths
procedure SaveFontExtraData&#40;PCount,StChar,EnChar&#58;Integer;Wid ths,Heights&#58;Array of Integer;out Data&#58;Pointer;out DataSize&#58;Integer&#41;;

//creates VTDb font record in memory
procedure CreateVTDFont&#40;stchar,endchar&#58;Integer;Widths,Height s&#58;Array of Integer;Img&#58;TAGFImage;out Data&#58;Pointer;out DataSize&#58;Integer&#41;;

//transforms AGF to TBitmap for preview
procedure AGFToBmp&#40;AGF&#58;TAGFImage;aTexIndex&#58;Integer;var aBmp&#58;TBitmap&#41;;

//loads VTDB AGF record from memory into TBitmap
procedure LoadBmpAsAGF&#40;Data&#58;Pointer;Texture&#58;Integer;aBmp&#58;TBi tmap;var ID,TexWidth,TexHeight,TexCount, PtWidth,PtHeight,PtCount&#58;Integer;OnlyAlpha&#58;Boolean ;aBGColor&#58;TColor=clBlack&#41;;overload;
procedure LoadBmpAsAGF&#40;Data&#58;Pointer;Texture&#58;Integer;aBmp&#58;TBi tmap;aBGColor&#58;TColor=clBlack&#41;;overload;
//creates VTDB AGF record from TBitmap &#40;TGA,BMP,JPG,GIF,...&#41;
procedure SaveBmpAsAGF&#40;aBmp&#58;TBitmap;TexWidth,TexHeight,PtWid th,PtHeight&#58;Integer;TransColor&#58;TColor;out Data&#58;Pointer;out DataSize&#58;Integer&#41;;

- better error handling. In most cases (Init, Load,...) raising exceptions are the best way, but in rendering / textures procedures, it can do some overhead, so using returncode is better. Maybe unique error code system and translating into strings can be enough.

thanks for reading....

26-01-2004, 05:56 PM
Hmm, didn't think you'd answer my e-mail here ;-)

Yeah I'd be interested in this release of course :)
What are the network components based on ? Direct TCP/IP or DirectPlay ?
I really like VTDb. It would be cool if you could modify your vtdb manager to allow to add (or change) a password during the vtdb file maintenance, not only when it's being created. Would also be nice to have some more compression librairies to try, although I'm not sure it would give better results. Oh, and the ability to store bitmap files that wouldn't be just textures. I'm doing that with the "File" type for now, loading the file into memory, creating a memory stream, then loading from the memory stream to a TBitmap object (or TJpegImage). Maybe it could be done in an easier way (although it's not that important).
Also, for the graphics component, would be nice to have the ability to use DX8 (or 8.1 at most) instead of DX9. I'm not sure there are any advantages to using DX9 when not using vertex shaders. DX8 actually has some surface copying routines (CreateImage) that are more flexible than the equivalent DX9 function (CreateOffScreenSomething), in that two system memory surfaces can be used to "trade" data (AFAIK it can't be done in DX9 -- plus, performance is not as good as I hoped).
That's all I can think of for now ;)