CustomGradient()
Syntaxe
CustomGradient(@GradientCallback())Description
Configure le dégradé pour qu'il utilise une forme arbitraire, en utilisant une procédure.
Arguments
La procédure doit avoir la forme suivante:Procedure.f GradientCallback(x, y) ; ; Renvoie une valeur entre 0.0 et 1.0 pour définir le dégradé à la position x,y ; ProcedureReturn 1.0 EndProcedureLa procédure sera appelée pour chaque pixel affiché par l'opération de dessin. La procédure doit retourner une valeur comprise entre 0.0 and 1.0 (pas une valeur de couleur) pour définir la valeur du dégradé à une position donnée.
Par défaut, la valeur 0.0 représente la couleur de fond et la valeur 1.0 représente la couleur d'avant plan. Des couleurs additionnelles peuvent être ajoutées au dégradé avec GradientColor().
Cette procédure sera appelée de nombreuse fois (pour chaque pixel à appeler), donc elle devra être la plus courte et la plus optimisée possible, sinon l'impact sur les performances de dessin sera conséquent.
Note: cette commande a un effet uniquement sur des surfaces de type ImageOutput(). Le dégradé est dessiné uniquement si le mode #PB_2DDrawing_Gradient est activé avec DrawingMode().
Exemple
Procedure.f GradientCallback(x, y) ProcedureReturn Sin(x * 0.1) * Sin(y * 0.1) ; will be between 0 and 1 EndProcedure If OpenWindow(0, 0, 0, 400, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) If CreateImage(0, 400, 200) And StartDrawing(ImageOutput(0)) Box(0, 0, 400, 200, $FFFFFF) DrawingMode(#PB_2DDrawing_Gradient) BackColor($00FFFF) FrontColor($FF0000) CustomGradient(@GradientCallback()) Circle(100, 100, 100) Circle(300, 100, 100) StopDrawing() ImageGadget(0, 0, 0, 400, 200, ImageID(0)) EndIf Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow EndIf
OS Supportés
Tous