moved from dev to prod

This commit is contained in:
root
2022-11-14 10:05:42 +01:00
parent ac142715b0
commit 43d589aa9b
1364 changed files with 27705 additions and 6101 deletions

View File

@@ -0,0 +1,329 @@
<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) : Defines</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="descrip.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->24/07/01<!--webbot
bot="Timestamp" i-checksum="12454" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>4.
D E F I N 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="LDV_STATUS"></a><font size="4"><strong>4.1 Type de
code de retour</strong></font></p>
<p><font size="4"><strong>typedef long LDV_STATUS</strong></font></p>
<p><font size="3">Le type de code de retour des fonctions LDV est
un entier 32 bits. Pourquoi ? Tout d'abord parce que certains
compilateurs (GCC par exemple) retournent un entier 32 bits même
si on spécifie une entier 16 bits (short). Ensuite, cela permet
de prévoir une extension du code de retour, pour une évolution
future, dans les bits restant.</font></p>
<p>&nbsp;</p>
<p><a name="ELDV"></a><font size="4"><strong>4.2 Codes de retour</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">ELDV_NOERROR</td>
<td width="75%">Pas d'erreur. La fonction a fonctionné
correctement</td>
</tr>
<tr>
<td align="center" width="10%">ELDV_INVALIDPARAMETER</td>
<td width="75%">Au moins un des paramètres est invalide</td>
</tr>
<tr>
<td align="center" width="10%">ELDV_NBPLANESNOTSUPPORTED</td>
<td width="75%">La fonction ne supporte pas le nombre de
plans passé en paramètre</td>
</tr>
<tr>
<td align="center">ELDV_NOTENOUGHMEMORY</td>
<td>Mémoire insuffisante</td>
</tr>
<tr>
<td align="center">ELDV_PREVIEWNOTSUPPORTED</td>
<td>La fonction Preview n'est pas définie (pointe sur
NULL)</td>
</tr>
<tr>
<td align="center">ELDV_RUNNOTSUPPORTED</td>
<td>La fonction Run n'est pas définie (pointe sur NULL).
Je me demande bien qui serait suffisamment naze pour
écrire un LDV ne faisant rien !</td>
</tr>
<tr>
<td align="center">ELDV_BADVAPIVERSION</td>
<td>La version de <a href="vapi/index.htm#Présentation">VAPI</a>
disponible ne permet pas d'utiliser le LDV (il manque
certaines fonctions ou interfaces)</td>
</tr>
<tr>
<td align="center">ELDV_IMGFORMATMISMATCH</td>
<td>Les formats d'images gérés par le LDV ne permettent
pas à <em><strong>VISION</strong></em> de fournir une
image compatible avec un des formats attendus. Cela est
à priori une erreur du LDV.</td>
</tr>
<tr>
<td align="center">ELDV_CANCELLED</td>
<td>L'opération en cours a été annulée par
l'utilisateur</td>
</tr>
<tr>
<td align="center">ELDV_GENERALFAILURE</td>
<td>Echec général, raison non précisée</td>
</tr>
</table>
</center></div>
<p>Ces codes peuvent être renvoyés par les fonctions du LDV ou
par <em><strong>VISION</strong></em> vers l'utilisateur afin
d'afficher le message d'erreur correspondant. Pensez aussi à
utiliser la macro LDV_SUCCESS qui vous indique si le code passé
en paramètre correspond à un succes ou une erreur.</p>
<p>&nbsp;</p>
<p><a name="TLDV"></a><font size="4"><strong>4.3 Types de modules</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">TLDV_MODIFYIMG</td>
<td width="75%">Module modificateur d'image. Peut
également servir à initialiser une image en écrasant
complètement son contenu afin d'en générer une
nouvelle, sans prendre en compte les données actuelles.</td>
</tr>
<tr>
<td align="center" width="10%">TLDV_LOADIMG</td>
<td width="75%">Module de chargement d'image. <em><strong>VISION</strong></em>
ne le gère pas encore</td>
</tr>
<tr>
<td align="center" width="10%">TLDV_SAVEIMG</td>
<td width="75%">Module de sauvegarde d'image. <em><strong>VISION</strong></em>
ne le gère pas encore</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDVF"></a><font size="4"><strong>4.4 Informations sur
les capacités</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">LDVF_STDFORMAT</td>
<td width="75%">Le LDV accepte le format image standard
défini par ATARI (bit-plans à la suite les uns des
autres). Ce format n'est pas valable en True Color.</td>
</tr>
<tr>
<td align="center" width="10%">LDVF_ATARIFORMAT</td>
<td width="75%">Le LDV accepte le format ATARI (bit-plans
entrelacés (ST), modes True Color du Falcon)</td>
</tr>
<tr>
<td align="center">LDVF_SPECFORMAT</td>
<td>Le LDV accepte le format spécifique de la carte
graphique</td>
</tr>
<tr>
<td align="center">LDVF_SUPPORTPREVIEW</td>
<td>Le LDV fournit la fonction Preview (fortement
conseillé même si elle appelle Run)</td>
</tr>
<tr>
<td align="center">LDVF_AFFECTPALETTE</td>
<td>Le LDV modifie la palette (modes bit-plans
uniquement). En ce cas, l'opération sur la palette doit
toujours se faire &quot;sur place&quot;. <em><strong>VISION</strong></em>
sauvegardera systématiquement la palette de l'image dans
le tampon undo.</td>
</tr>
<tr>
<td align="center">LDVF_SUPPORTPROG</td>
<td>Le LDV appellera la fonction <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> de l'interface
<a href="vapi/index.htm#Présentation">VAPI</a>
(conseillé si le traitement dure plus de 2 secondes).
Avant d'appeler <a href="descrip.htm#run">Run</a>, <em><strong>VISION</strong></em>
affichera une fenêtre de progression pour le LDV et la
fera disparaitre ensuite. En appelant <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> de l'interface
<a href="vapi/index.htm#Présentation">VAPI</a>, le LDV
pourra informer l'utilisateur de la progression du
traitement.</td>
</tr>
<tr>
<td align="center">LDVF_OPINPLACE</td>
<td>Le LDV sait travailler sur l'image source, sans que <em><strong>VISION</strong></em>
alloue la destination (on dit que la transformation se
fait sur place). En ce cas, le paramètre out de la
fonction <a href="descrip.htm#run">Run</a> est le même
que in. Dans la mesure du possible, utilisez ce flag,
cela économise de la mémoire. La présence de ce flag
impose évidemment que le LDV ne modifie pas la taille de
l'image.</td>
</tr>
<tr>
<td align="center">LDVF_REALTIMEPARAMS</td>
<td>Le LDV effectue assez rapidement la fonction <a
href="descrip.htm#run">Run</a> en mode Preview (image
petite affichée par la boite de dialogue de <em><strong>VISION</strong></em>),
pour que la modification des paramètres du LDV par les
ascenseurs soit suffisamment fluide (au moins 1 image par
seconde). En ce cas, <em><strong>VISION</strong></em>
appelera la fonction Preview lorsque l'utilisateur agira
sur un ascenseur de contrôle de paramètre, sans que
celui-ci soit obligé d'appuyer sur le bouton
&quot;Pré-Viualisation&quot;</td>
</tr>
<tr>
<td align="center">LDVF_SUPPORTCANCEL</td>
<td>La fonction <a href="descrip.htm#run">Run</a> peut
être annulée en cours d'exécution. <em><strong>VISION</strong></em>
permet alors à la fenêtre de progression d'être
fermée par le bouton de fermeture de fenêtre GEM
(CLOSER) et par Control-C. Dès que le LDV supporte la
progression, je vous conseille d'ajouter (et de gérer
..) ce flag, c'est bien utile et <a
href="descrip.htm#run">pas compliqué à implémenter</a>.</td>
</tr>
<tr>
<td><p align="center">LDVF_NOSELECTION</p>
</td>
<td>Ce LDV ne peut pas travailler sur un bloc à
l'intérieur de l'image (sélection). En ce cas, <em><strong>VISION</strong></em>
invalide la possibilité de spécifier la sélection lors
de l'application du LDV.<br>
Remarque : depuis la version 4.0e, <em><strong>VISION</strong></em>
crée une image &quot;bloc&quot; faisant ainsi croire au
LDV qu'il travaille sur un bloc. <em><strong>VISION</strong></em>
replace ensuite le bloc modifié dans l'image d'origine
sans que le LDV ait à se préoccuper des spécificités
du travail sur un bloc. En bref, si vous ne voulez pas
vous embêter à gérer le travail sur un bloc,
positionnez ce flag, <em><strong>VISION</strong></em> se
charge de tout !</td>
</tr>
</table>
</center></div>
<p><font size="3">Ces flags sont à combiner avec le &quot;ou
logique&quot; (|).</font></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="descrip.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->24/07/01<!--webbot
bot="Timestamp" i-checksum="12454" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>D
E F I N E S</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,523 @@
<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) : Description</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="notions.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="defines.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->06/05/01<!--webbot
bot="Timestamp" i-checksum="12424" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</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>Pour résumer, voici ce qui se passe entre <em><strong>VISION</strong></em>
et un LDV :</p>
<p>0. Init (fait une seule fois au premier appel de l'utilisateur
mettant en oeuvre les LDV). <em><strong>VISION</strong></em>
charge la fonction <a href="#capacités">GetLDVCapabilities</a>
de chaque LDV, appelle la fonction et mémorise les capacités de
chaque LDV afin de limiter les futurs accès disque, puis
décharge chaque LDV</p>
<p>1. <em><strong>VISION</strong></em> charge le LDV</p>
<p>2. Si spécifiée, <em><strong>VISION</strong></em> appelle la
fonction GetParams</p>
<p>3. <em><strong>VISION</strong></em> appelle la fonction PreRun</p>
<p>4. <em><strong>VISION</strong></em> appelle la fonction Run
(ou Preview)</p>
<p>5. <em><strong>VISION</strong></em> décharge le LDV</p>
<p>&nbsp;</p>
<p><a name="capacités"></a><font size="4"><strong>3.1 Capacités
du LDV</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="struct.htm#LDV_INFOS">LDV_INFOS</a>
* cdecl GetLDVCapabilities(<a href="vapi/struct.htm#VAPI">VAPI</a>
*vapi)</td>
</tr>
<tr>
<td width="15%"><strong>Paramètres</strong></td>
<td width="85%"><strong>[IN] </strong>vapi : pointeur sur
l'interface <a href="vapi/index.htm#Présentation">VAPI</a>
fournie par <em><strong>VISION</strong></em>. Ce pointeur
doit être mémorisé pour un usage futur.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un pointeur sur la structure <a
href="struct.htm#LDV_INFOS">LDV_INFOS</a> stockée dans
le LDV (le squelette déclare la variable LdvInfos de
type <a href="struct.htm#LDV_INFOS">LDV_INFOS</a>)</td>
</tr>
<tr>
<td width="15%"><strong>Responsabilités</strong></td>
<td width="85%">Cette fonction est entièrement ecrie
dans le squelette, le travail à faire réside dans le
remplissage de la structure de type <a
href="struct.htm#LDV_INFOS">LDV_INFOS</a> du squelette
LDV.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="prerun"></a><font size="4"><strong>3.2 Fonction
PreRun</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl PreRun(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Paramètres</strong></td>
<td width="85%"><strong>[IN]</strong> in : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
décrivant l'image de <em><strong>VISION<br>
</strong></em><strong>[IN / OUT]</strong> params :
pointeur sur une structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a> indiquant la
zone à modifier</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succès ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilités</strong></td>
<td width="85%">Doit signaler à <em><strong>VISION</strong></em>
la mémoire à allouer et la partie à sauvegarder pour
la fonction UNDO :<ol>
<li>Si le LDV en a besoin (<a href="defines.htm#LDVF">LDVF_OPINPLACE</a>
non défini dans la structure <a
href="struct.htm#LDV_CAPS">LDV_CAPS</a>),
out-&gt;Raster.fd_w et out-&gt;Raster.fd_h
doivent contenir la taille de l'image à allouer
pour la destination. C'est cette image qui sera
ensuite affichée par <em><strong>VISION</strong></em>
dans la fenêtre associée.</li>
<li>Au besoin, indiquer dans les champs x1, x2, y1 et
y2 de la structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>, la
zone à sauvegarde dans le buffer UNDO de l'image
afin de pouvoir revenir en arrière. Avant
l'appel, <em><strong>VISION</strong></em>
positionne ces champs en fonction de la
sélection de l'utilisateur (bloc ou image
entière)</li>
</ol>
<p>Par défaut :</p>
<ol>
<li><em><strong>VISION</strong></em> n'allouera
aucune mémoire pour le LDV et supposera que la
transformation se fera &quot;sur place&quot;</li>
<li><em><strong>VISION</strong></em> sauvegardera
dans le buffer UNDO la partie précisée par
champs x1, x2, y1 et y2 de la structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
(image entière ou sélection si un bloc est
sélectionné)</li>
</ol>
</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="run"></a><font size="4"><strong>3.3 Fonction Run</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Run(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Paramètres</strong></td>
<td width="85%"><strong>[IN]</strong> in : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
décrivant l'image source de <em><strong>VISION<br>
</strong></em><strong>[IN]</strong> params : pointeur sur
une structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
indiquant la zone à modifier<br>
<strong>[OUT]</strong> out : pointeur sur l'image
destination, allouée par <em><strong>VISION</strong></em>
grâce à un appel précédent à PreRun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succès ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilités / Remarques</strong></td>
<td width="85%">Doit effectuer l'opération prévue pour
le LDV.<br>
<em><strong>VISION</strong></em> choisit automatiquement
le format le plus adapté en essayant de minimiser la
mémoire et en tenant compte du ou des formats gérés
par le LDV (sachant que le plus économe est <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a>)<br>
Le LDV peut modifier une autre zone que celle donnée
dans les champs x1, y1, x2 et y2 de params à condition
de l'avoir signalé auparavant par la fonction PreRun<br>
Ne <strong><u>JAMAIS</u></strong> allouer dans le LDV de
la mémoire à destination de <em><strong>VISION</strong></em>,
car celle-ci sera libérée dès que <em><strong>VISION</strong></em>
déchargera le LDV (même si vous ne le faites pas
explicitement, le compilateur ou le système s'en
chargera).Par contre, rien ne vous interdit d'allouer de
la mémoire à usage interne pour effectuer cette
fonction, n'oubliez pas de la libérer !<br>
Depuis la version 1.02 de <a
href="vapi/index.htm#Présentation">VAPI</a>, on peut
maintenant annuler le traitement en cours depuis
l'interface utilisateur (il suffit de fermer la fenêtre
de progression ou d'appuyer sur Control-C), pour cela :<br>
* Ajouter <a href="defines.htm#LDVF">LDVF_SUPPORTCANCEL</a>
dans le champ Flags de la structure <a
href="struct.htm#LDV_CAPS">LDV_CAPS</a> présente dans la
variable LdvInfos du LDV<br>
* Tester la valeur renvoyée par la fonction <a
href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a>, si elle
est non nulle, l'annulation est demandée<br>
* Sortir du traitement du LDV (ne pas oublier de libérer
l'éventuelle mémoire allouée en interne)<br>
* Sortir de la fonction Run en renvoyant <a
href="defines.htm#ELDV">ELDV_CANCELLED</a><br>
Notes :<br>
Dès que la fonction <a href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a>
a retourné une valeur non nulle, la fenêtre de
progression est détruite, la demande d'annulation n'est
donc pas seulement une demande mais une obligation !<br>
Ne vous souciez pas de la libération de l'image
destination ou de restaurer l'image source, <em><strong>VISION</strong></em>
gère cela au travers du Undo.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="preview"></a><font size="4"><strong>3.4 Fonction
Preview</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Preview(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Paramètres</strong></td>
<td width="85%">Identiques à ceux de la fonction <a
href="#run">Run</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succès ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilités / Remarques</strong></td>
<td width="85%">Cette fonction est identique à la
fonction <a href="#run">Run</a>, sauf qu'elle opère sur
des images plus petites (112 x 112 en moyenne). Si la
fonction <a href="#run">Run</a> est suffisamment rapide
pour afficher le résultat en moins de 1 seconde, la
fonction Preview devrait simplement l'appeler. Dans le
cas contraire, on peut se permettre certaines
approximations ou pré-calculs pour revenir en deça de
la seconde.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="getparams"></a><font size="4"><strong>3.5 Fonction
GetParams</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl GetParams(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*img, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, char *path)</td>
</tr>
<tr>
<td width="15%"><strong>Paramètres</strong></td>
<td width="85%"><strong>[IN]</strong> img : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
décrivant l'image source de <em><strong>VISION<br>
</strong></em><strong>[IN]</strong> params : pointeur sur
une structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
indiquant la zone à modifier<br>
<strong>[IN]</strong> path: chemin de chargement du LDV</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">ELDV_NOERROR</a>
ou <a href="defines.htm#ELDV">ELDV_CANCELLED</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilités / Remarques</strong></td>
<td width="85%">Cette fonction est <strong><u>optionnelle</u></strong>.
Si votre LDV l'exporte, <em><strong>VISION</strong></em>
l'appellera en lieu et place de sa fonction interne de
saisie des paramètres.<br>
Si <a href="defines.htm#ELDV">ELDV_NOERROR</a> est
renvoyé, <em><strong>VISION</strong></em> appellera
ensuite la fonction <a href="#run">Run</a><br>
Si <a href="defines.htm#ELDV">ELDV_CANCELLED</a> est
renvoyé, la saisie est annulée (comme si vous aviez
annulé la saisie au travers du formulaire standard
proposé par <em><strong>VISION</strong></em>).<br>
Le paramètre params devient transparent pour <em><strong>VISION</strong></em>,
il sera renvoyé sans changement lors de l'appel à la
fonction <a href="#run">Run</a>. Votre LDV peut s'en
servir pour stocker ses paramètres ou peut choisir de
les mémoriser en interne.<br>
path permet de récupérer le fichier INI associé pour
la description multi-langue des paramètres. Vous pouvez
au choix utiliser un fichier INI (ou tout autre, c'est
maintenant vous qui êtes maître). Si vous voulez gérer
la description multi-langues, n'oubliez pas de scruter
les répertoires de langues à partir de path.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="fichier ini"></a><font size="4"><strong>3.6 Le
fichier INI associé</strong></font></p>
<p><font size="3">Le fichier INI associé à un LDV a deux buts:</font></p>
<ol>
<li><font size="3">Rassembler toutes les informations
relatives à la langue comme son nom et sa description</font></li>
<li><font size="3">Définir le paramétrage du LDV</font></li>
</ol>
<p>&nbsp;</p>
<p><a name="langues"></a><font size="4"><strong>3.6.1
Informations sur la langue</strong></font></p>
<p><font size="3">Les LDV sont multi-langues, c'est à dire que
si vous avez défini une langue dans les préférences, <em><strong>VISION</strong></em>
est capable d'exploiter cette information également pour les
LDV, si l'information est disponible. Dans le répertoire LDV de <em><strong>VISION</strong></em>,
on trouve les .LDV ainsi que les .INI associés. Par exemple, le
fichier INVERT.INI est associé au fichier INVERT.LDV.Dans ce
dossier LDV, doivent figurer les .INI les plus standards, c'est
à dire en langue anglaise. Si par exemple, vous avez défini la
langue &quot;Français&quot; dans les préférences de <em><strong>VISION</strong></em>,
il suffit de créer le sous-répertoire &quot;Français&quot;
dans le dossier LDV, et d'y inclure le fichier INVERT.INI traduit
en français pour que <em><strong>VISION</strong></em> aille le
chercher à la place de son équivalent directement sous le
répertoire LDV.</font></p>
<p><font size="3">Dans la section [Informations], <em><strong>VISION</strong></em>
attend les clés suivantes:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Nom de la clé</strong></td>
<td align="center" width="10%"><strong>Taille</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">ShortName</font></td>
<td align="center" width="10%">15 caractères max.</td>
<td width="75%">Nom court du module apparaissant dans la
liste des modules à sélectionner</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">LongName</font></td>
<td align="center" width="10%">31 caractères max.</td>
<td width="75%">Nom apparaissant lorsque on demande des
détails sur ce LDV</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Description</font></td>
<td align="center" width="10%">79 caractères max.</td>
<td width="75%">Description complète du module sur 3
lignes</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="parametrage"></a><font size="4"><strong>3.6.2
Paramétrage du LDV</strong></font></p>
<p><font size="3"><em><strong>VISION</strong></em> permet la
saisie de jusqu'à 4 paramètres pour un LDV. Ces paramètres
sont saisis à l'aide d'ascenseurs GEM apparaissant ou non
suivant le nombre de paramètres que le LDV accepte en entrée.<br>
Pour que <em><strong>VISION</strong></em> accepte d'afficher un
paramètre,une section nommée [ParameterN] (1 &lt;= N &lt;= 4)
doit être créee avec les clés suivantes:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Nom de la clé</strong></td>
<td align="center" width="85%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Name</font></td>
<td width="85%">Nom de ce paramètre (15 caractères
max.). Si le nom est absent, ce paramètre n'apparaitra
pas</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Type</font></td>
<td width="85%">1 : entier 16 bits (-32768 --&gt; +32767)<br>
2 : float (non géré actuellement)</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">MinValue</font></td>
<td width="85%">Valeur minimale admissible pour ce
paramètre</td>
</tr>
<tr>
<td align="center">DefautValue</td>
<td>Valeur par défaut présenté avec l'interface de <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td align="center">MaxValue</td>
<td>Valeur maximale admissible pour ce paramètre</td>
</tr>
</table>
</center></div>
<p>Si cela ne peut convenir au LDV que vous développez, vous
pouvez spécifier une fonction de saisie spécifique avec la
fonction <a href="#getparams">GetParams</a>.</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="notions.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="defines.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->06/05/01<!--webbot
bot="Timestamp" i-checksum="12424" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</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>VISION Documentation (LDV): Defines</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="descrip.htm"><img
src="images/cprev.jpg" alt="Previous Chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="struct.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>4.
D E F I N 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="LDV_STATUS"></a><font size="4"><strong>4.1 Type of return codes
</strong></font></p>
<p><font size="4"><strong>typedef long LDV_STATUS</strong></font></p>
<p><font size="3">The type of LDV functions return code is a 32 bits
integer. Why? First, because some compilers (e.g., GCC) return a 32 bits
integer even when specifying a 16 bits integer (short). Secondly, this
allows for future extensions of the return code in the remaining bits.
</font></p>
<p>&nbsp;</p>
<p><a name="ELDV"></a><font size="4"><strong>4.2 Return codes</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">ELDV_NOERROR</td>
<td width="75%">No error. The function worked correctly
</td>
</tr>
<tr>
<td align="center" width="10%">ELDV_INVALIDPARAMETER</td>
<td width="75%">At least one of the parameters is not valid</td>
</tr>
<tr>
<td align="center" width="10%">ELDV_NBPLANESNOTSUPPORTED</td>
<td width="75%">The function does not support the number of planes
passed in parameters</td>
</tr>
<tr>
<td align="center">ELDV_NOTENOUGHMEMORY</td>
<td>Not enough memory</td>
</tr>
<tr>
<td align="center">ELDV_PREVIEWNOTSUPPORTED</td>
<td>The Preview function is not defined (points to
NULL)</td>
</tr>
<tr>
<td align="center">ELDV_RUNNOTSUPPORTED</td>
<td>The Run function is not defined (points to NULL
I wonder who would be dumb enough to write an LDV that does
nothing!</td>
</tr>
<tr>
<td align="center">ELDV_BADVAPIVERSION</td>
<td>The available version of <a href="vapi/index.htm#Présentation">VAPI</a>
does not allow to use the LDV (some functions or interfaces
are missing)</td>
</tr>
<tr>
<td align="center">ELDV_IMGFORMATMISMATCH</td>
<td>The image formats handled by the LDV do not allow VISION to
provide an image compatible with one of the expected formats.
Normally, the error comes from the LDV.</td>
</tr>
<tr>
<td align="center">ELDV_GENERALFAILURE</td>
<td>General failure, reason not specified.</td>
</tr>
</table>
</center></div>
<p>These codes can be sent back by LDV functions or by
<em><strong>VISION</strong></em> to the user to display the corresponding
error messsage. Think also to use the LDV_SUCCESS macro which indicates
whether the code passed as a parameter is a success or an error.
</p>
<p>&nbsp;</p>
<p><a name="TLDV"></a><font size="4"><strong>4.3 Module types</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">TLDV_MODIFYIMG</td>
<td width="75%">Image modifier module. Can also be used to
initialise an image by overwriting completely its content, without
taking into account the current data.</td>
</tr>
<tr>
<td align="center" width="10%">TLDV_LOADIMG</td>
<td width="75%">Image loader module.
<em><strong>VISION</strong></em>
does not handle it yet</td>
</tr>
<tr>
<td align="center" width="10%">TLDV_SAVEIMG</td>
<td width="75%">Image saving module. <em><strong>VISION</strong></em>
does not handle it yet</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDVF"></a><font size="4"><strong>4.4 Information on possibilities</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Define</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="10%">LDVF_STDFORMAT</td>
<td width="75%">The LDV accepts the standard image format as
defined by ATARI (bitplanes one after the others). This format is
not available in True Color.</td>
</tr>
<tr>
<td align="center" width="10%">LDVF_ATARIFORMAT</td>
<td width="75%">The LDV accept ATARI format (interlaced bitplanes
(ST), Falcon True Color mode)</td>
</tr>
<tr>
<td align="center">LDVF_SPECFORMAT</td>
<td>The LDV accepts the specific format of the graphic card</td>
</tr>
<tr>
<td align="center">LDVF_SUPPORTPREVIEW</td>
<td>The LDV provides a Preview function (highly recommanded, even
if it calls Run)</td>
</tr>
<tr>
<td align="center">LDVF_AFFECTPALETTE</td>
<td>The LDV modifies the palette (bitplanes modes only). In this
case, operation on palette must always be done &quot;in
place&quot;. <em><strong>VISION</strong></em> will systematically
save the palette of the image in the Undo buffer.</td>
</tr>
<tr>
<td align="center">LDVF_SUPPORTPROG</td>
<td>The LDV will call function <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> of the
<a href="vapi/index.htm#Présentation">VAPI</a> interface
(recommanded is the process takes more than 2 secondes).
Before calling <a href="descrip.htm#run">Run</a>, <em><strong>VISION</strong></em>
will display a progess bar for the LDV and will make it disapear
afterwards. By calling <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> from the
<a href="vapi/index.htm#Présentation">VAPI</a> interface, the LDV
will be able to inform user on the progress of the process.</td>
</tr>
<tr>
<td align="center">LDVF_OPINPLACE</td>
<td>The LDV knows how to work on the source image, without
<em><strong>VISION</strong></em> having to allocate the
destination (the transformation is said to occur in place). In
this case, the out parameter of the <a
href="descrip.htm#run">Run</a> function is the same as in. As far
as possible, use this flag, this spares memory. The presence of
this flag impose obviously that the LDV does not modify the size
of the image.</td>
</tr>
<tr>
<td align="center">LDVF_REALTIMEPARAMS</td>
<td>The LDV does the <a
href="descrip.htm#run">Run</a> function fast enough in Preview
mode (small image displayed by the
<em><strong>VISION</strong></em>) dialog box for the modification
of the LDV parameters done with the sliders to be smooth enough
(at least 1 image per second). In this case,
<em><strong>VISION</strong></em> will call the Prewiew function
when the user modifies a parameter control slider, without any
need to press the &quot;Preview&quot; button</td>
</tr>
</table>
</center></div>
<p><font size="3">These flags must be combined with the &quot;logical
or&quot; (|).
</font></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="descrip.htm"><img
src="images/cprev.jpg" alt="Previous chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="struct.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>D
E F I N E S</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,427 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): Description</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="notions.htm"><img
src="images/cprev.jpg" alt="Previous Chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="defines.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</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>To summarise, here is what happens between
<em><strong>VISION</strong></em> and an LDV:</p>
<p>0. Init (done a single time at the first user call using LDVs).
<em><strong>VISION</strong></em>
loads the <a href="#capacités">GetLDVCapabilities</a> function of each
LDV, calls the function and memorizes the capabilities of each LDV to limit
future hard drive accesses, then launches each LDV</p>
<p>1. <em><strong>VISION</strong></em> loads the LDV</p>
<p>2. <em><strong>VISION</strong></em> calls the PreRun function</p>
<p>3. <em><strong>VISION</strong></em> calls the Run
(or Preview) function</p>
<p>4. <em><strong>VISION</strong></em> unloads the LDV</p>
<p>&nbsp;</p>
<p><a name="capacités"></a><font size="4"><strong>3.1 LDV Capabilities
</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="struct.htm#LDV_INFOS">LDV_INFOS</a>
* cdecl GetLDVCapabilities(<a href="vapi/struct.htm#VAPI">VAPI</a>
*vapi)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN] </strong>vapi: pointer on the
<a href="vapi/index.htm#Présentation">VAPI</a> interface
provided by <em><strong>VISION</strong></em>. This pointer must
be memorized for future use.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">A pointer on the structure <a
href="struct.htm#LDV_INFOS">LDV_INFOS</a> stored in the
LDV (the skeleton declares the LdvInfos variable of the type
<a href="struct.htm#LDV_INFOS">LDV_INFOS</a>)</td>
</tr>
<tr>
<td width="15%"><strong>Responsibilities</strong></td>
<td width="85%">This function is completely written in the
skeleton. The works to be done is to fill the structure of the
type <ahref="struct.htm#LDV_INFOS">LDV_INFOS</a> of the LDV
skeleton.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="prerun"></a><font size="4"><strong>3.2 PreRun function
</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl PreRun(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> in: pointer on
the structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
describing the image of <em><strong>VISION<br>
</strong></em><strong>[IN / OUT]</strong> params:
pointeur on a structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a> indicating the
area to modify</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%"><a href="defines.htm#ELDV">A success or error
code</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsibilities</strong></td>
<td width="85%">Must mention to <em><strong>VISION</strong></em>
the memory to allocate and the part to be saved by the UNDO
function:<ol>
<li>If the LDV needs it (<a href="defines.htm#LDVF">LDVF_OPINPLACE</a>
not defined in the structure <a
href="struct.htm#LDV_CAPS">LDV_CAPS</a>),
out-&gt;Raster.fd_w and out-&gt;Raster.fd_h
must contain the size of the image to allocate for the
destination. This is this image that will be displayed by
<em><strong>VISION</strong></em>
in the associated window.</li>
<li>If needed, indicate in the fields, x1, x2, y1 and
y2 of the structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>, the
area to be backed up in the UNDO buffer of the image to
be able to undo. Before the call,
<em><strong>VISION</strong></em>
sets these fields according to the user selection (block
or full image)</li>
</ol>
<p>By default:</p>
<ol>
<li><em><strong>VISION</strong></em> will allow
no memory for the LDV and will suppose the
transformation will take place &quot;in place&quot;</li>
<li><em><strong>VISION</strong></em> will backup in the
UNDO buffer the part specified by the fields
x1, x2, y1 and y2 of the structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
(full image or selection if a block is selected)</li>
</ol>
</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="run"></a><font size="4"><strong>3.3 Run function</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Run(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> in: pointer on the
structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
describing the source image of
<em><strong>VISION<br>
</strong></em><strong>[IN]</strong> params: pointer on
a structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
indicating the area to modify<br>
<strong>[OUT]</strong> out: pointer of the destination image
, allocate by <em><strong>VISION</strong></em>
with a previous call to PreRun</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%"><a href="defines.htm#ELDV">A success or error
code</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsibilities / Comments</strong></td>
<td width="85%">Must do the operation forecasted for
the LDV.<br>
<em><strong>VISION</strong></em> choses automatically
the most adapted format while trying to minimise the memory,
taking into account the format(s) handled by the LDV (knowing the
most economical is <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a>)<br>
The LDV can modify another area than the one given in the fields
x1, y1, x2 and y2 of params if it was mentionned previously by
the PreRun function<br>
<strong><u>NEVER</u></strong> allocate in the LDV memory for
<em><strong>VISION</strong></em>,
because it will be freed as soon as
<em><strong>VISION</strong></em> will unload the LDV (even if you
do not do it explicitely, the compiler of the system will do it).
On the other hand, nothing prevents you from allocating memory for
internal usage related to this function, but do not forget to free
it!</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="preview"></a><font size="4"><strong>3.4 Preview
function</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Preview(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%">Identical to those of the function <a
href="#run">Run</a></td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%"><a href="defines.htm#ELDV">A success or error
code</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsibilities / Comments</strong></td>
<td width="85%">This function is identical to the
function <a href="#run">Run</a>, but it operates on
smaller images (112 x 112 on average). If the function
<a href="#run">Run</a> is fast enough to display the result
in less than 1 second, the Preview function should simply call
it. Otherwise, it is possible to do some approximations or
pre-computation to be back below a second.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="fichier ini"></a><font size="4"><strong>3.5 The
associated INI file</strong></font></p>
<p><font size="3">The INI file associated to an LDV has two purposes:</font></p>
<ol>
<li><font size="3">Gather all the information related to the language
such as its name and description</font></li>
<li><font size="3">Define parameters of the LDV</font></li>
</ol>
<p>&nbsp;</p>
<p><a name="langues"></a><font size="4"><strong>3.5.1
Language information</strong></font></p>
<p><font size="3">LDVs are multi-lingual, i.e., if a language has been
defined in preferences,
<em><strong>VISION</strong></em>
is able to use this information also for the LDVs, provided the information is
available. The .LDV and the associated .INI are located in the LDV
directory of <em><strong>VISION</strong></em>. For instance, the file
INVERT.INI is associated to the file INVERT.LDV. In the LDV folder, the
more standard LDVs must be found, i.e., in English. If, for instance, you
have defined &quot;Français&quot; in the preferences of <em><strong>VISION</strong></em>,
you just have to create the directory &quot;Français&quot;
in the folder LDV, and to include the file INVERT.INI translated in French
in this directory, for <em><strong>VISION</strong></em> to seek this file
instead of the one included directly in the LDV directory.</font></p>
<p><font size="3">In the [Informations] section, <em><strong>VISION</strong></em>
expects the following entries:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Name of entry</strong></td>
<td align="center" width="10%"><strong>Size</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">ShortName</font></td>
<td align="center" width="10%">Max. 15 characters</td>
<td width="75%">Short name of the module appearing in the list of
modules to select</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">LongName</font></td>
<td align="center" width="10%">Max. 31 characters</td>
<td width="75%">Name appearing when details are required on this
LDV</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Description</font></td>
<td align="center" width="10%">Max. 79 characters</td>
<td width="75%">Complete description of the module on 3 lines</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="parametrage"></a><font size="4"><strong>3.5.2
Parameters of the LDV</strong></font></p>
<p><font size="3"><em><strong>VISION</strong></em> allows to enter up to 4
parameters in an LDV. These parameters are entered using GEM sliders that
appear or not according to the number of input parameters of the LDV.<br>
For <em><strong>VISION</strong></em> to accept to display a parameter,
a section named [ParameterN] (1 &lt;= N &lt;= 4)
must be created with the following entries:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Name of entry</strong></td>
<td align="center" width="85%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Name</font></td>
<td width="85%">Name of this parameter (max. 15 characters). If
the name is not given, this parameter will not appear</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Type</font></td>
<td width="85%">0: 16 bits integer(-32768 --&gt; +32767)<br>
1: float (not handled currently)</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">MinValue</font></td>
<td width="85%">Minimum allowed value for this parameter</td>
</tr>
<tr>
<td align="center">DefautValue</td>
<td>Default value given in <em><strong>VISION</strong></em> GUI</td>
</tr>
<tr>
<td align="center">MaxValue</td>
<td>Maximum allowed value for this parameter</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="notions.htm"><img
src="images/cprev.jpg" alt="Previous chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="defines.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>

View File

@@ -0,0 +1,286 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): Recommendations</title>
</head>
<body background="images/conc2.gif" bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="kitdev.htm"><img
src="images/cprev.jpg" alt="Previous Chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="preambule.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->17/09/00<!--webbot
bot="Timestamp" i-checksum="12363" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>7.
R E C O M M E N D A T I O N S</strong></font></p>
</td>
<td align="center" width="17%">&nbsp; <!--webbot
bot="HTMLMarkup" startspan --><A HREF="http://www.estat.com/getstats?serial=1390118421">
<IMG SRC="http://perso.estat.com/cgi-bin/perso/1390118421?page=DocVisionLDV"
BORDER=0></A>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</table>
</center></div>
<hr>
<p>Even if managing and programming LDVs is simple, it must respect some
common sense rules, one cannot simply do whatever he wants!
Here are some rules and clarification on some points which might be
troubling when one programs his first LDVs:</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="5%"><strong>#</strong></td>
<td align="center" width="95%"><strong>Recommendations /
Advises</strong></td>
</tr>
<tr>
<td align="center" width="5%"><strong>1</strong></td>
<td width="95%">If you write an LDV, send it to me!
I would like <em><strong>VISION</strong></em> site to centralise
all the LDVs created. Verify also that your LDV is not compiled
with debug information!
It would be to no use, except reduce the performances!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>2</strong></td>
<td width="95%">It would be nice and useful for everyone to give
the sources of the LDV with the LDV itself... This could give some
good ideas to some people...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>3</strong></td>
<td width="95%">Do not forget that, by the means of the functions
called by <em><strong>VISION</strong></em>, you have
a direct access to <em><strong>VISION</strong></em> internal
memory. Thus, if you act a little randomly with the pointers
provided, <em><strong>VISION</strong></em> will most likely crash
sooner or later...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>4</strong></td>
<td width="95%">If you use <a href="vapi/index.htm">VAPI</a>
(recommended!), the same remark applies, the global Vapi variable
of the LDV points directly on <em><strong>VISION</strong></em>
memory. If you write into this structure, your LDV might crash!
I let you imagine the consequences if you modify the address of
the function <a href="vapi/pr.htm#PrSetProg">PrSetProg</a>
and then try and call it!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>5</strong></td>
<td width="95%">The ERROR to avoid in the function
<a href="descrip.htm#run">Run</a> is to allocate yourself the
memory for the image passed in the out parameter. Why? Doing this,
first, you overwrite the pointer <em><strong>VISION</strong></em>
has already allocated to that. Furthermore, as soon as <em><strong>VISION</strong></em>
will try to use it, it will crash. If fact, your LDV is more or
less &quot;a PRG&quot; launched by
<em><strong>VISION</strong></em> and terminated when
<em><strong>VISION</strong></em> (more excactly the LDG manager)
decides it. At this moment, the compiler or the system will free
the memory allocated by this module, even if you do not do it
explicitely. That is why that is always
<em><strong>VISION</strong></em>, using the function
<a href="descrip.htm#prerun">PreRun</a> that will allocate the
memory for the LDV, since it will use it after that. The function
<a href="descrip.htm#prerun">PreRun</a> is really essential!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>6</strong></td>
<td width="95%">If you use the function <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> from <a
href="vapi/index.htm">VAPI</a> (really WARMLY recommended, unless
your LDV is fast as light!), try not to call it too often, for
instance inside a loop, it has no use (it may happen that the
percentage has not even changed!) and this will slow unecesseraly
your LDV. Before your call, put a test such as <strong>if ( ( iter &amp; 0x0F )
== x0F )</strong>, it will call the progress function only one out
of sixteen times, this should be largely enough.</td>
</tr>
<tr>
<td align="center"><strong>7</strong></td>
<td>The function <a href="vapi/pr.htm#PrSetProg">PrSetProg</a>
from <a href="vapi/index.htm">VAPI</a>, gives control temporarily
to the AES. This will allow to move windows at that moment. That
is also one of the reasons why this function must be called a
little... but not too much!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>8</strong></td>
<td width="95%">If your LDV has parameters (at most 4 parameters),
you must use an <a
href="descrip.htm#fichier ini">associated INI file</a>.
I recommend to associate systematically an INI file to your LDV.
It's really handy for translations, and not difficult at all!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>9</strong></td>
<td width="95%">If you use an
<a
href="descrip.htm#fichier ini">INI file</a>, your LDV must control
the validity of passed parameters, and not crash stupidely if one
of them is out of bounds... In such a case, just return the
<a href="defines.htm#ELDV">ELDV_INVALIDPARAMETER</a> error code.
Do not forget that the<a href="descrip.htm#fichier ini">
INI file</a> is a text file, which can be easily modified by a
user...</td>
</tr>
<tr>
<td align="center" width="5%"><strong>10</strong></td>
<td width="95%">Floating numbers, while forecasted for a future
exxtension, are not necessary for LDV parameters. Let's say you
must enter a value between 0.0 and 1.0. All you have to do is to
indicate a range of [0;1000] in the <a
href="descrip.htm#fichier ini">INI file</a> (which still gives you
more precision that what can be entered in the GUI), to convert
the parameter given by <em><strong>VISION</strong></em> to float,
and then to divide it by 1000. There must exist weird cases where
floats are necessary, but one should do without them in 99% of
the cases!</td>
</tr>
<tr>
<td align="center" width="5%"><strong>11</strong></td>
<td width="95%">I advise, for memory performances reasons, to
allways use <a href="defines.htm#LDVF">LDVF_OPINPLACE</a> and <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a> flags. Allocate the
memory you want in the LDV (if you can...) and free it after its
execution.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>12</strong></td>
<td width="95%">If you work only on lines and columns, use the
<a href="defines.htm#LDVF">LDVF_SPECFORMAT</a> flag.
The VDI function vr_cpyfm is made for that purpose. Using the
<a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a>
or <a href="defines.htm#LDVF">LDVF_STDFORMAT</a> flags would
oblige
<em><strong>VISION</strong></em> to allocate memory unecessarily
(furthermore, the VDI functions ALWAYS work on the machine
specific format: <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>!)</td>
</tr>
<tr>
<td align="center" width="5%"><strong>13</strong></td>
<td width="95%">If you have to handle TOS and/or VDI indexes:<ul>
<li>You can work by lines or packets of n lines:<br>
Use the format <a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>,
and the functions of the <a href="vapi/ra.htm">
Raster interface</a>. This will minimise the memory to
allocate</li>
<li>You are obliged to have access to any index at any time:<br>
Use the format <a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a>,
and the functions of the <a href="vapi/ra.htm">
Raster interface</a>. <em><strong>VISION</strong></em>
will convert the image from the specific format to the
ATARI bitplan format before calling <a
href="descrip.htm#prerun">PreRun</a> or <a
href="descrip.htm#run">Run</a>.</li>
</ul>
</td>
</tr>
<tr>
<td align="center" width="5%"><strong>14</strong></td>
<td width="95%">Even if the user has selected a block as an area
to apply the LDV on the image, you are not limited to the area
defined by this block. You have access to the whole image, even
more if you decide to enlarge its size (fields out-&gt;fd_w and
out-&gt;fd_h of the function <a
But do not forget to update the fields x1, x2, y1 and
y2 of the structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
given by the function <a href="descrip.htm#prerun">PreRun</a>,
and also to UNDO buffer, to be able to go back.</td>
</tr>
<tr>
<td align="center" width="5%"><strong>15</strong></td>
<td width="95%">&nbsp;</td>
</tr>
<tr>
<td align="center" width="5%"><strong>16</strong></td>
<td width="95%">&nbsp;</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="kitdev.htm"><img
src="images/cprev.jpg" alt="Previous chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="preambule.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->17/09/00<!--webbot
bot="Timestamp" i-checksum="12363" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>7.
R E C O M M E N D A T I O N S</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

View File

@@ -0,0 +1,159 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): Content</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/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a href="intro.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->17/09/00<!--webbot
bot="Timestamp" i-checksum="12363" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>
C O N T E N T</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=DocVision"
BORDER=0></A>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</table>
</center></div>
<hr>
<p align="left"><a href="intro.htm"><strong>1. INTRODUCTION</strong></a></p>
<p align="left"><a href="notions.htm"><strong>2. ESSENTIAL NOTIONS
</strong></a></p>
<blockquote>
<p align="left"><a href="notions.htm#formats d'images">2.1
Images formats</a></p>
<p align="left"><a href="notions.htm#prog">2.2 Programmation</a></p>
</blockquote>
<p><a href="descrip.htm"><strong>3. DESCRIPTION</strong></a></p>
<blockquote>
<p><a href="descrip.htm#capacités">3.1 Possibilities of LDV</a></p>
<p><a href="descrip.htm#prerun">3.2 PreRun function</a></p>
<p><a href="descrip.htm#run">3.3 Run function</a></p>
<p><a href="descrip.htm#preview">3.4 Preview function</a></p>
<p><a href="descrip.htm#fichier ini">3.5 Associated INI
file</a></p>
<blockquote>
<p><a href="descrip.htm#langues"><em>3.5.1 Information
on language</em></a></p>
<p><a href="descrip.htm#parametrage"><em>3.5.2
Configuration of LDV</em></a></p>
</blockquote>
</blockquote>
<p><a href="defines.htm"><font size="3"><strong>4. DEFINES</strong></font></a></p>
<blockquote>
<p><a href="defines.htm#ELDV">4.1 Type of return codes</a></p>
<p><a href="defines.htm#ELDV">4.2 Return codes</a></p>
<p><a href="defines.htm#TLDV">4.3 Module types</a></p>
<p><a href="defines.htm#LDVF">4.4 Information on possibilities
</a></p>
</blockquote>
<p><a href="struct.htm"><strong>5. STRUCTURES</strong></a></p>
<blockquote>
<p><a href="struct.htm#LDV_INFOS">5.1 LDV_INFOS</a></p>
<p><a href="struct.htm#LDV_CAPS">5.2 LDV_CAPS</a></p>
<p><a href="struct.htm#LDV_IMAGE">5.3 LDV_IMAGE</a></p>
<p><a href="struct.htm#LDV_PALETTE">5.4 LDV_PALETTE</a></p>
<p><a href="struct.htm#LDV_VDIELEMENTALPAL">5.5
LDV_VDIELEMENTALPAL</a></p>
<p><a href="struct.htm#LDV_PARAMS">5.6 LDV_PARAMS</a></p>
<p><a href="struct.htm#LDV_BASICPARAM">5.7 LDV_BASICPARAM</a></p>
</blockquote>
<p><a href="kitdev.htm"><strong>6. DEVELOPMENT KIT</strong></a></p>
<blockquote>
<p><a href="kitdev.htm#install">6.1 Installation</a></p>
<p><a href="kitdev.htm#squelette">6.2 Skeleton</a></p>
</blockquote>
<p><a href="hints.htm"><strong>7. RECOMMANDATIONS</strong></a></p>
<p><a href="vapi/index.htm"><strong>APPENDIX: VAPI</strong></a></p>
<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/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a href="intro.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->17/09/00<!--webbot
bot="Timestamp" i-checksum="12363" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\download/dvision.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>
C O N T E N T</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,177 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): Introduction</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/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a
href="notions.htm"><img src="images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->02/10/00<!--webbot
bot="Timestamp" i-checksum="12216" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>1.
I N T R O D U C T I O N</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>At last! After several years, <em><strong>VISION</strong></em>
eventually becomes modular! Roughly, the essential purpose of LDVs
(Librairies Dynamiques for <em><strong>VISION</strong></em>) is to allow
to add your own functions.
Typically, an LDV allows to enhance the functions of <em><strong>VISION</strong></em>,
for instance by adding an image distortion module.
Here are the characteristics of LDVs:</p>
<ul>
<li>Direct access to <em><strong>VISION</strong></em> images</li>
<li>Multi-lingual (with optionnal INI file)</li>
<li>UNDO management (transparent for LDV programmer)</li>
<li>Management of the input of 4 parameters by
<em><strong>VISION</strong></em>, which can be sent to the LDV</li>
<li>Progress bar management during LDV computation</li>
<li>Preview management</li>
<li>Can be applied on an image or on a block inside an image</li>
<li><em><strong>VISION</strong></em> provides an API (VAPI)
giving image modification functions</li>
</ul>
<p>&nbsp;</p>
<p>At the development level, the programmer must:</p>
<ul>
<li>Know what he wants to do!</li>
<li>Define the capabilities of the LDV (number of plans that can be
managed, expected image format, ...)</li>
<li>Write 4 functions (2 of them being written 100% by an LDV
skeleton!):</li>
</ul>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="20%">GetLDVCapabilities</td>
<td width="80%">Already written. Return to <em><strong>VISION</strong></em>
what the LDV can do</td>
</tr>
<tr>
<td width="20%">PreRun</td>
<td width="80%">To be written. Ask <em><strong>VISION</strong></em>
to allocate the resources necessary to the function
Run</td>
</tr>
<tr>
<td width="20%">Run</td>
<td width="80%">To be written. The function that does something!</td>
</tr>
<tr>
<td width="20%">Preview</td>
<td width="80%">To be written or not. Similar to Run, but in
Preview mode, if computation time is too long, and if it is
possible to do less computation. Very often, Run is called instead
(this is what the skeleton does).</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p>Of course, writing an LDV requires some notions on images, their
formats and programming. See <a
href="notions.htm">essential notions</a>.</p>
<p>Last, I do hope to extend that principle by proposing LDV to load and
save images (possibly even more...).
However, given the time needed to include this concept in
<em><strong>VISION</strong></em>, it will require some persons to be
interested before I start with it!</p>
<p>LDVs are based on LDGs (Librairies Dynamiques GEM) developed by
Olivier Landemarre and Dominique Béréziat: <a
href="http://ldg.atari.org">ldg.atari.org</a></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="index.htm"><img
src="images/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a
href="notions.htm"><img src="images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->02/10/00<!--webbot
bot="Timestamp" i-checksum="12216" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>1.
I N T R O D U C T I O N</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,506 @@
<!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>VISION Documentation (LDV): Development kit</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="struct.htm"><img src="images/cprev.jpg" alt="Previous Chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="hints.htm"><img src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</em></strong></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">Last update: 05/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>6.
DEVELOPMENT KIT</strong></font></p>
</td>
<td align="center" width="17%">&nbsp;<br></td>
</tr>
</tbody></table>
</center></div>
<hr>
<p>.<a name="install"></a><font size="4"><strong>6.1 INSTALLATION</strong></font></p>
<p>First, I recommend to install the LDG kit available on the
<a href="http://ldg.atari.org">official LDG site</a>.<br>
Next, download the<a href="..%5C..%5Cdownload/dvldv.zip">
LDV kit+documentation</a><br>
To make an LDV, you need:
</p><ul>
<li>Files "header" LDG.H and MT_AES.H. .</li>
<li>"Library" files LDG.LIB and
MT_AES.LIB. These files are to be taken in the LDG kit in the
folder associated to your C compiler.</li>
</ul>
<p>Warning! By default, the development kit provided by
<em><strong>VISION</strong></em> includes these files for the PureC
compiler. I strongly recommend to update regularly the .H and .LIB
according to the evolution of LDGs.</p>
<p>The tree proposed in <em><strong>VISION</strong></em> LDV kit is the
following:</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td align="center" width="15%"><strong>Folder / Sub
folder</strong></td>
<td align="center" width="85%"><strong>Files</strong></td>
</tr>
<tr>
<td align="center" width="15%"><strong>&lt;..&gt;/LDV</strong></td>
<td width="85%"><em>For LDG management:</em><br>
LDG.H: Librairies dynamiques GEM, header file .H<br>
MT_AES.H: To use LDG/LDV under a multi tasking OS. In fact, this
file is useful only if you use AES in the LDV, which is unlikely
at the moment, but perhaps soon...<br>
LDG.LIB, MT_AES.LIB: to be linked with your LDV<br>
<em>For LDV management:</em><br>
LDV.H: Definition of structures and interfaces with <em><strong>VISION</strong></em><br>
VAPI.H: Definition of structures and interfaces with <a href="vapi/index.htm">VAPI</a></td>
</tr>
<tr>
<td align="center" width="15%"><strong>&lt;...&gt;/LDV/SRC</strong></td>
<td width="85%">Each LDV is there in a directory associated with
its name. In such a directory, there is:<br>
&lt;name of ldv&gt;.C: the "source" file of the
LDV<br>
&lt;name of ldv&gt;.PRJ: the project file (Pure C)</td>
</tr>
<tr>
<td align="center"><strong>&lt;...&gt;/LDV/DOC</strong></td>
<td>This documentation</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<p>.<a name="squelette"></a><font size="4"><strong>6.2 SKELETON</strong></font></p>
<p>You can use for the skeleton of an LDV any source of an LDV found in
the kit. It is up to you to see which file suits best the LDV you want to
make!</p>
<p>&nbsp;</p>
<p>.<a name="exemples"></a><font size="4"><strong>6.3 EXAMPLES</strong></font></p>
<p>The <em><strong>VISION</strong></em> kit provides the following LDVs
as well as the sources (in PureC). Here are their characteristics:</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><strong>INVERT.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Inversion of bits of an image</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capabilities</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Does not modify the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Transformation type
</strong></td>
<td width="80%">In place. This property can also be suppressed
from the CAPS define, and <em><strong>VISION</strong></em> can be
forced to allocate memory for the destination (teaching only
purpose!)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Uses VAPI</strong></td>
<td width="80%">No</td>
</tr>
<tr>
<td align="center"><strong>INI file</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Comment</strong></td>
<td width="80%">Very simple! Uses only vro_cpyfm VDI function<br>
Not really useful: <em><strong>VISION</strong></em>
already provides the "Négative" function since version
1.0!</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><strong>XWAVE.LDV
/ YWAVE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Waves on X / Y axis</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capabilities</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Does not modify the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Transformation
type</strong></td>
<td width="80%">Forces <em><strong>VISION</strong></em> to
allocate memory for destination. It must be possible to do
without, but this complicates a little the LDV...</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Uses VAPI</strong></td>
<td width="80%">Yes (<a href="vapi/pr.htm">Progress</a> +
<a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>INI file</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Comment</strong></td>
<td width="80%">Amusing and quite simple. Presents <a href="vapi/pr.htm">the VAPI progress interface</a> and the
function to "clear" an image (<a href="vapi/ra.htm#RaImgWhite">RaImgWhite</a>).</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><strong>BW.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Conversion of an image (or part in True colour) to
an image in shades of grey</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capabilities</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Modifies the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Transformation
type</strong></td>
<td width="80%">In place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Uses VAPI</strong></td>
<td width="80%">Yes (<a href="vapi/pr.htm">Progress</a> +
<a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>INI file</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Comment</strong></td>
<td width="80%">Uses True colour conversion format functions (<a href="vapi/ra.htm#RaTCConvert">RaTCConvert</a> and <a href="vapi/ra.htm#RaTCInvConvert">RaTCInvConvert</a>).
Shows also how to modify the palette. Compared to the equivalent <em><strong>VISION</strong></em>
(B&amp;W conversion) function, this LDV allows to do it on a
block (True Colour mode only)</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="pixel"></a><strong>PIXEL.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Performs a pixelization on an image or part of it</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">True Color modes only (16 and 32
planes).&nbsp;ATARI. format</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">In place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Yes (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Nice
effect and good for learning: this&nbsp;LDV only considers True Color
ATARI format and it will nevertheless run on your MagicPC ! It makes
use of&nbsp; <em><strong>VISION</strong></em> feature to deal with format handling and only focuses on a specific format. Hadnles cancel feature.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="ypersc"></a><strong>YPERSC.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Performs a perspective effect&nbsp;on an image or part of it</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). ATARI format. Does not change palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Forces <em><strong>VISION</strong></em> to
allocate memory for destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>+ <a href="../../ldv/vapi/ra.htm">Raster Interface</a>
+ <a href="../../ldv/vapi/me.htm">MEM Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Nice perspective effect. When operating on selection, the allocation bloc is set thanks to&nbsp;<a href="../../ldv/defines.htm#LDVF">LDVF_NOSELECTION</a>
flag (pretty painful to handle in bitplane mode). This LDV only gets an image and not bloc selection.<a href="../../ldv/vapi/me.htm">MEM Interface</a>&nbsp;function <a href="../../ldv/vapi/me.htm#MeSCopyMemory8">MeCopyMemoryxx</a> is used to scale lines.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="light"></a><strong>LIGHT.LDV / </strong><a name="gamma"></a><strong>GAMMA.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Change red, green, blue color spreading using a line (light) or a gamma curve (gamma).</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Modifies the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">In place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Yes (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>+ <a href="../../ldv/vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Smart replace for old embedded functions in
<em><strong>VISION</strong></em>..In bitplane mode, palette is changed. Handles cancel.<br>
These LDVs are pretty optimized for memory performances: they operate
in place on machine specific format and can work on a bloc inside the
image.(true colro only).<br>
These LDVs are very similar : only internal function ChangeColors is specific to a LDV.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="rotate"></a><strong>ROTATE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Performs a rotation on the image or part of it.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Does not change the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Forces <em><strong>VISION</strong></em> to
allocate memory for destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Yes (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>+ <a href="../../ldv/vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">This LDV is very simple. Actually it just calls&nbsp;<a href="../../ldv/vapi/ra.htm#RaRasterRotateGetDstMFDB">RaRasterRotateGetDstMFDB</a> and <a href="../../ldv/vapi/ra.htm#RaRasterRotate">RaRasterRotate</a>
functions in&nbsp;<a href="../../ldv/vapi/index.htm">VAPI</a> <a href="../../ldv/vapi/ra.htm">Raster interface</a>&nbsp;<a href="../../ldv/vapi/index.htm"></a>.<br>
Have a look how&nbsp;<a href="../../ldv/defines.htm#LDVF">LDVF_NOSELECTION</a> flag is used in order to not complicate things with blocs.</td>
</tr>
</tbody></table>
</center></div>
<p></p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="puzzle"></a><strong>PUZZLE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Mix image blocs to generate a puzzle</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Does not change the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Forces <em><strong>VISION</strong></em> to
allocate memory for destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Yes (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Fun LDV easy to code. Smartest thing is entropy handling i.e. how much disorder there is in the mix.</td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="bhole"></a><strong>BHOLE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Simulates a black hole in an image. Consider it as a tribute to <a href="https://www.youtube.com/watch?v=A6HhDFskbXs">Stephen Hawking</a>.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Any number of bitplans (1, 2, 4, 8, 16, 24
and 32). Machine format. Does not change the palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Forces <em><strong>VISION</strong></em> to
allocate memory for destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Yes (<a href="../../ldv/vapi/pr.htm">Progress
Interface</a>+<a href="../../ldv/vapi/co.htm">Config Interface</a>+<a href="../../ldv/vapi/lo.htm">Logging Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Yes (English / French)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Most complicated LDV so far. Has its own optimzations for 68030 and 68881. Uses black hole symetry to speed up computations.</td>
</tr>
</tbody></table>
</center></div>
<hr>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="struct.htm"><img src="images/cprev.jpg" alt="Previous chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="hints.htm"><img src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</em></strong></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">Last update: 05/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>6.
DEVELOPMENT KIT</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></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>VISION Documentation (LDV): Content</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="Previous Chapter "
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="images/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a
href="preambule.htm"><img src="images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--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">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>C O N T
E N T</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="Previous Chapter "
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="images/csom.jpg" alt="Back to content " border="0"
hspace="2" width="26" height="26"></a><a
href="preambule.htm"><img src="images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--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">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>C O N T
E N T</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,218 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): Essential notions</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="intro.htm"><img
src="images/cprev.jpg" alt="Previous Chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="descrip.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/10/00<!--webbot
bot="Timestamp" i-checksum="12214" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>2.
ESSENTIAL NOTIONS</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="formats d'images"></a><font size="4"><strong>2.1 Images
formats</strong></font></p>
<p>I cannot explain here the bit to bit encoding of an image. Roughly, for
a number of plans up to 8, a pixel is associated to a colour index in a
palette. Thus, this index points to the true colour of the pixel. Starting
with 15 plans, we are in True Color, i.e., each pixel is associated with
its colour value (thus with 15, 16, 24 or 32 bits). While in True Color,
it's fairly easy, in palette mode (bit-plane) it becomes quickly complex,
because each pixel has one of its bits coded in a 16 bits word. This bit
should be searched, the different bits from one pixel should be put
together, etc... This becomes quickly tiring and, to be fast, this
requires assembly optimisation. Thankfully, <em><strong>VISION</strong></em>
proposes functions to simplify your work with
<a href="vapi/index.htm#Présentation">VAPI</a>.</p>
<p><em><strong>VISION</strong></em>'s LDVs can work in any of the 3
following formats (note that there is no interesst for your LDV to handle
the 3 formats, <em><strong>VISION</strong></em> will transmit the required
format):</p>
<ul>
<li>Standard format</li>
<li>ATARI format</li>
<li>Specific format</li>
</ul>
<p>This little table specifies these different formats ((R = Red, G =
Green, B = Blue):</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Format</strong></td>
<td align="center" width="10%"><strong>Number of bits /
pixel</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%">Standard</td>
<td align="center" width="10%">1, 2, 4, 8</td>
<td width="75%">Standard format defined by ATARI. The pixel planes
(16 pixels) are following each other. In True-Color, this format
maybe exists, but I prefer not to know!</td>
</tr>
<tr>
<td align="center" width="15%">ATARI</td>
<td align="center" width="10%">1, 2, 4, 8</td>
<td width="75%">ATARI bit-plane format. Very classical,
this is the format of ST-Low, ST-Medium and ST-High, then, by
extension, the format of Falcon's bit-plane modes. Contrary to
Standard mode, planes are interlaced ((Plan0 - Plan1 - Plan2 -
Plan 3, for instance for 16 colours))</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">16</td>
<td width="75%">FALCON True Color mode. Each pixel
is coded in a 16 bits word such as the following:<br>
RRRRRVVVVV0BBBBB<br>
15 --&gt; 0 Bit #<br>
In fact, the actual encoding is on 15 or 1 pixels. The level of
green can be coded on 6 bits (65K) instead of 5 (32K).</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">24</td>
<td width="75%">Sadly <em><strong>VISION</strong></em>
does not handle this format!</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">32</td>
<td width="75%">RGB0, R, G, B = red, green or
blue component on 8 bits (0...255)</td>
</tr>
<tr>
<td align="center" width="15%">Specific</td>
<td align="center" width="10%">1, 2, 4, 8, 16, 24, 32</td>
<td width="75%">Specific to the graphic card. No
hypothesis on the bit encoding for a pixel can be made.</td>
</tr>
</table>
</center></div>
<p>As far as possible, use the specific format, because it uses the less
memory. If your LDV has only to handle lines and columns, you don't have
to pay attention to internal pixel coding, the vro_... VDI functions will
handle it.</p>
<p>If you have to handle pixels, I recommand to use the ATARI format,
because <em><strong>VISION</strong></em> allows to get very easily the
indexes through its <a
href="vapi/index.htm#Présentation">VAPI</a>.</p>
<p>The standard format is not very useful, except internally in
<em><strong>VISION</strong></em> to display the images correctly. except
if you have developed equivalent functions to those proposed in
<a href="vapi/index.htm#Présentation">VAPI</a>, I would advise not to use
this format.</p>
<p>&nbsp;</p>
<p><a name="prog"></a><font size="4"><strong>2.2 Programing</strong></font></p>
<p>You have to know how to program in C! Normally, LDVs do not depend on
the compiler (I did my best but, as I use only Pure C, I cannot be really
sure).</p>
<p>You have to be fluent in C and not be afraid of handling pointers on
structures and functions.</p>
<p>If you know LDGs, this will be useful but it is not mandatory, the LDV
skeleton hides them fairly well.</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="intro.htm"><img
src="images/cprev.jpg" alt="Previous chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="descrip.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/10/00<!--webbot
bot="Timestamp" i-checksum="12214" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>2.
ESSENTIAL NOTIONS</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,464 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VISION Documentation (LDV): 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="defines.htm"><img
src="images/cprev.jpg" alt="Previous Chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="kitdev.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last update:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>5.
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="LDV_INFOS"></a><font size="4"><strong>5.1 LDV_INFOS</strong></font></p>
<p><font size="3"><strong>typedef struct<br>
{<br>
short StrSize ;<br>
short Type ;<br>
char Authors[1+45] ;<br>
<br>
LDV_CAPS Caps[10] ;<br>
<br>
char RFU[16] ;<br>
}<br>
LDV_INFOS ;</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">StrSize</td>
<td align="center" width="15%">short</td>
<td width="75%">LDV_INFOS structure size. Must be
initialised with sizeof(LDV_INFOS). The aim of this field
is to prevent <em><strong>VISION</strong></em> from exploding its
internal data if the size of this structure should change.</td>
</tr>
<tr>
<td align="center" width="10%">Type</td>
<td align="center" width="15%">short</td>
<td width="75%">Must be equal to <a href="defines.htm#TLDV">TLDV_MODIFYIMG</a>,
<a href="defines.htm#TLDV">TLDV_LOADIMG</a> or <a
href="defines.htm#TLDV">TLDV_SAVEIMG</a>, or even more in the
future. Currently, only the <a
href="defines.htm#TLDV">TLDV_MODIFYIMG</a> type is accepted
by <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td align="center" width="10%">Authors</td>
<td align="center" width="15%">char[1+45]</td>
<td width="75%">Name of the author(s). 45 characters are available
for this purpose.</td>
</tr>
<tr>
<td align="center" width="10%">Caps</td>
<td align="center" width="15%"><a href="#LDV_CAPS">LDV_CAPS</a>[10]</td>
<td width="75%">Table describing the capabilities of the LDV for
each number of plane. The LDV can handle a maximum of 9 differents
planes because the structure table must end with a structure where
fields are initialised with 0.</td>
</tr>
<tr>
<td align="center" width="10%">RFU</td>
<td align="center" width="15%">char[16]</td>
<td width="75%">Reserved for future use. Don't touch!</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_CAPS"></a><font size="4"><strong>5.2 LDV_CAPS</strong></font></p>
<p><font size="3"><strong>typedef struct<br>
{<br>
char NbPlanes ; <br>
char NbPlanesOut ;<br>
unsigned long Flags ; <br>
}<br>
LDV_CAPS ;</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">NbPlanes</td>
<td align="center" width="15%">char</td>
<td width="75%">Number of planes for this capability (1,
2, 4, 8 , 16, 24 (not handled), 32)</td>
</tr>
<tr>
<td align="center" width="10%">NbPlanesOut</td>
<td align="center" width="15%">char</td>
<td width="75%">Number of planes on output for this capability.
For a <a href="defines.htm#TLDV">TLDV_MODIFYIMG</a> LDV type,
this field must be equal to NbPlanes</td>
</tr>
<tr>
<td align="center" width="10%">Flags</td>
<td align="center" width="15%">unsigned long</td>
<td width="75%">Combination (| symbol) of the following masks:<ul>
<li><a href="defines.htm#LDVF">LDVF_STDFORMAT</a>:
LDV accepts the standard format</li>
<li><a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a>:
LDV accepts the ATARI format</li>
<li><a href="defines.htm#LDVF">LDVF_SPECFORMAT</a>:
LDV accepts the format specific to the graphic
card</li>
<li><a href="defines.htm#LDVF">LDVF_SUPPORTPREVIEW</a>:
LDV has a Preview function (highly recommanded,
even if it only calls Run)</li>
<li><a href="defines.htm#LDVF">LDVF_AFFECTPALETTE</a>:
LDV modifies the palette (NbPlanes must be less than or
equal to 8)</li>
<li><a href="defines.htm#LDVF">LDVF_SUPPORTPROG</a>:
LDV will call the <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> function of
<a
href="vapi/index.htm#Présentation">VAPI</a> interface
(recommanded if the processing takes more than 2 seconds)</li>
<li><a href="defines.htm#LDVF">LDVF_OPINPLACE</a>:
LDV knows how to work on the source image, without the
need for <em><strong>VISION</strong></em> to allocate the
destination (it is said the transformation in done in
place). In this case, the out parameter of the Run
function is the same as the in parameter. As far as
possible, use this flag, this will lessen the memory
consumption.</li>
<li><a href="defines.htm#LDVF">LDVF_REALTIMEPARAMS</a>:
LDV does Preview (small image displayed by the
<em><strong>VISION</strong></em> dialogue) fast enough for
the modification of LDV's parameters by the sliders to be
smooth (at least 1 image per second)</li>
</ul>
</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_IMAGE"></a><font size="4"><strong>5.3 LDV_IMAGE</strong></font></p>
<p><strong>typedef struct<br>
{<br>
short RasterFormat ;<br>
MFDB Raster ; <br>
LDV_PALETTE Palette ; /* Structure given if Raster.fd_nplanes
&lt;= 8 */<br>
}<br>
LDV_IMAGE ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">RasterFormat</td>
<td align="center" width="15%">short</td>
<td width="75%"><a href="defines.htm#LDVF">LDVF_STDFORMAT</a>,
<a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a> or <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a></td>
</tr>
<tr>
<td align="center" width="10%">Raster</td>
<td align="center" width="15%">MFDB</td>
<td width="75%">The classical ATARI MFDB describing
the image data (excluding the palette)</td>
</tr>
<tr>
<td align="center" width="10%">Palette</td>
<td align="center" width="15%"><a href="#LDV_PALETTE">LDV_PALETTE</a></td>
<td width="75%">Pointer on a structure <a
href="#LDV_PALETTE">LDV_PALETTE</a> describing the palette
associated with the image if the number of bits is less than
or equal to 8.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_PALETTE"></a><font size="4"><strong>5.4
LDV_PALETTE</strong></font></p>
<p><strong>typedef struct<br>
{<br>
short NbColors ; <br>
VDI_ELEMENTPAL *Pal ;<br>
}<br>
LDV_PALETTE ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">NbColors</td>
<td align="center" width="15%">short</td>
<td width="75%">The number of elements in the table pointed by
Palette (i.e., 2, 4, 16 ou 256 colours)</td>
</tr>
<tr>
<td align="center" width="10%">Pal</td>
<td align="center" width="15%"><a
href="#LDV_VDIELEMENTALPAL">VDI_ELEMENTALPAL</a> *</td>
<td width="75%">Pointer on a table of NbColors
elements of the type VDI_ELEMENTPAL. The proposed palette is
indexed by VDI indexes (those used by the VDI functions such as
line drawing) and not TOS ones (those you get from
<a href="vapi/index.htm#Présentation">VAPI</a> raster functions).
Thankfully, <a href="vapi/index.htm#Présentation">VAPI</a> has
functions to convert VDI to TOS indexes in both directions.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_VDIELEMENTALPAL"></a><font size="4"><strong>5.5
VDI_ELEMENTALPAL</strong></font></p>
<p><strong>typedef struct<br>
{<br>
short Red ;<br>
short Green ;<br>
short Blue ;<br>
}<br>
VDI_ELEMENTPAL ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">Red</td>
<td align="center" width="15%">short</td>
<td width="75%">Component <font color="#FF0000">Red</font>
of the VDI index of the palette (0 &lt;= index &lt;= 1000)</td>
</tr>
<tr>
<td align="center">Green</td>
<td align="center">short</td>
<td>Component <font color="#00FF00">Green</font> of the VDI
index of the palette (0 &lt;= index &lt;= 1000)</td>
</tr>
<tr>
<td align="center">Blue</td>
<td align="center">short</td>
<td>Component <font color="#0000FF">Blue</font>
of the VDI index of the palette (0 &lt;= index &lt;= 1000)</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_PARAMS"></a><font size="4"><strong>5.6 LDV_PARAMS</strong></font></p>
<p><strong>typedef struct<br>
{<br>
short x1, y1, x2, y2 ;<br>
short NbParams ;<br>
LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ;<br>
}<br>
LDV_PARAMS ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">x1</td>
<td align="center" width="15%">short</td>
<td width="75%">X position of the left top border of the
rectangle to be processed
(0 for a full image)</td>
</tr>
<tr>
<td align="center">y1</td>
<td align="center">short</td>
<td>Y position of the left top border of the
rectangle to be processed
(0 for a full image)</td>
</tr>
<tr>
<td align="center">x2</td>
<td align="center">short</td>
<td>X position of the right bottom border of the rectable
to be processed
(image width - 1 for a full image)</td>
</tr>
<tr>
<td align="center">y2</td>
<td align="center">short</td>
<td>YX position of the right bottom border of the rectable
to be processed
(image height - 1 for a full image)</td>
</tr>
<tr>
<td align="center">NbParams</td>
<td align="center">short</td>
<td>Number of valid parameters in the Param table</td>
</tr>
<tr>
<td align="center">Param</td>
<td align="center"><a href="#LDV_BASICPARAM">LDV_BASICPARAM</a></td>
<td>Table containing the parameters entered from the
<em><strong>VISION</strong></em> user interface</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_BASICPARAM"></a><font size="4"><strong>5.7
LDV_BASICPARAM (UNION)</strong></font></p>
<p><strong>typedef union<br>
{<br>
short s ;<br>
float f ;<br>
}<br>
LDV_BASICPARAM ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Field</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Comments</strong></td>
</tr>
<tr>
<td align="center" width="10%">s</td>
<td align="center" width="15%">short</td>
<td width="75%">Parameter value (if this parameter, defined in the
<a href="descrip.htm#fichier ini"> associated .INI
</a> is an integer)</td>
</tr>
<tr>
<td align="center">f</td>
<td align="center">float</td>
<td>Parameter value (if this parameter, defined in the
<a href="descrip.htm#fichier ini"> associated .INI
</a> is a Float. Currently, the type Float is not handled, and
since compilers can differ in the way they code floats, I
strongly recommend to use Shorts).</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="defines.htm"><img
src="images/cprev.jpg" alt="Previous chapter "
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Back to content " border="0" hspace="2" width="26"
height="26"></a><a href="kitdev.htm"><img
src="images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Last updpate:
<!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->29/10/00<!--webbot
bot="Timestamp" i-checksum="12232" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Download documentation</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>

View File

@@ -0,0 +1,220 @@
<!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écé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ère
mise à jour : 07/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Interface prefix</strong></td>
<td width="85%">Co</td>
</tr>
<tr>
<td width="15%"><strong>Number of functions</strong></td>
<td width="85%">3</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Set of functions giving access to&nbsp;<em><strong>VISION</strong></em>.'s configuration (paths, languages,...)</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>Parameters</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">A pointer to string holding LDV path</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used
to know what is LDV path. Enables the LDV to load a file from there
(e.g. LOD, INI). This path is passed as a parameter to&nbsp;<a href="../descrip.htm#getparams">GetParams</a>
function (optional).</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%"><a href="index.htm">VAPI</a> returns a pointer to&nbsp;<em><strong>VISION</strong></em>.'x configuration.
You shall NOT change data from this pointer; make your own copy if you need !</td>
</tr>
<tr>
<td width="15%"><strong>VAPI&nbsp;</strong><strong>Version</strong></td>
<td width="85%">1.02 or more</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>Parameters</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">A pointer to string holding&nbsp;<em><strong>VISION</strong></em>.''s current language<em><strong></strong></em></td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to know which language is currently used. Use with&nbsp;<a href="#CoGetLDVPath">CoGetLDVPath</a>, you can locate the INI file for this LDV, just concatenate both strings.</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%"><a href="index.htm">VAPI</a> returns a pointer to&nbsp;<em><strong>VISION</strong></em>.'x configuration.
You shall NOT change data from this pointer; make your own copy if you need !</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or more</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>Parameters</strong></td>
<td width="85%">Pointer to <a href="index.htm">VAPI</a> function for which you'd like to know if some optimization is available</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">A 32bit word which following bit meaning:<br>
Bit 0 set &nbsp;This function is 68030 optimized<br>
Bit 1 set : This function is DSP 56001 optimzed</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to know if a function has specific processor optimzations to let the progress window know about this (see&nbsp;<a href="pr.htm">Progress Interface</a> : <a href="pr.htm#PrOptimize">PrOptimize</a>). Not that useful but so sexy !</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">If
the machine running this call has no 68030 or DSP support, this call
won"t return any optimization, which is pretty logical as it won"t be
used even if exisitng.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI&nbsp;</strong><strong>Version</strong></td>
<td width="85%">1.03&nbsp;or more</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>Parameters</strong></td>
<td width="85%">Requests&nbsp;<em><strong>VISION</strong></em> what are the available processors</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">A 32bit word which following bit meaning:<br>0x02 : A 68030 or better is present<br>0x20 : A FPU (68881 or better) is present<br>0x200: A DSP 56001 is present</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to prepeare LDV to select appropriae routines depending on processors availability</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">The returned value may be filtered out by&nbsp;<span style="font-style: italic; font-weight: bold;">VISION</span>
if VISION.INI says so in&nbsp;Hide030, HideFPU or HideDSP
variables set to 1. Very useful to simulate LDV run on a lower configuration.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.04&nbsp;or more</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écé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ère
mise à jour : 07/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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,342 @@
<!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écé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">Last update: 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>INI
INTERFACE</strong></font></p>
</td>
<td align="center" width="17%"></td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center"><strong>Abstract</strong></td>
</tr>
<tr>
<td width="15%"><strong>Interface Prefix</strong></td>
<td width="85%">In</td>
</tr>
<tr>
<td width="15%"><strong>Number of functions</strong></td>
<td width="85%">6</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Set of functions to manipulate INI files. A maximum of 3 INI files can be simulataneously managed.</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> file : INI file name </td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">If &gt;= 0 : a INI handle<br>
If &lt; 0, No more INI handle available</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Reserve a INI handle to operate later on. If file does not exist, a valid handle is returned, file can then be saved by calling <a href="#InSaveAndClose">InSaveAndClose</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong><strong></strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> hini : A INI handle previously returned by <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Success<br>
-1 : Invalid handle</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Free INI handle. Does not save modifications, use <a href="#InSaveAndClose">InSaveAndClose</a> to save them.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> hini :&nbsp;A INI handle previously returned by <a href="in.htm#InOpen">InOpen</a><a href="#InOpen"></a><br>
<strong>[IN]</strong> new_name : new filename to use for saving. If NULL, this function will use the one passed to <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Success<br>
-1 : Invalid handle, won't save.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Generate a INI file by commiting all modifications made since last call to <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> hini :&nbsp;A INI handle previously returned by <a href="in.htm#InOpen">InOpen</a><a href="#InOpen"></a><br>
<strong>[IN]</strong> section : section name<br>
<strong>[IN] </strong>key : key name<br>
<strong>[OUT]</strong> val_key : buffer which will hold the key value in&nbsp;ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Error : key or section does not exist<br>
1 : Success, ASCII value for this key in the section is hold in val_key</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Retrieves a specific key in a specific section</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> hini :&nbsp;A INI handle previously returned by <a href="in.htm#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : section name<br>
<strong>[IN] </strong>key : key name<br>
<strong>[OUT]</strong> val_key : buffer which&nbsp;holds the key value in&nbsp;ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Error : key or section could not be created or changed due to insufficient memory<br>
1 : Success</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Adds or modify a key within a section</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">If section r key does not exist, it is created</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> hini :&nbsp;A INI handle previously returned by <a href="in.htm#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : section name<br>
<strong>[IN] </strong>key : key name<br>
<strong>[IN/OUT] </strong>val_key : buffer holding the default key value in ASCII [IN] or/and the key value [OUT]</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Key has been sucessfully retrieved<br>
1 : Key has been created.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to retrieve an existing key in a given section or create it with a default value.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Pretty useful!</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</td>
</tr>
</tbody></table>
</center></div>
<pre><br></pre><div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td width="15%"><strong><a name="GetKeyFromFile"></a>Prototype</strong></td>
<td width="85%">long<strong>&nbsp;InGetKeyFromFile</strong>(char *file, char *section, char *key, char *val_key)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> file : INI file name<a href="in.htm#InOpen"></a><br>
<strong>[IN]</strong> section : section name<br>
<strong>[IN] </strong>key : key name<br>
<strong>[IN/OUT] </strong>val_key : buffer holding the default key value in ASCII [IN] or/and the key value [OUT]</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : Key could not be retrieved (filename, section or key not found)<br>
1 : Key has been succesfully read.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used
to read a key value directly from a file without the need to create the
key if not present (as previous function). Typically this is used to
read a setting from a file.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Pretty useful!</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.04 or greater</td>
</tr>
</tbody></table>
</center></div>
<font size="3"><br></font><pre><font size="3">Example: find a proprietary key in a LDV INI file<br>long hini, must_save ;<br>short angle = 90; </font><font color="#000080" size="3"><em>/* Default value */</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">/* Get LDV current path */</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">/* Get current language */</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>/* Setting default value */</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>/* Either angle will be set to 90 (default value), or value retrieved from INI file */</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>/* Save if key did not exist */</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>/* Else regular close */</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écé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">Last update&nbsp;: 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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,159 @@
<!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>VISION Documentation (VAPI): Presentation</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="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="pr.htm"><img src="../images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update: 07/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Download documentation</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%"></td>
</tr>
</tbody></table>
</center></div>
<hr>
<p><a name="Présentation"></a><font size="4"><strong>1.
Presentation</strong></font></p>
<p>VAPI (<em><strong>VISION's</strong></em> Application
Programmer Interface) is a part of <em><strong>VISION</strong></em>
designed to help you develop LDVs. You must have guessed that internally,
<em><strong>VISION</strong></em> uses numerous functions to handle images
(bit-planes conversions &lt;--&gt; TOS/VDI indexes, rasters handling,...)
as well as user interface functions (e.g., progress windows).<br>
The aim of VAPI is make available to LDVs these functions reserved, until
now, to the internal operations of <em><strong>VISION</strong></em>.
There are two interests for an LDV:</p>
<ul>
<li>Its author spares the time to develop again an existing function
</li>
<li>The LDV is lighter</li>
</ul>
<p>Of course, <em><strong>VISION</strong></em>
has numerous functions (more or less easy and elegant...), a choice must
then be made on which ones to export.
Furthermore, <font size="3"><em><strong>VISION</strong></em></font> could
also export its data such as the catalog, the image Browser, etc...<br>
Since it still takes a lot of time to design and make all this, I will
first ensure that <em><strong>VISION</strong></em> exports first a few
"basic" functions, then, if success increases, more will follow.
</p>
<p>&nbsp;</p>
<p><a name="dev-kit"></a><font size="4"><strong>2. Development kit
</strong></font></p>
<p>The VAPI development kit is identical to the LDV one.
You will find it <a href="../kitdev.htm">here</a>.</p>
<p>&nbsp;</p>
<p><a name="use"></a><font size="4"><strong>3. Use</strong></font></p>
<p>Using VAPI from an LDV is very simple: when <em><strong>VISION</strong></em>
call the GetLDVCapabilities function, it returns a pointer on a structure
of the type <a href="struct.htm#VAPI">VAPI</a>.
Without going into details, this stucture contains the following
information:</p>
<ul>
<li>A header of the type <a href="struct.htm#VAPI_HEADER">VAPI_HEADER</a></li>
<li>A list of "loose" functions. These functions are in fact
put together in groups (also called interfaces). Each group is
terminated by an unused memory area, which purpose is to host new
functions from the same group. If new groups are created, they will go
at the end of the structure, to garanty ascending compatibility.</li>
</ul>
<p>Now, to use a function from VAPI, it's very simple; imagine you want to
initialise the destination image raster passed as a parameter in the Run
function, with the colour white (in bit-plane or True Color); you just
have to insert the following line:</p>
<p><strong>Vapi-&gt;RaImgWhite( &amp;out-&gt;Raster ) ;</strong></p>
<p>This only suppose you maintained the VAPI pointer provided by
<em><strong>VISION</strong></em> through GetLDVCapabilities (done
automatically by the skeleton).</p>
<p>The list of all functions defined by the VAPI interface is available
here. Sorry, but all the interfaces and the function names are in English!
(Translator's note: this remark is obviously for French readers).</p>
<p>&nbsp;</p>
<p><a name="interfaces"></a><font size="4"><strong>4. Available interfaces
</strong></font></p>
<p><font size="3">Interfaces are grouping function having a common
interest. Here is the list (which I hope is not complete) of the current
interfaces:</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><p>&nbsp;</p>
<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="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="pr.htm"><img src="../images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update:&nbsp;07/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Download documentation</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,151 @@
<!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écé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">Last update&nbsp;: 08/26/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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>Abstract</strong></td>
</tr>
<tr>
<td width="15%"><strong>Interface Prefix</strong></td>
<td width="85%">Lo</td>
</tr>
<tr>
<td width="15%"><strong>Nomber of functions</strong></td>
<td width="85%">2</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Set of&nbsp; functions enabling logging from LDV</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>Parameters</strong></td>
<td width="85%">level:
bitmask defining the logging level of the message:: LL_FATAL, LL_ERROR,
LL_WARNING, LL_INFO, LL_PERF, LL_MEM, LL_GW2, LL_GW1, LL_DEBUG, LL_KCODE, LL_TMP2, LL_TMP1<br>format: format string for parameters passed after (just like sprintf)<br>...: dynamic list of parameters to pass (cf. <a href="https://en.wikipedia.org/wiki/Ellipsis_%28computer_programming%29">'C' ellipsis</a>)</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">Number of bytes written to logging file</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to send information to&nbsp;<em><strong>VISION</strong></em>'s logging file; typically for debugging, performance or error<br>Note that if level parameter does not match current&nbsp;<em><strong>VISION</strong></em>''s
logging level bitmask, this function will simply return without even
starting formatting data (which may have been CPU consuming)</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">Example:<br>Vapi-&gt;LoDoLog(LL_DEBUG, "%ld pixels computed or deduced", np) ;<br></td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.04 or more</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>Parameters</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">The bitmask logging level currently used by <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to know what is the current&nbsp;<em><strong>VISION</strong></em>'s logging level in order to not proceed to some useless computation for some message which won't be logged anyway</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">Use
this function only if you may have extra computation before calling
LoDoLog as LoDoLog will return immediatly if logging level does not
match loggng level message.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.04 or more</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écé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"></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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,201 @@
<!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) : MEM 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 src="../images/cprev.jpg" alt="Chapitre précé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="struct.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">Last update&nbsp;:&nbsp;08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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;&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>Abstract</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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%">Set of functions allowing to manipulate memory areas, mostly image oriented</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="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>Parameters</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointer to memory area to change<br>
<strong>[IN]</strong> src : Pointer to memory area to copy from<br>
<strong>[OUT]</strong> nb_elems_dst : Number of 8bit elements in destination area<br>
<strong>[IN]</strong> nb_elems_src :&nbsp;Number of 8bit elements in source area</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Copies
a 8bit memory area by respecting the number of elements in each zone.
Very useful to perform changes on a line. Not working with overlapping
zones.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Number of elements shall not be more than 65535 due to specific optimization. If a 68030 processor is available, <em><strong>VISION</strong></em>
will use automatically an optimzed routine.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointer to memory area to change<br>
<strong>[IN]</strong> src : Pointer to memory area to copy from<br>
<strong>[OUT]</strong> nb_elems_dst : Number of 16bit elements in destination area<br>
<strong>[IN]</strong> nb_elems_src :&nbsp;Number of 16bit elements in source area</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Copies a 16bit memory area by respecting the number of elements in each
zone. Very&nbsp;useful to perform changes on a line. Not working with
overlapping zones.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">Number of elements shall not be more than 32767 due to specific optimization. If a 68030 processor is available, <em><strong>VISION</strong></em>
will use automatically an optimzed routine.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointer to memory area to change<br>
<strong>[IN]</strong> src : Pointer to memory area to copy from<br>
<strong>[OUT]</strong> nb_elems_dst : Number of 32bit elements in destination area<br>
<strong>[IN]</strong> nb_elems_src :&nbsp;Number of 32bit elements in source area</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Copies a 32bit memory area by respecting the number of elements in each
zone. Very&nbsp;useful to perform changes on a line. Not working with
overlapping zones.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Number of elements shall not be more than 16383 due to specific optimization. If a 68030 processor is available, <em><strong>VISION</strong></em>
will use automatically an optimzed routine.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02 or greater</td>
</tr>
</tbody></table>
</center></div>
<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="in.htm"><img src="../images/cprev.jpg" alt="Chapitre précé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="struct.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">Last update&nbsp;:&nbsp;08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip"><br></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>
</tbody></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>VISION Documentation (VAPI): Content</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="Previous Chapter "
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="../images/csom.jpg" alt="Back to content "
border="0" hspace="2" width="26" height="26"></a><a
href="preambule.htm"><img src="../images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(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">Last update:
<!--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">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>C O N T
E N T</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="Previous chapter "
hspace="2" width="46" height="26"><a href="sommaire.htm"><img
src="../images/csom.jpg" alt="Back to content "
border="0" hspace="2" width="26" height="26"></a><a
href="preambule.htm"><img src="../images/csuiv.jpg"
alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(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">Last update:
<!--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">Download documentation</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>C O N T E
N T</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,229 @@
<!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>VISION Documentation (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%">
<tbody><tr>
<td align="center" width="17%"><a href="index.htm"><img src="../images/cprev.jpg" alt="Previous Chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="ra.htm"><img src="../images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update: 08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip"><br></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;&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>Summary</strong></td>
</tr>
<tr>
<td width="15%"><strong>Interface prefix</strong></td>
<td width="85%">Pr</td>
</tr>
<tr>
<td width="15%"><strong>Number of functions</strong></td>
<td width="85%">4</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Set of functions allowing an action on
<em><strong>VISION</strong></em>'s progress windows, to inform
user about work in progress.</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="PrSetProg"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>PrSetProg</strong>(long
pc)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> pc: percentage
of work done (0...100)</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Updates the percentage indicator in the progress
window</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">If the pc paramteter is out of limits, it will be
shifted to the nearest limit. The type long is used to ensure
compatibility between compilers.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="PrOptimize"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>PrOptimize</strong>(long
mask)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> cpu030: 68030 instructions
will be used when running<br>
<strong>[IN] </strong>mask: bit mask having the following meaning:
<br>
Bit 0: 68003 instructios will be used<br>
Bit 1: DSP will be used</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Indicates to the user that 68030 and/or DSP
optimisations will be used when running. This will display a
"030!" or "DSP!" in the progress window
</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">The type long is used to ensure
compatibility between compilers</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> no_line : text area index (0, 1, or 2)<br>
<strong>[IN] </strong>text : pointer to string to be displayed</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Displays in the defined text area of the progress window, the specified text</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">The type long is used to ensure
compatibility between compilers. If no_line is not valid, nothing happens.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02&nbsp;or greater</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<table border="2" width="100%"><tbody><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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> pc :&nbsp;percentage
of work done (0...100)</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : User did not request cancel of current operation (Run)<br>
!= 0 : User requested to cancel the current operation</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Update current progress and retuns a non zero value if user wants to cancel the operation.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">If the pc paramteter is out of limits, it will be
shifted to the nearest limit. The type long is used to ensure
compatibility between compilers.<br>Used together with<a href="../../../ldv/defines.htm#LDVF"> LDVF_SUPPORTCANCEL</a> flag,
this function enables managing cancel from a LDV<a href="../../../ldv/descrip.htm#run">Run</a> call.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02&nbsp;or greater</td></tr></tbody></table><p></p><p></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/cprev.jpg" alt="Previous chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="ra.htm"><img src="../images/csuiv.jpg" alt="Next Chapter " 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update: 08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip"><br></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>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,761 @@
<!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>VISION Documentation (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%">
<tbody><tr>
<td align="center" width="17%"><a href="pr.htm"><img src="../images/cprev.jpg" alt="Previous Chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="27" hspace="2" width="32"></a><a href="co.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Next Chapter" 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update 08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip"><br></a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>RASTER
INTERFACE</strong></font></p>
</td>
<td align="center" width="17%"></td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center"><strong>Summary</strong></td>
</tr>
<tr>
<td width="15%"><strong>Interface prefix</strong></td>
<td width="85%">Ra</td>
</tr>
<tr>
<td width="15%"><strong>Number of functions</strong></td>
<td width="85%">16</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Set of functions allowing to handle image rasters
under different formats (bit-plane, True Color, ATARI formats,
specific, standard...).</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><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>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img: pointer
on the image to process</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Initialise an image raster with the white colour.
The expected format is the <a href="../notions.htm#formats%20d%27images">ATARI format</a>.
In palette mode (img-&gt;fd_nplanes &lt;= 8), the raster is
initialised with bits set to 0 (TOS/VID index = 0), the 0 index of
the palette is usually set on the white colour.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">This function processes the transformation
"in place".</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="RaIs15Bits"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>RaIs15Bits</strong>(void)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0: True Color format on 16 bits or
number of bits of the graphic resolution not equal to
16<br>
1: Number of planes of the graphic resolution on 16 bits but pixel
coding on 15 bits (5 per component)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Indicates whether the True Color coding of the
graphic resolution is on 15 or 16 bits</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">In cases where it is useful to know whether the
number of bits of coding for the green component is on 5 or 6
bits, it is possible, using this function, to know whether all the
16 bits of the True Color mode on 16 planes are used (green
component is then coded on 6 bits instead of 5 and RaIs51Bits
returns 0) or only 15 bits are used (green component is then coded
on 5 bits and RaIs15Bits returns 1)</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="RaTCConvert"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTCConvert</strong>(MFDB
*img)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img: pointer
on the image to process</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Transforms a True Color raster of the specific
format of the graphic card to a True Color raster in
<a href="../notions.htm#formats%20d%27images">ATARI format</a></td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">This function processes the transformation
"in place". If <em><strong>VISION</strong></em>
recognises that the machine specific format is the ATARI format,
the function returns immediately, without any processing. This
function is the reverse of <a href="#RiTCInvConvert">RiTCInvConvert</a></td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="RaTCInvConvert"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaTCInvConvert</strong>(MFDB
*img)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img: pointer
on the image to process</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Transforms a True Color raster in
<a href="../notions.htm#formats%20d%27images">ATARI format</a>
to a True Color raster in the format specific to the graphic card</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">This function processes the transformation
"in place". If <em><strong>VISION</strong></em>
recognises that the machine specific format is the ATARI format,
the function returns immediately, without any processing.
This function is the reverse of <a href="#RiTCConvert">RiTCInvConvert</a></td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img: pointer
on the image to process<br>
<strong>[IN] </strong>width: maximum width (in pixels).
width cannot be greater than 32767.
Coding on a 32 bits integer is only for ensuring compatibility
with 32 bits compilers.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Prepares index transfer operatios to an image
raster in <a href="../notions.htm#formats%20d%27images">ATARI format</a>.</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">The width may seem redundant with
img-&gt;fd_w but it is there because VISION always set
img-&gt;fd_w to a multiple of 16 (internal optimisations). Thus,
width allows not to be limited to a width multiple of 16 pixels.<br>
<u>Interesting</u> : if width is a multiple of 16, the
RaInd2Raster function will be much faster!</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> indexes: pointer
on the TOS table indexes to convert to the raster previously
initialised with the <a href="#RaInd2RasterInit">RaInd2RasterInit</a> function<br>
<strong>[IN] </strong>nb_indexes: Number of indexes in the table
pointed by indexes</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Converts TOS indexes in raster bit-plane data</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Once the initialisation is done by the
<a href="#RaInd2RasterInit">RaInd2RasterInit</a> functio,
this function may be called as much as wanted to transform the
data flow (TOS indexes) to the image raster. VAPI memorises the
last position in the raster. For instance:
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 ) ; /*
Get TOS indexes for line y */<br>
Vapi-&gt;RaInd2Raster( tab_indexes, nb_indexes ) ; /*
Send to the ATARI bit-plane format raster */<br>
}</td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> pt_bitplan:
pointer on the beginning of raster data to convert
(start with a multiple of 16 pixels)<br>
<strong>[IN] </strong>nb_pts: Number of points to
convert<br>
<strong>[IN] </strong>nb_planes: Number of planes of
the image raster. nb_planes can only take values
1, 2, 4, or 8. Coding on a 32 bits integer is only for ensuring compatibility
with 32 bits compilers.<br>
<strong>[OUT] </strong>tos_indexes: pointer on the
TOS indexes table receiving the data (must be dimensioned to
nb_pts bytes)</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Converts bit-plane data from the raster to TOS
indexes</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Reverse function of <a href="#RaInd2Raster">RaInd2Raster</a></td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> nb_planes: Number
of plans. nb_planes can only take values 1, 2,
4, or 8. Coding on a 32 bits integer is only for ensuring
compatibility with 32 bits compilers.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">Pointeur on the conversion table
TOS index --&gt; VDI index</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Get the matching table between TOS and VDI
indexes, for a given number of planes</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Reverse function of <a href="#RaGetVDI2TOSArray">RaGetVDI2TOSArray</a></td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> nb_planes: Number
of planes. nb_planes can only take values 1, 2,
4, or 8. Coding on a 32 bits integer is only for ensuring compatibility
with 32 bits compilers.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">Pointeur on the conversion table
VDI index --&gt; TOS index</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Get the matching table between VDI and TOS
indexes, for a given number of planes</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">Reverse function of <a href="#RaGetTOS2VDIArray">RaGetTOS2VDIArray</a></td>
</tr>
<tr>
<td width="15%"><strong>VAPI version</strong></td>
<td width="85%">1.00 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> width : Image width in pixels number<br>
<strong>[IN]</strong> height : Image height in pixels number<br>
<strong>[IN]</strong> nplanes : Number of planes per pixel<br>32bit variable sizes is just here for 32bit compilers compatibility.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">The required memory size, in bytes, to hold the image</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used to know the image size, the 16 pixels alignement taken into account</td>
</tr>
<tr>
<td width="15%"><strong>Comments</strong></td>
<td width="85%">&nbsp;</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02&nbsp;or greater</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="RaRasterAlloc"></a><strong>Prototype</strong></td>
<td width="85%">long cdecl <strong>RaRasterAlloc</strong>(MFDB
*raster)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> raster :
VDI structure defining an image</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">0 : OK, memory has been allocated (pointed out by fd_addr field of MFDB structure)<br>
!= 0 : Error (not enough memory)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Allocate an image based on its definition (fd_w, fd_h and fd_nplanes MFDB structure fields).</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">Upon success, fd_addr points to image data (not initialized), else fd_addr is set to NULL.<br>
fd_wdwidth is updated, other fileds remain unchanged.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02&nbsp;or greater</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="RaRasterFree"></a><strong>Prototype</strong></td>
<td width="85%">void cdecl <strong>RaRasterFree</strong>(MFDB
*raster)</td>
</tr>
<tr>
<td width="15%"><strong>Parameters</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> raster :&nbsp;VDI structure defining an image</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Free previously allocated memory by<a href="ra.htm#RaRasterAlloc"> RaRasterAlloc</a></td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">All MFDB fileds are set to zero after memory being freed.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.02&nbsp;or greater</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table style="width: 100%;" border="2">
<tbody><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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> rc : Pointer to a&nbsp;<a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
structure defining elementary color changes, first pixel to change and number of pixels to operate on.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Change the current color spreading of a 15bit True Color image. red, green and blue fields of&nbsp; <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a> shall point to arrays of &nbsp;32 (32 = 2^5)&nbsp;elements,
each element being the value to substitute at this array index for instance the formula:<br>
red[i] = i ; (0 &lt;= i &lt; 32) does not change anything (i being replaced by i).<br>
Warining ! The new value to substitute shall belong to range [0,31].<br>
Another example:: rise lighting by 100% for all compounds:<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>Remarks</strong></td>
<td width="85%">This function operates on <span style="text-decoration: underline;">Machine specific format </span>! You shall not call <a href="ra.htm#RaTCConvert">RaTCConvert</a> or <a href="ra.htm#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td style="width: 15%;"><strong>VAPI </strong><strong>Version</strong><strong>&nbsp;</strong></td>
<td width="85%">1.03 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> rc : Pointer to a&nbsp;<a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
structure defining elementary color changes, first pixel to change and number of pixels to operate on.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Change the current color spreading of a 16bit True Color image. red, green and blue fields of&nbsp; <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
shall point to arrays of &nbsp;32 (32 = 2^5)&nbsp;elements for red and
blue compounds and 64 (64=2^6) for green compound. Each element being
the value to substitute at this array index for instance the formula:<br>
red[i] = i ; (0 &lt;= i &lt; 32) does not change anything (i being replaced by i).<br>
Warining ! The new value to substitute shall belong to range [0,31] for red and blue and [0;63] for green.<br>
Another example:: rise lighting by 100% for green compound:<br>
new_val = i * 2 ;<br>
if ( new_val &gt; 63) new_val = 63 ; /* Important ! */<br>
green[i] = new_val ; /*&nbsp;For 0 &lt;= i &lt; 64) */<br></td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">This function operates on <span style="text-decoration: underline;">Machine specific format </span>! You shall not call <a href="ra.htm#RaTCConvert">RaTCConvert</a> or <a href="ra.htm#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.03 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> rc :&nbsp;Pointer to a&nbsp;<a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
structure defining elementary color changes, first pixel to change and number of pixels to operate on.</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Change the current color spreading of a 32bit True Color image. red, green and blue fields of&nbsp; <a href="struct.htm#REMAP_COLORS">REMAP_COLORS</a>
shall point to arrays of &nbsp;256 (256=2^8) elements&nbsp;each element
being the value to substitute at this array index for instance the
formula::<br>
red[i] = i ; (0 &lt;= i &lt; 256) does not change anything (i being replaced by i).<br>
Warining ! The new value to substitute shall belong to range [0,255].<br>
Another example:: lower lighting by 20% for all compounds:<br>
new_val = (80 * i) / 100 ;<br>
/* Note that we still stay in [0;255] range
...*/<br>
red[i] = green[i] = blue[i] = new_val ; /* For&nbsp;0 &lt;= i
&lt; 256) */</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">This function operates on <span style="text-decoration: underline;">Machine specific format </span>! You shall not call <a href="ra.htm#RaTCConvert">RaTCConvert</a> or <a href="ra.htm#RaTCInvConvert">RaTCInvConvert</a>.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.03 or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> in : MFDB
describing image to be rotated<br>
<strong>[OUT]</strong>out : destination MFDB<br>
<strong>[IN]</strong> angle : Angle in degrees for the rotation</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">None</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Used
to know the the width/height after rotation in order to proper allocate
the required memory. All fileds but fd_addr are set as the memory is
NOT allocated.</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">You should call this function right before the next one.</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.03&nbsp;or greater</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="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>Parameters</strong></td>
<td width="85%"><strong>[IN]</strong> in :&nbsp;MFDB
describing image to be rotated<br>
<strong>[OUT]</strong>out : Destination MFDB<br>
<strong>[IN]</strong> angle :&nbsp;Angle in degrees for the rotation<br>
<strong>[IN]</strong> flags : if bit#0 is set, inform&nbsp;<a href="index.htm">VAPI</a>
to display a progress window</td>
</tr>
<tr>
<td width="15%"><strong>Return</strong></td>
<td width="85%">ELDV_NOERROR : life's good<br>
ELDV_NOTENOUGHMEMORY : crystal clear...<br>
ELDV_CANCELLED : (only possible if progress window is requested)<br>
ELDV_GENERALFAILURE :&nbsp;crystal clear...</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Perform
the requested rotation. Destination MFDB should be allocated or this
function will allocate it. Note that this last option is a bit
dangerous as it is now up to the LDV to call&nbsp;<a href="ra.htm#RaRasterFree">RaRasterFree</a> to free it. Good news is that&nbsp;<a href="index.htm">VAPI</a> uses standard VDI format if necessary.</td>
</tr>
<tr>
<td width="15%"><strong>Remarks</strong></td>
<td width="85%">If angle is a multiple of 90degrees, specific routines will be called to avoid un-necessary sinus and cosinus computations</td>
</tr>
<tr>
<td width="15%"><strong>VAPI </strong><strong>Version</strong></td>
<td width="85%">1.03&nbsp;or greater</td>
</tr>
</tbody></table>
</center></div>
<hr>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td align="center" width="17%"><a href="pr.htm"><img src="../images/cprev.jpg" alt="Previous chapter " border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></a><a href="co.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Next Chapter" 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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update&nbsp;08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip"><br></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>
</tbody></table>
</center></div>
</body></html>

View File

@@ -0,0 +1,183 @@
<!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>VISION Documentation (VAPI): Structures</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="Previous Chapter " border="0" height="26" hspace="2" width="46"></a><a href="sommaire.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update 08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip"><br></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%"></td>
</tr>
</tbody></table>
</center></div>
<hr>
<p><a name="VAPI_HEADER"></a><font size="4"><strong> VAPI_HEADER</strong></font></p>
<p><strong>typedef struct<br>
{<br>
unsigned short Version ; <br>
unsigned short StrSize ;<br>
void *Global ;<br>
void cdecl (*GEMMessageLoop)(void *msg) ;<br>
char RFU[116] ;<br>
}<br>
VAPI_HEADER ;</strong></p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td align="center" width="15%"><strong>Field</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%">Of type 0x0101. This number is incremented for
each evolution. This version number will be used eventually by
the LDV to make controls. If the VAPI version does not contain
the necessary interfaces or functions, the LDV must return the
<a href="../defines.htm#ELDV">ELDV_BADVAPIVERSION</a> error code</td>
</tr>
<tr>
<td align="center">StrSize</td>
<td align="center">unsigned short</td>
<td>Size of the VAPI structure</td>
</tr>
<tr>
<td align="center">Global</td>
<td align="center">void *</td>
<td>Pointer on the global table (given by the AES) of <em><strong>VISION</strong></em>.
This table the allows the LDV to use MT_AES. For more details, see
the LDGs documentation. The type is void * and not int *, to avoid
conflicts with compilers (int is 16 bits under Pure C and 32 bits
under GCC).
It is then up to the LDV programer to
"cast" this pointer to the 16 bits type of a
particular compiler.</td>
</tr>
<tr>
<td align="center">GEMMessageLoop</td>
<td align="center">void cdecl (*)(void *)</td>
<td>Pointer on the GEM message loop function of
<em><strong>VISION</strong></em>. This allows the LDV,
if it uses AES, to filter, in the message it receives, those where
recipient is the LDV, and those where recipient is
<em><strong>VISION</strong></em>. Since the LDV is launched by
<em><strong>VISION</strong></em>, it receives the messsages where
recipient should be <em><strong>VISION</strong></em>, and thus
should forward them to <em><strong>VISION</strong></em> using this
function. This is especially useful for the Redraw messages,
otherwise <em><strong>VISION</strong></em> windows will not be
drawn while the LDV is running.
The msg parameter is of the type void * and not int *, for the same
reason as previously.</td>
</tr>
<tr>
<td align="center" width="15%">RFU</td>
<td align="center" width="10%">116 octets</td>
<td width="75%">Reserved for future use. Don't touch!</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<p><a name="VAPI"></a><font size="4"><strong> VAPI</strong></font></p>
<p><strong>typedef struct<br>
{<br>
</strong><a href="#VAPI_HEADER"><strong>VAPI_HEADER</strong></a><strong>
Header ;<br>
<br>
/* Progress Interface */<br>
....<br>
<br>
/* Raster Interface */<br>
...<br>
<br>
/* More interfaces to come! */<br>
}<br>
VAPI ;</strong></p>
<p>The raw description of this structure is not really of interest, let's
rather see the list of functions available.</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<br>{<br> unsigned char *red ;<br> unsigned char *green ;<br> unsigned char *blue ;<br> void *pt_img ;<br> long nb_pts ;<br>}<br>REMAP_COLORS ;</strong></font></pre>
<p>Such a pointer on this structure shall be passed to&nbsp;<a href="ra.htm#RaTC15RemapColors">RaTCxxRemapColors</a> functions.<br>
red, green and blue point to an array defining elementary values.<br>
pt_img points to the first pixel to change<br>
nb_pts is the number of pixels to change starting at pt_img and using ref, green and blue arrays.</p>
<br>
<p><a name="functions"></a><font size="4"><strong>Functions available
</strong></font></p>
<p>These functions are directly accessed through the VAPI pointer internal
to the LDVs, the desired functions have just to be called as follows:<br>
<strong>Vapi-&gt;FunctionName( ListeOfParameters ) ;</strong><br>
Do not forget to test the return value is the function may return one!
</p>
<p>Functions are grouped by interfaces in the following chapters. To find
easily the an interface, all the function names in the same group begin
with the same 2 letteres (e.g.,
"Pr" for functions of the progress group).</p>
<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="ra.htm"><img src="../images/cprev.jpg" alt="Previous chapter " border="0" height="26" hspace="2" width="46"></a><a href="sommaire.htm"><img src="../images/csom.jpg" alt="Back to content " border="0" height="26" hspace="2" width="26"></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><em>VISION </em>Documentation
<em>(VAPI)</em></strong></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">Last update: 08/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Download documentation</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>
</tbody></table>
</center></div>
</body></html>

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

View File

@@ -0,0 +1,160 @@
<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%"><a href="index.htm"><img
src="images/csom.jpg" alt="Retour au sommaire" border="0"
hspace="2" width="26" height="26"></a><a href="intro.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/05/01<!--webbot
bot="Timestamp" i-checksum="12414" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télé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=DocVision"
BORDER=0></A>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</table>
</center></div>
<hr>
<p align="left"><a href="intro.htm"><strong>1. INTRODUCTION</strong></a></p>
<p align="left"><a href="notions.htm"><strong>2. NOTIONS
ESSENTIELLES</strong></a></p>
<blockquote>
<p align="left"><a href="notions.htm#formats d'images">2.1
Les formats d'image</a></p>
<p align="left"><a href="notions.htm#prog">2.2 Programmation</a></p>
</blockquote>
<p><a href="descrip.htm"><strong>3. DESCRIPTION</strong></a></p>
<blockquote>
<p><a href="descrip.htm#capacités">3.1 Capacités du LDV</a></p>
<p><a href="descrip.htm#prerun">3.2 Fonction PreRun</a></p>
<p><a href="descrip.htm#run">3.3 Fonction Run</a></p>
<p><a href="descrip.htm#preview">3.4 Fonction Preview </a></p>
<p><a href="descrip.htm#getparams">3.5 Fonction GetParams</a></p>
<p><a href="descrip.htm#fichier ini">3.6 Le fichier INI
associé</a></p>
<blockquote>
<p><a href="descrip.htm#langues"><em>3.6.1 Informations
sur la langue</em></a></p>
<p><a href="descrip.htm#parametrage"><em>3.6.2
Paramétrage du LDV</em></a></p>
</blockquote>
</blockquote>
<p><a href="defines.htm"><font size="3"><strong>4. DEFINES</strong></font></a></p>
<blockquote>
<p><a href="defines.htm#ELDV">4.1 Type de codes de retour</a></p>
<p><a href="defines.htm#ELDV">4.2 Codes de retour</a></p>
<p><a href="defines.htm#TLDV">4.3 Types de modules</a></p>
<p><a href="defines.htm#LDVF">4.4 Informations sur les
capacités</a></p>
</blockquote>
<p><a href="struct.htm"><strong>5. STRUCTURES</strong></a></p>
<blockquote>
<p><a href="struct.htm#LDV_INFOS">5.1 LDV_INFOS</a></p>
<p><a href="struct.htm#LDV_CAPS">5.2 LDV_CAPS</a></p>
<p><a href="struct.htm#LDV_IMAGE">5.3 LDV_IMAGE</a></p>
<p><a href="struct.htm#LDV_PALETTE">5.4 LDV_PALETTE</a></p>
<p><a href="struct.htm#LDV_VDIELEMENTALPAL">5.5
LDV_VDIELEMENTALPAL</a></p>
<p><a href="struct.htm#LDV_PARAMS">5.6 LDV_PARAMS</a></p>
<p><a href="struct.htm#LDV_BASICPARAM">5.7 LDV_BASICPARAM</a></p>
</blockquote>
<p><a href="kitdev.htm"><strong>6. LE KIT DE DEVELOPPEMENT</strong></a></p>
<blockquote>
<p><a href="kitdev.htm#install">6.1 Installation</a></p>
<p><a href="kitdev.htm#squelette">6.2 Squelette</a></p>
</blockquote>
<p><a href="hints.htm"><strong>7. RECOMMANDATIONS</strong></a></p>
<p><a href="vapi/index.htm"><strong>ANNEXE : VAPI</strong></a></p>
<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/csom.jpg" alt="Retour au sommaire" border="0"
hspace="2" width="26" height="26"></a><a href="intro.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/05/01<!--webbot
bot="Timestamp" i-checksum="12414" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\download/dvision.zip">Télé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,187 @@
<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) : Introduction</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/csom.jpg" alt="Retour au sommaire" border="0"
hspace="2" width="26" height="26"></a><a
href="notions.htm"><img src="images/csuiv.jpg"
alt="Chapitre suivant" border="0" hspace="2" width="43"
height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->16/05/01<!--webbot
bot="Timestamp" i-checksum="12425" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>1.
I N T R O D U C T I O N</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>Enfin ! Après plusieurs années, <em><strong>VISION</strong></em>
devient finalement modulaire ! En gros, le but essentiel des LDV
(Librairies Dynamiques pour <em><strong>VISION</strong></em>) est
de vous permettre d'y ajouter vos propres fonctionnalités.
Typiquement, un LDV permet d'élargir les fonctions de <em><strong>VISION</strong></em>,
comme par exemple l'ajout d'un module de déformation d'image.
Voici les caractéristiques des LDV:</p>
<ul>
<li>Accès direct aux images de <em><strong>VISION</strong></em></li>
<li>Concept multi-langages (par fichier INI optionnel)</li>
<li>Gestion du UNDO (transparente pour le programmeur de LDV)</li>
<li>Support de la saisie de 4 paramètres par <em><strong>VISION</strong></em>
pouvant être envoyés au LDV</li>
<li>Support de la progression lors du calcul du LDV</li>
<li>Support de la pré-visualisation</li>
<li>Peut agir sur une image ou un bloc à l'intérieur de
celle-ci</li>
<li><em><strong>VISION</strong></em> fournit une API (<a
href="vapi/index.htm">VAPI</a>) qui offre des fonctions
de manipulation d'image</li>
</ul>
<p>&nbsp;</p>
<p>Au niveau du développement, le programmeur doit:</p>
<ul>
<li>Savoir ce qu'il veut faire !</li>
<li>Définir les capacités du LDV (nombre de plans pouvant
être traités, format d'image attendu, ...)</li>
<li>Ecrire 4 fonctions (dont 2 sont écrites à 100% par le
squelette d'un LDV !):</li>
</ul>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="20%"><a href="descrip.htm#capacités">GetLDVCapabilities</a></td>
<td width="80%">Déjà ecrie. Renvoie à <em><strong>VISION</strong></em>
ce que le LDV sait faire</td>
</tr>
<tr>
<td width="20%"><a href="descrip.htm#prerun">PreRun</a></td>
<td width="80%">A écrire. Demande à <em><strong>VISION</strong></em>
l'allocation des ressources nécessaires à la fonction
Run</td>
</tr>
<tr>
<td width="20%"><a href="descrip.htm#run">Run</a></td>
<td width="80%">A écrire. La fonction qui fait quelque
chose !</td>
</tr>
<tr>
<td width="20%"><a href="descrip.htm#preview">Preview</a></td>
<td width="80%">A écrire ou non. Identique à Run mais
en mode Preview, si le temps de calcul est trop grand et
que l'on peut se permettre de ne pas effectuer tous les
calculs nécessaires.Très souvent on appelle Run (ce que
fait le squelette).</td>
</tr>
<tr>
<td><a href="descrip.htm#getparams">GetParams</a></td>
<td>Optionnelle. Cette fonction ne sert que si votre LDV
admet un paramétrage particulier et/ou que les quatre
paramètres du formulaire de saisie de <em><strong>VISION</strong></em>
ne suffisent pas.</td>
</tr>
</table>
</center></div>
<p>Bien sur, écrire un LDV nécessite quelques notions sur les
images, leur format et la programmation. Voyez les <a
href="notions.htm">notions essentielles</a>.</p>
<p>Enfin, j'espère bien étendre ce principe en proposant des
LDV de chargement et de sauvegarde d'images (voire plus...).
Cependant, étant donné le temps de développement pour inclure
ce concept dans <em><strong>VISION</strong></em>, il va falloir
que quelques personnes s'y intéressent avant que je ne me lance
dedans !</p>
<p>Les LDV s'appuient sur les LDG (Librairies Dynamiques GEM)
développées par Olivier Landemarre et Dominique Béréziat : <a
href="http://ldg.atari.org">ldg.atari.org</a></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="index.htm"><img
src="images/csom.jpg" alt="Retour au sommaire" border="0"
hspace="2" width="26" height="26"></a><a
href="notions.htm"><img src="images/csuiv.jpg"
alt="Chapitre suivant" border="0" hspace="2" width="43"
height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->16/05/01<!--webbot
bot="Timestamp" i-checksum="12425" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>1.
I N T R O D U C T I O N</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>

View File

@@ -0,0 +1,542 @@
<!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 (LDV) : Kit de développement</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="struct.htm"><img src="images/cprev.jpg" alt="Chapitre précé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="hints.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
(LDV)</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ère
mise à jour :&nbsp;05/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>6.
KIT DE DEVELOPPEMENT</strong></font></p>
</td>
<td align="center" width="17%"><br></td>
</tr>
</tbody></table>
</center></div>
<hr>
<p>.<a name="install"></a><font size="4"><strong>6.1 INSTALLATION</strong></font></p>
<p>Je vous recommande tout d'abord d'installer le kit LDG
accessible sur le <a href="http://ldg.atari.org">site officiel
des LDG</a>.<br>
Ensuite, télécharger <a href="..%5C..%5Cdownload%5Cvision40.zip">la
dernière version de VISION</a><br>
Pour réaliser un LDV, vous avez besoin:</p>
<ul>
<li>Des fichiers "header" LDG.H et MT_AES.H. .</li>
<li>Des fichiers "librairies" LDG.LIB et
MT_AES.LIB. Ces fichiers sont à récupérer depuis le
kit des LDG dans le répertoire associé à votre
compilateur C.</li>
</ul>
<p>Attention ! Par défaut le kit de développement fourni par <em><strong>VISION</strong></em>
inclut ces fichiers pour le compilateur PureC. Je vous recommande
vivement de remettre régulièrement à jour les .H et .LIB. en
fonction de l'évolution des LDG.</p>
<p>L'arborescence proposée dans le kit LDV de <em><strong>VISION</strong></em>
est la suivante:</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td align="center" width="15%"><strong>Dossier / Sous
dossier</strong></td>
<td align="center" width="85%"><strong>Fichiers présents</strong></td>
</tr>
<tr>
<td align="center" width="15%"><strong>&lt;..&gt;/LDV</strong></td>
<td width="85%"><em>Pour la gestion LDG:</em><br>
LDG.H : Librairies dynamiques GEM, fichier header .H<br>
MT_AES.H : Pour utiliser les LDG/LDV en OS multitache. En
fait, ce fichier ne sert que si vous utilisez l'AES dans
le LDV, ce qui est improbable actuellement, mais peu
être bientôt...<br>
LDG.LIB, MT_AES.LIB : à linker avec votre LDV<br>
<em>Pour la gestion LDV:</em><br>
LDV.H : Définition des structures et interfaces avec <em><strong>VISION</strong></em><br>
VAPI.H : Définition des structures et interfaces avec <a href="vapi/index.htm">VAPI</a></td>
</tr>
<tr>
<td align="center" width="15%"><strong>&lt;...&gt;/LDV/SRC</strong></td>
<td width="85%">Chaque LDV est présent dans un
répertoire associé à son nom. Dans un tel répertoire,
on trouve:<br>
&lt;nom du ldv&gt;.C : le fichier "source" du
LDV<br>
&lt;nom du ldv&gt;.PRJ : le fichier projet (Pure C)</td>
</tr>
<tr>
<td align="center"><strong>&lt;...&gt;/LDV/DOC</strong></td>
<td>Cette documentation</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<p>.<a name="squelette"></a><font size="4"><strong>6.2 SQUELETTE</strong></font></p>
<p>Vous pouvez utiliser comme fichier squelette d'un LDV
n'importe quel fichier source d'un LDV donné dans le kit. A vous
de voir quel fichier correspond le mieux au LDV que vous voulez
réaliser !</p>
<p>&nbsp;</p>
<p>.<a name="exemples"></a><font size="4"><strong>6.3 EXEMPLES</strong></font></p>
<p>Le kit <em><strong>VISION</strong></em> fournit les LDV
suivants ainsi que les sources (en PureC). Voici leurs
caractéristiques:</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="invert"></a><strong>INVERT.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Inversion des bits d'une image</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16, 24
et 32). Format de la machine. Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Sur place. On peut aussi retirer cette
propriété du define CAPS et forcer <em><strong>VISION</strong></em>
à allouer de la mémoire pour la destination (but
uniquement pédagogique !)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Non</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Très simple ! Met uniquement en oeuvre
la fonction VDI vro_cpyfm<br>
Pas de grand intérêt : <em><strong>VISION</strong></em>
propose déjà la fonction "Négatif" depuis la
version 1.0 ! Ne gère pas la possibilité d'annulation.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="xwave"></a><strong>XWAVE.LDV / </strong><a name="ywave"></a><strong>YWAVE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Vagues sur l'axe X / Y</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16, 24
et 32). Format de la machine. Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Force <em><strong>VISION</strong></em> à
allouer de la mémoire pour la destination. On doit
pouvoir faire sans mais cela complique un peu le LDV...</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress</a> +
<a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Amusant et assez simple. Présente <a href="vapi/pr.htm">l'interface de progression VAPI</a> et
la fonction de mise à "blanc" d'une image (<a href="vapi/ra.htm#RaImgWhite">RaImgWhite</a>). Gère la
possibilité d'annulation.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="bw"></a><strong>BW.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Conversion d'une image (ou partie en True
Color) en une image en niveaux de gris</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16, 24
et 32). Format de la machine. Modifie la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Sur place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress</a> +
<a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Met en oeuvre les fonctions de conversion
de format en True Color (<a href="vapi/ra.htm#RaTCConvert">RaTCConvert</a> et <a href="vapi/ra.htm#RaTCInvConvert">RaTCInvConvert</a>).
Montre aussi comment modifier la palette. Par rapport à
la fonction équivalente de <em><strong>VISION</strong></em>
(Conversion N&amp;B), ce LDV permet d'agir sur un bloc
(mode True Color uniquement). En mode true Color, le LDV
est annulable.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="pixel"></a><strong>PIXEL.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Crée un effet de
"pixelisation" sur une image (ou partie)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Modes True Color uniquement (16 et 32
plans). Format ATARI.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Sur place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Bel effet et très éducatif : ce LDV ne
sait gérer QUE le format True Color ATARI et pourtant il
marchera sur votre MagicPC ! Il utilise la possibilité
donnée à <em><strong>VISION</strong></em> de s'occuper
des transformations entre formats et se concentre
uniquement sur un format..Gère la possibilité
d'annulation.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="ypersc"></a><strong>YPERSC.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Crée un effet de perspective sur une
image (ou partie)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16 et
32). Format ATARI. Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Force <em><strong>VISION</strong></em> à
allouer de la mémoire pour la destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>+ <a href="vapi/ra.htm">Raster Interface</a>
+ <a href="vapi/me.htm">MEM Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Crée un bel effet de perspective sur une
image ou une partie. Sur la partie, le bloc est alloué,
et repositionné par <em><strong>VISION</strong></em>
grâce au flag <a href="defines.htm#LDVF">LDVF_NOSELECTION</a>
(c'est très pénible à gérer sinon en mode bit-plan),
le LDV ne voit qu'une image et non pas une sélection à
l'intérieur de celle-ci. Les fonctions <a href="vapi/me.htm#MeSCopyMemory8">MeCopyMemoryxx</a> de <a href="vapi/me.htm">MEM Interface</a> sont utilisées afin
de changer l'echelle des lignes.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="light"></a><strong>LIGHT.LDV / </strong><a name="gamma"></a><strong>GAMMA.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Modifie la répartition des couleurs
rouge, vert, bleu de façon linéaire (light) ou suivant
une courbe gamma (gamma)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16 et
32). Format de la machine. Modifie la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Sur place</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>+ <a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Remplace avantageusement les fonctions de
luminosité et de correction gamma déjà présentes dans
<em><strong>VISION</strong></em> (mais moins
évoluées)..En mode bit-plan, la palette est affectée.
Gère la possibilité d'annulation.<br>
Ces LDV sont très optimisés en mémoire : ils
effectuent la transformation "sur place",
travaillent sur le format spécifique de la machine et
peuvent travailler sur un bloc de l'image (en true color
seulement...).<br>
Ces 2 LDV sont très semblables : seule la fonction
interne ChangeColors change.</td>
</tr>
</tbody></table>
</center></div>
<p>&nbsp;</p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="rotate"></a><strong>ROTATE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Effectue une rotation sur une image ou
une partie</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans (1, 2, 4, 8, 16 et
32). Format de la machine.&nbsp;Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Force <em><strong>VISION</strong></em> à
allouer de la mémoire pour la destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>+ <a href="vapi/ra.htm">Raster Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Ce LDV est sans doute le plus simple (à
comprendre...). En fait, il s'appuie entièrement sur les
fonctions <a href="vapi/ra.htm#RaRasterRotateGetDstMFDB">RaRasterRotateGetDstMFDB</a>
et <a href="vapi/ra.htm#RaRasterRotate">RaRasterRotate</a>
de <a href="vapi/ra.htm">l'interface Raster</a> de <a href="vapi/index.htm">VAPI</a>.<br>
Voyez aussi comment ce LDV utilise le flag <a href="defines.htm#LDVF">LDVF_NOSELECTION</a> afin de ne
pas se surcharger avec la gestion des blocs.</td>
</tr>
</tbody></table>
</center></div>
<p></p>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="puzzle"></a><strong>PUZZLE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Mélange des blocs de l'image générant
un ... puzzle</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans. Format de la
machine.&nbsp;Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Force <em><strong>VISION</strong></em> à
allouer de la mémoire pour la destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Pas grand chose à dire, ce LDV est sympa
et assez simple à coder. La petite astuce consiste en la
gestion de l'entropie, c'est à dire à la quantification
du désordre dans le mélange.</td>
</tr>
</tbody></table>
</center></div>
<hr>
<div align="center"><center>
<table border="2" width="100%">
<tbody><tr>
<td colspan="2" align="center" width="20%"><a name="bhole"></a><strong>BHOLE.LDV</strong></td>
</tr>
<tr>
<td align="center" width="20%"><strong>Description</strong></td>
<td width="80%">Simule un trou noir dans l'image. Considérez-le comme un hommage à <a href="https://www.youtube.com/watch?v=A6HhDFskbXs">Stephen Hawking</a>.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Capacités</strong></td>
<td width="80%">Tout nombre de plans. Format de la
machine. Ne modifie pas la palette.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Type de
transformation</strong></td>
<td width="80%">Force <em><strong>VISION</strong></em> à
allouer de la mémoire pour la destination.</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Utilise VAPI</strong></td>
<td width="80%">Oui (<a href="vapi/pr.htm">Progress
Interface</a>+<a href="vapi/co.htm">Config Interface</a>+<a href="vapi/lo.htm">Logging Interface</a>)</td>
</tr>
<tr>
<td align="center"><strong>Fichier INI</strong></td>
<td>Oui (Anglais / Français)</td>
</tr>
<tr>
<td align="center" width="20%"><strong>Remarque</strong></td>
<td width="80%">Ce
LDV est le plus complet à ce jour. Il dispose d'optimisations
spécifiques en 68030 et 68881. Utilise la symétrie du trou noir pour
optimiser les calculs.</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="struct.htm"><img src="images/cprev.jpg" alt="Chapitre précé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="hints.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
(LDV)</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ère
mise à jour : 05/04/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5Cdownload/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>6.
KIT DE DEVELOPPEMENT</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</tbody></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écé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
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à 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élé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écé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
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à 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élé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,226 @@
<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) : Notions essentielles</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="intro.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="descrip.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/10/00<!--webbot
bot="Timestamp" i-checksum="12214" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>2.
NOTIONS ESSENTIELLES</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="formats d'images"></a><font size="4"><strong>2.1 Les
formats d'images</strong></font></p>
<p>Je ne peux pas içi expliquer le codage bit à bit des pixels
d'une image. En gros, pour les nombres de plans jusqu'à 8, un
pixel est associé à un index de couleur dans une palette.Cet
index pointe donc sur la vraie couleur du pixel. A partir de 15
plans, on est en True Color, c'est à dire que chaque pixel est
associé à sa valeur de couleur (donc sur 15, 16, 24 ou 32
bits). Autant en True Color, on s'en sort assez bien, autant en
mode palette (bit-plan), cela devient rapidement complexe car
chaque pixel voit un des bits de son index codé sur un mot 16
bits. Il faudrait donc rechercher ce bit, rassembler les mêmes
bits d'un pixel pour reconsitituer son index, etc... Cela devient
rapidement lassant et pour aller vite, cela nécessite des
optimisations en assembleur. Heureusement, <em><strong>VISION</strong></em>
propose des fonctions vous simplifiant le travail avec <a
href="vapi/index.htm#Présentation">VAPI</a>.</p>
<p>Les LDV de <em><strong>VISION</strong></em> peuvent au choix
travailler dans un des 3 formats suivants (notez bien que votre
LDV n'a aucun intérêt à gérer les 3 formats, <em><strong>VISION</strong></em>
lui passera le format qu'il souhaite):</p>
<ul>
<li>Format Standard</li>
<li>Format ATARI</li>
<li>Format Spécifique</li>
</ul>
<p>Ce petit tableau précise ces différents formats (R = Rouge,
V = Vert, B = Bleu):</p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Format</strong></td>
<td align="center" width="10%"><strong>Nombre de bits /
pixel</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%">Standard</td>
<td align="center" width="10%">1, 2, 4, 8</td>
<td width="75%">Format standard défini par ATARI. Les
plans de pixels (16 pixels) sont mis les uns à la suite
des autres. En True-Color, ce format existe peut être
mais j'aime autant pas le savoir !</td>
</tr>
<tr>
<td align="center" width="15%">ATARI</td>
<td align="center" width="10%">1, 2, 4, 8</td>
<td width="75%">Format bit-plan ATARI. Très classique,
c'est le format des modes ST-Basse, ST-Moyenne et
ST-Haute, puis par extension, le format des modes
bit-plan du Falcon. Contrairement au mode Standard, les
plans sont entrelacés (Plan0 - Plan1 - Plan2 - Plan 3,
par exemple pour 16 couleurs (4 bits, soit 4 plans))</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">16</td>
<td width="75%">Mode True Color du FALCON. Chaque pixel
est codé sur un mot 16 bits de la façon suivante:<br>
RRRRRVVVVV0BBBBB<br>
15 --&gt; 0 Bit #<br>
En fait le codage effectif est sur 15 ou 16 pixels. Le
niveau de vert peut être codé sur 6 bits (65K) au lieu
de 5 (32K).</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">24</td>
<td width="75%">Dommage que <em><strong>VISION</strong></em>
ne le gère pas !</td>
</tr>
<tr>
<td align="center" width="15%">&nbsp;</td>
<td align="center" width="10%">32</td>
<td width="75%">RVB0, R, V, B = composante rouge,verte ou
bleue sur 8 bits (0...255)</td>
</tr>
<tr>
<td align="center" width="15%">Spécifique</td>
<td align="center" width="10%">1, 2, 4, 8, 16, 24, 32</td>
<td width="75%">Spécifique à la carte graphique. Aucune
hypothèse sur le codage des bits d'un pixel ne peut
être faite.</td>
</tr>
</table>
</center></div>
<p>Privilégiez au maximum le format spécifique car c'est le
plus économe en mémoire. Si votre LDV ne doit manipuler que des
lignes et des colonnes, vous n'avez pas à vous soucier du codage
interne des pixels, les fonctions VDI vro_... s'en chargent.</p>
<p>Si vous devez manipuler des pixels, je vous conseille
d'utiliser le format ATARI car <em><strong>VISION</strong></em>
vous permet de récupérer facilement les index au travers de <a
href="vapi/index.htm#Présentation">VAPI</a>.</p>
<p>Le format standard ne sert pas à grand chose, si ce n'est en
interne à <em><strong>VISION</strong></em> pour afficher les
images correctement. Donc, à moins que vous n'ayez développé
des routines équivalentes à celles proposées dans <a
href="vapi/index.htm#Présentation">VAPI</a>, je vous
déconseille l'utilisation de ce format.</p>
<p>&nbsp;</p>
<p><a name="prog"></a><font size="4"><strong>2.2 Programmation</strong></font></p>
<p>Vous devez savoir programmer en C ! Les LDV ne dépendent pas
à priori du compilateur (j'ai fait au mieux mais comme je
n'utilise que Pure C, je ne peux pas être catégorique).</p>
<p>Vous devez être à l'aise en C et ne pas être effrayé par
la manipulation des pointeurs sur les structures et fonctions.</p>
<p>Si vous connaisez les LDG, ce sera utile mais pas obligatoire,
le squelette de LDV les cachent assez bien.</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="intro.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="descrip.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->01/10/00<!--webbot
bot="Timestamp" i-checksum="12214" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>2.
NOTIONS ESSENTIELLES</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>

View File

@@ -0,0 +1,496 @@
<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) : 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="defines.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="kitdev.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->16/05/01<!--webbot
bot="Timestamp" i-checksum="12425" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télécharger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>5.
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="LDV_INFOS"></a><font size="4"><strong>5.1 LDV_INFOS</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
short StrSize ;
short Type ;
char Authors[1+45] ;
LDV_CAPS Caps[10] ;
char RFU[16] ;
}
LDV_INFOS ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">StrSize</td>
<td align="center" width="15%">short</td>
<td width="75%">Taille de la structure LDV_INFOS. Doit
être initialisé à sizeof(LDV_INFOS). Le but de ce
champ est de permettre à <em><strong>VISION</strong></em>
de ne pas exploser ses données internes si la taille de
cette structure est amenée à changer.</td>
</tr>
<tr>
<td align="center" width="10%">Type</td>
<td align="center" width="15%">short</td>
<td width="75%">Doit valoir <a href="defines.htm#TLDV">TLDV_MODIFYIMG</a>,
<a href="defines.htm#TLDV">TLDV_LOADIMG</a> ou <a
href="defines.htm#TLDV">TLDV_SAVEIMG</a>, voire plus à
venir. Actuellement, seul le type <a
href="defines.htm#TLDV">TLDV_MODIFYIMG</a> est accepté
par <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td align="center" width="10%">Authors</td>
<td align="center" width="15%">char[1+45]</td>
<td width="75%">Noms du ou des auteurs. 45 caractères
sont disponibles à cet effet.</td>
</tr>
<tr>
<td align="center" width="10%">Caps</td>
<td align="center" width="15%"><a href="#LDV_CAPS">LDV_CAPS</a>[10]</td>
<td width="75%">Tableau décrivant les capacités du LDV
pour chaque nombre de plans. Au maximum le LDV peut
gérer 9 nombres de plans différents car le tableau de
structures doit se terminer par une struture avec des
champs initialisés à zéro.</td>
</tr>
<tr>
<td align="center" width="10%">RFU</td>
<td align="center" width="15%">char[16]</td>
<td width="75%">Pour usage futur. Ne pas toucher !</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_CAPS"></a><font size="4"><strong>5.2 LDV_CAPS</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
char NbPlanes ;
char NbPlanesOut ;
unsigned long Flags ;
}
LDV_CAPS ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">NbPlanes</td>
<td align="center" width="15%">char</td>
<td width="75%">Nombre de plans pour cette capacité (1,
2, 4, 8 , 16, 24 (non géré), 32)</td>
</tr>
<tr>
<td align="center" width="10%">NbPlanesOut</td>
<td align="center" width="15%">char</td>
<td width="75%">Nombre de plans en sortie pour cette
capacité. Pour un LDV de type <a href="defines.htm#TLDV">TLDV_MODIFYIMG</a>,
ce champ doit égaler NbPlanes</td>
</tr>
<tr>
<td align="center" width="10%">Flags</td>
<td align="center" width="15%">unsigned long</td>
<td width="75%">Combinaison (symbole |) des masques
suivants:<ul>
<li><a href="defines.htm#LDVF">LDVF_STDFORMAT</a> :
le LDV accepte le format standard</li>
<li><a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a> :
le LDV accepte le format ATARI</li>
<li><a href="defines.htm#LDVF">LDVF_SPECFORMAT</a> :
le LDV accepte le format spécifique de la carte
graphique</li>
<li><a href="defines.htm#LDVF">LDVF_SUPPORTPREVIEW</a>
: le LDV fournit la fonction Preview (fortement
conseillé même si elle ne fait qu'appeller Run)</li>
<li><a href="defines.htm#LDVF">LDVF_AFFECTPALETTE</a>
: le LDV modifie la palette (NbPlanes doit être
inférieur ou égal à 8)</li>
<li><a href="defines.htm#LDVF">LDVF_SUPPORTPROG</a> :
le LDV appellera la fonction <a
href="vapi/pr.htm#PrSetProg">PrSetProg</a> de
l'interface <a
href="vapi/index.htm#Présentation">VAPI</a>
(conseillé si le traitement dure plus de 2
secondes)</li>
<li><a href="defines.htm#LDVF">LDVF_OPINPLACE</a> :
le LDV sait travailler sur l'image source, sans
que <em><strong>VISION</strong></em> alloue la
destination (on dit que la transformation se fait
sur place). En ce cas, le paramètre out de la
fonction Run est le même que in. Dans la mesure
du possible, utilisez ce flag, cela économise de
la mémoire.</li>
<li><a href="defines.htm#LDVF">LDVF_REALTIMEPARAMS</a>
: le LDV effectue assez rapidement la fonction
Preview (image petite affichée par la boite de
dialogue de <em><strong>VISION</strong></em>),
pour que la modification des paramètres du LDV
par les ascenseurs soit suffisamment fluide (au
moins 1 image par seconde)</li>
<li><a href="defines.htm#LDVF">LDVF_SUPPORTCANCEL</a>
: la fonction <a href="descrip.htm#run">Run</a>
peut être annulée par l'utilisateur (à
utiliser conjointement avec la fonction <a
href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a> de
l'interface <a href="vapi/pr.htm">Progress</a> de
<a href="vapi/index.htm">VAPI</a>)</li>
</ul>
</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_IMAGE"></a><font size="4"><strong>5.3 LDV_IMAGE</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
short RasterFormat ;
MFDB Raster ;
LDV_PALETTE Palette ; /* Structure fournie si Raster.fd_nplanes &lt;= 8 */
}
LDV_IMAGE ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">RasterFormat</td>
<td align="center" width="15%">short</td>
<td width="75%"><a href="defines.htm#LDVF">LDVF_STDFORMAT</a>,
<a href="defines.htm#LDVF">LDVF_ATARIFORMAT</a> ou <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a></td>
</tr>
<tr>
<td align="center" width="10%">Raster</td>
<td align="center" width="15%">MFDB</td>
<td width="75%">Le MFDB classique ATARI décrivant les
données de l'image (hors palette)</td>
</tr>
<tr>
<td align="center" width="10%">Palette</td>
<td align="center" width="15%"><a href="#LDV_PALETTE">LDV_PALETTE</a></td>
<td width="75%">Pointeur sur une structure <a
href="#LDV_PALETTE">LDV_PALETTE</a> décrivant la palette
assoicée à l'image si le nombre de bits est inférieur
ou égal à 8.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_PALETTE"></a><font size="4"><strong>5.4
LDV_PALETTE</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
short NbColors ;
VDI_ELEMENTPAL* Pal ;
}
LDV_PALETTE ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">NbColors</td>
<td align="center" width="15%">short</td>
<td width="75%">Le nombre d'éléments dans le tableau
pointé par Palette (soit 2, 4, 16 ou 256 couleurs)</td>
</tr>
<tr>
<td align="center" width="10%">Pal</td>
<td align="center" width="15%"><a
href="#LDV_VDIELEMENTALPAL">VDI_ELEMENTALPAL</a> *</td>
<td width="75%">Pointeur sur un tableau de NbColors
éléments de type VDI_ELEMENTPAL. La palette proposée
est indexée sur les indices VDI (ceux utilisés par les
fonctions VDI comme le tracé d'une ligne) et non TOS
(ceux que vous récupérerez par les fonctions raster de <a
href="vapi/index.htm#Présentation">VAPI</a>).
Heureusement, <a href="vapi/index.htm#Présentation">VAPI</a>
propose des fonctions pour transformer les indices VDI en
indices TOS et vice-versa.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_VDIELEMENTALPAL"></a><font size="4"><strong>5.5
VDI_ELEMENTALPAL</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
short Red ;
short Green ;
short Blue ;
}
VDI_ELEMENTPAL ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">Red</td>
<td align="center" width="15%">short</td>
<td width="75%">Composante <font color="#FF0000">Rouge</font>
de l'index VDI de la palette (0 &lt;= index &lt;= 1000)</td>
</tr>
<tr>
<td align="center">Green</td>
<td align="center">short</td>
<td>Composante <font color="#00FF00">Verte</font> de
l'index VDI de la palette (0 &lt;= index &lt;= 1000)</td>
</tr>
<tr>
<td align="center">Blue</td>
<td align="center">short</td>
<td>Composante <font color="#0000FF">Bleue</font> de
l'index VDI de la palette (0 &lt;= index &lt;= 1000)</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_PARAMS"></a><font size="4"><strong>5.6 LDV_PARAMS</strong></font></p>
<pre><font size="4"><strong>typedef struct
{
short x1, y1, x2, y2 ;
short NbParams ;
LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ;
void* UserParam ;
}
LDV_PARAMS ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">x1</td>
<td align="center" width="15%">short</td>
<td width="75%">Position X du bord haut-gauche du
rectangle à traiter (0 si image entière)</td>
</tr>
<tr>
<td align="center">y1</td>
<td align="center">short</td>
<td>Position Y du bord haut-gauche du rectangle à
traiter (0 si image entière)</td>
</tr>
<tr>
<td align="center">x2</td>
<td align="center">short</td>
<td>Position X du bord bas-droit du rectangle à traiter
(largeur image - 1 si image entière)</td>
</tr>
<tr>
<td align="center">y2</td>
<td align="center">short</td>
<td>Position Y du bord bas-droit du rectangle à traiter
(hauteur image - 1 si image entière)</td>
</tr>
<tr>
<td align="center">NbParams</td>
<td align="center">short</td>
<td>Nombre de paramètres valides dans le tableau Param</td>
</tr>
<tr>
<td align="center">Param</td>
<td align="center"><a href="#LDV_BASICPARAM">LDV_BASICPARAM</a></td>
<td>Tableau contenant les paramètres saisis depuis
l'interface de <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td align="center">UserParam</td>
<td align="center">void *</td>
<td>Si votre LDV a besoin de stocker des données
supplémentaires lors d'un appel à <a
href="descrip.htm#getparams">GetParams</a>, ce pointeur
peut être utilisé pour ça. Par exemple si votre LDV
prend en pararmètre un tableau de matrice 4x4, c'est
clair que la structure &quot;de base&quot; LDV_PARAMS ne
peut convenir. Il vous suffit alors de faire pointer
UserParam sur votre matrice lors de l'appel à <a
href="descrip.htm#getparams">GetParams</a>, vous
retrouverez cette même valeur lorsque <em><strong>VISION</strong></em>
appellera la fonction <a href="descrip.htm#run">Run</a>.
Vous pouvez même décider d'allouer dynamiquement la
structure qui vous convient lors de l'appel à <a
href="descrip.htm#getparams">GetParams</a>, puis de
l'utiliser (et de la libérer...) lors de l'appel à <a
href="descrip.htm#run">Run</a>.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="LDV_BASICPARAM"></a><font size="4"><strong>5.7
LDV_BASICPARAM (UNION)</strong></font></p>
<pre><font size="4"><strong>typedef union
{
short s ;
float f ;
}
LDV_BASICPARAM ;</strong></font></pre>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="10%"><strong>Champ</strong></td>
<td align="center" width="15%"><strong>Type</strong></td>
<td align="center" width="75%"><strong>Remarques</strong></td>
</tr>
<tr>
<td align="center" width="10%">s</td>
<td align="center" width="15%">short</td>
<td width="75%">Valeur du paramètre (si ce paramètre,
défini dans le <a href="descrip.htm#fichier ini">.INI
associé</a> est de type entier)</td>
</tr>
<tr>
<td align="center">f</td>
<td align="center">float</td>
<td>Valeur du paramètre (si ce paramètre, défini dans
le <a href="descrip.htm#fichier ini">.INI associé</a>
est de type float). Actuellement le type float n'est pas
géré et étant donné que les compilateurs peuvent ne
pas coder les float suivant le même format, je vous
recommande fortement d'utiliser le type short.</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="defines.htm"><img
src="images/cprev.jpg" alt="Chapitre précé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="kitdev.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Dernière
mise à jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->16/05/01<!--webbot
bot="Timestamp" i-checksum="12425" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">Télé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>

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écé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ère
mise à jour :&nbsp;18/03/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">Télé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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éder à 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è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 également passé en paramètre à 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é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é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è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é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é avec <a href="#CoGetLDVPath">CoGetLDVPath</a>,
cela permet de repérer le fichier INI associé à ce LDV
pour cette langue, il suffit de concaténer ces 2
chaî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é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é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è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é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é : Cette fonction possède une
optimisation en code 68030<br>
Bit 1 positionné : Cette fonction possè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ède
les optimisations spéciales afin de pouvoir l'indiquer
dans la fenê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 ç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é ne possède pas le processeur ou le DSP en
question, la fonction retournera qu'elle ne possède pas
cette optimisation, c'est un peu logique puisque qu'elle
ne risque pas d'être utilisée...</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou supé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ètres</strong></td>
<td width="85%">Demande à <span style="font-style: italic; font-weight: bold;">VISION</span> quels processeurs sont à 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ésent<br>0x20 : Un FPU (68881 ou mieux) ou mieux est présent<br>0x200: Un DSP 56001 est présent</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de préparer le LDV à utiliser ses routines spécifiques selon les processeurs disponibles.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le masque remonté peut être filtré 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ées à 1 Cela est pratique pour simuler le fonctionement du
LDV sur un hardware différent.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou supé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écé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ère
mise à 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élé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écé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ère
mise à jour : 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">Télé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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 être gérés sumultané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è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à utilisés)</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Réserve un identifiant INI en vue
d'opérations sur un fichier INI. Si le fichier file
n'existe pas, un identifiant est tout de même renvoyé,
le fichier devra ensuite être sauvé 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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI précédemment renvoyé par <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Succès<br>
-1 : Identifiant invalide</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Libè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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI précédemment renvoyé par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> new_name : nouveau nom de
sauvegarde. NULL si inchangé par rapport à l'appel à <a href="#InOpen">InOpen</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Succès<br>
-1 : Identifiant invalide ou sauvegarde impossible</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Génère un fichier INI en validant
définitivement toutes les modifications apportées
depuis l'appel à <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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI précédemment renvoyé par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la clé<br>
<strong>[OUT]</strong> val_key : buffer destiné à
recevoir la valeur de la clé en ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Echec : la clé ou la section n'ont
pas été trouvées<br>
1 : Succès, la valeur ASCII de la clé de cette section
est présente dans val_key</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Recherche une clé particulière dans une
section particuliè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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI précédemment renvoyé par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la clé<br>
<strong>[IN] </strong>val_key : buffer contenant la
valeur de la clé en ASCII</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : Echec : la clé ou la section n'ont
pas pu être crées ou modifiées par manque de mémoire<br>
1 : Succès</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Ajoute ou modifie une section et/ou une
clé</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si la section ou la clé nexiste pas,
elle est crée</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> hini : un
identifiant de fichier INI précédemment renvoyé par <a href="#InOpen">InOpen</a><br>
<strong>[IN]</strong> section : nom de la section<br>
<strong>[IN] </strong>key : nom de la clé<br>
<strong>[IN/OUT] </strong>val_key : buffer contenant la
valeur par défaut de la clé en ASCII (<strong>[IN]</strong>)
et/ou la valeur lue de la clé (<strong>[OUT]</strong>)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : La clé a été relue avec succès<br>
1 : La clé a du être créee.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet de retrouver la valeur d'une clé
dans une section et, si cette clé 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ès pratique !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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è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é<br>
<strong>[IN/OUT] </strong>val_key : buffer contenant la
valeur par défaut de la clé en ASCII (<strong>[IN]</strong>)
et/ou la valeur lue de la clé (<strong>[OUT]</strong>)</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">0 : La clé n'a pu être retrouvée (fichier/section/clé inexistant)<br>
1 : La clé a été relue avec succès.</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Permet
de retrouver la valeur d'une clé dans une section directement sans
crérer la clé comme dans la fonction précédente (pratique pour juste
relire une valeur ponctuellement)</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Très pratique !</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.04 ou supérieure</td>
</tr>
</tbody></table>
</center></div>
<font size="3"><br></font><pre><font size="3">Exemple d'utilisation: retrouver une clé proprié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è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è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é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é 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écé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ère
mise à jour : 19/05/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">Télé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é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ère
mise à 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élé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ésentation"></a><font size="4"><strong>1.
Pré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ée à 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êtres de progression par exemple).<br>
L'idée de VAPI est de rendre disponible aux LDV ces fonctions
jusqu'içi réservées au fonctionnement interne de <em><strong>VISION</strong></em>.
Pour un LDV, l'intérêt est double:</p>
<ul>
<li>Son auteur évite de re-développer des fonctions déjà
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ées et élé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ées comme le catalogue, le Browser
d'images, etc...<br>
Etant donné que cela prend quand même pas mal de temps à
concervoir et à réaliser, je ferais en sorte que <em><strong>VISION</strong></em>
exporte tout d'abord quelques fonctions
"élémentaires", puis, si le succès grandit, d'autres
viendront.</p>
<p>&nbsp;</p>
<p><a name="dev-kit"></a><font size="4"><strong>2. Kit de
développement</strong></font></p>
<p>Le kit de développement VAPI est identique à 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è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ê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ées par groupe (également appelée
interface). Chaque groupe étant terminé par une zone
mémoire non utilisée destinée à recevoir d'autres
fonctions du même groupe. Si de nouveaux groupes sont
crées, ils viendront à la fin de cette structure afin
de garantir la compatibilité ascendante.</li>
</ul>
<p>Maintenant, pour utiliser une fonction de VAPI, c'est très
simple, imaginez que vous vouliez initialiser le raster image
destination fourni passé en paramètre dans la fonction Run,
avec la couleur blanche (en bit-plans ou True Color), il vous
suffit d'insé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éré 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é, mais toutes les interfaces
et les noms de fonctions possè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ême centre d'intérêt. Voici la liste (que j'espè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ère
mise à 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élé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écé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ère
mise à jour : 26/08/18</p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a href="..%5C..%5C..%5Cdownload/dvldv.zip">Télé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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 à 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è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és passées ensuite (identique à format de sprintf)<br>...: liste dynamique des paramètres à 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 é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 à des fins
de debug, d'informations de performance ou d'erreur.<br>Notez que si le paramè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éder à un formatage style printf qui pourrait s'avé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é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è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é 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 à
LoDoLog n'é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 à effectuer
avant d'appeler LoDoLog. LoDoLog ne fera pas de formatage inutile si le
niveau de logging est insuffisant pour géné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é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écé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élé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écé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ère
mise à 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élé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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ôt orienté 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ètres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone mémoire à écrire<br>
<strong>[IN]</strong> src : Pointeur sur la zone mémoire
à recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'éléments
8 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'éléments
8 bits contenus dans la zone à 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ée
d'elements 8 bits en respectant le facteur d'échelle
donné par le nombre d'éléments de chaque zone. Trè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'éléments soit
codé sur un entier 32 bits, ce nombre d'éléments ne
doit pas dépasser 65535 pour des raisons d'optimisation
interne sur le facteur d'échelle. Si un CPU 030 ou
supérieur est détecté, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimisée.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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ètres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone mémoire à écrire<br>
<strong>[IN]</strong> src : Pointeur sur la zone mémoire
à recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'éléments
16 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'éléments
16 bits contenus dans la zone à 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ée
d'elements 16 bits en respectant le facteur d'échelle
donné par le nombre d'éléments de chaque zone. Trè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'éléments soit
codé sur un entier 32 bits, ce nombre d'éléments ne
doit pas dépasser 32767 pour des raisons d'optimisation
interne sur le facteur d'échelle. Si un CPU 030 ou
supérieur est détecté, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimisée.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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ètres</strong></td>
<td width="85%"><strong>[OUT]</strong> dst : Pointeur sur
la zone mémoire à écrire<br>
<strong>[IN]</strong> src : Pointeur sur la zone mémoire
à recopier<br>
<strong>[OUT]</strong> nb_elems_dst : Nombre d'éléments
32 bits contenus dans la zone de destination<br>
<strong>[IN]</strong> nb_elems_src : Nombre d'éléments
32 bits contenus dans la zone à 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ée
d'elements 32 bits en respectant le facteur d'échelle
donné par le nombre d'éléments de chaque zone. Trè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'éléments soit
codé sur un entier 32 bits, ce nombre d'éléments ne
doit pas dépasser 16383 pour des raisons d'optimisation
interne sur le facteur d'échelle. Si un CPU 030 ou
supérieur est détecté, <em><strong>VISION</strong></em>
utilise automatiquement une routine plus optimisée.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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écé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ère
mise à 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élé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écé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ère
mise à 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élé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écé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ère
mise à 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élé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écé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ère
mise à 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élé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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êtres de progression de <em><strong>VISION</strong></em>
afin de pré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è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 à jour l'indicateur de pourcentage
de la fenêtre de progression</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si le paramètre pc est hors limite, il
sera ramené à sa limite la plus proche. Le type long
est utilisé pour assurer la comptabilité entre
compilateurs</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou supé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è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ées<br>
Bit 1 : le DSP sera utilisé</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 à l'utilisateur que des
optimisations en 68030 et/ou DSP seront utilisées lors
du travail. Cela a pour effet d'afficher un
&quot;030!&quot; ou &quot;DSP!&quot; dans la fenê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ètre (valable pour
toute version de VAPI à partir de la 1.02).</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le type long est utilisé pour assurer la
comptabilité entre compilateurs</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou supé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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> no_line : index de
la zone de texte concernée (0, 1, ou 2)<br>
<strong>[IN] </strong>text : pointeur sur la chaine de
caractères à 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ée
de la fenêtre de progression le texte spécifié</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Le type long est utilisé pour assurer la
comptabilité entre compilateurs. Si le paramè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é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è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é
l'annulation de l'opération en cours (Run à priori)<br>
!= 0 : L'utilisateur a demandé l'annulation</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">Met à jour l'indicateur de pourcentage
de la fenêtre de progression et renvoit en retour une
valeur non nulle si une demande d'annulation a été
demandée par l'utilisateur</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Si le paramètre pc est hors limite, il
sera ramené à sa limite la plus proche. Le type long
est utilisé pour assurer la comptabilité entre
compilateurs.<br>
Utilisé 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é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écé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ère
mise à 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élé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écé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ère
mise à 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élé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ésumé</strong></td>
</tr>
<tr>
<td width="15%"><strong>Pré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érents formats
(bit-plan, True Color, formats ATARI, spé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ètres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image à 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é avec des bits mis à 0 (index TOS/VDI =
0), l'indice 0 de la palette est généralement
positionné 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é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è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é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és (la composante verte est alors codé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é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é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ètres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image à 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é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écifique de la machine
est le format ATARI, la fonction rend immé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é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ètres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image à 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é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écifique de la machine
est le format ATARI, la fonction rend immé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é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ètres</strong></td>
<td width="85%"><strong>[IN/OUT]</strong> img : pointeur
sur l'image à traiter<br>
<strong>[IN] </strong>width : largeur (en pixels)
maximale à ne pas dépasser. width ne peut dépasser
32767. Le codage sur un entier 32 bits ne sert qu'à
assurer la compatibilité 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épare des opé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ètre width peut paraître
redondant avec img-&gt;fd_w mais il est là parce que <em><strong>VISION</strong></em>
positionne toujours img-&gt;fd_w à un multiple de 16
(optimisations internes). width permet donc de ne pas
être limité à une largeur multiple de 16 pixels.<br>
<u>Inté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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> indexes : pointeur
sur le tableau d'indices TOS à converir vers le raster
précédemment initialisé avec la fonction <a
href="#RaInd2RasterInit">RaInd2RasterInit</a><br>
<strong>[IN] </strong>nb_indexes : Nombre d'index dans le
tableau pointé 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é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ées (indices
TOS) vers le raster image. VAPI mémorise la derniè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é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ètres</strong></td>
<td width="85%"><strong>[IN]</strong> pt_bitplan :
pointeur sur le début des données raster à convertir
(démarrage sur un multiple de 16 pixels)<br>
<strong>[IN] </strong>nb_pts : Nombre de points à
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'à assurer la compatibilité avec les compilateurs 32
bits.<br>
<strong>[OUT] </strong>tos_indexes : pointeur vers le
tableau d'indices TOS recevant les données (doit être
dimensionné à 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é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 être multiple de 16, sinon vous n'aurez pas les
derneiers points (si vous spé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 être
tranquille...</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.00 ou supé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è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'à
assurer la compatibilité 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écupérer le tableau de correspondance
entre les indices TOS et VDI, pour un nombre de plans
donné</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é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è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'à
assurer la compatibilité 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écupérer le tableau de correspondance
entre les indices VDI et TOS, pour un nombre de plans
donné</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é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è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'à assurer la
compatibilité 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é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è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 été allouée (pointé
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è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ès le champ fd_addr pointe vers
les données image (non initialisées), sinon fd_addr
vaut NULL<br>
fd_wdwidth est aussi mis à jour. Les autres champs
restent inchangés.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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è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ère une image précédemment alloué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 à zéro après libération.</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.02 ou supé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è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éfinition des couleurs
élémentaires, le début du buffer à 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) éléments,
chaque élément du tableau devant définir la valeur à
substituer à 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é par i).<br>
Attention ! La nouvelle valeur substitué doit appartenir
à l'intervalle [0,31].<br>
Exemple tout bête : augmenter la luminosité 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é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é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è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éfinition des couleurs
élémentaires, le début du buffer à 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) éléments pour
red et blue, et 64 (64=2^6) pour green, chaque élément
du tableau devant définir la valeur à substituer à
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é par i).<br>
Attention ! La nouvelle valeur substitué doit appartenir
à l'intervalle [0,31] pour red et blue et [0,63] pour
green.<br>
Exemple tout bête : augmenter la luminosité 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é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é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è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éfinition des couleurs
élémentaires, le début du buffer à 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) éléments,
chaque élément du tableau devant définir la valeur à
substituer à 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é par i).<br>
Attention ! La nouvelle valeur substitué doit appartenir
à l'intervalle [0,255].<br>
Exemple tout bête : baisser la luminosité de 20% sur
toutes les composantes:<br>
new_val = (80 * i) / 100 ;<br>
/* Notons que on retombe forcé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é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é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è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é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ès rotation en vue d'une allocation par exemple. tous
les champs du MFDB out sont mis à jour SAUF fd_addr car
l'image destination n'est pas allouée.</td>
</tr>
<tr>
<td width="15%"><strong>Remarques</strong></td>
<td width="85%">Généralement, cette fonction est
appelée avant la fonction suivante</td>
</tr>
<tr>
<td width="15%"><strong>Version VAPI</strong></td>
<td width="85%">1.03 ou supé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è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és de la
rotation<br>
<strong>[IN]</strong> flags : drapeau dont les bits ont
la signification suivante:<br>
Bit 0 positionné : Demande à <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
été demandé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écifié su
le MFDB source. Le MFDB destination doit avoir été
alloué, sinon la fonction l'allouera. Notez que cette
dernière solution est un peu dangereuse car c'est
maintenant au LDV de gérer sa libé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°, des
routines spéciales sont appelées afin d'é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é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écé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ère
mise à 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élé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écé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ère
mise à 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élé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éro est
incrémenté à chaque évolution. Ce numéro de version
est destiné à effectuer éventuellement des contrô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é (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çoit, ceux qui lui sont destinés et ceux destinés à
<em><strong>VISION</strong></em>. Comme le LDV est lancé
par <em><strong>VISION</strong></em>, c'est lui qui
reçoit les messages destinés à <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êtres de <em><strong>VISION</strong></em>
ne seront plus dessinées pendant que le LDV a la main.
Le paramètre msg est de type void * et non pas int *
pour la même raison que précé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ésente que peu
d'intérêt, voyez plutô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 être passé aux
fonctions <a href="ra.htm#RaTC15RemapColors">RaTCxxRemapColors</a>.<br>
red, green et blue pointent sur un tableau définisant les
valeurs des composantes élémentaires.<br>
pt_img pointe sur le premier pixel à modifier<br>
nb_pts est le nombre de points à partir de pt_img à 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ées:<br>
<strong>Vapi-&gt;NomDeLaFonction( ListeDesParamè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é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écé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ère
mise à 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élé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>