
| auteur : Cpl.Bator |
Pour afficher un point il existe la commande Plot(), et la commande Point() pour lire sa valeur.
Ces deux fonctions sont suffisantes pour agir sur des petites surfaces, pour un traitement plus rapide il est nécessaire d'accéder directement à la mémoire vidéo.
Pour cela PureBasic est doté d'une série de commandes :
Finalement pour calculer l'adresse d'un pixel aux coordonnées (x,y) nous utilisons le calcul suivant :
AdressePixel = DrawingBuffer() + ( x * FormatPixel) + DrawingBufferPitch() * y
Avec FormatPixel valant 1, 2, 3 ou 4 selon la réponse de la commande DrawingBufferPixelFormat().
L'exemple qui suit n'est valable qu'en 32 bits. Dans le format 16 bits, il faudrait changer le mode de calcul de la couleur, et utiliser PokeW().
Remplissage en dégradé de l'écran :
InitSprite()
InitKeyboard()
OpenScreen(800 ,600 ,32 ," " )
Repeat
ClearScreen(0 )
ExamineKeyboard()
StartDrawing(ScreenOutput())
* BufferVideo = DrawingBuffer()
FormatPixel = DrawingBufferPixelFormat()
LongueurLigne = DrawingBufferPitch()
Select FormatPixel
Case # PB_PixelFormat_8Bits : FormatPixel = 1
Case # PB_PixelFormat_15Bits : FormatPixel = 2
Case # PB_PixelFormat_16Bits : FormatPixel = 2
Case # PB_PixelFormat_24Bits_RGB : FormatPixel = 3
Case # PB_PixelFormat_24Bits_BGR : FormatPixel = 3
Case # PB_PixelFormat_32Bits_RGB : FormatPixel = 4
Case # PB_PixelFormat_32Bits_BGR : FormatPixel = 4
EndSelect
# Rouge = 200
# Bleu = 50
# Pas = 600 .0 / 255 .0
For y = 0 To 600 - 1
* AdresseLigne = * BufferVideo + y * LongueurLigne
Vert = (y+ 1 )/ # Pas
For x = 0 To 800 - 1
PokeL( * AdresseLigne, RGB(# Rouge , Vert,# Bleu ))
* AdresseLigne + FormatPixel
Next
Next
StopDrawing()
FlipBuffers()
Until KeyboardPushed(# PB_Key_Escape )
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|