|  | Documentation VISION (VAPI) |  | Dernière mise à jour : 04/01/02
Télécharger la doc | S T R U C T U R E S |

VAPI_HEADER

    typedef struct
    {
      unsigned short Version ;
      unsigned short StrSize ;
      void*          Global ;
      void cdecl     (*GEMMessageLoop)(void *msg) ;
      char           RFU[116] ;
    }
    VAPI_HEADER ;

Champ | Type | Description
Version | unsigned short | Du type 0x0101. Ce numéro est incrémenté à chaque évolution. Ce numéro de version est destiné à effectuer éventuellement des contrôles par le LDV. Si la version de VAPI ne contient pas les interfaces ou fonctions nécessaires, le LDV doit renvoyer le code d'erreur ELDV_BADVAPIVERSION
StrSize | unsigned short | Taille de la structure VAPI

Global

void *

Pointeur sur le tableau global (fourni par l'AES) de VISION. Ce tableau permet au LDV d'utiliser ensuite MT_AES. Pour plus de détails, consultez la documentation des LDG. Le type est void * et non pas int * pour ne pas risquer de rentrer en conflit avec le compilateur utilisé (int a une taille de 16 bits sous PURE C et 32 bits sous GCC). Il appartient donc au programmeur de LDV de "caster" ce pointeur vers le type entier 16 bits convenant au compilateur.

GEMMessageLoop

void cdecl (*)(void *)

Pointeur sur la fonction de boucle de messages GEM de VISION. Cela permet au LDV, s'il utilise l'AES, de filtrer parmi les messages qu'il reçoit, ceux qui lui sont destinés et ceux destinés à VISION. Comme le LDV est lancé par VISION, c'est lui qui reçoit les messages destinés à VISION et devrait donc les renvoyer vers VISION au travers de cette fonction. Cela est surtout utile pour les messages de type Redraw, sinon les fenêtres de VISION ne seront plus dessinées pendant que le LDV a la main. Le paramètre msg est de type void * et non pas int * pour la même raison que précédemment.

RFU | 116 octets | Pour usage futur. Ne pas toucher !

VAPI

    typedef struct
    {
      VAPI_HEADER Header ;

      /* Progress Interface */
    ....

      /* Raster Interface */
    ...

      /* More interfaces to come ! */
    }
    VAPI ;

La description brute de cette structure ne présente que peu d'intérêt, voyez plutôt la liste des fonctions disponibles.

REMAP_COLORS

    typedef struct
    {
      unsigned char *red ;
      unsigned char *green ;
      unsigned char *blue ;
      void          *pt_img ;
      long          nb_pts ;
    }
    REMAP_COLORS ;

Un pointeur sur une telle structure doit être passé aux fonctions RaTCxxRemapColors.
red, green et blue pointent sur un tableau définisant les valeurs des composantes élémentaires.
pt_img pointe sur le premier pixel à modifier
nb_pts est le nombre de points à partir de pt_img à modifier suivant les tableaux red, green et blue.

Fonctions disponibles

Ces fonctions sont directement accessibles au travers du pointeur vapi interne aux LDV, il suffit d'appeler ainsi les fonctions désirées:
Vapi->NomDeLaFonction( ListeDesParamètres ) ;
N'oubliez pas de tester la valeur de retour si la fonction est suceptible d'en renvoyer une !

Les fonctions sont regroupées en interfaces dans les chapitres suivants. Afin de retrouver facilement l'interface d'appartenance de fonctions, tous les noms de fonctions du même groupe commencent par les mêmes 2 lettres (par exemple "Pr" pour les fonctions du groupe de progression).

|  | Documentation VISION (VAPI) |  | Dernière mise à jour : 04/01/02
Télécharger la doc | S T R U C T U R E S |