Salut G-Rom
Je veux bien, mais y'a un truc bizarre quand même
Si je crée une image de 129X73 donc pas carré et pas pussance de 2, que je la sauvegarde et qu'ensuite j'utilise loadsprite() il n'y a aucun souci.
Si maintenat je crée un sprite de 129X73 et que je trace dessus le programme freeze au niveau du stopdrawing()
Et des cartes graphiques j'en ai essayé un paquet y'en a aucune qui fonctionne !
Code:
Enumeration
#Img
#Spr
#Spr2
EndEnumeration
UsePNGImageEncoder()
UsePNGImageDecoder()
If InitSprite()
If OpenWindow(0,10,10,800,600,"",#PB_Window_SystemMenu )
If OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)
W=129
H=73
If CreateImage(#Img,W,H,32)
StartDrawing(ImageOutput(#Img))
Box(0,0,W,H,RGB(255,0,0))
StopDrawing()
SaveImage(#Img,"test",#PB_ImagePlugin_PNG)
EndIf
LoadSprite(#Spr,"test",#PB_ImagePlugin_PNG)
; CreateSprite(#Spr2,W,H)
; StartDrawing(SpriteOutput(#Spr2))
; DrawImage(ImageID(#Img),0,0)
; StopDrawing()
Repeat
E=WindowEvent()
DisplaySprite(#Spr,0,0)
;DisplaySprite(#Spr2,250,0)
FlipBuffers()
ClearScreen(RGB(0,0,0))
Delay(1)
Until E=#PB_Event_CloseWindow
EndIf
EndIf
EndIf
Active le subsystem opengl et essaye ce code ca fonctionne sur toute carte graphique du poulsbo a des Nvidia dernier cri.
Maintenant décommente les quelques lignes et là plantage assuré sur n'importe quel carte.
En sdl cela fonctionne, hormis l'ecran graphique qui n'est pas solidaire de la gui (bug marqué comme corrigé par Fred sur le forum english)
A+
EDIT:
Il semble que pour cela fonctionne, la largeur du sprite doit etre divisble par 4.
Pour la hauteur peu importe tout passe
Ca ecarte le probleme de puissance de 2