display caps

Blitz3D Forums/Blitz3D Programming/display caps

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Thanks DGuy, I'll look into this tomorrow. I didn't look properly, the 2 strings in the DEVMODE make 32 bytes each, so this is a fixed value. I tought they were variable in length, that is why I was checking for nulls in my string function. Resolutions are easy to catch, but I'm not sure if these are what I wanted in the first place, since EnumDisplaySettings is giving resolution sup to 2048x1536, which my monitor clearly can't display, at any refresh rate. But I have to look into the flags to see if something indicates that it's out of the monitor's range.

Graphics 1024,768,32,2
devmode% = CreateBank (200)
mode% = 0
rc% = 1
modes_in_page% = 0
While rc
   rc% = api_EnumDisplaySettings (0, mode%, devmode%)
   BitsPerPel% = PeekShort (devmode, 104)
   PelsWidth% = PeekInt (devmode, 108)
   PelsHeight% = PeekInt (devmode, 112)
   DisplayFrequency% = PeekShort (devmode, 120)
   If BitsPerPel >= 4 And DisplayFrequency > 1 Then
      Select BitsPerPel
         Case 4  :    bppType$ = "16 Color   "
         Case 8  :    bppType$ = "256 Color  "
         Case 16 :    bppType$ = "High Color "
         Case 24, 32: bppType$ = "True Color "
         Default :    bppType$ = ""
      End Select
      Write bppType$
      Write Str$(PelsWidth) + "x" + Str$(PelsHeight) + " "
      Write Str$(DisplayFrequency) + "hz"
      Print ""
   EndIf
   mode = mode + 1
Wend
WaitKey()
End


I'll try to apply what MS recommends. Thanks for the find.