typedef struct { short StrSize ; short Type ; char Authors[1+45] ; LDV_CAPS Caps[10] ; char RFU[16] ; } LDV_INFOS ;
Champ | Type | Remarques |
StrSize | short | Taille de la structure LDV_INFOS. Doit être initialisé à sizeof(LDV_INFOS). Le but de ce champ est de permettre à VISION de ne pas exploser ses données internes si la taille de cette structure est amenée à changer. |
Type | short | Doit valoir TLDV_MODIFYIMG, TLDV_LOADIMG ou TLDV_SAVEIMG, voire plus à venir. Actuellement, seul le type TLDV_MODIFYIMG est accepté par VISION |
Authors | char[1+45] | Noms du ou des auteurs. 45 caractères sont disponibles à cet effet. |
Caps | LDV_CAPS[10] | Tableau décrivant les capacités du LDV pour chaque nombre de plans. Au maximum le LDV peut gérer 9 nombres de plans différents car le tableau de structures doit se terminer par une struture avec des champs initialisés à zéro. |
RFU | char[16] | Pour usage futur. Ne pas toucher ! |
typedef struct { char NbPlanes ; char NbPlanesOut ; unsigned long Flags ; } LDV_CAPS ;
Champ | Type | Remarques |
NbPlanes | char | Nombre de plans pour cette capacité (1, 2, 4, 8 , 16, 24 (non géré), 32) |
NbPlanesOut | char | Nombre de plans en sortie pour cette capacité. Pour un LDV de type TLDV_MODIFYIMG, ce champ doit égaler NbPlanes |
Flags | unsigned long | Combinaison (symbole |) des masques
suivants:
|
typedef struct { short RasterFormat ; MFDB Raster ; LDV_PALETTE Palette ; /* Structure fournie si Raster.fd_nplanes <= 8 */ } LDV_IMAGE ;
Champ | Type | Remarques |
RasterFormat | short | LDVF_STDFORMAT, LDVF_ATARIFORMAT ou LDVF_SPECFORMAT |
Raster | MFDB | Le MFDB classique ATARI décrivant les données de l'image (hors palette) |
Palette | LDV_PALETTE | Pointeur sur une structure LDV_PALETTE décrivant la palette assoicée à l'image si le nombre de bits est inférieur ou égal à 8. |
typedef struct { short NbColors ; VDI_ELEMENTPAL* Pal ; } LDV_PALETTE ;
Champ | Type | Remarques |
NbColors | short | Le nombre d'éléments dans le tableau pointé par Palette (soit 2, 4, 16 ou 256 couleurs) |
Pal | VDI_ELEMENTALPAL * | Pointeur sur un tableau de NbColors éléments de type VDI_ELEMENTPAL. La palette proposée est indexée sur les indices VDI (ceux utilisés par les fonctions VDI comme le tracé d'une ligne) et non TOS (ceux que vous récupérerez par les fonctions raster de VAPI). Heureusement, VAPI propose des fonctions pour transformer les indices VDI en indices TOS et vice-versa. |
typedef struct { short Red ; short Green ; short Blue ; } VDI_ELEMENTPAL ;
Champ | Type | Remarques |
Red | short | Composante Rouge de l'index VDI de la palette (0 <= index <= 1000) |
Green | short | Composante Verte de l'index VDI de la palette (0 <= index <= 1000) |
Blue | short | Composante Bleue de l'index VDI de la palette (0 <= index <= 1000) |
typedef struct { short x1, y1, x2, y2 ; short NbParams ; LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ; void* UserParam ; } LDV_PARAMS ;
Champ | Type | Remarques |
x1 | short | Position X du bord haut-gauche du rectangle à traiter (0 si image entière) |
y1 | short | Position Y du bord haut-gauche du rectangle à traiter (0 si image entière) |
x2 | short | Position X du bord bas-droit du rectangle à traiter (largeur image - 1 si image entière) |
y2 | short | Position Y du bord bas-droit du rectangle à traiter (hauteur image - 1 si image entière) |
NbParams | short | Nombre de paramètres valides dans le tableau Param |
Param | LDV_BASICPARAM | Tableau contenant les paramètres saisis depuis l'interface de VISION |
UserParam | void * | Si votre LDV a besoin de stocker des données supplémentaires lors d'un appel à GetParams, ce pointeur peut être utilisé pour ça. Par exemple si votre LDV prend en pararmètre un tableau de matrice 4x4, c'est clair que la structure "de base" LDV_PARAMS ne peut convenir. Il vous suffit alors de faire pointer UserParam sur votre matrice lors de l'appel à GetParams, vous retrouverez cette même valeur lorsque VISION appellera la fonction Run. Vous pouvez même décider d'allouer dynamiquement la structure qui vous convient lors de l'appel à GetParams, puis de l'utiliser (et de la libérer...) lors de l'appel à Run. |
typedef union { short s ; float f ; } LDV_BASICPARAM ;
Champ | Type | Remarques |
s | short | Valeur du paramètre (si ce paramètre, défini dans le .INI associé est de type entier) |
f | float | Valeur du paramètre (si ce paramètre, défini dans le .INI associé est de type float). Actuellement le type float n'est pas géré et étant donné que les compilateurs peuvent ne pas coder les float suivant le même format, je vous recommande fortement d'utiliser le type short. |