Code : Tout sélectionner
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"")
Repeat
ClearScreen(RGB(150,30,50))
StartDrawing(ScreenOutput())
Plot(1,1,RGB(255,0,0))
Plot(5,5,RGB(15,0,0))
pf = 4 ; Car le codage des couleurs est basé sur 4 octets => 32 bits (openscreen ...)
; On recupere la couleur du point (1;1)
; drawingbufferpitch() est dejà en octet, pas besoin de conversion ...
test = PeekL(DrawingBuffer() + (1*PF)+ DrawingBufferPitch() * 1)
test2 = PeekL(DrawingBuffer() + (5*PF)+ DrawingBufferPitch() * 5)
; On affiche le point recuperer en (1;1) à l'endroit (32;32)
PokeL(DrawingBuffer() + 32*PF + DrawingBufferPitch() * 32,test)
PokeL(DrawingBuffer() + 50*PF + DrawingBufferPitch() * 50,test2)
verif = Point(32,32)
verif2 = Point(50,50)
StopDrawing()
Debug "=== VERIF 1 ==="
Debug Str(Red(verif)) + ";" + Str(Green(verif)) +";" + Str(Blue(verif))
Debug "=== VERIF 2 ==="
Debug Str(Red(verif2)) + ";" + Str(Green(verif2)) +";" + Str(Blue(verif2))
Debug "-- ATTENTION LES VALEURS DE ROUGE ET BLEU SONT INVERSEES ----"
Debug Str(Red(test2)) + ";" + Str(Green(test2)) +";" + Str(Blue(test2))
Debug " "
FlipBuffers(0)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
openscreen(800,600,RGB32,"Test1")
ou openscreen(800,600,BGR32,"test1")
ou meme utiliser les constantes de DrawingBufferPixelFormat().
Comme ca, on gagne du temps en evitant des conversions.
question aussi : Debug DrawingBufferPitch() en 1024*768 => 4096
Debug DrawingBufferPitch() en 800*600 => 4096
Debug DrawingBufferPitch() en 640*480 => 4096 (affichage decalé

Normalement, comme l'ecran en X est plus petit drawingbuffer() devrait etre + petit ??