|  | Documentation VISION (LDV) |  | Dernière mise à jour : 16/05/01
Télécharger la doc | 5. S T R U C T U R E S |

.5.1 LDV_INFOS

    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 !

5.2 LDV_CAPS

    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:

- LDVF_STDFORMAT : le LDV accepte le format standard
- LDVF_ATARIFORMAT : le LDV accepte le format ATARI
- LDVF_SPECFORMAT : le LDV accepte le format spécifique de la carte graphique
- LDVF_SUPPORTPREVIEW : le LDV fournit la fonction Preview (fortement conseillé même si elle ne fait qu'appeller Run)
- LDVF_AFFECTPALETTE : le LDV modifie la palette (NbPlanes doit être inférieur ou égal à 8)
- LDVF_SUPPORTPROG : le LDV appellera la fonction PrSetProg de l'interface VAPI (conseillé si le traitement dure plus de 2 secondes)
- LDVF_OPINPLACE : le LDV sait travailler sur l'image source, sans que VISION alloue la destination (on dit que la transformation se fait sur place). En ce cas, le paramètre out de la fonction Run est le même que in. Dans la mesure du possible, utilisez ce flag, cela économise de la mémoire.
- LDVF_REALTIMEPARAMS : le LDV effectue assez rapidement la fonction Preview (image petite affichée par la boite de dialogue de VISION), pour que la modification des paramètres du LDV par les ascenseurs soit suffisamment fluide (au moins 1 image par seconde)
- LDVF_SUPPORTCANCEL : la fonction Run peut être annulée par l'utilisateur (à utiliser conjointement avec la fonction PrSetProgEx de l'interface Progress de VAPI)

5.3 LDV_IMAGE

    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.

5.4 LDV_PALETTE

    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.

5.5 VDI_ELEMENTALPAL

    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)

5.6 LDV_PARAMS

    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.

5.7 LDV_BASICPARAM (UNION)

    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.

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