PureBasic & GDI+ 1.0
Les conventions du wrapper et de la doc GDI+ 1.0



Les fonctions Gdi+

Les fonctions de Gdiplus acceptent en général des paramètres en entrée qui sont définis pour chaque fonction dans ce fichier d'aide. Normalement j'ai essayé de suivre les conventions PureBasic pour les pointeurs et adresses.
La presque totalité des fonctions retourne une valeur qu'il est indispensable de tester afin de s'assurer du bon déroulement de l'opération. Cette valeur de retour est un élément de l'énumération status. La valeur #Ok est la valeur qui permet de continuer normalement les opérations.
Prenons par exemple la fonction suivante :
Resultat.i = GdipGetFontCollectionFamilyList(*fontCollection, numSought.l, *gpfamilies, @numFound.Long)
C'est la variable Resultat qui doit être testée.
Les paramètres de la fonctions peuvent être :
- des paramètres d'entrée, c'est-à-dire que le paramètre doit avoir une valeur avant l'appel de la fonction. Le paramètre d'entrée est défini dans la documentation par le sigle anglais in entre crochets [in]
- des paramètres de sortie, c'est-à-dire que le paramètre recevra une valeur lorsque la fonction s'exécutera. Le paramètre de sortie est défini dans la documentation par le sigle anglais out entre crochets [out]
- des paramètres d'entrée et/ou de sortie, c'est-à-dire que le paramètre peut avoir une valeur avant l'appel de la fonction et une valeur en retour. Le paramètre n'a pas obligatoirement les deux types, cela dépend de l'utilisation. Le paramètre d'entrée et/ou de sortie est défini dans la documentation par le sigle anglais in, out entre crochets [in, out]
Par exemple, la fonction GdipGetFontCollectionFamilyList() possède les trois types de paramètres.

Les couleurs Gdi+

Sous Gdi, les couleurs sont des valeurs exprimées par les 3 composantes qui sont le rouge, vert et le bleu. Chaque composante est codée sur 8 bits (un octet) de sorte que chaque couleurs peut avoir 256 valeurs (de 0 à 255). Les 3 couleurs sont regroupées sur 32 bits (Dword) avec les 8 bits de poids fort qui ne sont pas utilisés.
La couleur RVB a les 8 bits de poids faibles (b0 à b7) codant le rouge, les bits de b8 à b15 codant le vert et les bits b16 à b23 codant le bleu (appelé bgr).Gdi+ a introduit les couleurs avec la gestion de la transparence. Les 3 couleurs sont exprimés par les 24 premiers bits et la transparence par les 8 bits de poids fort (b24 à b31), appelée couche alpha. La couche alpha valant 0 indique une transparence complète et cette couche valant 255 indique une opacité complète. Sous Gdi+, les composantes rouge et bleue sont inversées par rapport à la convention Gdi.

Pour Gdi+, on peut soit coder les couleurs au format supporté par Gdi+ soit utiliser les couleurs Gdi (par exemple celles prédéfinies sous PB) dont les composantes rouges et bleues devront être inversées.


La procédure Alpha(color.l) retourne la valeur de la couche alpha de la couleur.
Voir les détails de la macro ici.

La procédure ARGB(color, a.b = 255) inverse les composantes rouges et bleues pour obtenir le format Gdi+, le deuxième paramètre étant la couche alpha.
Voir les détails de la macro ici.

La procédure ARGBEX(color.l) inverse les composantes rouges et bleues, la couche alpha est conservée. Cette procédure peut être utilisée pour retrouver une valeur Gdi à partir d'une couleur Gdi+ en conservant la couche alpha.
Voir les détails de la macro ici.

La macro MAKECOLOR(a,r,g,b) du fichier Gdiplus.pbi permet de passer les 4 composantes chacune étant un octet.
Voir les détails de la macro ici.

La procédure SetAlpha(color, a.b = 255) modifie la couche alpha de la valeur color sans inverser l'ordre des couleurs. Le second paramètre est la couche alpha qui sera mise à 255 (opacité complète) s'il est absent.
Voir les détails de la macro ici.