typedef long LDV_STATUS
Le type de code de retour des fonctions LDV est un entier 32 bits. Pourquoi ? Tout d'abord parce que certains compilateurs (GCC par exemple) retournent un entier 32 bits même si on spécifie une entier 16 bits (short). Ensuite, cela permet de prévoir une extension du code de retour, pour une évolution future, dans les bits restant.
Define | Description |
ELDV_NOERROR | Pas d'erreur. La fonction a fonctionné correctement |
ELDV_INVALIDPARAMETER | Au moins un des paramètres est invalide |
ELDV_NBPLANESNOTSUPPORTED | La fonction ne supporte pas le nombre de plans passé en paramètre |
ELDV_NOTENOUGHMEMORY | Mémoire insuffisante |
ELDV_PREVIEWNOTSUPPORTED | La fonction Preview n'est pas définie (pointe sur NULL) |
ELDV_RUNNOTSUPPORTED | La fonction Run n'est pas définie (pointe sur NULL). Je me demande bien qui serait suffisamment naze pour écrire un LDV ne faisant rien ! |
ELDV_BADVAPIVERSION | La version de VAPI disponible ne permet pas d'utiliser le LDV (il manque certaines fonctions ou interfaces) |
ELDV_IMGFORMATMISMATCH | Les formats d'images gérés par le LDV ne permettent pas à VISION de fournir une image compatible avec un des formats attendus. Cela est à priori une erreur du LDV. |
ELDV_CANCELLED | L'opération en cours a été annulée par l'utilisateur |
ELDV_GENERALFAILURE | Echec général, raison non précisée |
Ces codes peuvent être renvoyés par les fonctions du LDV ou par VISION vers l'utilisateur afin d'afficher le message d'erreur correspondant. Pensez aussi à utiliser la macro LDV_SUCCESS qui vous indique si le code passé en paramètre correspond à un succes ou une erreur.
Define | Description |
TLDV_MODIFYIMG | Module modificateur d'image. Peut également servir à initialiser une image en écrasant complètement son contenu afin d'en générer une nouvelle, sans prendre en compte les données actuelles. |
TLDV_LOADIMG | Module de chargement d'image. VISION ne le gère pas encore |
TLDV_SAVEIMG | Module de sauvegarde d'image. VISION ne le gère pas encore |
4.4 Informations sur les capacités
Define | Description |
LDVF_STDFORMAT | Le LDV accepte le format image standard défini par ATARI (bit-plans à la suite les uns des autres). Ce format n'est pas valable en True Color. |
LDVF_ATARIFORMAT | Le LDV accepte le format ATARI (bit-plans entrelacés (ST), modes True Color du Falcon) |
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 appelle Run) |
LDVF_AFFECTPALETTE | Le LDV modifie la palette (modes bit-plans uniquement). En ce cas, l'opération sur la palette doit toujours se faire "sur place". VISION sauvegardera systématiquement la palette de l'image dans le tampon undo. |
LDVF_SUPPORTPROG | Le LDV appellera la fonction PrSetProg de l'interface VAPI (conseillé si le traitement dure plus de 2 secondes). Avant d'appeler Run, VISION affichera une fenêtre de progression pour le LDV et la fera disparaitre ensuite. En appelant PrSetProg de l'interface VAPI, le LDV pourra informer l'utilisateur de la progression du traitement. |
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. La présence de ce flag impose évidemment que le LDV ne modifie pas la taille de l'image. |
LDVF_REALTIMEPARAMS | Le LDV effectue assez rapidement la fonction Run en mode 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). En ce cas, VISION appelera la fonction Preview lorsque l'utilisateur agira sur un ascenseur de contrôle de paramètre, sans que celui-ci soit obligé d'appuyer sur le bouton "Pré-Viualisation" |
LDVF_SUPPORTCANCEL | La fonction Run peut être annulée en cours d'exécution. VISION permet alors à la fenêtre de progression d'être fermée par le bouton de fermeture de fenêtre GEM (CLOSER) et par Control-C. Dès que le LDV supporte la progression, je vous conseille d'ajouter (et de gérer ..) ce flag, c'est bien utile et pas compliqué à implémenter. |
LDVF_NOSELECTION |
Ce LDV ne peut pas travailler sur un bloc à
l'intérieur de l'image (sélection). En ce cas, VISION
invalide la possibilité de spécifier la sélection lors
de l'application du LDV. Remarque : depuis la version 4.0e, VISION crée une image "bloc" faisant ainsi croire au LDV qu'il travaille sur un bloc. VISION replace ensuite le bloc modifié dans l'image d'origine sans que le LDV ait à se préoccuper des spécificités du travail sur un bloc. En bref, si vous ne voulez pas vous embêter à gérer le travail sur un bloc, positionnez ce flag, VISION se charge de tout ! |
Ces flags sont à combiner avec le "ou logique" (|).