initial commit

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

View File

@@ -0,0 +1,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<50>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<50>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<50>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<69>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<69>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<50>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<EFBFBD>ais&quot; in the preferences of <em><strong>VISION</strong></em>,
you just have to create the directory &quot;Fran<EFBFBD>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<69>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<EFBFBD>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<EFBFBD>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<EFBFBD>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<EFBFBD>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<EFBFBD>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<EFBFBD>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<EFBFBD>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<50>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<50>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<50>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<50>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<50>sentation">VAPI</a> raster functions).
Thankfully, <a href="vapi/index.htm#Pr<50>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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="in.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : 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<EFBFBD>sum<EFBFBD></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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="in.htm"><img src="../images/csuiv.jpg" alt="Chapitre suivant" border="0" height="26" hspace="2" width="43"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : 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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="27" hspace="2" width="32"></a><a href="lo.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="lo.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">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<50>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<70>c<EFBFBD>dent" hspace="2"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="struct.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left">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<70>c<EFBFBD>dent" hspace="2"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="struct.htm"><img style="border: 0px solid ; width: 43px; height: 26px;" src="../images/csuiv.jpg" alt="Chapitre suivant" hspace="2"></a></td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icoprinc.gif" height="71" width="59"></p>
</td>
<td width="33%"><p align="center"><font color="#0000ff" size="5"><strong>Documentation </strong><em><strong>VISION
(VAPI)</strong></em></font></p>
</td>
<td rowspan="2" align="center" valign="top" width="8%"><p align="center"><img src="../images/icointro.gif" height="71" width="59"></p>
</td>
<td valign="top" width="17%"><p align="left"></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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="27" hspace="2" width="32"></a><a href="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<EFBFBD>fixe de l'interface</strong></td>
<td width="85%">Me</td>
</tr>
<tr>
<td width="15%"><strong>Nombre de fonctions</strong></td>
<td width="85%">3</td>
</tr>
<tr>
<td width="15%"><strong>Description</strong></td>
<td width="85%">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<70>c<EFBFBD>dent" border="0" height="26" hspace="2" width="46"></a><a href="index.htm"><img src="../images/csom.jpg" alt="Retour au sommaire" border="0" height="26" hspace="2" width="26"></a><a href="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>