Basic Univers


Procedure.l BGR(Couleur.l)
; Couleur est une couleur sur 24 bits (ColorRef)
; la fonction inverse les composantes rouge et bleue
b.l
MOV eax, Couleur
AND eax, $00FFFFFF
BSWAP eax
SHR eax, 8
MOV Couleur, eax

ProcedureReturn Couleur
EndProcedure

Procedure BGR_Ex(AddCouleur.l)
; AddCouleur est l'adresse de la variable contenant la couleur (couleur sur 24 bits (ColorRef))
; la fonction inverse les composantes rouge et bleue directement en mémoire
; elle ne retourne pas de valeur

MOV eax, AddCouleur
MOV edx, [eax]
AND edx, $00FFFFFF
BSWAP edx
SHR edx, 8
MOV [eax], edx
EndProcedure



Procedure essai()

color = $00FFAA11 ; BGR(color) doit retourner $0011AAFF

; BGR(color1) modifie directement color1 avec la valeur $0011AAFF

color1 = color
BGR_Ex(@color1)

MessageRequester( "BGR et BGR_Ex" , "color = $" + Hex(color)+ Chr(10)+ Chr(10)+ "BGR(color) = $" + Hex(BGR(color))+ Chr(10)+ Chr(10)+ "BGR_Ex(@color1) : $" + Hex(color1), 16)

EndProcedure

; essai()

Debug Hex(BGR(RGB(255, 0, 128)))