|  | Documentation VISION (VAPI) |  | Dernière mise à jour : 18/03/18
Télécharger la doc | V A P I |

1. Présentation

VAPI (VISION's Application Programmer Interface) est une partie de VISION destinée à vous aider dans le développement des LDV. Vous devez bien vous douter qu'en interne VISION utilise un tas de fonctions permettant la gestion des images (conversions bit-plan <--> index TOS/VDI, manipulation de rasters,...) ainsi que des fonctions d'interface utilisateur (fenêtres de progression par exemple).
L'idée de VAPI est de rendre disponible aux LDV ces fonctions jusqu'içi réservées au fonctionnement interne de VISION. Pour un LDV, l'intérêt est double:

- Son auteur évite de re-développer des fonctions déjà existantes
- Le LDV s'en trouve plus léger

Bien entendu, VISION dispose de pleins de fonctions (plus ou moins aisées et élégantes...), il s'agit donc de faire un choix pour savoir lesquelles exporter. D'autant plus que l'on peut imaginer que VISION exporte aussi ses données comme le catalogue, le Browser d'images, etc...
Etant donné que cela prend quand même pas mal de temps à concervoir et à réaliser, je ferais en sorte que VISION exporte tout d'abord quelques fonctions "élémentaires", puis, si le succès grandit, d'autres viendront.

2. Kit de développement

Le kit de développement VAPI est identique à celui des LDV. Vous le trouverez ici.

3. Utilisation

Utiliser VAPI depuis un LDV est très simple : lorsque VISION appelle la fonction GetLDVCapabilities du LDV, il vous fournit un pointeur sur une structure de type VAPI. Sans entrer dans le détail, cette structure rassemble les informations suivantes:

- Un entête de type VAPI_HEADER
- Une liste de fonctions "en vrac". Ces fonctions sont en fait rassemblées par groupe (également appelée interface). Chaque groupe étant terminé par une zone mémoire non utilisée destinée à recevoir d'autres fonctions du même groupe. Si de nouveaux groupes sont crées, ils viendront à la fin de cette structure afin de garantir la compatibilité ascendante.

Maintenant, pour utiliser une fonction de VAPI, c'est très simple, imaginez que vous vouliez initialiser le raster image destination fourni passé en paramètre dans la fonction Run, avec la couleur blanche (en bit-plans ou True Color), il vous suffit d'insérer la ligne suivante:

Vapi->RaImgWhite( &out->Raster ) ;

Cela suppose uniquement que vous avez récupéré le pointeur Vapi fourni par VISION au travers de GetLDVCapabilities (automatiquement fait par le squelette).

La liste de toutes des fonctions définies par l'interface VAPI sont disponibles ici. Désolé, mais toutes les interfaces et les noms de fonctions possèdent des noms en anglais !

4. Interfaces disponibles

Les interfaces regroupent des fonctions du même centre d'intérêt. Voici la liste (que j'espère non-exhaustive) des interfaces actuelles:

Progress Interface | Raster Interface | Configuration Interface | INI Interface
MEM Interface | Logging Interface |  |

|  | Documentation VISION (VAPI) |  | Dernière mise à jour : 18/03/18
Télécharger la doc | V A P I |