
GT

cooper (./2) :
Ok j'ai une question boss
Comment utiliser la super librairie PNG de chez Cerebral Vortex en GFA ?
PROCEDURE redraw(f&,x&,y&,w&,h&)
LOCAL rx&,ry&,rw&,rh&,rdx&,rdy&,rdw&,rdh&,index&,xw&,yw&,ww&,hw&,fen&,yz&,hz&
fen&=f&
rdx&=x& ! Coordonn‚es rectangle … redessiner
rdy&=y&
rdw&=w&
rdh&=h&
~WIND_GET(fen&,4,xw&,yw&,ww&,hw&)
yz&=yw&+OB_H(adr_wmenu%,2)
hz&=hw&-OB_H(adr_wmenu%,2)
HIDEM
~WIND_UPDATE(1) ! Bloquer les fonctions de la souris
' Demande les coord. et dimensions du 1ø rectangle de la liste
~WIND_GET(buf&(3),11,rx&,ry&,rw&,rh&)
WHILE (rw& OR rh&) ! Tant qu'il y a largeur ou hauteur...
' Si intersection des deux zones
IF RC_INTERSECT(rdx&,rdy&,rdw&,rdh&,rx&,ry&,rw&,rh&)
' On commence par afficher la barre de menu
~OBJC_DRAW(adr_wmenu%,1,8,rx&,ry&,rw&,rh&)
CLIP rx&,ry&,rw&,rh& ! Clipping ON
'
GRAPHMODE 0
DEFFILL 0,0,0
PBOX xw&,yz&,xw&+ww&-1,yz&+hz&-1
TEXT xw&+10,yz&+10,"HELLO WORLD !"
'
CLIP OFF
ENDIF
' Rectangle suivant
~WIND_GET(fen&,12,rx&,ry&,rw&,rh&)
WEND
~WIND_SET(hwind&,2,CARD(SWAP(V:titre$)),CARD(V:titre$),0,0)
~WIND_UPDATE(0) ! D‚bloquer les fonctions de la souris
SHOWM ! Rappeler la souris
RETURN
Playmobil (./16) :
Merci GT, mais c'est pas ça !![]()
Playmobil (./16) :
J'ai comparé le code de claude attard (méthode ci dessus, donc PBOX) avec du code de rajah (P.Tonthat), et ce dernier utilise une technique que je métrise pas du tout !
INT{ADD(CONTRL,12)}=vdi_handle1&
INT{INTIN}=1
INT{PTSIN}=MAX(xf&,ADD(xs&,dimmy&))
INT{ADD(PTSIN,2)}=dommy&
INT{ADD(PTSIN,4)}=ADD(xf&,PRED(lf&)) ! ADD(MAX(xf&,ADD(xs&,dimmy&)),PRED(lf&))
INT{ADD(PTSIN,6)}=MIN(ADD(dommy&,taille_fonte&),ADD(yf&,PRED(hf&)))
VDISYS 129,1,2
INT{ADD(CONTRL,12)}=vdi_handle2&
VDISYS 129,1,2
Nalfus (./20) :
Peut-être un handle VDI pour l'écran physique (visible) et un autre pour un écran virtuelle (off-screen - v_opnbm() ) si c'est un de ses jeux.
PROCEDURE vsf_color(color%)
INT{ADD(CONTRL,2)}=0
INT{ADD(CONTRL,6)}=1
INT{ADD(CONTRL,12)}=vhandle%
INT{ADD(INTIN,0)}=color%
VDISYS 25
RETURN
> PROCEDURE v_bar(cx1&,cy1&,cx2&,cy2&)
INT{ADD(CONTRL,12)}=vdi_handle&
INT{PTSIN}=cx1&
INT{ADD(PTSIN,2)}=cy1&
INT{ADD(PTSIN,4)}=cx2&
INT{ADD(PTSIN,6)}=cy2&
VDISYS 11,0,2,1
RETURN