VBGamer |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DirectDraw Display Modes - Are they evil? You bet! PyroBoy (13 replies, 0 views) (2000-Sep-10) I've had this problem with DirectDraw since the beginning, but it's just starting to stick in my craw now...
I can enumerate a lot of display modes through the GetDisplayModesEnum function and my windows display menu contains a similarily large list. Problem is, when I try to init these modes in code, they won't go. Mostly this applies to modes that are high-res and high-colour. I get the card into the mode fine, but when it comes time to create the primary surface, I get an "Out of video memory" error.
Now, this isn't some crappy 1 meg card anymore, it's a crappy 8 meg card. It should to be able to hold the primary surface in question especially seeing as it's the first surface in vidmem.
For example, a 1024x768x24bit surface. So that's 1024x788x3bytes = around 2.3 megs of memory. I know I'm not factoring in the surface pitch, but it'd have to be a ridiculously high pitch to fill up an 8 meg card that's otherwise only using 2.3 megs for the actual surface data.
Is there something preventing me from using all 8 megs on the card? Like is the GDI still sitting in there or something? I want all 8 megs to play with so I don't have to put my frame buffers in system memory, cuz I want to be able to hardware blit/render.
Anyone know what's going on? And more importantly, how to solve it?
|