• Advertisement

Archived

This topic is now archived and is closed to further replies.

Direct Draw Fault

This topic is 6569 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Something that I have known about for a very long time is the fact that direct draw surfaces must be divisible by 8 in there size. As much as I have learned to live with this, it still bugs me at why this is so. If anyone knows, please tell me about it. Any help apreciated Spike

Share this post


Link to post
Share on other sites
Advertisement
I''m pretty sure they simply need to be a power of 2, so each side must be 2, 4, 8, 16, 32, 64, 128, 256, 512, or 1024. The actual range of allowed sizes may be different than 2-1024; I''m just guessing.

Anyway, this is done with many engines to make calculations faster; bit shifting is faster than multiplication and much faster than division. An example of shifting power-of-10 numbers is left-shifting 1000.300 to make it 10003.00; left-shifting it one time is the same as multiplying it by 10^1. Computers use binary math, so left-shifting a number x number of times (number << x)is the same as multiplying it by 2^x. Right-shifting a number x times (number >> x) is the same as dividing it by 2^x.

~CGameProgrammer( );

Share this post


Link to post
Share on other sites
Thanks guys.

cprogrammer(), i think your right.

mason, even though what you say might be the case, I don't think so.

Spike

Edited by - Spike on 1/26/00 4:34:12 PM

Share this post


Link to post
Share on other sites
Maybe I''m crazy, but I''ve never had any problems with Surfaces that aren''t powers of two. I''ve had surfaces of all sizes without any problems.

I do know for sure that textures need to be powers of 2. Is this what your refering to?

--TheGoop

Share this post


Link to post
Share on other sites
To theGoop,

I am refering to surfaces. Try and build a surface that is 19 by 19. Then watch as your program totally messes up the images and anything else you may be trying to write to the surface. It is also possible for it to perform an illegal operation.

Spike

Share this post


Link to post
Share on other sites
When I''ve created surfaces... in my experience... they''ve only gotten garbled when they were in video memory, but in system memory they always seem to work right no matter how large they are. Why? I don''t know.

Al

Share this post


Link to post
Share on other sites
Well, what version of directdraw are u using? DDraw 7 surfaces work fine for me no matter what their sizes...

Share this post


Link to post
Share on other sites
I am using DX 5. So if you are using DX 7, microsoft have probably already fixed up the problem.

Spike

Share this post


Link to post
Share on other sites

  • Advertisement