Problems with video cards in DX5

Started by
3 comments, last by SPR 24 years, 6 months ago
This is a very common problem.

A video card either represents RGB by 565 bit or 555 bits.( Although there might be other).

So when u start, u need to extract information using GetSurfaceDesc to get the pixel format. Then u create a macro that shifts into bits correctly and use the macro instead of RGB(r,g,b).

There are articles on that problem either here or at www.perplexed.com/GPMega. I know, cause I got my solutions there.

Advertisement
Hi everybody!

Thanks to VOID for the immediate answer, it helped me a lot, but another problem arised.
Now i am testing the game in various configuration, and it does not work with Vodoo3 card. Nothing can be seen in the display, and there are no error messages.
Has anybody seen this problem ?
Please answer !

The shifting operator shpuld be like:

for 565: ((r >> 3) << 11), ((g >> 3) << 5), (b >> 3)

for 555, the r is only different
((r>>3)<<10)

I believe...damn, colege is cnfusing..

------------------
Dance with me......

Hi !

Please help me. I created a little game, using DirectDraw in DX5. The resolution is 800 x 600 x 16 bpp.
At home I have a TSENG ET 6000 video card and everything is OK, but one of my friend has S3 Trio 2/3D AGP video card. Using this card, the 16 bpp mode does not work, the picture is awfull ( colors are messy), only the 15 bpp mode works.
Please help me what is wrong, how I can determine the type of the video card to use the appropriate code, or tell me anything useful to fix this problem.
ThanX!!

I see a problem here. 16-bit "565" has 6 bits on the green channel. That means your conversion from 24 to 16-bit "565" should shift the green only twice. This means that I am pretty sure the conversions are like so:

for 565: ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3)
for 555: ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3)

Please let me know if I am wrong...

------------------

-Kentamanos

-Kentamanos

This topic is closed to new replies.

Advertisement