1

Bon, ce topic est vraiment un desèrt a part des recopies de news de chez DHS et sinon c'est poster en micro Atari. Donc amis developpeurs ou ceux qui cherchent a develloper, pas de question ? Personne n'a un sujet sur lequel il est en train de perdre une partie de sa santé mentale ? Pour l'asm je peux aider, en Gfa je crois qu'on a plusieurs très bon developpeurs ici, pour le C..... heu comment dire vous m'oubliez smile


GT octopus
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

2

Ok j'ai une question boss tongue

Comment utiliser la super librairie PNG de chez Cerebral Vortex en GFA ? grin

dehors
---------------------------------
Cooper / Paradize
STf/Mega ST/STe/F030/Lynx
---------------------------------
Compilations de groupes ataristes français : https://www.youtube.com/channel/UCEBFi9nRczTRjRSvmy-QF8g

3

cooper (./2) :
Ok j'ai une question boss tongue

Comment utiliser la super librairie PNG de chez Cerebral Vortex en GFA ? grin

dehors


Petit malin smile Il y a des jours féries qui arrivent, je vais en profiter pour nettoyer la routine et en faire une version Gfa smile


GT Chaud top
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

4

Non mais blague à part, on a pas des masses de formats PC lisibles de base sur F030, et même si c'est de l'affichage 256 couleurs et non compressé, ça serait déjà pas mal smile

Et idem, même si c'est qu'une beta il est toujours temps d'updater cette version plus tard wink
---------------------------------
Cooper / Paradize
STf/Mega ST/STe/F030/Lynx
---------------------------------
Compilations de groupes ataristes français : https://www.youtube.com/channel/UCEBFi9nRczTRjRSvmy-QF8g

5

Deja que le compressé fonctionne smile Je vais pas me faire c... a retirer des morceaux smile

Mais sinon je dois pouvoir faire du GIF, je dois avoir un module qui traine et serait donc aussi possible de l'utiliser en Gfa et serait peut etre un peu plus rapide pour un Falcon de base.

On va faire plus simple qui a besoin de lire quels formats en Gfa ?


GT Multiformats top
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

6

Ok je persiste, GIF ou PNG et c'est parfait grin
---------------------------------
Cooper / Paradize
STf/Mega ST/STe/F030/Lynx
---------------------------------
Compilations de groupes ataristes français : https://www.youtube.com/channel/UCEBFi9nRczTRjRSvmy-QF8g

7

Sachant que l'on peut intégrer de l'asm en GFA via INLINE grin

boing

8

exactement smile



GT top
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

9

Vu la taille de la routine peut etre meme pas besoin d'un inline !!



GT Très petit !!
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

10

Tu penses à quoi ?

11

Une chaine de caracteres smile ou quelques datas. A voir smile


GT Petit
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

12

J'avais pas pensé à la chaine de caractère top

13

Bon ca devient super bon :

Sans la palette :

dEgP

et avec la palette :
6waY

avec un zoom de 3.

Les gifs entrelacés sont pas encore supportés, mais on verra cela pour une version 2.0. et pour les animés cela devrait juste sortie la première image.


GT smile
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

14

Moi ! Moi ! J'ai une question en GFA ! boing

Mais ça concerne le GEM/AES ! grin

Pour faire simple, si par exemple je reprend la routine de Claude Attard pour faire un REDRAW d'une fenêtre :


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

Et bien celà fonctionne très bien sur un STE ou Falcon de base, la fenêtre est bien blanche !

MAIS sur un FALCON avec MINT+MYAES ou XAAES, bhé celà ne fonctionne pas ! grin

Le fond de la fenetre reste désespérement vide et se remplie au fur et a mesure de tout ce qui peux passer devant ! triso
Par contre le TEXT est bien pris en compte... C'est vraiment le PBOX qu'il n'aime pas ! mur


Voilà pour la question ! top

15

Ton pb vient peut etre de ton clip.

Le clip fait partie de la VDI, donc coordonnées X,Y,X1,Y1 or tu donnes les memes coordonnée qu'objc_draw qui fait partie de l'AES, et les coordonnées sont X,Y, Largeur, hauteur.

Vérifie tout cela smile

Car Atari a bien m... (Pour changer) deux parties qui sont très régulièrement imbriqués avec un systèmes de coordonnées différents O_o

GT Peut etre avec des mauvaises coordonnées.
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

16

Merci GT, mais c'est pas ça ! grin

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 ! roll

17

Playmobil (./16) :
Merci GT, mais c'est pas ça ! grin


Mais il y a pas de pb de coordonnées, tu en est sur ?
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 ! roll


Peux tu poster un morceau de code de notre ami Rajah (Qui passe en douce ici, et a qui je fais un gros bisous smile Tu as toujours ton tapis de souris amiga ? smile )

Histoire de pouvoir faire une comparaison, cela pourra servir a pleins de gens.

GT smile

P.S. je fais du gem mais en asm, donc je vais éviter de poster ici smile
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

18

En faite, c'est la fonction PBOX de Claude Attard qui ne fonctionne pas sous Mint... Pas testé sous Magic, je ne l'ai pas...

Et le code de rajah est tellement condensé et sous divisé en procedure et fonction que c'est assez difficile de te trouver un morceau... grin Une chose est sur, il n'utilise pas du tout de PBOX pour effacer la fenêtre et avoir un joli fond blanc ! grin

Mais un truc de ce style
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

Moins limpide qu'un PBOX, n'est ce pas ? boing


Si j'ai bien compris, il dessinne dans l'écran virtuel, et fait une sorte de RC_COPY avec sa formule Magique ! magic

Donc j'ai encore du pain sur la planche ! MDR

19

Vdisys si mes souvenirs sont bon permet d'appeller une fonction Vdi directement.

La 129 est TADAM ::

Clip !!! Peut etre que la fonction du Gfa foire et Rajah le savait, donc il a utiliser directement le VDI.

Le truc marrant c'est qu'il a deux identifiants de stations graphiques. La premiere est peut etre celle du Gfa et la seconde la sienne. Enfin la ce ne sont que des suppositions.


GT Clippé smile
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

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.

21

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.


Tout a fait possible smile

GT Clipper
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

22

Faut voir si PBOX utilise la ligne A ou pas. Sur STE ou Falcon, c'est encore permis, mais pour coder propre, tout appel de fonction qui fricote avec la LineA : c'est caca.

Le mieux est d'utiliser la VDI. Je récupère un handle VDI au début avec un appel open_virtualscreen. Mais tu peux utiliser celui du GFA ("V~H"). Ce handle est nécessaire pour tout appel de fonction VDI. Ici, c'est vs_clip (pour CLIP). Mes noms des fonctions GFA correspondent aux noms des fonctions VDI.

Donc si tu veux coder propre, faut étudier http://toshyp.atari.org/

Pour vs_clip() : http://toshyp.atari.org/en/00700a.html#vs_clip
Tu verras dans le binding la correspondance avec le code VDISYS.

Pour ton rectangle, il faut chercher à v_bar() : http://toshyp.atari.org/en/007005.html#v_bar

23

ok merci rajah !

J'ai bien ouvert mon virtualscreen, mais je m'entété a utiliser le PBOX !

Je vais donc retourner réétudier ce fameux v_bar, qui me semble être la clé de la solution ! top

24

Bon après vérification PBOX ne fait pas partie de la LineA...

J'ai essayé TA solution de vsf_color et v_bar que j'ai déniché dans JOE...
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


Alors, sur machine NON MINT, ça me remplit la fenêtre avec un joli fond noir, alors que l'appel a vsf_color est bien 0... couleur de fond... J'ai beau tester 1, 2, 3 idem !

Sur machine avec MINT => même problème qu'avec PBOX, c'est à dire : RIEN !

Je croit que je vais devoir commencer le programme ainsi :

(code logique)
IF mint|=TRUE
FORM_ALERT("VOUS ETES SOUS MINT | Veuillez le désinstaller avant de lancer ce programme !!!")
QUIT
ENDIF

lol

Bon a un moment je me suis dit que celà venait peut-être du compilateur, mais que nenni ! J'ai recompilé JOE , et tout fonctionne à merveille, donc je loupe un truc, mais où ???? 14800 Lignes a décortiquer dans son code, j'ai mal au crane ! picol mur

25

Il y a peut etre un soucis avec ton vsf color. Ton handle est sur un long hors alors qu'ils sont sur 2 octets. Et il a pas le meme nom que ta 2 procedure.

GT Sur 2 octets
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

26

Le handle VDI doit être le même. Sur le code que tu cites, il est différent (et en plus en LONG% alors qu'il devrait être en INT&).

Dans Joé, j'utilise 2 handles VDI (et il y a celui du GFA), donc mauvais exemple. En plus d'être du très très vieux code (1998) malformé avec plein d'erreurs.
14000 lignes à lire, c'est pas la mort, surtout quand les procédures sont repliées. Litchi est un meilleur exemple en terme de VDI.

Si tu veux lire un source plus petit, il y a les VDI_FX. Justement, le FIRE.GFA utilise le dessin d'un rectangle et l'affichage de texte : http://ptonthat.perso.neuf.fr/blog/index.php?2012/12/25/78-vdi-effects
Il y a aussi le source de Sygne, qui est pas mal pour l'affichage d'image et de texte.

27

Vive le copié collé ! grin

non, en faite c'était comme ça dans mon PRG, et en lisant vos commentaires, je me suis dit : Bon sang ! Mais c'est bien sur ! top

Mais non... picol

J'ai plusieurs variable dans mon prg, et me suis dit : Merde me suis planté ! Je remet donc vdi_handle&, au lieu de vhandle% ===> POUF ! BOMBES ! boing


Je rate un truc, j'en suis sur !

Initialisations ? fou

En gros là, je recommence à 0 ! Mais ça me prend le chou a un point, que je me dit : J'ABANDONNE !!!

Mais non, tout les 2h00 entre jardinage et peintures à la maison, je me dit : ça doit être ça !!!

Et non ! ! boing

Playmob IL devient fou ! picol

(ref à GT ! top )

28

Soit tu demandes le vdi_handle& avec la fonction qui va bien (v_opnvwk(), voir au début du programme), soit tu utilises celui du GFA (vdi_handle&=V~H, ce qui sera plus simple pour ta pomme).

Parce là, on dirait que ton vdi_handle& est égal à 0, donc c'est pas bon du tout. Un handle est toujours positif et non nul, sinon sa valeur signifie une erreur.

29

On a tous deja connu cela. Pour ecrire la routine PNG j'en ai bavé a un point. Imagine j'ai comparé 32000 0 et 1 a la main pour savoir ou ca clochait.....

Pour en revenir a ton code, je suis d'accord avec Rajah (qui est meilleur en Gem que moi) ton handle VDI est pas le bon, ou déconne et si tu base tout sur celui du Gfa ?


GT Planté !!
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

30

ma console vdi est bien ouverte ! ca y'a pas de pets !

elle me retourne une valeur de 4, ou de 12 ou de 18, tout dépend de l'OS et de combien de PRG sont lancés...


Le redraw sous Magic, pose pas trop de soucis :

pova_011.jpg


Mais sous MINT, c'est la cata !, la cata, la catastrophe !

226960Sanstitre1.jpg


Bref, je repartr a 0
J'étudie Blaise, Joe, Fire, et Sygn !

BoBo yeux ! picol