I am trying to get all the functions from the linux version under windows.
This works quite well, but with the following I have a problem.
I want to enable the users to switch from fullscreen to windowed mode and vica versa.
I try this with the following routine:
Procedure fullscreen()
Shared win_mode
If win_mode = 1
win_mode = 2
Result = OpenWindowedScreen(WindowID, 10, 10, 640, 480, 1, 0, 0)
Else
win_mode = 1
If OpenScreen(640,480,32,"Vollbild") = 0
EndIf
EndIf
EndProcedure
But when I call this in Windows to change to windowed I get an error message that I do not understand.
Linux just reopens the screen and everything works fine.
Closing the screen before reopening it also gives me an error.
What can I do?
OpenWindowedScreen
atm i only managed to switch from windowed mode to fullscreen without any problem... but back to windowed will crash! i still think its a DX/windows related problem (losing the DC or something needed!?)
Btw, i think it makes more sence, to poste this problem in the "Coding Questions" section!
Code: Select all
Global lWindowExist, lScreenExist, lWinMode, res
Procedure MyFullScreen(lScreenMode)
If lScreenMode = 1
lWinMode = 1
If lScreenExist : CloseScreen() : EndIf
If lWindowExist : CloseWindow(0) : EndIf
lWindowExist = OpenWindow(0,0,0,640,480,#PB_Window_SystemMenu,"WindowedMode")
lScreenExist = OpenWindowedScreen(WindowID(), 0, 0, 640, 480, 0, 0, 0)
Else
lWinMode = 2
If lWindowExist : CloseWindow(0) : EndIf
If lScreenExist : CloseScreen() : EndIf
lScreenExist = OpenScreen(640,480,32,"FullScreen") = 0
EndIf
EndProcedure
InitSprite()
InitKeyboard()
MyFullScreen(1)
Repeat
ClearScreen(0,0,0)
ExamineKeyboard()
;-------- Select ScreenMode --------
If KeyboardPushed(#PB_Key_F1) And lWinMode = 2
MyFullScreen(1)
EndIf
If KeyboardPushed(#PB_Key_F2) And lWinMode = 1
MyFullScreen(2)
EndIf
;-------- Check only if WindowedMode --------
If lWinMode = 1
lEvent = WindowEvent()
If lEvent = #PB_Event_CloseWindow
lExitProgram = 1
EndIf
EndIf
;-------- Draw TestObject and FlipBuffers --------
If StartDrawing(ScreenOutput())
Box(x,300,50,50,$FFFFFF)
StopDrawing()
EndIf
x=x+2
If x >= 690 : x=-50 : EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or lExitProgram
End
va!n aka Thorsten
Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,

