Re: [4.40 B7] Warum geht UseBuffer() nicht mehr?
Verfasst: 31.07.2010 21:26
als ersatz kann man das hier nehmen funktioniert aber nur mit sprites die kleiner als der screen sind
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Procedure UseBuffer2(Sprite.l)
Shared UsedSprite.l
If Sprite = #PB_Default And IsSprite(UsedSprite)
GrabSprite(UsedSprite, 0, 0, SpriteWidth(UsedSprite), SpriteHeight(UsedSprite))
UsedSprite = #PB_Default
ElseIf IsSprite(Sprite)
DisplaySprite(Sprite, 0, 0)
UsedSprite = Sprite
EndIf
EndProcedure
#Sprite1 = 1
#Sprite2 = 2
InitSprite()
OpenWindow(0, 100, 100, 512, 512, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 512, 512, 0, 0, 0)
TransparentSpriteColor(#PB_Default, $FF00FF)
CreateSprite(#Sprite1, 240, 240)
LoadSprite(#Sprite2, #PB_Compiler_Home + "examples/sources/Data/Geebee2.bmp")
UseBuffer2(#Sprite1)
ClearScreen($FF0000)
DisplayTransparentSprite(#Sprite2, 10, 10)
DisplayTransparentSprite(#Sprite2, 100, 10)
DisplayTransparentSprite(#Sprite2, 10, 100)
DisplayTransparentSprite(#Sprite2, 100, 100)
UseBuffer2(#PB_Default) ; nun unbedingt erforderlich, um die Änderungen zu übernehmen!
Repeat
ClearScreen($0000FF)
DisplaySprite(#Sprite1, WindowMouseX(0), WindowMouseY(0))
FlipBuffers()
Until WaitWindowEvent(10) = #PB_Event_CloseWindow