Chapitre précédentRetour au sommaireChapitre suivant

Documentation VISION (LDV)

Dernière mise à jour : 05/04/18

Télécharger la doc

6. KIT DE DEVELOPPEMENT



.6.1 INSTALLATION

Je vous recommande tout d'abord d'installer le kit LDG accessible sur le site officiel des LDG.
Ensuite, télécharger la dernière version de VISION
Pour réaliser un LDV, vous avez besoin:

Attention ! Par défaut le kit de développement fourni par VISION inclut ces fichiers pour le compilateur PureC. Je vous recommande vivement de remettre régulièrement à jour les .H et .LIB. en fonction de l'évolution des LDG.

L'arborescence proposée dans le kit LDV de VISION est la suivante:

Dossier / Sous dossier Fichiers présents
<..>/LDV Pour la gestion LDG:
LDG.H : Librairies dynamiques GEM, fichier header .H
MT_AES.H : Pour utiliser les LDG/LDV en OS multitache. En fait, ce fichier ne sert que si vous utilisez l'AES dans le LDV, ce qui est improbable actuellement, mais peu être bientôt...
LDG.LIB, MT_AES.LIB : à linker avec votre LDV
Pour la gestion LDV:
LDV.H : Définition des structures et interfaces avec VISION
VAPI.H : Définition des structures et interfaces avec VAPI
<...>/LDV/SRC Chaque LDV est présent dans un répertoire associé à son nom. Dans un tel répertoire, on trouve:
<nom du ldv>.C : le fichier "source" du LDV
<nom du ldv>.PRJ : le fichier projet (Pure C)
<...>/LDV/DOC Cette documentation

 

.6.2 SQUELETTE

Vous pouvez utiliser comme fichier squelette d'un LDV n'importe quel fichier source d'un LDV donné dans le kit. A vous de voir quel fichier correspond le mieux au LDV que vous voulez réaliser !

 

.6.3 EXEMPLES

Le kit VISION fournit les LDV suivants ainsi que les sources (en PureC). Voici leurs caractéristiques:

INVERT.LDV
Description Inversion des bits d'une image
Capacités Tout nombre de plans (1, 2, 4, 8, 16, 24 et 32). Format de la machine. Ne modifie pas la palette.
Type de transformation Sur place. On peut aussi retirer cette propriété du define CAPS et forcer VISION à allouer de la mémoire pour la destination (but uniquement pédagogique !)
Utilise VAPI Non
Fichier INI Oui (Anglais / Français)
Remarque Très simple ! Met uniquement en oeuvre la fonction VDI vro_cpyfm
Pas de grand intérêt : VISION propose déjà la fonction "Négatif" depuis la version 1.0 ! Ne gère pas la possibilité d'annulation.

 

XWAVE.LDV / YWAVE.LDV
Description Vagues sur l'axe X / Y
Capacités Tout nombre de plans (1, 2, 4, 8, 16, 24 et 32). Format de la machine. Ne modifie pas la palette.
Type de transformation Force VISION à allouer de la mémoire pour la destination. On doit pouvoir faire sans mais cela complique un peu le LDV...
Utilise VAPI Oui (Progress + Raster Interface)
Fichier INI Oui (Anglais / Français)
Remarque Amusant et assez simple. Présente l'interface de progression VAPI et la fonction de mise à "blanc" d'une image (RaImgWhite). Gère la possibilité d'annulation.

 

BW.LDV
Description Conversion d'une image (ou partie en True Color) en une image en niveaux de gris
Capacités Tout nombre de plans (1, 2, 4, 8, 16, 24 et 32). Format de la machine. Modifie la palette.
Type de transformation Sur place
Utilise VAPI Oui (Progress + Raster Interface)
Fichier INI Oui (Anglais / Français)
Remarque Met en oeuvre les fonctions de conversion de format en True Color (RaTCConvert et RaTCInvConvert). Montre aussi comment modifier la palette. Par rapport à la fonction équivalente de VISION (Conversion N&B), ce LDV permet d'agir sur un bloc (mode True Color uniquement). En mode true Color, le LDV est annulable.

 

PIXEL.LDV
Description Crée un effet de "pixelisation" sur une image (ou partie)
Capacités Modes True Color uniquement (16 et 32 plans). Format ATARI.
Type de transformation Sur place
Utilise VAPI Oui (Progress Interface)
Fichier INI Oui (Anglais / Français)
Remarque Bel effet et très éducatif : ce LDV ne sait gérer QUE le format True Color ATARI et pourtant il marchera sur votre MagicPC ! Il utilise la possibilité donnée à VISION de s'occuper des transformations entre formats et se concentre uniquement sur un format..Gère la possibilité d'annulation.

 

YPERSC.LDV
Description Crée un effet de perspective sur une image (ou partie)
Capacités Tout nombre de plans (1, 2, 4, 8, 16 et 32). Format ATARI. Ne modifie pas la palette.
Type de transformation Force VISION à allouer de la mémoire pour la destination.
Utilise VAPI Oui (Progress Interface+ Raster Interface + MEM Interface)
Fichier INI Oui (Anglais / Français)
Remarque Crée un bel effet de perspective sur une image ou une partie. Sur la partie, le bloc est alloué, et repositionné par VISION grâce au flag LDVF_NOSELECTION (c'est très pénible à gérer sinon en mode bit-plan), le LDV ne voit qu'une image et non pas une sélection à l'intérieur de celle-ci. Les fonctions MeCopyMemoryxx de MEM Interface sont utilisées afin de changer l'echelle des lignes.

 

LIGHT.LDV / GAMMA.LDV
Description Modifie la répartition des couleurs rouge, vert, bleu de façon linéaire (light) ou suivant une courbe gamma (gamma)
Capacités Tout nombre de plans (1, 2, 4, 8, 16 et 32). Format de la machine. Modifie la palette.
Type de transformation Sur place
Utilise VAPI Oui (Progress Interface+ Raster Interface)
Fichier INI Oui (Anglais / Français)
Remarque Remplace avantageusement les fonctions de luminosité et de correction gamma déjà présentes dans VISION (mais moins évoluées)..En mode bit-plan, la palette est affectée. Gère la possibilité d'annulation.
Ces LDV sont très optimisés en mémoire : ils effectuent la transformation "sur place", travaillent sur le format spécifique de la machine et peuvent travailler sur un bloc de l'image (en true color seulement...).
Ces 2 LDV sont très semblables : seule la fonction interne ChangeColors change.

 

ROTATE.LDV
Description Effectue une rotation sur une image ou une partie
Capacités Tout nombre de plans (1, 2, 4, 8, 16 et 32). Format de la machine. Ne modifie pas la palette.
Type de transformation Force VISION à allouer de la mémoire pour la destination.
Utilise VAPI Oui (Progress Interface+ Raster Interface)
Fichier INI Oui (Anglais / Français)
Remarque Ce LDV est sans doute le plus simple (à comprendre...). En fait, il s'appuie entièrement sur les fonctions RaRasterRotateGetDstMFDB et RaRasterRotate de l'interface Raster de VAPI.
Voyez aussi comment ce LDV utilise le flag LDVF_NOSELECTION afin de ne pas se surcharger avec la gestion des blocs.

PUZZLE.LDV
Description Mélange des blocs de l'image générant un ... puzzle
Capacités Tout nombre de plans. Format de la machine. Ne modifie pas la palette.
Type de transformation Force VISION à allouer de la mémoire pour la destination.
Utilise VAPI Oui (Progress Interface)
Fichier INI Oui (Anglais / Français)
Remarque Pas grand chose à dire, ce LDV est sympa et assez simple à coder. La petite astuce consiste en la gestion de l'entropie, c'est à dire à la quantification du désordre dans le mélange.

BHOLE.LDV
Description Simule un trou noir dans l'image. Considérez-le comme un hommage à Stephen Hawking.
Capacités Tout nombre de plans. Format de la machine. Ne modifie pas la palette.
Type de transformation Force VISION à allouer de la mémoire pour la destination.
Utilise VAPI Oui (Progress Interface+Config Interface+Logging Interface)
Fichier INI Oui (Anglais / Français)
Remarque Ce LDV est le plus complet à ce jour. Il dispose d'optimisations spécifiques en 68030 et 68881. Utilise la symétrie du trou noir pour optimiser les calculs.

Chapitre précédentRetour au sommaireChapitre suivant

Documentation VISION (LDV)

Dernière mise à jour : 05/04/18

Télécharger la doc

6. KIT DE DEVELOPPEMENT