[Updated 2002-04-14]: I have had lots of work with my research activities lately, forcing me to postpone the release date of GapiDraw 1.1 to April 18 (this Thursday). Casio support is fully functional, and I am working through the bug reports and tweaks now.
Additions:
(1) (Idea from Jeff @ CapesDev) Constant opacity support in AlphaBlt and AlphaBltFast.
(2) (Idea from Sam Nova) More screen resolutions for stationary PCs (GDOPENDISPLAY_X2=640x480, GDOPENDISPLAY_X25=800x600).
(3) (Idea from Sam Nova) New return code from OpenDisplay: GDERR_UNSUPPORTEDMODE if 16-bit mode is unavailable.
(4) Correct window alignment on stationary computers when run in window mode.
(5) GAPI DMA transfer on Casio devices. This should also correct the current issue with the E-125 and the EM-500 (thanks to Lucas Goodwin for reporting back!).
(6) (Idea from Sam Nova) New SetPixels function that uses arrays.
The new SetPixels will use arrays. It will also take an option to define element size.This would make it possible to define elements such as:
- Code: Select all
1
2
3
4
5
6typedef struct
{
GDPIXEL pixel;
DWORD dwXVel, dwYVel;
} MYPIXEL;
SetPixels((GDPIXEL*) pFirst, sizeof(MYPIXEL));6 lines; 3 keywds; 0 nums; 15 ops; 0 strs; 0 coms Syntactic Coloring v0.4 - Dan East
Also, the pixel structure will be improved, allowing individual opacity for each pixel (allowing trails and similar particle effects). A new flag GDSETPIXEL_DISABLED will be added as well.
- Code: Select all
1
2
3
4
5
6
7
8typedef struct _GDPIXEL
{
DWORD dwX; // X
DWORD dwY; // Y
COLORREF dwColor; // Color
DWORD dwFlags;
GDPIXELFX* pGDPixelFx;
} GDPIXEL;8 lines; 2 keywds; 0 nums; 9 ops; 0 strs; 3 coms Syntactic Coloring v0.4 - Dan East
Changes:
(1) (With help from Andy Siegert) New alpha blend core. The speed of all alpha blends will be improved, allowing for real-time use in most game types. Watch out for a new performance demo!
(2) Improved video performance on Desktop PCs using DirectX DMA transfers.
(3) (Idea from Sam Nova) VerifyCoordinates will be renamed to SetSurfaceOptions. GetSurfaceOptions will be added as well. GDSURFOPTION_DONOTVERIFY and GDSURFOPTION_FIXEDPOINT will initially be supported to allow 16:16 fixed point coordinate support in all operations for the specific surface.
(4) Updated SetPixels() function.
The list version of SetPixels will now use a new struct format for the pixels, such as:
- Code: Select all
1
2
3
4
5typedef struct _GDPIXELNODE
{
GDPIXEL pixel;
_GDPIXELNODE* pNext;
} GDPIXELNODE;5 lines; 2 keywds; 0 nums; 6 ops; 0 strs; 0 coms Syntactic Coloring v0.4 - Dan East
(5) SetPixel - Flags and PixelFx will be added to the simple SetPixel function as well.
Under consideration:
(1) (Possible) Support for palettized devices. Direct screen writes will be disabled, and a quick color conversion could be done on the Flip(). The already slow performance of these devices would however be even slower since a bytewise copy&conversion would have to be done for each pixel, each frame. If surfaces were stored internally in 8-bit mode the copy could be done in larger chunks. But that would compromise on the performance for the other devices. So right now I don't know if it's worth the trouble. I will look into it.
