/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D E S F O N C T I O N S : */ /* */ /* */ /* Definition : */ /* */ /* Dans ce fichier, se trouvent toutes */ /* les definitions de macros relatives */ /* aux fonctions. */ /* */ /* */ /* Author of '$xiidc/fonction.1$DEF' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 19870000000000). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* O P P O R T U N I T E D E C O M P I L E R C E M O D U L E : */ /* */ /*************************************************************************************************************************************/ #ifdef CUBI7 # define __VERSION__COMPILER_LE_GRAPHIQUE_CUBI7 \ /* La compilation de la bibliotheque est conditionnelle... */ #Aifdef CUBI7 #Eifdef CUBI7 #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_CUBI7 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U F O R M A T " F L O T T A N T " D U C U B I 7 : */ /* */ /*************************************************************************************************************************************/ # define Float_cubi7 \ vrai_Float_de_base \ /* La bibliotheque ne connait que la simple precision... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S F O N C T I O N S D E P A S S A G E D E S */ /* C O O R D O N N E E S A U X L O N G U E U R S E T I N V E R S E M E N T : */ /* */ /*************************************************************************************************************************************/ # define C7XR(abscisse) \ COOR(abscisse,Xmin7) \ /* Passage d'un 'X' a une longueur, */ # define C7YR(ordonnee) \ COOR(ordonnee,Ymin7) \ /* Passage d'un 'Y' a une longueur. */ # define C7ZR(hauteur) \ COOR(hauteur,Zmin7) \ /* Passage d'un 'Z' a une longueur. */ # define C7XA(longueur) \ COOA(longueur,Xmin7) \ /* Passage d'une longueur a un 'X', */ # define C7YA(longueur) \ COOA(longueur,Ymin7) \ /* Passage d'une longueur a un 'Y', */ # define C7ZA(longueur) \ COOA(longueur,Zmin7) \ /* Passage d'une longueur a un 'Z', */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U " P L A N D E T R A V A I L " 1 0 2 4 x 1 0 2 4 : */ /* */ /*************************************************************************************************************************************/ # define logXY7 \ DIX # define logX7 \ logXY7 \ /* Logarithme de la dimension horizontale, */ # define logY7 \ logXY7 \ /* Logarithme de la dimension verticale. */ # define Xmin7 \ COORDONNEE_MINIMALE \ /* Abscisse minimale, */ # define Xmax7 \ COND(IL_FAUT(CUBI7_____generer_de_la_video) \ ,Xmax \ ,COORDONNEE_MAXIMALE(logX7) \ ) \ /* Abscisse maximale. */ # define Xmax7_700 \ MAX2(Xmax7,C7XA(TRMU(700))) \ /* Veritable abscisse maximale ; malheureusement, je ne peux pas mieux parametrer (700)... */ # define dimX7 \ DIMENSION(Xmin7,Xmax7) \ /* Dimension de l'axe horizontal. */ # define PasX7 \ PAS_COORDONNEE \ /* Pas horizontal. */ # define Ymin7 \ COORDONNEE_MINIMALE \ /* Ordonnee minimale, */ # define Ymax7 \ COND(IL_FAUT(CUBI7_____generer_de_la_video) \ ,Ymax \ ,COORDONNEE_MAXIMALE(logY7) \ ) \ /* Ordonnee maximale. */ # define Ymax7_576 \ MAX2(Ymax7,C7YA(TRMU(576))) \ /* Veritable ordonnee maximale ; malheureusement, je ne peux pas mieux parametrer (576)... */ # define dimY7 \ DIMENSION(Ymin7,Ymax7) \ /* Dimension de l'axe vertical. */ # define PasY7 \ PAS_COORDONNEE \ /* Pas vertical. */ # define Zmin7 \ Zorigine \ /* 'Z' minimal... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E N O R M A L I S A T I O N D E S A X E S : */ /* */ /*************************************************************************************************************************************/ # define _cDENORMALISE_OX7(coordonnee) \ _cDENORMALISE_AXES(Xmin7,dimX7,coordonnee) # define _lDENORMALISE_OX7(longueur) \ _lDENORMALISE_AXES(dimX7,longueur) /* Normalisation d'une longueur sur l'axe OX ; l'unite represente [Xmin7,Xmax7]. */ # define _cDENORMALISE_OY7(coordonnee) \ _cDENORMALISE_AXES(Ymin7,dimY7,coordonnee) # define _lDENORMALISE_OY7(longueur) \ _lDENORMALISE_AXES(dimY7,longueur) /* Normalisation d'une longueur sur l'axe OY ; l'unite represente [Ymin7,Ymax7]. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P O U R F A I R E L E R A P P O R T E N T R E L E S D E U X F O R M A T S D ' I M A G E S : */ /* */ /*************************************************************************************************************************************/ # define HOMOTHETIE_HORIZONTALE_CUBI7(x) \ SCAL(x,FLOT(dimX),FLOT(dimX7)) \ /* Afin de prendre en compte les deux formats possibles d'images... */ # define HOMOTHETIE_VERTICALE_CUBI7(y) \ SCAL(y,FLOT(dimY),FLOT(dimY7)) \ /* Afin de prendre en compte les deux formats possibles d'images... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C O N F I G U R A T I O N M A T E R I E L L E : */ /* */ /*************************************************************************************************************************************/ Denumer08(INIS(_carte_GEC,UN) /* Carte 'GEC' (generateur de contours), */ ,_carte_GES /* Carte 'GES' (generateur de segments horizontaux), */ ,_carte_AMD /* Carte 'AMD' (micro-processeur en tranche), */ ,_carte_CAMI /* Carte 'CAMI' (carte d'acces a la memoire d'images), */ ,_carte_VISU /* Carte 'VISU' (carte de visualisation), */ ,_carte_MEMOA /* Carte 'MEMOA' (premier bloc de la memoire d'images : plans 0 et 2), */ ,_carte_MEMOB /* Carte 'MEMOB' (premier bloc de la memoire d'images : plans 1 et 3). */ ,DERNIERE_carte ,configuration_materielle_CUBI7 ); /* Liste des cartes disponibles sur le CUBI7. */ # define carte_GEC \ ENUM(_carte_GEC) # define carte_GES \ ENUM(_carte_GES) # define carte_AMD \ ENUM(_carte_AMD) # define carte_CAMI \ ENUM(_carte_CAMI) # define carte_VISU \ ENUM(_carte_VISU) # define carte_MEMOA \ ENUM(_carte_MEMOA) # define carte_MEMOB \ ENUM(_carte_MEMOB) Dstruct01(configuration_cubi7 ,BLOC( DEFV(vrai_Positive_de_base,AMD_present:BIT); DEFV(vrai_Positive_de_base,GEC_present:BIT); DEFV(vrai_Positive_de_base,GES_present:BIT); DEFV(vrai_Positive_de_base,utiliser_AMD:BIT); DEFV(vrai_Positive_de_base,utiliser_GEC:BIT); DEFV(vrai_Positive_de_base,utiliser_GES:BIT); DEFV(vrai_Positive_de_base,AMD_present_et_l_utiliser:BIT); DEFV(vrai_Positive_de_base,GEC_present_et_l_utiliser:BIT); DEFV(vrai_Positive_de_base,GES_present_et_l_utiliser:BIT) ) ,NOM_VIDE ); /* Definition de la configuration materielle du CUBI7. */ TypedefP(configuration,STRU(configuration_cubi7)) /* Definition de la configuration reelle du CUBI7. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C O N F I G U R A T I O N D E L A M E M O I R E D ' I M A G E S : */ /* */ /*************************************************************************************************************************************/ # define MEMOIRE_1024x1024 \ ZERO \ /* Numero du bloc memoire contenant une image 1024x1024. */ Denumer05(INIS(_MEMOIRE_512x512_1,MEMOIRE_1024x1024) /* Numero du bloc memoire contenant la premiere image 512x512, */ ,_MEMOIRE_512x512_2 /* Numero du bloc memoire contenant la deuxieme image 512x512, */ ,_MEMOIRE_512x512_3 /* Numero du bloc memoire contenant la troisieme image 512x512, */ ,_MEMOIRE_512x512_4 /* Numero du bloc memoire contenant la quatrieme image 512x512. */ ,DERNIERE_MEMOIRE ,configuration_memoire_CUBI7 ); # define MEMOIRE_512x512_1 \ ENUM(_MEMOIRE_512x512_1) # define MEMOIRE_512x512_2 \ ENUM(_MEMOIRE_512x512_2) # define MEMOIRE_512x512_3 \ ENUM(_MEMOIRE_512x512_3) # define MEMOIRE_512x512_4 \ ENUM(_MEMOIRE_512x512_4) # define MEMOIRE_512x512 \ MEMOIRE_512x512_1 \ /* Numero du bloc memoire contenant la seule image 512x512 utilisee. */ # define MEMOIRE_576x700 \ MEMOIRE_512x512_1 \ /* Numero du bloc memoire contenant la seule image 576x700 utilisee. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S F O R M A T S D E M E M O I R E : */ /* */ /*************************************************************************************************************************************/ Denumer07(INIS(_FORMAT_MEMOIRE_512x512,ZERO) ,_FORMAT_MEMOIRE_512x700 ,_FORMAT_MEMOIRE_512x1024 ,_FORMAT_MEMOIRE_576x512 ,_FORMAT_MEMOIRE_576x700 ,_FORMAT_MEMOIRE_1024x1024 ,DERNIER_FORMAT_MEMOIRE ,format_memoire_CUBI7 ); # define FORMAT_MEMOIRE_512x512 \ ENUM(_FORMAT_MEMOIRE_512x512) # define FORMAT_MEMOIRE_512x700 \ ENUM(_FORMAT_MEMOIRE_512x700) # define FORMAT_MEMOIRE_512x1024 \ ENUM(_FORMAT_MEMOIRE_512x1024) # define FORMAT_MEMOIRE_576x512 \ ENUM(_FORMAT_MEMOIRE_576x512) # define FORMAT_MEMOIRE_576x700 \ ENUM(_FORMAT_MEMOIRE_576x700) # define FORMAT_MEMOIRE_1024x1024 \ ENUM(_FORMAT_MEMOIRE_1024x1024) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U C O L O R I A G E : */ /* */ /*************************************************************************************************************************************/ Denumer03(INIS(_GROUPE_0_DE_TABLES_DE_COLORIAGE,ZERO) /* Numero du groupe 0 des tables de coloriage, */ ,_GROUPE_1_DE_TABLES_DE_COLORIAGE /* Numero du groupe 1 des tables de coloriage. */ ,DERNIER_GROUPE_DE_TABLES_DE_COLORIAGE ,configuration_groupe_de_coloriage_CUBI7 ); # define GROUPE_0_DE_TABLES_DE_COLORIAGE \ ENUM(_GROUPE_0_DE_TABLES_DE_COLORIAGE) # define GROUPE_1_DE_TABLES_DE_COLORIAGE \ ENUM(_GROUPE_1_DE_TABLES_DE_COLORIAGE) Denumer05(INIS(_TABLE_DE_COLORIAGE_0,ZERO) /* Numero du bloc memoire contenant la premiere image 512x512, */ ,_TABLE_DE_COLORIAGE_1 /* Numero du bloc memoire contenant la deuxieme image 512x512, */ ,_TABLE_DE_COLORIAGE_2 /* Numero du bloc memoire contenant la troisieme image 512x512, */ ,_TABLE_DE_COLORIAGE_3 /* Numero du bloc memoire contenant la quatrieme image 512x512. */ ,DERNIERE_TABLE_DE_COLORIAGE ,configuration_tables_de_coloriage_CUBI7 ); # define TABLE_DE_COLORIAGE_0 \ ENUM(_TABLE_DE_COLORIAGE_0) # define TABLE_DE_COLORIAGE_1 \ ENUM(_TABLE_DE_COLORIAGE_1) # define TABLE_DE_COLORIAGE_2 \ ENUM(_TABLE_DE_COLORIAGE_2) # define TABLE_DE_COLORIAGE_3 \ ENUM(_TABLE_DE_COLORIAGE_3) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M O D E D ' E C R I T U R E D E S C O M P O S A N T E S ( P A R A M E T R E ' M O D Z ' ) : */ /* */ /*************************************************************************************************************************************/ # define ECRITURE_DIFFEREE \ ZERO \ /* Une composante 'Z', 'B', 'V' ou 'R' arrivant n'est ecrite que lorsque */ \ /* ses trois autres compagnes sont arrivees ; c'est en fait la derniere */ \ /* arrivee ('R') qui provoque l'ecriture globale... */ # define ECRITURE_IMMEDIATE \ UN \ /* Une composante 'R', 'V', 'B' ou 'Z' arrivant est ecrite immediatement */ \ /* sans attendre ses compagnes ; c'est le mode a utiliser pour ecrire */ \ /* des plans de composantes (via le bus "superviseur")... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D ' E C R I T U R E E N M O D E " R A S T E R " ( P A R A M E T R E ' J H ' ) : */ /* */ /*************************************************************************************************************************************/ # define ECRITURE_FORCEE \ DEUX \ /* Ecriture systematique, quelle que soit la coordonnee 'Z'. */ # define COMPARAISON_EN_Z \ QUATRE \ /* Ecriture avec comparaison des coordonnees 'Z' courante et anterieure. Dans ce mode */ \ /* "direct" un point n'est pas ecrit si son 'Z' est superieur a celui donne par le */ \ /* 'Z-buffer'... */ # define COMPARAISON_EN_Z_INVERSE \ SIX \ /* Ecriture avec comparaison inverse des coordonnees 'Z' courante et anterieure. Dans ce */ \ /* mode "inverse" un point n'est pas ecrit si son 'Z' est inferieur a celui donne par le */ \ /* 'Z-buffer'... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S D E L ' A N T I - A L I A S I N G : */ /* */ /*************************************************************************************************************************************/ # define PAS_D_ANTI_ALIASING \ ZERO \ /* Pas d'anti-aliasing... */ # define ANTI_ALIASING_IMAGE \ DEUX \ /* Generation de contours anti-aliases... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S D E L A C A R T E ' G E C ' : */ /* */ /*************************************************************************************************************************************/ # define MODE_IMAGE \ UN,ZERO \ /* Le mode normal trace toutes les lignes horizontales (le 'ZERO' est la */ \ /* afin de remplacer l'argument 'TRAME_PAIRE'/'TRAME_IMPAIRE' alors inutile). */ # define MODE_TRAME \ ZERO \ /* Ce mode permet de ne tracer qu'une ligne horizontale sur deux, suivant */ \ /* le parametre 'TRAME_PAIRE'/'TRAME_IMPAIRE'. */ # define TRAME_PAIRE \ ZERO \ /* Pour ne tracer que les ligne horizontales paires (voir 'MODE_TRAME'). */ # define TRAME_IMPAIRE \ UN \ /* Pour ne tracer que les ligne horizontales impaires (voir 'MODE_TRAME'). */ # define FACETTES_REMPLIES \ ZERO \ /* Afin d'interpoler a l'interieur des facettes. */ # define FACETTES_FIL_DE_FER \ UN \ /* Afin de ne tracer que le contour des facettes (mode "fil de fer"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* S E L E C T E U R D E S S O U R C E S D ' I N I T I A L A T I O N D E */ /* L A M E M O I R E ( P A R A M E T R E S ' V E X T ' E T ' Z E X T ' ) : */ /* */ /*************************************************************************************************************************************/ # define RVB_INITIALISATION_FOND \ ZERO \ /* Initialisation des composantes {R,V,B} a partir du registre 'fond', */ # define Z_INITIALISATION_FOND \ Zinfini7 \ /* Initialisation de la composante 'Z' a partir du registre 'fond' ; on prend ainsi une */ \ /* valeur telle qu'avec le mode 'COMPARAISON_EN_Z', tous les "premiers" points soient */ \ /* ecrits, quelle que soit leur coordonnee 'Z'... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O M S D E S C O M P O S A N T E S E L E M E N T A I R E S : */ /* */ /*************************************************************************************************************************************/ Denumer05(INIS(_composante_Z,ZERO) /* Composante de la troisieme coordonnee 'Z'. */ ,_composante_BLEUE /* Composante BLEUE, */ ,_composante_VERTE /* Composante VERTE, */ ,_composante_ROUGE /* Composante ROUGE. */ ,DERNIERE_composante ,composante_CUBI7 ); # define composante_ROUGE \ ENUM(_composante_ROUGE) # define composante_VERTE \ ENUM(_composante_VERTE) # define composante_BLEUE \ ENUM(_composante_BLEUE) # define composante_Z \ ENUM(_composante_Z) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O M S D E S C O U L E U R S E L E M E N T A I R E S P O U R L E S P E R M U T A T I O N S : */ /* */ /*************************************************************************************************************************************/ # define couleur_ROUGE \ composante_BLEUE # define couleur_VERTE \ composante_VERTE # define couleur_BLEUE \ composante_ROUGE /* Et oui, attention au croisement entre le ROUGE et le BLEUE... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D E S C O M P O S A N T E S E L E M E N T A I R E S : */ /* */ /*************************************************************************************************************************************/ TypedefS(genere_RVB,genere_CHAR) TypedefS(genere_ROUGE,genere_RVB) /* Pour le niveau de ROUGE et son DUMMY associe, */ TypedefS(genere_VERTE,genere_RVB) /* Pour le niveau de VERT et son DUMMY associe, */ TypedefS(genere_BLEUE,genere_RVB) /* Pour le niveau de BLEU et son DUMMY associe. */ TypedefS(genere_Z,ShortInt) /* Pour la troisieme coordonnee 'Z'. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S N I V E A U X D E B A S E : */ /* */ /*************************************************************************************************************************************/ # define NOIR7 NOIR \ /* Niveau de noir sur chaque composante, */ # define BLANC7 BLANC \ /* Niveau de blanc sur chaque composante. */ # define Zinfini7 ETLO(INFINI,MHWD) \ /* Valeur initiale de la troisieme coordonnee de chaque pixel. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D ' U N P O I N T P O U R L ' E N V O I : */ /* */ /*************************************************************************************************************************************/ Dstruct02(format_niveau_cubi7 ,DEFV(genere_RVB,dummy) /* Pour occuper la memoire du CUBI7... */ ,DEFV(genere_RVB,niveau) /* Niveau d'une composante. */ ,NOM_VIDE ); /* Definition de la structure d'un niveau a envoyer au CUBI7. */ TypedefP(niveau7,STRU(format_niveau_cubi7)) Dstruct04(format_pixel_cubi7 ,DEFV(genere_Z,zed) /* Coordonnee 'Z' destinee a etre exploitee par le 'Z-Buffer' interne. */ ,DEFV(niveau7,bleue) /* Composante bleue. */ ,DEFV(niveau7,verte) /* Composante verte. */ ,DEFV(niveau7,rouge) /* Composante rouge. */ ,NOM_VIDE ); /* Definition de la structure d'un pixel a envoyer au CUBI7. */ TypedefP(pixel7,STRU(format_pixel_cubi7)) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D ' U N S O M M E T F L O T T A N T P O U R L ' E N V O I : */ /* */ /*************************************************************************************************************************************/ Dstruct06(format_sommet_flottant ,DEFV(Float_cubi7,x) /* Coordonnee 'X', */ ,DEFV(Float_cubi7,y) /* Coordonnee 'Y', */ ,DEFV(Float_cubi7,z) /* Coordonnee 'Z'. */ ,DEFV(Float_cubi7,cR) /* Composante 'ROUGE', */ ,DEFV(Float_cubi7,cV) /* Composante 'VERTE', */ ,DEFV(Float_cubi7,cB) /* Composante 'BLEUE', */ ,NOM_VIDE ); /* Definition de la structure d'un sommet en flottant a envoyer au CUBI7. */ TypedefP(Fsommet7,STRU(format_sommet_flottant)) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R E M I E R S O M M E T D ' U N E F A C E T T E Q U E L C O N Q U E : */ /* */ /*************************************************************************************************************************************/ # define PREMIER_SOMMET \ INDEX0 \ /* Premier sommet d'une facette quelconque... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D ' U N E F A C E T T E T R I A N G U L A I R E F L O T T A N T E P O U R L ' E N V O I : */ /* */ /*************************************************************************************************************************************/ Denumer04(INIS(_sommet3_1,PREMIER_SOMMET) /* Premier sommet, */ ,_sommet3_2 /* Deuxieme sommet, */ ,_sommet3_3 /* Troisieme sommet. */ ,DERNIER_sommet3 ,format_facette_flottante_triangulaire ); /* Definition de la structure d'une facette triangulaire en flottant a envoyer */ /* au CUBI7 ; ainsi, une facette est un vecteur de structures de type "sommet", */ /* le nombre de sommets etant lie au type de facette (ici "triangulaire"). */ # define sommet3_1 ENUM(_sommet3_1) # define sommet3_2 ENUM(_sommet3_2) # define sommet3_3 ENUM(_sommet3_3) # define NOMBRE_DE_SOMMETS_D_UNE_FACETTE_TRIANGULAIRE \ LENG(sommet3_1,sommet3_3) \ /* Nombre de sommets d'une facette triangulaire. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F O R M A T D ' U N E F A C E T T E C A R R E E F L O T T A N T E P O U R L ' E N V O I : */ /* */ /*************************************************************************************************************************************/ Denumer05(INIS(_sommet4_1,PREMIER_SOMMET) /* Premier sommet, */ ,_sommet4_2 /* Deuxieme sommet, */ ,_sommet4_3 /* Troisieme sommet, */ ,_sommet4_4 /* Quatrieme sommet. */ ,DERNIER_sommet4 ,format_facette_flottante_carree ); /* Definition de la structure d'une facette carree en flottant a envoyer */ /* au CUBI7 ; ainsi, une facette est un vecteur de structures de type "sommet", */ /* le nombre de sommets etant lie au type de facette (ici "carree"). */ # define sommet4_1 ENUM(_sommet4_1) # define sommet4_2 ENUM(_sommet4_2) # define sommet4_3 ENUM(_sommet4_3) # define sommet4_4 ENUM(_sommet4_4) # define NOMBRE_DE_SOMMETS_D_UNE_FACETTE_CARREE \ LENG(sommet4_1,sommet4_4) \ /* Nombre de sommets d'une facette carree. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D ' U N E C O M P O S A N T E : */ /* */ /*************************************************************************************************************************************/ TypedefD2(composante7,dimY,dimX,niveau7) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D ' U N E F E N E T R E : */ /* */ /*************************************************************************************************************************************/ TypedefD2(fenetre7,dimY,dimX,pixel7) /* Definition d'une fenetre dans laquelle on viendra placer une image */ /* en vraies couleurs ; on notera que "fenetre" est defini avec les */ /* memes bornes et limites que "image" ; une fenetre contiendra */ /* donc une image standard. */ #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_CUBI7 #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_CUBI7