Code: Select all
;
; ResizeScreen.sb
;
; by Danilo
;
; http://forums.spiderbasic.com/viewtopic.php?f=9&t=47
;
; SpiderBasic 1.00 Alpha 4
;
Procedure BrowserSizeChanged()
Static initialized = #False
Static browserWidth, browserHeight
Protected currentWidth, currentHeight
If initialized = #False
ExamineDesktops()
browserWidth = DesktopWidth(1)
browserHeight = DesktopHeight(1)
initialized = #True
ProcedureReturn #True
Else
currentWidth = DesktopWidth(1)
currentHeight = DesktopHeight(1)
If currentWidth <> browserWidth Or currentHeight <> browserHeight
browserWidth = currentWidth
browserHeight = currentHeight
ProcedureReturn #True
EndIf
EndIf
ProcedureReturn #False
EndProcedure
Procedure ResizeScreen(_width_,_height_)
!if (spider.screen.renderer != null) {
! spider.screen.renderer.resize(v__width_,v__height_);
! spider.screen.width = v__width_;
! spider.screen.height = v__height_;
!};
EndProcedure
Macro ResizeScreen_Macro(_width_,_height_)
!if (spider.screen.renderer != null) {
! spider.screen.renderer.resize(_width_,_height_);
! spider.screen.width = _width_;
! spider.screen.height = _height_;
!};
EndMacro
Procedure RenderFrame()
ClearScreen(RGB(255,255,0))
If BrowserSizeChanged()
;ResizeScreen(DesktopWidth(1),DesktopHeight(1))
; workaround for bug: http://forums.spiderbasic.com/viewtopic.php?f=11&t=38
ResizeScreen_Macro(spider_DesktopWidth(1),spider_DesktopHeight(1));
EndIf
DisplaySprite(1,0,0)
DisplaySprite(1,0,ScreenHeight()-SpriteHeight(1))
DisplaySprite(1,ScreenWidth()-SpriteWidth(1),0)
DisplaySprite(1,ScreenWidth()-SpriteWidth(1),ScreenHeight()-SpriteHeight(1))
DisplaySprite(1,ScreenWidth()*0.5-SpriteWidth(1)*0.5,ScreenHeight()*0.5-SpriteHeight(1)*0.5)
FlipBuffers()
EndProcedure
OpenScreen(800, 600, 32, "Test")
BindEvent(#PB_Event_RenderFrame, @RenderFrame())
CreateSprite(1, 20, 20)
FlipBuffers()