CanvasGadget VS imageGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

CanvasGadget VS imageGadget

Message par blendman »

Salut la foule en délire :)

Bon, en ce moment, On est plusieurs à tester les canvas gadget (Coucou Kernadec ;)).

Mais je me posais la question suivante :
- vaut-il mieux utiliser un canvas ou une image pour dessiner dessus ,

En gros, quels sont les avantages et les inconvénients de l'un et de l'autre, d'après vous ?

Merci pour vos informations.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: CanvasGadget VS imageGadget

Message par Backup »

je ne connais pas les canvas , mais j'utilise les images, et les sprites
jusqu'a maintenant

j'ai crus comprendre que le Canvas a la gestion des evenements souris integré
c'est surement ça qui differe ... :)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: CanvasGadget VS imageGadget

Message par blendman »

Ouip, mais je trouve que l'un des soucis du canvas c'est qu'il n'est pas transparent.
Alors, du coup, j'utilise des images et je balance tout à la fin sur un canvas, je me demande si c'est utile au final de faire ça :).
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: CanvasGadget VS imageGadget

Message par Backup »

blendman a écrit :Ouip, mais je trouve que l'un des soucis du canvas c'est qu'il n'est pas transparent.
Alors, du coup, j'utilise des images et je balance tout à la fin sur un canvas, je me demande si c'est utile au final de faire ça :).
perso je privilegie les Sprites !!

tu peux avoir un sprite de la taille de l'ecran ;)
il peux etre transparent ou pas , (en choisissant meme la couleur que tu veux transparente)
il peut etre "rotatés" déplacés , morcelés (plusieurs sprites peuvent faire une images)
il peuvent etre superposés etc ...

bref l'element graphique ideal pour les bidouilles reste le sprite :)
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: CanvasGadget VS imageGadget

Message par kernadec »

bonsoir
Canvas fonctionne avec DrawAlphaImage :D

@blendman je viens de mettre à jour le dernier code :http://www.purebasic.fr/french/viewtopi ... =6&t=11837
pour gérer l'alpha dans le zoom.. :lol:

Sur le forum allemand Monsieur "Danillo" viens de faire un super boulot avec GDIplus pour les outils dessin ca devrait pouvoir t'aider.
c'est top top....
http://www.purebasic.fr/german/viewtopi ... =8&t=24539


Cordialement
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Re: CanvasGadget VS imageGadget

Message par Atomo »

L'avantage du CanvasGadget est qu'il est double buffered, c'est à dire qu'il n'a pas de problème de scintillement lors du rafraîchissement de l'image.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: CanvasGadget VS imageGadget

Message par blendman »

Dobro a écrit :bref l'element graphique ideal pour les bidouilles reste le sprite :)
j'aimerai beaucoup utiliser les sprites, car c'est ce que je faisais avec GM, mais le problème c'est qu'avec ma tablette graphique, le curseur part dans tous les sens lorsque je dessine sur un screen..
J'imagine que c'est un bug, car je n'ai pas ça dans GM (sprites et directX)

Otomo : ça, c'est bon à savoir :)
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: CanvasGadget VS imageGadget

Message par kernadec »

bonsoir Atomo
j'ai vu ton topic sur la mouse, Alors comme tu as l'air de bien connaitre le sujet
Depuis 2-3 jours avec le canvas, j'ai constaté un truc étrange avec la Mouse sous Canvas
les coordonnées passent à zéro une fois sur deux, cela me semble pas normal.
comparé au mode WindowMouseX() qui lui ne le fait pas.
Qu'en pense tu.
Cordialement

Code : Tout sélectionner

OpenWindow(0,0, 0,300,300, "test", #WS_SYSMENU )
CanvasGadget(0, 0, 0,300,300,#PB_Canvas_DrawFocus|#PB_Canvas_GrabMouse|#PB_Canvas_Keyboard)
Repeat
 Event= WaitWindowEvent()
  
 X = GetGadgetAttribute(0,#PB_Canvas_MouseX)
 Y = GetGadgetAttribute(0,#PB_Canvas_MouseY)
 
 Debug  "Mouse Canvas = "+Str(X)+":"+Str(Y)+"  <<>>  Mouse Windows = "+Str(WindowMouseX(0))+":"+Str(WindowMouseY(0))
 
Until Event= #PB_Event_CloseWindow 
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Re: CanvasGadget VS imageGadget

Message par Atomo »

Il faut attendre que le CanvasGadget renvoie un event avant de récupérer la position de la souris, voici le code corrigé :

Code : Tout sélectionner

OpenWindow(0,0, 0,300,300, "test", #WS_SYSMENU )
CanvasGadget(0, 0, 0,300,300,#PB_Canvas_DrawFocus|#PB_Canvas_GrabMouse|#PB_Canvas_Keyboard)
Repeat
Event= WaitWindowEvent(1)
  
If Event = #PB_Event_Gadget And EventGadget() = 0
  X = GetGadgetAttribute(0,#PB_Canvas_MouseX)
  Y = GetGadgetAttribute(0,#PB_Canvas_MouseY)
  Debug  "Mouse Canvas = "+Str(X)+":"+Str(Y)+"  <<>>  Mouse Windows = "+Str(WindowMouseX(0))+":"+Str(WindowMouseY(0))
EndIf

Until Event= #PB_Event_CloseWindow
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: CanvasGadget VS imageGadget

Message par kernadec »

merci, Atomo
c'etait écrit dessus GetGadgetAttribute, je le voyais même pas .. :?
Pfff... eh, bien, j'ai encore du chemin à parcourir...

Cordialement
Répondre