initial commit

This commit is contained in:
root
2023-06-12 09:14:09 +02:00
commit b4912f303e
2545 changed files with 209350 additions and 0 deletions

View File

@@ -0,0 +1,325 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Documentation VISION (LDV) : Recommandations</title>
</head>
<body background="images/conc2.gif" bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="kitdev.htm"><img
src="images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
height="26"></a><a href="vapi/index.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->03/06/01<!--webbot
bot="Timestamp" i-checksum="12434" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>7.
R E C O M M A N D A T I O N S</strong></font></p>
</td>
<td align="center" width="17%">&nbsp; <!--webbot
bot="HTMLMarkup" startspan --><A HREF="http://www.estat.com/getstats?serial=1390118421">
<IMG SRC="http://perso.estat.com/cgi-bin/perso/1390118421?page=DocVisionLDV"
BORDER=0></A>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</table>
</center></div>
<hr>
<p>M<EFBFBD>me si la gestion et la programmation des LDV reste simple,
elle doit respecter quelques r<>gles de bon sens, on ne peut tout
de m<>me pas se permettre n'importe quoi ! Voici quelques r<>gles
et eclaircirssements sur quelques points pouvant <20>tre troublant
lorsque l'on programme ses premiers LDV:</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="5%"><strong>#</strong></td>
<td align="center" width="95%"><strong>Recommandation /
Conseil</strong></td>
</tr>
<tr>
<td align="center" width="5%"><strong>1</strong></td>
<td width="95%">Si vous <20>crivez un LDV, envoyez le moi !
J'aimerais bien que le site de <em><strong>VISION</strong></em>
centralise tous les LDV cr<63>es. V<>rifiez aussi que votre
LDV n'est pas compil<69> avec les informations de Debug !
Cela ne servirait <20> rien sinon <20> en r<>duire les
performances !</td>
</tr>
<tr>
<td align="center" width="5%"><strong>2</strong></td>
<td width="95%">Il serait sympa et profitable <20> tout le
monde de fournir les sources du LDV avec celui-ci.. Cela
peut donner de bonnes id<69>es <20> certains...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>3</strong></td>
<td width="95%">N'oubliez pas qu'au travers des fonctions
que <em><strong>VISION</strong></em> appelle, vous avez
un acc<63>s direct <20> la m<>moire interne <20> <em><strong>VISION</strong></em>.
Donc si vous faites un peu n'importe quoi avec les
pointeurs pass<73>s, <em><strong>VISION</strong></em> a
toutes les chances de planter t<>t ou tard...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>4</strong></td>
<td width="95%">Si vous utilisez <a href="vapi/index.htm">VAPI</a>
(conseill<6C> !), la m<>me remarque s'applique, la variable
Vapi globale du LDV pointe directement sur la m<>moire de
<em><strong>VISION</strong></em> et si vous <20>crivez dans
cette structure, c'est votre LDV qui risque de planter !
Je vous laisse imaginer les d<>g<EFBFBD>ts si vous modifiez
l'adresse de la fonction <a href="vapi/pr.htm#PrSetProg">PrSetProg</a>
et que vous l'appelez ensuite !</td>
</tr>
<tr>
<td align="center" width="5%"><strong>5</strong></td>
<td width="95%">L'ERREUR <20> ne pas commettre dans la
fonction <a href="descrip.htm#run">Run</a> est d'allouer
vous-m<>me la m<>moire pour l'image pass<73>e dans le
param<61>tre out. Pourquoi ? En faisant cela, d<>j<EFBFBD> vous
<20>crasez le pointeur que <em><strong>VISION</strong></em>
a d<>j<EFBFBD> allou<6F> pour cela, mais en plus d<>s que <em><strong>VISION</strong></em>
voudra l'utiliser, cela va planter. En effet, votre LDV
est en gros &quot;un PRG&quot; lanc<6E> par <em><strong>VISION</strong></em>
et termin<69> lorsque <em><strong>VISION</strong></em>
(plus pr<70>cisemment le gestionnaire LDG) le d<>cide. A ce
moment, le compilateur ou le syst<73>me lib<69>rera la
m<>moire que ce module avait allou<6F>e, m<>me si vous ne
le faites pas explicitement. C'est pourquoi c'est
toujours <em><strong>VISION</strong></em>, par
l'interm<72>diaire la fonction <a href="descrip.htm#prerun">PreRun</a>
qui allouera la m<>moire pour le LDV puisqu'il s'en
servira ensuite. La fonction <a href="descrip.htm#prerun">PreRun</a>
est vraiment essentielle !</td>
</tr>
<tr>
<td align="center" width="5%"><strong>6</strong></td>
<td width="95%">Si vous utilisez la fonction <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> de <a
href="vapi/index.htm">VAPI</a> (vraiment TRES conseill<6C>
<20> moins que votre LDV ne soit fulgurant !), <20>vitez de
l'appeler trop souvent, comme par exemple <20> chaque
it<69>ration de boucle, cela ne sert <20> rien (si <20>a se
trouve le pourcentage n'a m<>me pas chang<6E> !) et cela va
ralentir inutilement votre LDV. Faites pr<70>c<EFBFBD>der cet
appel d'un test du style <strong>if ( ( ++iter &amp; 0x0F
) == 0x0F )</strong>, cela aura pour effet d'appeler la
fonction de progression seulement une fois sur seize, ce
qui devrait <20>tre amplement suffisant.</td>
</tr>
<tr>
<td align="center"><strong>7</strong></td>
<td>Les fonctions <a href="vapi/pr.htm#PrSetProg">PrSetProg</a>
et <a href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a> de <a
href="vapi/index.htm">VAPI</a>, rendent temporairement la
main <20> l'AES. Cela permet de pouvoir d<>placer les
fen<65>tres <20> ce moment. C'est aussi une des raisons pour
lesquelles il faut l'appeler un peu... mais pas trop !</td>
</tr>
<tr>
<td align="center" width="5%"><strong>8</strong></td>
<td width="95%">Si votre LDV est param<61>trable (au plus 4
param<61>tres), vous devez utiliser un <a
href="descrip.htm#fichier ini">fichier INI associ<63></a>.
Je vous recommande d'associer syst<73>matiquement un
fichier INI <20> votre LDV, c'est vraiment tr<74>s pratique
pour les traductions et pas difficile du tout ! Si votre
LDV n<>cessite vraiment une saisie de param<61>tre tr<74>s
sp<73>cifique, vous pouvez d<>finir la fonction <a
href="descrip.htm#getparams">GetParams</a> dans votre
LDV.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>9</strong></td>
<td width="95%">Si vous utilisez un <a
href="descrip.htm#fichier ini">fichier INI</a>, votre LDV
doit contr<74>ler la validit<69> des param<61>tres qui lui sont
pass<73>s et ne pas se vautrer lamentablement si un d'eux
est hors limites... Dans un tel cas, renvoyez simplement
le code d'erreur <a href="defines.htm#ELDV">ELDV_INVALIDPARAMETER</a>.
N'oubliez pas que le <a href="descrip.htm#fichier ini">fichier
INI</a> est un fichier texte, ais<69>ment modifiable par un
utilisateur...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>10</strong></td>
<td width="95%">A priori les nombres flottants, bien que
pr<70>vus pour une extension future, ne sont pas
n<>cessaires au param<61>trage des LDV. Imaginons que vous
deviez saisir une valeur entre 0.0 et 1.0, il vous suffit
d'indiquer comme plage de variation [0;1000] dans le <a
href="descrip.htm#fichier ini">fichier INI</a> (ce qui
vous donne tout de m<>me une pr<70>cision sup<75>rieure <20>
celle pouvant <20>tre saisie par l'interface), de convertir
le param<61>tre pass<73> par <em><strong>VISION</strong></em>
en float puis de le diviser par 1000. Il doit exister des
cas tordus o<> il devient n<>cessaire d'utiliser des
flottants mais on doit s'en sortir tr<74>s bien dans 99%
des cas !</td>
</tr>
<tr>
<td align="center" width="5%"><strong>11</strong></td>
<td width="95%">Je vous conseille, pour des
consid<69>rations de performance m<>moire, de toujours
utiliser les flags <a href="defines.htm#LDVF">LDVF_OPINPLACE</a>
et <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>.
Allouez la m<>moire que vous voulez dans le LDV (si vous
le pouvez...), et lib<69>rez la apr<70>s son ex<65>cution.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>12</strong></td>
<td width="95%">Si vous ne travaillez que sur les lignes
et colonnes, utilisez le flag <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>.
La fonction VDI vr_cpyfm par exemple est faite pour cela.
Utiliser le flag <a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a>
ou <a href="defines.htm#LDVF">LDVF_STDFORMAT</a>
obligerait <em><strong>VISION</strong></em> <20> vous
allouer de la m<>moire inutilement (d'autant plus que les
fonctions VDI travaillent TOUJOURS sur le format
sp<73>cifique de la machine : <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>
!)</td>
</tr>
<tr>
<td align="center" width="5%"><strong>13</strong></td>
<td width="95%">Si vous <20>tes amen<65> <20> manipuler les
indices TOS et/ou VDI, :<ul>
<li>Vous pouvez travailler par ligne ou paquet de n
lignes :<br>
Utilisez le format <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>,
et les fonctions de <a href="vapi/ra.htm">l'interface
Raster</a>. Cela minimisera la m<>moire <20>
allouer</li>
<li>Vous <20>tes oblig<69> d'avoir acc<63>s <20> n'importe
quel index <20> n'importe quel moment:<br>
Utilisez le format <a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a>,
et les fonctions de <a href="vapi/ra.htm">l'interface
Raster</a>. <em><strong>VISION</strong></em>
convertira l'image du format sp<73>cifique vers le
format ATARI bit-plan avant d'appeler <a
href="descrip.htm#prerun">PreRun</a> ou <a
href="descrip.htm#run">Run</a>.</li>
</ul>
</td>
</tr>
<tr>
<td align="center" width="5%"><strong>14</strong></td>
<td width="95%">M<EFBFBD>me si l'utilisateur a s<>lectionn<6E> un
bloc comme zone d'application du LDV sur l'image, vous
n'<27>tes pas limit<69> <20> la seule zone d<>finie par ce
bloc. Vous avez acc<63>s <20> toute l'image, voire m<>me plus
si vous d<>cidez de modifier sa taille (champs
out-&gt;fd_w et out-&gt;fd_h de la fonction <a
href="descrip.htm#prerun">PreRun</a>). Par contre,
n'oubliez pas de mettre <20> jour les champs x1, x2, y1 et
y2 de la structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
fournie par la fonction <a href="descrip.htm#prerun">PreRun</a>,
afin que le buffer UNDO permette de revenir en arri<72>re.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>15</strong></td>
<td width="95%">Si vous utilisez Magic Mac, vous allez
peut <20>tre avoir le probl<62>me &quot;classique&quot; du <a
href="../../download/fpupatch.lzh">FPUPATCH</a> : en
effet, la librairie PCSTDLIB.LIB du compilateur PURE C
provoque un blocage lors du lancement du programme (vrai
pour <em><strong>VISION</strong></em> et ses LDV). Il
faut donc le passer au travers de <a
href="../../download/fpupatch.lzh">FPUPATCH</a> ou encore
patcher directement le fichier PCSTDLIB.LIB.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>16</strong></td>
<td width="95%">Depuis la version 4.0d de <em><strong>VISION</strong></em>,
vous pouvez obtenir des statistiques de performances
survotre LDV. Il suffit pour cela d'ins<6E>rer la ligne
ShowPerf = 1 dans la section [LDV] de VISION.INI. Apr<70>s
ex<65>cution du LDV, <em><strong>VISION</strong></em>
affichera diverses statistiques sur les temps de
traitement du LDV, vous permettant d'optimiser les
parties critiques.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="kitdev.htm"><img
src="images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
height="26"></a><a href="vapi/index.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->03/06/01<!--webbot
bot="Timestamp" i-checksum="12434" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>7.
R E C O M M A N D A T I O N S</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>