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,248 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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 (VAPI) : Configuration Interface</title></head>
<body background="../images/conc2.gif" bgcolor="#ffffff">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="ra.htm"><img src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="in.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour :&nbsp;18/03/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>CONFIGURATION
INTERFACE</strong></font></p>
</td>
<td align="center" width="17%">&nbsp;&nbsp;<a href="http://www.estat.com/getstats?serial=1390118421">&nbsp;</a>&nbsp;<br></td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Co</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">3</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant
d'acc<63>der <20> la configuration de <em><strong>VISION</strong></em>
(chemins, langues, ...)</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="CoGetLDVPath"></a><strong>Prototype</strong></td>
<td width="85%">char* cdecl <strong>CoGetLDVPath</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un pointeur sur la chaine contenant le
chemin des LDV</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de connaitre le r<>pertoire de
stockage des LDV. Cela permet par exemple de charger un
fichier depuis le LDV (fichier de code DSP, fichier INI,
...). Ce chemin est <20>galement pass<73> en param<61>tre <20> la
fonction <a href="../descrip.htm#getparams">GetParams</a>
(optionnelle).</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%"><a href="index.htm">VAPI</a> vous
retourne un pointeur sur la configuration de <em><strong>VISION</strong></em>.
Vous ne <strong>DEVEZ PAS</strong> modifier les donn<6E>es
accessibles par ce pointeur, si vous en avez besoin,
faites une copie !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="CoGetCurrentLanguage"></a><strong>Prototype</strong></td>
<td width="85%">char* cdecl <strong>CoGetCurrentLanguage</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un pointeur sur la chaine contenant la
langue actuellement utilis<69>e par <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de connaitre la langue courante.
utilis<69> avec <a href="#CoGetLDVPath">CoGetLDVPath</a>,
cela permet de rep<65>rer le fichier INI associ<63> <20> ce LDV
pour cette langue, il suffit de concat<61>ner ces 2
cha<68>nes.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%"><a href="index.htm">VAPI</a> vous
retourne un pointeur sur la configuration de <em><strong>VISION</strong></em>.
Vous ne <strong>DEVEZ PAS</strong> modifier les donn<6E>es
accessibles par ce pointeur, si vous en avez besoin,
faites une copie !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>
</p><div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="CoGetFunctionOptimizations"></a><strong>Prototype</strong></td>
<td width="85%">unsigned long cdecl <strong>CoGetFunctionOptimizations</strong>(void
*function)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Pointeur sur la fonction <a href="index.htm">VAPI</a> dont on veut connaitre les
optimisations et si celles-ci seront utilis<69>es</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un mot long dont les bits ont les
significations suivantes:<br>
Bit 0 positionn<6E> : Cette fonction poss<73>de une
optimisation en code 68030<br>
Bit 1 positionn<6E> : Cette fonction poss<73>de une
optimisation en code DSP 56001</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de savoir si une fonction poss<73>de
les optimisations sp<73>ciales afin de pouvoir l'indiquer
dans la fen<65>tre de progression (voir la fonction de <a href="pr.htm">l'interface Progress</a> : <a href="pr.htm#PrOptimize">PrOptimize</a>). Ce n'est pas
super utile mais <20>a en jette !</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si la machine sur laquelle cet appel est
effectu<74> ne poss<73>de pas le processeur ou le DSP en
question, la fonction retournera qu'elle ne poss<73>de pas
cette optimisation, c'est un peu logique puisque qu'elle
ne risque pas d'<27>tre utilis<69>e...</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<hr>&nbsp;
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="CoGetProcessors"></a><strong>Prototype</strong></td>
<td width="85%">unsigned long cdecl <strong>CoGetProcessors</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Demande <20> <span style="font-style: italic; font-weight: bold;">VISION</span> quels processeurs sont <20> disposition</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un mot long dont le masque de bits a les
significations suivantes:<br>0x02 : Un 68030 ou mieux est pr<70>sent<br>0x20 : Un FPU (68881 ou mieux) ou mieux est pr<70>sent<br>0x200: Un DSP 56001 est pr<70>sent</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de pr<70>parer le LDV <20> utiliser ses routines sp<73>cifiques selon les processeurs disponibles.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le masque remont<6E> peut <20>tre filtr<74> par <span style="font-style: italic; font-weight: bold;">VISION</span>
si dans le fichier VISION.INI les variables Hide030, HideFPU ou HideDSP
sont position<6F>es <20> 1 Cela est pratique pour simuler le fonctionement du
LDV sur un hardware diff<66>rent.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="ra.htm"><img src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="in.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></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" -->18/03/18<!--webbot
bot="Timestamp" i-checksum="12484" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>CONFIGURATION
INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,379 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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 (VAPI) : INI Interface</title></head>
<body background="../images/conc2.gif" bgcolor="#ffffff">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="co.htm"><img src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="27" hspace="2" width="32"></a><a href="lo.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>INI
INTERFACE</strong></font></p>
</td>
<td align="center" width="17%">&nbsp;&nbsp;</td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">In</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">6</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant de
manipuler des fichiers au format INI. Le nombre de
fichiers INI pouvant <20>tre g<>r<EFBFBD>s sumultan<61>ment est de
3.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InOpen"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InOpen</strong>(char
*file)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> file : Nom du
fichier INI </td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Si &gt;= 0 : un identifiant de fichier
INI<br>
Si &lt; 0, il n'y a plus d'identifiant INI disponible
(les 3 sont d<>j<EFBFBD> utilis<69>s)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">R<EFBFBD>serve un identifiant INI en vue
d'op<6F>rations sur un fichier INI. Si le fichier file
n'existe pas, un identifiant est tout de m<>me renvoy<6F>,
le fichier devra ensuite <20>tre sauv<75> par la fonction <a href="#InSaveAndClose">InSaveAndClose</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InClose"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InClose</strong>(long
hini)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI pr<70>c<EFBFBD>demment renvoy<6F> par <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Succ<63>s<br>
-1 : Identifiant invalide</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Lib<EFBFBD>re l'identifiant de fichier INI. Ne
sauve pas les modifications, pour cela utiliser <a href="#InSaveAndClose">InSaveAndClose</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InSaveAndClose"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InSaveAndClose</strong>(long
hini, char *new_name)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI pr<70>c<EFBFBD>demment renvoy<6F> par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> new_name : nouveau nom de
sauvegarde. NULL si inchang<6E> par rapport <20> l'appel <20> <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Succ<63>s<br>
-1 : Identifiant invalide ou sauvegarde impossible</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">G<EFBFBD>n<EFBFBD>re un fichier INI en validant
d<>finitivement toutes les modifications apport<72>es
depuis l'appel <20> <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InGetKey"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InGetKey</strong>(long
hini, char *section, char *key, char *val_key)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI pr<70>c<EFBFBD>demment renvoy<6F> par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la cl<63><br>
<strong>[OUT]</strong> val_key : buffer destin<69> <20>
recevoir la valeur de la cl<63> en ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Echec : la cl<63> ou la section n'ont
pas <20>t<EFBFBD> trouv<75>es<br>
1 : Succ<63>s, la valeur ASCII de la cl<63> de cette section
est pr<70>sente dans val_key</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Recherche une cl<63> particuli<6C>re dans une
section particuli<6C>re</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InSetKey"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InSetKey</strong>(long
hini, char *section, char *key, char *val_key)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI pr<70>c<EFBFBD>demment renvoy<6F> par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la cl<63><br>
<strong>[IN] </strong>val_key : buffer contenant la
valeur de la cl<63> en ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Echec : la cl<63> ou la section n'ont
pas pu <20>tre cr<63>es ou modifi<66>es par manque de m<>moire<br>
1 : Succ<63>s</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ajoute ou modifie une section et/ou une
cl<63></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si la section ou la cl<63> nexiste pas,
elle est cr<63>e</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InGetOrSetKey"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InGetOrSetKey</strong>(long
hini, char *section, char *key, char *val_key)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI pr<70>c<EFBFBD>demment renvoy<6F> par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la cl<63><br>
<strong>[IN/OUT] </strong>val_key : buffer contenant la
valeur par d<>faut de la cl<63> en ASCII (<strong>[IN]</strong>)
et/ou la valeur lue de la cl<63> (<strong>[OUT]</strong>)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : La cl<63> a <20>t<EFBFBD> relue avec succ<63>s<br>
1 : La cl<63> a du <20>tre cr<63>ee.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de retrouver la valeur d'une cl<63>
dans une section et, si cette cl<63> ou cette section
n'existe pas de la mettre en place avec une valeur par
d<>faut.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Tr<EFBFBD>s pratique !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="InGetKeyFromFile"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>InGetKeyFromFile</strong>(char *file, char *section, char *key, char *val_key)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> file : Nom du
fichier INI<a href="in.htm#InOpen"></a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la cl<63><br>
<strong>[IN/OUT] </strong>val_key : buffer contenant la
valeur par d<>faut de la cl<63> en ASCII (<strong>[IN]</strong>)
et/ou la valeur lue de la cl<63> (<strong>[OUT]</strong>)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : La cl<63> n'a pu <20>tre retrouv<75>e (fichier/section/cl<63> inexistant)<br>
1 : La cl<63> a <20>t<EFBFBD> relue avec succ<63>s.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet
de retrouver la valeur d'une cl<63> dans une section directement sans
cr<EFBFBD>rer la cl<63> comme dans la fonction pr<70>c<EFBFBD>dente (pratique pour juste
relire une valeur ponctuellement)</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Tr<EFBFBD>s pratique !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<font size="3"><br></font><pre><font size="3">Exemple d'utilisation: retrouver une cl<63> propri<72>taire dans un LDV<br>long hini, must_save ;<br>short angle = 90; </font><font color="#000080" size="3"><em>/* Valeur par d<>faut */</em></font><font size="3">
char buffer[256] ;
char *path_ldv, *language ;
path_ldv = Vapi-&gt;</font><a href="co.htm#CoGetLDVPath"><font size="3">CoGetLDVPath</font></a><font size="3">() ; </font><font color="#000080" size="3">/* R<>cup<75>re le chemin courant des LDV */</font><font size="3">
language = Vapi-&gt;</font><a href="co.htm#CoGetCurrentLanguage"><font size="3">CoGetCurrentLanguage</font></a><font size="3">() ; </font><font color="#000080" size="3">/* R<>cup<75>re la langue actuelle */</font><font size="3">
if ( path_ldv &amp;&amp; language )
{
sprintf( buffer, "%s\\%s\\MYLDV.INI", path_ldv, language ) ;
hini = Vapi-&gt;</font><a href="#InOpen"><font size="3">InOpen</font></a><font size="3">( buffer ) ;<br> if ( hini &gt;= 0 )<br> {<br> sprintf( buffer, "%d", angle ) ; </font><font color="#000080" size="3"><em>/* Mise en place de la valeur par d<>faut */</em></font><font size="3">
must_save = Vapi-&gt;</font><a href="#InGetOrSetKey"><font size="3">InGetOrSetKey</font></a><font size="3">( hini, "Parameters", "Angle", buffer ) ;<br> angle = atoi( buffer ) ; </font><font color="#000080" size="3"><em>/* Soit angle vaudra 90 (valeur par d<>faut), soit la valeur donn<6E>e par le fichier INI */</em></font><font size="3">
if ( must_save ) Vapi-&gt;</font><a href="#InSaveAndClose"><font size="3">InSaveAndClose</font></a><font size="3">( hini ) ; </font><font color="#000080" size="3"><em>/* Sauvegarde si la cl<63> n'existait pas */</em></font><font size="3">
else Vapi-&gt;</font><a href="#InClose"><font size="3">InClose</font></a><font size="3">( hini ) ; </font><font color="#000080" size="3"><em>/* Fermeture normale sinon */</em></font><font size="3">
}
}</font></pre>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="co.htm"><img src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="lo.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>INI
INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,177 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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 (VAPI) : Pr<50>sentation</title></head>
<body background="../images/conc2.gif" bgcolor="#ffffff">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="pr.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></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" -->18/03/18<!--webbot
bot="Timestamp" i-checksum="12442" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>V
A P I</strong></font></p>
</td>
<td align="center" width="17%">&nbsp; <!--webbot
bot="HTMLMarkup" startspan --><a href="http://www.estat.com/getstats?serial=1390118421">&nbsp;</a>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</tbody></table>
</center></div>
<hr>
<p><a name="Pr<50>sentation"></a><font size="4"><strong>1.
Pr<EFBFBD>sentation</strong></font></p>
<p>VAPI (<em><strong>VISION's</strong></em> Application
Programmer Interface) est une partie de <em><strong>VISION</strong></em>
destin<EFBFBD>e <20> vous aider dans le d<>veloppement des LDV. Vous
devez bien vous douter qu'en interne <em><strong>VISION</strong></em>
utilise un tas de fonctions permettant la gestion des images
(conversions bit-plan &lt;--&gt; index TOS/VDI, manipulation de
rasters,...) ainsi que des fonctions d'interface utilisateur
(fen<65>tres de progression par exemple).<br>
L'id<69>e de VAPI est de rendre disponible aux LDV ces fonctions
jusqu'i<>i r<>serv<72>es au fonctionnement interne de <em><strong>VISION</strong></em>.
Pour un LDV, l'int<6E>r<EFBFBD>t est double:</p>
<ul>
<li>Son auteur <20>vite de re-d<>velopper des fonctions d<>j<EFBFBD>
existantes</li>
<li>Le LDV s'en trouve plus l<>ger</li>
</ul>
<p>Bien entendu, <em><strong>VISION</strong></em> dispose de
pleins de fonctions (plus ou moins ais<69>es et <20>l<EFBFBD>gantes...), il
s'agit donc de faire un choix pour savoir lesquelles exporter.
D'autant plus que l'on peut imaginer que <font size="3"><em><strong>VISION</strong></em></font>
exporte aussi ses donn<6E>es comme le catalogue, le Browser
d'images, etc...<br>
Etant donn<6E> que cela prend quand m<>me pas mal de temps <20>
concervoir et <20> r<>aliser, je ferais en sorte que <em><strong>VISION</strong></em>
exporte tout d'abord quelques fonctions
"<22>l<EFBFBD>mentaires", puis, si le succ<63>s grandit, d'autres
viendront.</p>
<p>&nbsp;</p>
<p><a name="dev-kit"></a><font size="4"><strong>2. Kit de
d<EFBFBD>veloppement</strong></font></p>
<p>Le kit de d<>veloppement VAPI est identique <20> celui des LDV.
Vous le trouverez <a href="../kitdev.htm">ici</a>.</p>
<p>&nbsp;</p>
<p><a name="use"></a><font size="4"><strong>3. Utilisation</strong></font></p>
<p>Utiliser VAPI depuis un LDV est tr<74>s simple : lorsque <em><strong>VISION</strong></em>
appelle la fonction <a href="../descrip.htm#capacit%E9s">GetLDVCapabilities</a>
du LDV, il vous fournit un pointeur sur une structure de type <a href="struct.htm#VAPI">VAPI</a>. Sans entrer dans le d<>tail,
cette structure rassemble les informations suivantes:</p>
<ul>
<li>Un ent<6E>te de type <a href="struct.htm#VAPI_HEADER">VAPI_HEADER</a></li>
<li>Une liste de fonctions "en vrac". Ces fonctions
sont en fait rassembl<62>es par groupe (<28>galement appel<65>e
interface). Chaque groupe <20>tant termin<69> par une zone
m<>moire non utilis<69>e destin<69>e <20> recevoir d'autres
fonctions du m<>me groupe. Si de nouveaux groupes sont
cr<63>es, ils viendront <20> la fin de cette structure afin
de garantir la compatibilit<69> ascendante.</li>
</ul>
<p>Maintenant, pour utiliser une fonction de VAPI, c'est tr<74>s
simple, imaginez que vous vouliez initialiser le raster image
destination fourni pass<73> en param<61>tre dans la fonction Run,
avec la couleur blanche (en bit-plans ou True Color), il vous
suffit d'ins<6E>rer la ligne suivante:</p>
<p><strong>Vapi-&gt;RaImgWhite( &amp;out-&gt;Raster ) ;</strong></p>
<p>Cela suppose uniquement que vous avez r<>cup<75>r<EFBFBD> le pointeur
Vapi fourni par <em><strong>VISION</strong></em> au travers de <a href="../descrip.htm#capacit%E9s">GetLDVCapabilities</a>
(automatiquement fait par le squelette).</p>
<p>La liste de toutes des fonctions d<>finies par l'interface
VAPI sont disponibles ici. D<>sol<6F>, mais toutes les interfaces
et les noms de fonctions poss<73>dent des noms en anglais !</p>
<p>&nbsp;</p>
<p><a name="interfaces"></a><font size="4"><strong>4. Interfaces
disponibles</strong></font></p>
<p><font size="3">Les interfaces regroupent des fonctions du
m<EFBFBD>me centre d'int<6E>r<EFBFBD>t. Voici la liste (que j'esp<73>re
non-exhaustive) des interfaces actuelles:</font></p>
<table border="1" width="90%">
<tbody><tr>
<td align="center" width="25%"><a href="pr.htm"><font size="3">Progress Interface</font></a></td>
<td align="center" width="25%"><a href="ra.htm"><font size="3">Raster Interface</font></a></td>
<td align="center" width="25%"><a href="co.htm">Configuration
Interface</a></td>
<td align="center" width="25%"><a href="in.htm">INI
Interface</a></td>
</tr>
<tr>
<td align="center"><a href="me.htm">MEM Interface</a></td>
<td align="center"><a href="lo.htm">Logging Interface</a>&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
</tr>
</tbody></table>
<p>&nbsp;</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="pr.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></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" -->18/03/18<!--webbot
bot="Timestamp" i-checksum="12442" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>V
A P I</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,160 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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 (VAPI) : Configuration Interface</title></head>
<body background="../images/conc2.gif" bgcolor="#ffffff">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="in.htm"><img style="border: 0px solid ; width: 46px; height: 26px;" src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" hspace="2"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="struct.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : 26/08/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>LOGGING INTERFACE</strong></font></p>
</td>
<td align="center" width="17%">&nbsp;</td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Lo</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">2</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant
d'envoyer des informations <20> un fichier de logging</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="LoDoLog"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <span style="font-weight: bold;">L</span><strong>oDoLog</strong>(unsigned long level, char* format, ...)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">level:
bitmask composant le niveau de logging du message: LL_FATAL, LL_ERROR,
LL_WARNING, LL_INFO, LL_PERF, LL_MEM, LL_GW2, LL_GW1, LL_DEBUG,LL_KCODE,&nbsp; LL_TMP2, LL_TMP1<br>format: chaine de formatage des donne<6E>s pass<73>es ensuite (identique <20> format de sprintf)<br>...: liste dynamique des param<61>tres <20> passer (cf. <a href="https://en.wikipedia.org/wiki/Ellipsis_%28computer_programming%29">'C' ellipsis</a>)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Nombre d'octets <20>crits dans le fichier de logging</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet
d'envoyer un message vers le fichier de logging typiquement <20> des fins
de debug, d'informations de performance ou d'erreur.<br>Notez que si le param<61>tre level n'est pas dans le bitmask en cours pour le logging <span style="font-weight: bold; font-style: italic;">VISION</span><span style="font-style: italic;"> (</span>voir
fonction suivante), cette fonction retournera tout de suite sans
proc<EFBFBD>der <20> un formatage style printf qui pourrait s'av<61>rer couteux en temps
CPU.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%"><a href="index.htm"></a>Exemple d'utilisation:<br>Vapi-&gt;LoDoLog(LL_DEBUG, "%ld pixels computed or deduced", np) ;<br></td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><a name="LoGetLogLevel"></a><strong>Prototype</strong></td>
<td width="85%">unsigned long cdecl <span style="font-weight: bold;">L</span><strong>oGetLogLevel</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Le bitmask de valeurs LL_... actuellement utilis<69> par <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet
de connaitre le niveau de logging actuel afin de ne pas effectuer de
calcul inutile si le niveau en cours implique que le prochain appel <20>
LoDoLog n'<27>crira rien dans le fichier de logging.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">N'utilisez
cette fonction que si vous avez des calculs un peu lourd <20> effectuer
avant d'appeler LoDoLog. LoDoLog ne fera pas de formatage inutile si le
niveau de logging est insuffisant pour g<>n<EFBFBD>rer un message quelconque
dans le fichier de logging.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou sup<75>rieure</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center><br></center></div>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="in.htm"><img style="border: 0px solid ; width: 46px; height: 26px;" src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent" hspace="2"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="struct.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left"><br></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>LOGGING</strong></font><font size="4"><strong>&nbsp;INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,276 @@
<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 (VAPI) : MEM Interface</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="in.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="32"
height="27"></a><a href="struct.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>MEM
INTERFACE</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>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" colspan="2"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Me</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">3</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant de
manipuler des zones m<>moires, plut<75>t orient<6E> image.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="MeSCopyMemory8"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>MeSCopyMemory8</strong>(char
*dst, char *src, unsigned long nb_elems_dst, unsigned
long nb_elems_src)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone m<>moire <20> <20>crire<br>
<strong>[IN]</strong> src : Pointeur sur la zone m<>moire
<20> recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'<27>l<EFBFBD>ments
8 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'<27>l<EFBFBD>ments
8 bits contenus dans la zone <20> recopier</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Recopie une zone m<>moire constitu<74>e
d'elements 8 bits en respectant le facteur d'<27>chelle
donn<6E> par le nombre d'<27>l<EFBFBD>ments de chaque zone. Tr<54>s
pratique pour effectuer des changements d'echelle sur une
ligne. Ne g<>re pas le chevauchement des zones source et
destination.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Bien que le nombre d'<27>l<EFBFBD>ments soit
cod<6F> sur un entier 32 bits, ce nombre d'<27>l<EFBFBD>ments ne
doit pas d<>passer 65535 pour des raisons d'optimisation
interne sur le facteur d'<27>chelle. Si un CPU 030 ou
sup<75>rieur est d<>tect<63>, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimis<69>e.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="MeSCopyMemory16"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>MeSCopyMemory16</strong>(char
*dst, char *src, unsigned long nb_elems_dst, unsigned
long nb_elems_src)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone m<>moire <20> <20>crire<br>
<strong>[IN]</strong> src : Pointeur sur la zone m<>moire
<20> recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'<27>l<EFBFBD>ments
16 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'<27>l<EFBFBD>ments
16 bits contenus dans la zone <20> recopier</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Recopie une zone m<>moire constitu<74>e
d'elements 16 bits en respectant le facteur d'<27>chelle
donn<6E> par le nombre d'<27>l<EFBFBD>ments de chaque zone. Tr<54>s
pratique pour effectuer des changements d'echelle sur une
ligne. Ne g<>re pas le chevauchement des zones source et
destination.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Bien que le nombre d'<27>l<EFBFBD>ments soit
cod<6F> sur un entier 32 bits, ce nombre d'<27>l<EFBFBD>ments ne
doit pas d<>passer 32767 pour des raisons d'optimisation
interne sur le facteur d'<27>chelle. Si un CPU 030 ou
sup<75>rieur est d<>tect<63>, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimis<69>e.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="MeSCopyMemory32"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>MeSCopyMemory32</strong>(char
*dst, char *src, unsigned long nb_elems_dst, unsigned
long nb_elems_src)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone m<>moire <20> <20>crire<br>
<strong>[IN]</strong> src : Pointeur sur la zone m<>moire
<20> recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'<27>l<EFBFBD>ments
32 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'<27>l<EFBFBD>ments
32 bits contenus dans la zone <20> recopier</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Recopie une zone m<>moire constitu<74>e
d'elements 32 bits en respectant le facteur d'<27>chelle
donn<6E> par le nombre d'<27>l<EFBFBD>ments de chaque zone. Tr<54>s
pratique pour effectuer des changements d'echelle sur une
ligne. Ne g<>re pas le chevauchement des zones source et
destination.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Bien que le nombre d'<27>l<EFBFBD>ments soit
cod<6F> sur un entier 32 bits, ce nombre d'<27>l<EFBFBD>ments ne
doit pas d<>passer 16383 pour des raisons d'optimisation
interne sur le facteur d'<27>chelle. Si un CPU 030 ou
sup<75>rieur est d<>tect<63>, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimis<69>e.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<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="in.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="struct.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>MEM
INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<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) : Sommaire</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%"><img
src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="../images/csom.jpg" alt="Retour au sommaire"
border="0" hspace="2" width="26" height="26"></a><a
href="preambule.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
(VAPI)</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" -->09/09/00<!--webbot
bot="Timestamp" i-checksum="12366" 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>S
O M M A I R E</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>&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%"><img
src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="../images/csom.jpg" alt="Retour au sommaire"
border="0" hspace="2" width="26" height="26"></a><a
href="preambule.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
(VAPI)</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" -->09/09/00<!--webbot
bot="Timestamp" i-checksum="12366" 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>S
O M M A I R E</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,290 @@
<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 (VAPI) : Progress Interface</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="index.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="ra.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>PROGRESS
INTERFACE</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>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" colspan="2"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Pr</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">4</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant d'agir
sur les fen<65>tres de progression de <em><strong>VISION</strong></em>
afin de pr<70>venir l'utilisateur de la progression du
travail</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="PrSetProg"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>PrSetProg</strong>(long
pc)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> pc : pourcentage de
travail accompli (0...100)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Met <20> jour l'indicateur de pourcentage
de la fen<65>tre de progression</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si le param<61>tre pc est hors limite, il
sera ramen<65> <20> sa limite la plus proche. Le type long
est utilis<69> pour assurer la comptabilit<69> entre
compilateurs</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="PrSetText"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>PrOptimize</strong>(long
mask)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN] </strong>mask : masque de
bits ayant la signification suivante:<br>
Bit 0 : des instructions 68030 seront utilis<69>es<br>
Bit 1 : le DSP sera utilis<69></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Indique <20> l'utilisateur que des
optimisations en 68030 et/ou DSP seront utilis<69>es lors
du travail. Cela a pour effet d'afficher un
&quot;030!&quot; ou &quot;DSP!&quot; dans la fen<65>tre de
progression.<br>
Si votre LDV comporte plusieurs phases dans le
traitement, vous pouvez aussi bien valider qu'invalider
l'affichage des optimisations, il suffit d'appeler cette
fonction avec le bon masque en param<61>tre (valable pour
toute version de VAPI <20> partir de la 1.02).</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le type long est utilis<69> pour assurer la
comptabilit<69> entre compilateurs</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="PrOptimize"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>PrSetText</strong>(long
no_line, char *text)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> no_line : index de
la zone de texte concern<72>e (0, 1, ou 2)<br>
<strong>[IN] </strong>text : pointeur sur la chaine de
caract<63>res <20> afficher</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Affiche dans la zone de texte concern<72>e
de la fen<65>tre de progression le texte sp<73>cifi<66></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le type long est utilis<69> pour assurer la
comptabilit<69> entre compilateurs. Si le param<61>tre
no_line est hors limite, rien ne se passe.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="PrSetProgEx"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>PrSetProgEx</strong>(long
pc)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> pc : pourcentage de
travail accompli (0...100)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : L'utilisateur n'a pas demand<6E>
l'annulation de l'op<6F>ration en cours (Run <20> priori)<br>
!= 0 : L'utilisateur a demand<6E> l'annulation</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Met <20> jour l'indicateur de pourcentage
de la fen<65>tre de progression et renvoit en retour une
valeur non nulle si une demande d'annulation a <20>t<EFBFBD>
demand<6E>e par l'utilisateur</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si le param<61>tre pc est hors limite, il
sera ramen<65> <20> sa limite la plus proche. Le type long
est utilis<69> pour assurer la comptabilit<69> entre
compilateurs.<br>
Utilis<69> avec le flag <a href="../defines.htm#LDVF">LDVF_SUPPORTCANCEL</a>,
cette fonction permet de g<>rer l'annulation de la
fonction <a href="../descrip.htm#run">Run</a> d'un LDV.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="index.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="ra.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>PROGRESS
INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>

View File

@@ -0,0 +1,900 @@
<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 (VAPI) : Raster Index Interface</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="pr.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="32"
height="27"></a><a href="co.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>RASTER
INTERFACE</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>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" colspan="2"><strong>R<EFBFBD>sum<EFBFBD></strong></td>
</tr>
<tr>
<td width="15%"><strong>Pr<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Ra</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">16</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ensemble de fonctions permettant de
manipuler des rasters image sous diff<66>rents formats
(bit-plan, True Color, formats ATARI, sp<73>cifique,
standard...).</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaImgWhite"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaImgWhite</strong>(MFDB
*img)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image <20> traiter</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Initialise un raster image avec la
couleur blanche. Le format attendu est le <a
href="../notions.htm#formats d'images">format ATARI</a>.
En mode palette (img-&gt;fd_nplanes &lt;= 8), le raster
est initialis<69> avec des bits mis <20> 0 (index TOS/VDI =
0), l'indice 0 de la palette est g<>n<EFBFBD>ralement
positionn<6E> sur la couleur blanche.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction effectue la transformation
&quot;sur place&quot;.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaIs15Bits"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>RaIs15Bits</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Format True Color sur 16 bits ou
nombre de bits de la r<>solution graphique diff<66>rent de
16<br>
1 : Nombre de plans de la r<>solution graphique sur 16
bits mais codage des pixels sur 15 bits (5 par
composante)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Indique si le codage True Color de la
r<>solution graphique courante est sur 15 ou 16 bits</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Au cas o<> il est important de savoir si
le nombre de bits de codage de la composante verte est
sur 5 ou 6 bits, on peut par cette fonction savoir si
tous les 16 bits du mode True Color sur 16 plans sont
utilis<69>s (la composante verte est alors cod<6F>e sur 6
bits au lieu de 5 et RaIs15Bits renvoie 0) ou si seuls 15
bits sont utiles (la composante verte est alors cod<6F>e
sur 5 bits et RaIs15Bits renvoie 1)</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaTCConvert"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTCConvert</strong>(MFDB
*img)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image <20> traiter</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Transforme un raster True Color au format
sp<73>cifique de la carte graphique en un raster True Color
au <a href="../notions.htm#formats d'images">format ATARI</a></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction effectue la transformation
&quot;sur place&quot;. Si <em><strong>VISION</strong></em>
se rend compte que le format sp<73>cifique de la machine
est le format ATARI, la fonction rend imm<6D>diatement la
main, sans effectuer de traitement. Cette fonction est
l'inverse de <a href="#RiTCInvConvert">RaTCInvConvert</a></td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaTCInvConvert"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTCInvConvert</strong>(MFDB
*img)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image <20> traiter</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Transforme un raster True Color au <a
href="../notions.htm#formats d'images">format ATARI</a>
en un raster True Color au format sp<73>cifique de la carte
graphique</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction effectue la transformation
&quot;sur place&quot;. Si <em><strong>VISION</strong></em>
se rend compte que le format sp<73>cifique de la machine
est le format ATARI, la fonction rend imm<6D>diatement la
main, sans effectuer de traitement. Cette fonction est
l'inverse de <a href="#RiTCConvert">RaTCInvConvert</a></td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaInd2RasterInit"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaInd2RasterInit</strong>(MFDB
*img, long width)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image <20> traiter<br>
<strong>[IN] </strong>width : largeur (en pixels)
maximale <20> ne pas d<>passer. width ne peut d<>passer
32767. Le codage sur un entier 32 bits ne sert qu'<27>
assurer la compatibilit<69> avec les compilateurs 32 bits.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Pr<EFBFBD>pare des op<6F>rations de transfert
d'index vers un raster image au <a
href="../notions.htm#formats d'images">format ATARI</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le param<61>tre width peut para<72>tre
redondant avec img-&gt;fd_w mais il est l<> parce que <em><strong>VISION</strong></em>
positionne toujours img-&gt;fd_w <20> un multiple de 16
(optimisations internes). width permet donc de ne pas
<20>tre limit<69> <20> une largeur multiple de 16 pixels.<br>
<u>Int<EFBFBD>ressant</u> : si width est multiple de 16, la
fonction RaInd2Raster sera bien plus rapide !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaInd2Raster"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaInd2Raster</strong>(unsigned
char*indexes, long nb_indexes)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> indexes : pointeur
sur le tableau d'indices TOS <20> converir vers le raster
pr<70>c<EFBFBD>demment initialis<69> avec la fonction <a
href="#RaInd2RasterInit">RaInd2RasterInit</a><br>
<strong>[IN] </strong>nb_indexes : Nombre d'index dans le
tableau point<6E> par indexes</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Convertit les indices TOS en donn<6E>es
bit-plan du raster</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Une fois l'initialisation faite par la
fonction <a href="#RaInd2RasterInit">RaInd2RasterInit</a>,
on peut appeler cette fonction autant de fois qu'on le
veut afin de transformer le flux de donn<6E>es (indices
TOS) vers le raster image. VAPI m<>morise la derni<6E>re
position atteinte dans le raster. Par exemple :<br>
Vapi-&gt;RaInd2RasterInit( img, wished_width ) ;<br>
for ( y = 0; y &lt; img-&gt;fd_h; y++ )<br>
{<br>
GetTosIndexes( y, tab_indexes, &amp;nb_indexes ) ; /*
Recupere les indices TOS pour la ligne y */<br>
Vapi-&gt;RaInd2Raster( tab_indexes, nb_indexes ) ; /*
Envoi vers le raster au format ATARI bit-plan */<br>
}</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaRaster2Ind"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaRaster2Ind</strong>(short
*pt_bitplan, long nb_pts, long nb_planes, unsigned char
*tos_indexes)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> pt_bitplan :
pointeur sur le d<>but des donn<6E>es raster <20> convertir
(d<>marrage sur un multiple de 16 pixels)<br>
<strong>[IN] </strong>nb_pts : Nombre de points <20>
convertir<br>
<strong>[IN] </strong>nb_planes : Nombre de plans du
raster image. nb_planes ne peut prendre que les valeurs
1, 2, 4, ou 8. Le codage sur un entier 32 bits ne sert
qu'<27> assurer la compatibilit<69> avec les compilateurs 32
bits.<br>
<strong>[OUT] </strong>tos_indexes : pointeur vers le
tableau d'indices TOS recevant les donn<6E>es (doit <20>tre
dimensionn<6E> <20> nb_pts octets)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Convertit des donn<6E>es bit-plan du raster
en indices TOS</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Fonction r<>ciproque de <a
href="#RaInd2Raster">RaInd2Raster</a>. Attention ! A
cause des optimisations internes de la fonction, nb_pts
DOIT <20>tre multiple de 16, sinon vous n'aurez pas les
derneiers points (si vous sp<73>cifiez 35 points, vous n'en
n'aurez que 32 en retour). Il vous faut donc ajuster
nb_pts avant l'appel et sur-dimensionner de 16 points
votre buffer tos_indexes de r<>ception pour <20>tre
tranquille...</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaGetTOS2VDIArray"></a><strong>Prototype</strong></td>
<td width="85%">unsigned char *cdecl <strong>RaGetTOS2VDIArray</strong>(long
nb_planes)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> nb_planes : Nombre
de plans. nb_planes ne peut prendre que les valeurs 1, 2,
4, ou 8. Le codage sur un entier 32 bits ne sert qu'<27>
assurer la compatibilit<69> avec les compilateurs 32 bits.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Pointeur sur le tableau de converion
index TOS --&gt; index VDI</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">R<EFBFBD>cup<EFBFBD>rer le tableau de correspondance
entre les indices TOS et VDI, pour un nombre de plans
donn<6E></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Fonction r<>ciproque de <a
href="#RaGetVDI2TOSArray">RaGetVDI2TOSArray</a></td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaGetVDI2TOSArray"></a><strong>Prototype</strong></td>
<td width="85%">unsigned char *cdecl <strong>RaGetVDI2TOSArray</strong>(long
nb_planes)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> nb_planes : Nombre
de plans. nb_planes ne peut prendre que les valeurs 1, 2,
4, ou 8. Le codage sur un entier 32 bits ne sert qu'<27>
assurer la compatibilit<69> avec les compilateurs 32 bits.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Pointeur sur le tableau de converion
index VDI --&gt; index TOS</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">R<EFBFBD>cup<EFBFBD>rer le tableau de correspondance
entre les indices VDI et TOS, pour un nombre de plans
donn<6E></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Fonction r<>ciproque de <a
href="#RaGetTOS2VDIArray">RaGetTOS2VDIArray</a></td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaGetImgSize"></a><strong>Prototype</strong></td>
<td width="85%">unsigned long *cdecl <font size="3"><strong>RaGetImgSize</strong></font>(long
width, long height, long nplanes)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> width : Largeur de
l'image en nombre de pixels<br>
<strong>[IN]</strong> height : Hauteur de l'image en
nombre de pixels<br>
<strong>[IN]</strong> nplanes : Nombre de plans pour
coder un pixel<br>
Le codage sur un entier 32 bits ne sert qu'<27> assurer la
compatibilit<69> avec les compilateurs 32 bits.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">La taille m<>moire n<>cessaire (en
octets) pour contenir une telle image.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de connaitre la taille d'une image
compte tenu des contraintes d'alignement VDI sur 16
pixels.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaRasterAlloc"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>RaRasterAlloc</strong>(MFDB
*raster)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> raster :
Structure VDI d<>crivant une image</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : OK, l'image a <20>t<EFBFBD> allou<6F>e (point<6E>
par le champ fd_addr de la structure MFDB)<br>
!= 0 : Erreur (m<>moire)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Alloue une image d'apr<70>s les champs
fd_w, fd_h et fd_nplanes de la strucuture MFDB.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si succ<63>s le champ fd_addr pointe vers
les donn<6E>es image (non initialis<69>es), sinon fd_addr
vaut NULL<br>
fd_wdwidth est aussi mis <20> jour. Les autres champs
restent inchang<6E>s.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaRasterFree"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaRasterFree</strong>(MFDB
*raster)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> raster :
Structure VDI d<>crivant une image</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Lib<EFBFBD>re une image pr<70>c<EFBFBD>demment allou<6F>e
par <a href="#RaRasterAlloc">RaRasterAlloc</a></td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Tous les champs de la structure MFDB sont
remis <20> z<>ro apr<70>s lib<69>ration.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaTC15RemapColors"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTC15RemapColors</strong>(<a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> *rc)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> rc : Pointeur sur
une structure de type <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
d<>finissant la table de red<65>finition des couleurs
<20>l<EFBFBD>mentaires, le d<>but du buffer <20> modifier et le
nombre de points</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Modifie la r<>partition actuelle des
couleurs d'une suite de points en True Color 15 bits. Les
champs red, green et blue de la structure <a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> doivent
pointer sur des tableaux de 32 (32 = 2^5) <20>l<EFBFBD>ments,
chaque <20>l<EFBFBD>ment du tableau devant d<>finir la valeur <20>
substituer <20> l'indice de ce tableau, par exemple la
formule:<br>
red[i] = i ; (0 &lt;= i &lt; 32) ne change rien pour la
table de la composante rouge (i sera remplac<61> par i).<br>
Attention ! La nouvelle valeur substitu<74> doit appartenir
<20> l'intervalle [0,31].<br>
Exemple tout b<>te : augmenter la luminosit<69> de 100% sur
toutes les composantes:<br>
new_val = i * 2 ;<br>
if ( new_val &gt; 31) new_val = 31 ; /* Important ! */<br>
red[i] = green[i] = blue[i] = new_val ;</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction travaille sur le <u>format
sp<73>cifique de la machine</u> ! Inutile donc de passer
par les fonctions <a href="#RaTCConvert">RaTCConvert</a>
et <a href="#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaTC16RemapColors"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTC16RemapColors</strong>(<a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> *rc)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> rc : Pointeur sur
une structure de type <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
d<>finissant la table de red<65>finition des couleurs
<20>l<EFBFBD>mentaires, le d<>but du buffer <20> modifier et le
nombre de points</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Modifie la r<>partition actuelle des
couleurs d'une suite de points en True Color 16 bits. Les
champs red, green et blue de la structure <a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> doivent
pointer sur des tableaux de 32 (32 = 2^5) <20>l<EFBFBD>ments pour
red et blue, et 64 (64=2^6) pour green, chaque <20>l<EFBFBD>ment
du tableau devant d<>finir la valeur <20> substituer <20>
l'indice de ce tableau, par exemple la formule:<br>
red[i] = i ; (0 &lt;= i &lt; 32) ne change rien pour la
table de la composante rouge (i sera remplac<61> par i).<br>
Attention ! La nouvelle valeur substitu<74> doit appartenir
<20> l'intervalle [0,31] pour red et blue et [0,63] pour
green.<br>
Exemple tout b<>te : augmenter la luminosit<69> de 100% sur
la composante verte:<br>
new_val = i * 2 ;<br>
if ( new_val &gt; 63) new_val = 63 ; /* Important ! */<br>
green[i] = new_val ; /* Pour 0 &lt;= i &lt; 64) */</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction travaille sur le <u>format
sp<73>cifique de la machine</u> ! Inutile donc de passer
par les fonctions <a href="#RaTCConvert">RaTCConvert</a>
et <a href="#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaTC32RemapColors"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTC32RemapColors</strong>(<a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> *rc)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> rc : Pointeur sur
une structure de type <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
d<>finissant la table de red<65>finition des couleurs
<20>l<EFBFBD>mentaires, le d<>but du buffer <20> modifier et le
nombre de points</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Modifie la r<>partition actuelle des
couleurs d'une suite de points en True Color 32 bits. Les
champs red, green et blue de la structure <a
href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> doivent
pointer sur des tableaux de 256 (256=2^8) <20>l<EFBFBD>ments,
chaque <20>l<EFBFBD>ment du tableau devant d<>finir la valeur <20>
substituer <20> l'indice de ce tableau, par exemple la
formule:<br>
red[i] = i ; (0 &lt;= i &lt; 256) ne change rien pour la
table de la composante rouge (i sera remplac<61> par i).<br>
Attention ! La nouvelle valeur substitu<74> doit appartenir
<20> l'intervalle [0,255].<br>
Exemple tout b<>te : baisser la luminosit<69> de 20% sur
toutes les composantes:<br>
new_val = (80 * i) / 100 ;<br>
/* Notons que on retombe forc<72>ment dans la plage [0;255]
...*/<br>
red[i] = green[i] = blue[i] = new_val ; /* Pour 0 &lt;= i
&lt; 256) */</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Cette fonction travaille sur le <u>format
sp<73>cifique de la machine</u> ! Inutile donc de passer
par les fonctions <a href="#RaTCConvert">RaTCConvert</a>
et <a href="#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaRasterRotateGetDstMFDB"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaRasterRotateGetDstMFDB</strong>(MFDB
*in, MFDB *out, long angle)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> in : MFDB
d<>crivant l'image dont on veut effectuer la rotation<br>
<strong>[OUT]</strong>out : MFDB de destination<br>
<strong>[IN]</strong> angle : angle en degr<67>s de la
rotation</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Aucun</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de connaitre la taille de l'image
apr<70>s rotation en vue d'une allocation par exemple. tous
les champs du MFDB out sont mis <20> jour SAUF fd_addr car
l'image destination n'est pas allou<6F>e.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">G<EFBFBD>n<EFBFBD>ralement, cette fonction est
appel<65>e avant la fonction suivante</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><a name="RaRasterRotate"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>RaRasterRotate</strong>(MFDB
*in, MFDB *out, long angle, long flags)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> in : MFDB
d<>crivant l'image dont on veut effectuer la rotation<br>
<strong>[OUT]</strong>out : MFDB de destination<br>
<strong>[IN]</strong> angle : angle en degr<67>s de la
rotation<br>
<strong>[IN]</strong> flags : drapeau dont les bits ont
la signification suivante:<br>
Bit 0 positionn<6E> : Demande <20> <a href="index.htm">VAPI</a>
d'afficher une barre de progression</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">ELDV_NOERROR : tout va bien<br>
ELDV_NOTENOUGHMEMORY : pas assez de m<>moire<br>
ELDV_CANCELLED : (possible seulement si la progression a
<20>t<EFBFBD> demand<6E>e)<br>
ELDV_GENERALFAILURE : erreur inconnue</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Efectue la rotation d'angle sp<73>cifi<66> su
le MFDB source. Le MFDB destination doit avoir <20>t<EFBFBD>
allou<6F>, sinon la fonction l'allouera. Notez que cette
derni<6E>re solution est un peu dangereuse car c'est
maintenant au LDV de g<>rer sa lib<69>ration par <a
href="#RaRasterFree">RaRasterFree</a>.<br>
La bonne nouvelle c'est que <a href="index.htm">VAPI</a>
se charge de prendre en compte le format VDI standard si
n<>cessaire !</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si l'angle est multiple de 90<39>, des
routines sp<73>ciales sont appel<65>es afin d'<27>viter des
calculs approximatifs et inutiles de sinus et cosinus.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou sup<75>rieure</td>
</tr>
</table>
</center></div>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="pr.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="co.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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>RASTER
INTERFACE</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,235 @@
<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 (VAPI) : Structures</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="in.htm"><img
src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="sommaire.htm"><img src="../images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>S
T R U C T U R E 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><a name="VAPI_HEADER"></a><font size="4"><strong> VAPI_HEADER</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
unsigned short Version ;
unsigned short StrSize ;
void* Global ;
void cdecl (*GEMMessageLoop)(void *msg) ;
char RFU[116] ;
}
VAPI_HEADER ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Champ</strong></td>
<td align="center" width="10%"><strong>Type</strong></td>
<td width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%">Version</td>
<td align="center" width="10%">unsigned short</td>
<td width="75%">Du type 0x0101. Ce num<75>ro est
incr<63>ment<6E> <20> chaque <20>volution. Ce num<75>ro de version
est destin<69> <20> effectuer <20>ventuellement des contr<74>les
par le LDV. Si la version de VAPI ne contient pas les
interfaces ou fonctions n<>cessaires, le LDV doit
renvoyer le code d'erreur <a href="../defines.htm#ELDV">ELDV_BADVAPIVERSION</a></td>
</tr>
<tr>
<td align="center">StrSize</td>
<td align="center">unsigned short</td>
<td>Taille de la structure VAPI</td>
</tr>
<tr>
<td align="center">Global</td>
<td align="center">void *</td>
<td>Pointeur sur le tableau global (fourni par l'AES) de <em><strong>VISION</strong></em>.
Ce tableau permet au LDV d'utiliser ensuite MT_AES. Pour
plus de d<>tails, consultez la documentation des LDG. Le
type est void * et non pas int * pour ne pas risquer de
rentrer en conflit avec le compilateur utilis<69> (int a
une taille de 16 bits sous PURE C et 32 bits sous GCC).
Il appartient donc au programmeur de LDV de
&quot;caster&quot; ce pointeur vers le type entier 16
bits convenant au compilateur.</td>
</tr>
<tr>
<td align="center">GEMMessageLoop</td>
<td align="center">void cdecl (*)(void *)</td>
<td>Pointeur sur la fonction de boucle de messages GEM de
<em><strong>VISION</strong></em>. Cela permet au LDV,
s'il utilise l'AES, de filtrer parmi les messages qu'il
re<72>oit, ceux qui lui sont destin<69>s et ceux destin<69>s <20>
<em><strong>VISION</strong></em>. Comme le LDV est lanc<6E>
par <em><strong>VISION</strong></em>, c'est lui qui
re<72>oit les messages destin<69>s <20> <em><strong>VISION</strong></em>
et devrait donc les renvoyer vers <em><strong>VISION</strong></em>
au travers de cette fonction. Cela est surtout utile pour
les messages de type Redraw, sinon les fen<65>tres de <em><strong>VISION</strong></em>
ne seront plus dessin<69>es pendant que le LDV a la main.
Le param<61>tre msg est de type void * et non pas int *
pour la m<>me raison que pr<70>c<EFBFBD>demment.</td>
</tr>
<tr>
<td align="center" width="15%">RFU</td>
<td align="center" width="10%">116 octets</td>
<td width="75%">Pour usage futur. Ne pas toucher !</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="VAPI"></a><font size="4"><strong> VAPI</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
</strong></font><a href="#VAPI_HEADER"><font size="4"><strong>VAPI_HEADER</strong></font></a><font
size="4"><strong> Header ;
/* Progress Interface */
....
/* Raster Interface */
...
/* More interfaces to come ! */
}
VAPI ;</strong></font></pre>
<p>La description brute de cette structure ne pr<70>sente que peu
d'int<6E>r<EFBFBD>t, voyez plut<75>t la liste des fonctions disponibles.</p>
<p>&nbsp;</p>
<p><a name="REMAP_COLORS"></a><font size="4"><strong>REMAP_COLORS</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
unsigned char *red ;
unsigned char *green ;
unsigned char *blue ;
void *pt_img ;
long nb_pts ;
}
REMAP_COLORS ;</strong></font></pre>
<p>Un pointeur sur une telle structure doit <20>tre pass<73> aux
fonctions <a href="ra.htm#RaTC15RemapColors">RaTCxxRemapColors</a>.<br>
red, green et blue pointent sur un tableau d<>finisant les
valeurs des composantes <20>l<EFBFBD>mentaires.<br>
pt_img pointe sur le premier pixel <20> modifier<br>
nb_pts est le nombre de points <20> partir de pt_img <20> modifier
suivant les tableaux red, green et blue.</p>
<p>&nbsp;</p>
<p><a name="fonctions"></a><font size="4"><strong> Fonctions
disponibles</strong></font></p>
<p>Ces fonctions sont directement accessibles au travers du
pointeur vapi interne aux LDV, il suffit d'appeler ainsi les
fonctions d<>sir<69>es:<br>
<strong>Vapi-&gt;NomDeLaFonction( ListeDesParam<61>tres ) ;</strong><br>
N'oubliez pas de tester la valeur de retour si la fonction est
suceptible d'en renvoyer une !</p>
<p>Les fonctions sont regroup<75>es en interfaces dans les
chapitres suivants. Afin de retrouver facilement l'interface
d'appartenance de fonctions, tous les noms de fonctions du m<>me
groupe commencent par les m<>mes 2 lettres (par exemple
&quot;Pr&quot; pour les fonctions du groupe de progression).</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="in.htm"><img
src="../images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="sommaire.htm"><img src="../images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
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
(VAPI)</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" -->04/01/02<!--webbot
bot="Timestamp" i-checksum="12484" 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>S
T R U C T U R E S</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>