It's not flashy but it does it's job. I needed something to allow me to test a variety of start up display options so I coded this little diddy. I'm sure some other noobs may find it useful. ;) Quck and dirty..just like I like my...anyway.. here it is:
(Windows Only)
'
Extern "win32"
Function GetActiveWindow%()
End Extern
'
' Set default options
'
Global gdriver:Int = 0
Global windowed:Int = 0
Global vsync:Int = 1
Global depth:Int = 32
Global res:Int = 3
Global screenwidth:Int
Global screenheight:Int
'
GetStartUpOptions()
'
' results...
' gdriver: 0=dx 1=ogl
' vsync: 0 = off 1 = on
' screenwidth = width of screen
' screenheight = height of screen
' depth = 16-24-32
' windowed: 0=no 1=yes
'
Function GetStartUpOptions()
SetGraphicsDriver D3D7Max2DDriver()
Graphics(280,150,0)
CenterWindowWin32()
While Not KeyHit(KEY_RETURN)
KeyOptions()
Cls
ShowOptions()
Flip
Delay 20
Wend
End Function
'
Function KeyOptions()
If KeyHit(KEY_G) ; gdriver = Not gdriver
If KeyHit(KEY_V) ; vsync = Not vsync
If KeyHit(KEY_C)
If depth = 16
depth = 24
Else
If depth = 24
depth = 32
Else
If depth = 32
depth = 16
EndIf
EndIf
EndIf
EndIf
If KeyHit(KEY_R)
res=res+1 ; If res = 5 Then res=1
EndIf
If KeyHit(KEY_D) ; windowed = Not windowed
End Function
'
Function ShowOptions()
SetColor 0,255,0
SetTransform 0,1,1
SetBlend SOLIDBLEND
Local gr$,vs$,dp$,sz$,w$
If gdriver = 0 ; gr$ = "DirectX"
If gdriver = 1 ; gr$ = "OpenGL"
DrawText "(G)raphics Driver = " + gr$,20,20
If vsync = 0 ; vs$ = "Off"
If vsync = 1 ; vs$ = "On"
DrawText "(V)sync = " + vs$,20,40
If depth = 16 ; dp$ = "16 bit"
If depth = 24 ; dp$ = "24 bit"
If depth = 32 ; dp$ = "32 bit"
DrawText "(C)olor Depth = " + dp$,20,60
If res = 1 ; sz$ = "320x240"
If res = 2 ; sz$ = "640x480"
If res = 3 ; sz$ = "800x600"
If res = 4 ; sz$ = "1024x768"
DrawText "(R)esolution = " + sz$,20,80
If windowed = 0 Then w$ = "Full Screen"
If windowed = 1 Then w$ = "Windowed"
DrawText "(D)isplay = " + w$,20,100
DrawText "Press RETURN to continue.",20,120
Select res
Case 1
screenwidth=320 ; screenheight=240
Case 2
screenwidth=640 ; screenheight=480
Case 3
screenwidth=800 ; screenheight=600
Case 4
screenwidth=1024 ; screenheight=768
End Select
End Function
'
Function CenterWindowWin32()
Local hwnd:Long = GetActiveWindow()
Local desk[4]
Local window[4]
GetWindowRect(GetDesktopWindow(), desk)
GetWindowRect(hwnd, window)
SetWindowPos(hwnd, HWND_NOTOPMOST, (desk[2] - (window[2] - window[1])) / 2, (desk[3] - (window[3] - window[0])) / 2, 0, 0, SWP_NOSIZE)
End Function
'
|