1

Bonjour tout le monde !

Je voudrais savoir si quelqu'un saurait m'aider un peu sur ce qui concerne le clipping avec la VDI (vs_clip). Dans l'état actuel des choses, j'ai une boîte de dialogue (d'un RSC) en fenêtre (j'utilise faceVALUE) qui sert de sélecteur de couleur en TrueColor. J'ai une BOX sur laquelle je dessine l'aperçu de la couleur sélectionnée. Pour l'instant, quand je fais passer une autre fenêtre par dessus celle-ci, le rectangle de couleur "bave" un peu partout... beurk embarrassed) Il s'agit bien d'un problème de clipping, non ?

Et puis chtite question comme ça : est-ce que chaque fenêtre GEM possède forcément une workstation VDI ?

En vous remerciant par avance,

Mateo

2

Mateoooooooooooooo !!!!! Bienvenu ici !!!!!!!!!!!!!!!! smile

Ce n'est pas en principe la fenêtre qui possède un opnvwk mais le programme lui-même. On peut ouvrir autant de stations virtuelles VDI que l'on veut, mais ce n'est pas lié avec la présence d'une fenêtre (sauf si Face Value gère ça comme un cinguouin, AES != VDI).

Je dirai que c'est moins un problème de clipping plutôt que coordonnées correctes : si la couleur dépasse > index 15, alors je suppose que tu dessines via la VDI un rectangle par dessus la BOX : il faut récupérer les coordonnées de la BOX (attention, via OBJC_OFFSET, car les OB_X et OB_Y sont toujours relatifs à l'objet parent). Pour le vs_clip(1 pour réserver, 0 pour libérer). Dans ta routine de redraw, tu dois intégrer le fait qu'il y a un affichage à faire.

Voir dans les sources du Troll, fonction de redraw, en particulier le dessin du texte exemple, pour le sélecteur de fontes. C'est un bon exemple.

3

Mateooo : ça n'a rien à voir, mais est-ce que Face Value est vraiment intéressant pour coder en GEM ?
avatar
Site perso : http://strider.untergrund.net/
Atari STF / STe / Mega STE / Falcon030 / Falcon CT60

4

Petite chose en passant, ne pas oublié qu'un objet RSC les coordonnées sont données x,y,w,h et le Vdi c'est x,y,x1,y1, donc attention au confusion. Ensuite ne pas oublié non plus, qu'il est interdit de redessiner directement un objet dans un fichier .RSC, il faut s'envoyer un message de redraw avec les coordonnées a redessiné, pour etre sur de pas gribouillé sur un truc qui nous concerne pas. Dernier point si c'est un objet, il faut le redessiné avec objc_draw qui permet en passé de fixé les limites de clipping.


GT Turbo (C.V.S.D.) octopus

P.S. : En passant c'est quoi ce truc facevalue ?
avatar
Accrochez vous ca va être Cerebral !!

5

Strider : Et bien sincèrement, je trouve que c'est un outil extrêmement puissant. Je n'ai pas les formidables compétences de Rajah Lone pour programmer proprement en GEM avec le GFA, donc ça m'aide beaucoup. faceVALUE a été conçu par des gens qui _savent_ programmer en GEM ce qui fait que je n'ai jamais eu de problème avec. Et puis il y a tout un tas de librairies très complètes avec qui permettent de faire de choses très sympas.

Rajah : Entendu, j'irai mettre mon nez dans les sources du Troll pour ma culture grin Merci ! En plus, j'ai envie de me faire mon propre sélecteur de fontes pour Organizer donc ça tombe très bien !

GT Turbo : C'est une "librairie" de développement GEM pour le GFA. En gros : tu construis un RSC avec ton éditeur favoris, et faceVALUE te construit un squelette d'application fonctionnel dans lequel il gère tout ce qui est relatif au GEM. Bon, ça c'est vraiment ce qu'il y a de plus simple, après, tu peux évidemment en faire ce que tu veux !

A pluche smile

6

Chalut smile

Je crois avoir résolu le problème. En fait, lors de l'appel de la procedure pour le dessin par dessus les objets du RSC, faceVALUE fait appel à un 'CLIP ...' sauce GFA qui est donc relatif au handle de la workstation du GFA. J'ai donc utilisé ce handle (V~H) pour mes appels VDI et ça semble fonctionner parfaitement. Mais je suis quand même curieux : en farfouillant dans les entrailles de faceVALUE, j'ai vu qu'il utilise un truc nommé 'flydials' que j'ai également retrouvé dans RSM. Et justement, faceVALUE ouvre une workstation VDI pour ce truc. Quelqu'un sait ce que c'est ?

Merci !!!

Tchaoooooo

7

V~H ? argllllllllll !!!!!!! à éviter autant que possible... les routines VDI que gère le GFA ne sont pas très sûres. Utilise le handle d'une station que tu as ouverte toi-même (via fonction opnvwk ou celle de faceVALUE, vu que c'est à toi/ton programme). et emploie les vs_clip aussi faites a mano, il vaut mieux.