/*************************************************************************************************************************************/
/* */
/* A N I M A T I O N G R A P H I Q U E D ' U N E I M A G E : */
/* */
/* */
/* Definition : */
/* */
/* Cette commande affiche une animation */
/* contenue matriciuellement dans une */
/* image Argument. */
/* */
/* */
/* Author of '$xci/animation$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1988??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N T E R F A C E ' listG ' : */
/* */
/* */
/* :Debut_listG: */
/* :Fin_listG: */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F I C H I E R S D ' I N C L U D E S : */
/* */
/*************************************************************************************************************************************/
#include INCLUDES_BASE
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
# include image_drive_dpx5c_FONCTION_EXT
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
# include image_image_QUAD_IMAGE_EXT
/* ATTENTION, avant le 20021230110723, les includes 'image_image_TRI_IMAGE_EXT' et */
/* 'image_image_QUAD_IMAGE_EXT' n'etaient faits que pour */
/* '__VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL'. */
/* Mais avec les modifications faites dans 'v $xiidX/fonct$vv$FON 20021230102551' il a */
/* fallu les rendre systematiques... */
# include image_drive_XWind_FONCTION_EXT
# ifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL
# include image_drive_SiliG_FONCTION_1_EXT
# Aifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL
# Eifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#include xci/display.01.I"
#define TENTER_UN_REDIMENSIONNEMENT \
FAUX \
/* Indique s'il faut ('VRAI') ou pas ('FAUX') tenter le redimensionnement... */
#define TEMPORISATION_INTER_TRAMES \
ZERO \
/* Temporisation inter_trames ; une valeur nulle fait qu'il n'y a pas d'attente... */
#define TEMPORISATION_INTER_ANIMATIONS \
ZERO \
/* Temporisation inter_animations ; une valeur nulle fait qu'il n'y a pas d'attente... */
#define NOMBRE_DE_REPETITIONS \
SEIZE \
/* Nombre implicite de repetitions de l'animation... */
#define NOMBRE_DE_TRAMES \
EXP2(HUIT) \
/* Nombre implicite de trames (ou "sous-images") contenues dans l'animation... */
#define CENTRAGE_DE_L_ANIMATION \
VRAI \
/* Faut-il centrer l'animation dans la fenetre... */
#define METTRE_UN_FOND \
FAUX \
/* Faut-il mettre un fond derriere l'animation ? */
#define METTRE_L_IMAGE_COMME_FOND \
FAUX \
/* Faut-il mettre l'animation comme fond d'elle-meme (auquel cas, on ne centre pas...) ? */
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
# define RECUPERER_UNE_IMAGE_EN_VRAIES_COULEURS \
VRAI \
/* Faut-il recuperer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois */ \
/* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). La */ \
/* valeur par defaut est choisie pour assurer la compatibilite anterieure. Ceci etant */ \
/* lie evidemment a 'EST_FAUX(IXopen_____mettre_X_Window_en_mode_fausses_couleurs)' et */ \
/* a ete introduit le 20021231172052. */
# define CHANGER_LA_DIMENSION_DE_LA_FENETRE \
FAUX
# define X_DIMENSION_DE_LA_FENETRE \
FU
# define Y_DIMENSION_DE_LA_FENETRE \
FU
/* Faut-il redimensionner la fenetre de facon, par exemple, a ce qu'elle soit plus grande */
/* que l'image ('VRAI)' ou pas ('FAUX'). Ceci a ete introduit le 20030401175939. */
# define FACTEUR_DE_RALENTISSEMENT \
TRENTE_DEUX \
/* Nombre de fois que chaque trame est repetee pour simuler un ralentissement... */
# define TRANSLATION_HORIZONTALE_INTER_TRAMES \
ZERO
# define TRANSLATION_VERTICALE_INTER_TRAMES \
ZERO
/* Translation horizontale ('dx') et verticale ('dy') separant deux trames consecutives */
/* de l'animation. Lorsque celles-ci ne sont pas nulles, cela permet de visualiser l'axe */
/* du temps comme une troisieme dimension spatiale. On notera un petit defaut contre lequel */
/* je ne peux rien : en general 'nombre_de_trames' est un nombre pair (4,16,64), ce qui */
/* fait qu'il n'y a pas de trame "du milieu", et qu'ainsi donc l'ensemble des trames n'est */
/* pas parfaitement centree par rapport au centre de la fenetre... Enfin, cette possibilite */
/* n'est offerte que si 'centrage_de_l_animation' est demandee... */
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/display.02.I"
#include xci/signature.11.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* A N I M A T I O N G R A P H I Q U E D ' U N E I M A G E : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
/* Nom de l'image a displayer. */
DEFV(CHAR,INIC(POINTERc(nom_imageF),NOM_PIPE));
/* Nom du fond a utiliser derriere l'animation. */
DEFV(CHAR,INIC(POINTERc(nom_paletteA),NOM_PIPE));
/* Nom de la palette a utiliser. */
DEFV(Logical,INIT(tenter_un_redimensionnement,TENTER_UN_REDIMENSIONNEMENT));
/* Indique s'il faut ('VRAI') ou pas ('FAUX') tenter le redimensionnement... */
DEFV(Logical,INIT(mettre_un_fond,METTRE_UN_FOND));
/* Indique s'il faut mettre ('VRAI') ou pas ('FAUX') un fond derriere l'animation. */
DEFV(Logical,INIT(mettre_l_image_comme_fond,METTRE_L_IMAGE_COMME_FOND));
/* Faut-il mettre l'animation comme fond d'elle-meme (auquel cas, on ne centre pas...) ? */
DEFV(Positive,INIT(temporisation_inter_trames,TEMPORISATION_INTER_TRAMES));
/* Temporisation inter_trames ; une valeur nulle fait qu'il n'y a pas d'attente... */
DEFV(Positive,INIT(temporisation_inter_animations,TEMPORISATION_INTER_ANIMATIONS));
/* Temporisation inter_animations ; une valeur nulle fait qu'il n'y a pas d'attente... */
DEFV(Positive,INIT(nombre_de_repetitions,NOMBRE_DE_REPETITIONS));
/* Nombre implicite de repetitions de l'animation... */
DEFV(Positive,INIT(nombre_de_trames,NOMBRE_DE_TRAMES));
/* Nombre implicite de trames (ou "sous-images") contenues dans l'animation... */
DEFV(Logical,INIT(centrage_de_l_animation,CENTRAGE_DE_L_ANIMATION));
/* Indicateur de centrage ('VRAI') ou de mise dans le coin haut-gauche de l'animation */
/* dans la fenetre. */
DEFV(deltaF_2D,dimension_de_la_fenetre);
/* Dimension de la fenetre de visualisation. */
#include xci/display.03.I"
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
DEFV(pointF_2D,coin_haut_gauche);
/* Position du coin haut gauche de la fenetre. */
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
DEFV(CHAR,INIC(POINTERc(nom_imageAR),NOM_PIPE));
/* Nom de l'image ROUGE a utiliser, */
DEFV(CHAR,INIC(POINTERc(nom_imageAV),NOM_PIPE));
/* Nom de l'image VERTE a utiliser, */
DEFV(CHAR,INIC(POINTERc(nom_imageAB),NOM_PIPE));
/* Nom de l'image BLEUE a utiliser. */
DEFV(Logical,INIT(recuperer_une_image_en_vraies_couleurs,RECUPERER_UNE_IMAGE_EN_VRAIES_COULEURS));
/* Faut-il recuperer une image en vraies couleurs ('VRAI)' c'est-a-dire dont les trois */
/* composantes ont la meme racine, ou bien trois images "independantes" ('FAUX'). La */
/* valeur par defaut est choisie pour assurer la compatibilite anterieure. Ceci etant */
/* lie evidemment a 'EST_FAUX(IXopen_____mettre_X_Window_en_mode_fausses_couleurs)' et */
/* a ete introduit le 20021231172052. */
DEFV(Logical,INIT(changer_la_dimension_de_la_fenetre,CHANGER_LA_DIMENSION_DE_LA_FENETRE));
DEFV(Float,INIT(X_dimension_de_la_fenetre,X_DIMENSION_DE_LA_FENETRE));
DEFV(Float,INIT(Y_dimension_de_la_fenetre,Y_DIMENSION_DE_LA_FENETRE));
/* Faut-il redimensionner la fenetre de facon, par exemple, a ce qu'elle soit plus grande */
/* que l'image ('VRAI)' ou pas ('FAUX'). Ceci a ete introduit le 20030401175939. */
DEFV(Positive,INIT(facteur_de_ralentissement,FACTEUR_DE_RALENTISSEMENT));
/* Nombre de fois que chaque trame est repetee pour simuler un ralentissement... */
DEFV(deltaF_2D,translation_spatiale_entre_deux_trames);
/* Translation horizontale ('dx') et verticale ('dy') separant deux trames consecutives */
/* de l'animation. Lorsque celles-ci ne sont pas nulles, cela permet de visualiser l'axe */
/* du temps comme une troisieme dimension spatiale. On notera un petit defaut contre lequel */
/* je ne peux rien : en general 'nombre_de_trames' est un nombre pair (4,16,64), ce qui */
/* fait qu'il n'y a pas de trame "du milieu", et qu'ainsi donc l'ensemble des trames n'est */
/* pas parfaitement centree par rapport au centre de la fenetre... Enfin, cette possibilite */
/* n'est offerte que si 'centrage_de_l_animation' est demandee... */
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
/*..............................................................................................................................*/
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
INITIALISATION_POINT_2D(coin_haut_gauche,_____cNORMALISE_OX5(X_COIN_HAUT_GAUCHE),_____cNORMALISE_OY5(Y_COIN_HAUT_GAUCHE));
/* Definition de la position implicite de la fenetre. */
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
SUPPRIME_LE_20090604084535(GET_ARGUMENT_L("redimensionner=",tenter_un_redimensionnement););
/* Au sujet de la suppression du 20090604084535, 'v $xiii/files$FON 20090604090257'... */
GET_ARGUMENT_C("imageF=""F=",nom_imageF);
GET_ARGUMENT_L("fond=",mettre_un_fond);
GET_ARGUMENT_L("auto=",mettre_l_image_comme_fond);
GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA);
GET_ARGUMENT_I("repetitions=""repetition=""r=",nombre_de_repetitions);
GET_ARGUMENT_I("Duree=""D=",temporisation_inter_trames);
GET_ARGUMENT_I("duree=""d=",temporisation_inter_animations);
GET_ARGUMENT_I("trames=""t=",nombre_de_trames);
GET_ARGUMENT_L("centrage=",centrage_de_l_animation);
GET_ARGUMENT_F("xc=""x=""X=",ASD1(coin_haut_gauche,x));
GET_ARGUMENT_F("yc=""y=""Y=",ASD1(coin_haut_gauche,y));
)
);
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image_avec_redimensionnement_eventuel(ImageA1,nom_imageA
,tenter_un_redimensionnement
,nombre_d_arguments,arguments
)
)
)
)
Bblock
CHARGEMENT_DE_LA_PALETTE_DE_COULEURS;
/* Chargement des trois listes de substitution constitutive d'une palette. */
INITIALISATION_ACCROISSEMENT_2D(dimension_de_la_fenetre,_____lNORMALISE_OX5(dimX5),_____lNORMALISE_OY5(dimY5));
/* Definition des dimensions de la fenetre. */
Test(IL_FAUT(mettre_l_image_comme_fond))
Bblock
/* Cas ou l'image sert elle-meme de fond, on ne centre plus l'animation afin que cette */
/* derniere soit diffusee dans l'image situee en bas et a gauche... */
EGAL(mettre_un_fond,VRAI);
EGAL(centrage_de_l_animation,FAUX);
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(mettre_un_fond))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA2,COND(IL_FAUT(mettre_l_image_comme_fond),nom_imageA,nom_imageF)))))
/* Un fond a ete demande, on le charge... */
Bblock
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
CALi(Inoir(ImageA2));
EGAL(mettre_un_fond,FAUX);
/* En cas d'erreur, on supprime le fond, ce qui correspond a un fond 'NOIR'. */
Eblock
ETes
Eblock
ATes
Bblock
CALi(Inoir(ImageA2));
/* Il n'y a pas de fond, ce qui correspond a un fond 'NOIR'. */
Eblock
ETes
CALS(IDopen(nom_imageA,ADRESSE(dimension_de_la_fenetre),ADRESSE(coin_haut_gauche)));
CALS(IDanimation(ImageA1
,nombre_de_trames
,temporisation_inter_trames
,temporisation_inter_animations
,nombre_de_repetitions
,centrage_de_l_animation
,mettre_un_fond,ImageA2
)
);
CALS(IDclose());
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
INITIALISATION_POINT_2D(coin_bas_gauche,_____cNORMALISE_OX11(X_COIN_BAS_GAUCHE),_____cNORMALISE_OY11(Y_COIN_BAS_GAUCHE));
/* Definition de la position implicite de la fenetre. */
INITIALISATION_ACCROISSEMENT_2D(translation_spatiale_entre_deux_trames
,_____lNORMALISE_OX(TRANSLATION_HORIZONTALE_INTER_TRAMES)
,_____lNORMALISE_OY(TRANSLATION_VERTICALE_INTER_TRAMES)
);
/* Definition de la translation spatiale entre deux trames si 'centrage_de_l_animation'... */
EGAL(X11_____signaler_les_evenements_inattendus,SIGNALER_LES_EVENEMENTS_INATTENDUS);
/* Initialisation du signalisateur d'evenement inattendu... */
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("serveur=",serveur_standard);
GET_ARGUMENT_L("ne_pas_verifier_le_serveur=""npvs="
,IXopen_____X_Window_accepter_le_serveur_sans_verification
);
GET_ARGUMENT_N("verifier_le_serveur=""vs="
,IXopen_____X_Window_accepter_le_serveur_sans_verification
);
/* Arguments introduits le 20100109113056 pour acceder au serveur 'Xming' (Windows Vista). */
GET_ARGUMENT_L("attention=",editer_les_PRINT_ATTENTION_initiaux);
GET_ARGUMENT_L("signaler=",X11_____signaler_les_evenements_inattendus);
GET_ARGUMENT_L("trop_grandes=""trop_grande="
,X11_____tenter_l_ouverture_des_fenetres_trop_grandes_par_rapport_a_l_ecran
);
GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("Rouge=""ROUGE=""AR=",nom_imageAR);
GET_ARGUMENT_C("Verte=""VERTE=""AV=",nom_imageAV);
GET_ARGUMENT_C("Bleue=""BLEUE=""AB=",nom_imageAB);
GET_ARGUMENT_L("RVB=",recuperer_une_image_en_vraies_couleurs);
SUPPRIME_LE_20090604084535(GET_ARGUMENT_L("redimensionner=",tenter_un_redimensionnement););
/* Au sujet de la suppression du 20090604084535, 'v $xiii/files$FON 20090604090257'... */
GET_ARGUMENT_L("fc=""fausses_couleurs=",IXopen_____mettre_X_Window_en_mode_fausses_couleurs);
GET_ARGUMENT_N("vraies_couleurs=""vc=",IXopen_____mettre_X_Window_en_mode_fausses_couleurs);
GET_ARGUMENT_C("imageF=""F=",nom_imageF);
GET_ARGUMENT_L("fond=",mettre_un_fond);
GET_ARGUMENT_L("auto=",mettre_l_image_comme_fond);
GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA);
GET_ARGUMENT_I("nombre=""couleurs=",nombre_de_couleurs_necessaires);
GET_ARGUMENT_I("repetitions=""repetition=""r=",nombre_de_repetitions);
GET_ARGUMENT_I("Duree=""D=",temporisation_inter_trames);
GET_ARGUMENT_I("ralentissement=""ralenti=",facteur_de_ralentissement);
GET_ARGUMENT_I("duree=""d=",temporisation_inter_animations);
GET_ARGUMENT_I("trames=""t=",nombre_de_trames);
GET_ARGUMENT_L("centrage=",centrage_de_l_animation);
GET_ARGUMENT_F("trx=",ASD1(translation_spatiale_entre_deux_trames,dx));
GET_ARGUMENT_F("try=",ASD1(translation_spatiale_entre_deux_trames,dy));
GET_ARGUMENT_L("Fdimension=""Fd=",changer_la_dimension_de_la_fenetre);
GET_ARGUMENT_F("FXdimension=""FX=",X_dimension_de_la_fenetre);
GET_ARGUMENT_F("FYdimension=""FY=",Y_dimension_de_la_fenetre);
GET_ARGUMENT_L("centrer=""Fcentrer=""Fc=",centrer_la_fenetre);
/* Parametre introduit le 20060427162434... */
GET_ARGUMENT_F("xc=""x=""X=",ASD1(coin_bas_gauche,x));
GET_ARGUMENT_F("yc=""y=""Y=",ASD1(coin_bas_gauche,y));
GET_ARGUMENT_C("substitution=""s=",nom_substitution);
)
);
Test(EST_VRAI(IXopen_____mettre_X_Window_en_mode_fausses_couleurs))
/* Possibilite introduite le 20021231100222. */
Bblock
RECHERCHE_D_UNE_LISTE_DE_SUBSTITUTION(nom_substitution,substitution_courante,substitution_courante);
/* Tentative de recherche de la substitution demandee... */
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image_avec_redimensionnement_eventuel(ImageA1,nom_imageA
,tenter_un_redimensionnement
,nombre_d_arguments,arguments
)
)
)
)
Bblock
CHARGEMENT_DE_LA_PALETTE_DE_COULEURS;
/* Chargement des trois listes de substitution constitutive d'une palette. */
Test(IFEQ(substitution_courante,L_SUBSTITUTION_VARIABLE))
Bblock
CALS(Icompactage_d_une_palette(nombre_de_couleurs_necessaires));
/* Pour la substitution 'VARIABLE', on procede a un compactage de la palette Argument. */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image_avec_redimensionnement_eventuel(Image_ROUGE
,NOM_D_UNE_COMPOSANTE(nom_imageAR,c_ROUGE)
,tenter_un_redimensionnement
,nombre_d_arguments,arguments
)
)
)
)
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image_avec_redimensionnement_eventuel(Image_VERTE
,NOM_D_UNE_COMPOSANTE(nom_imageAV,c_VERTE)
,tenter_un_redimensionnement
,nombre_d_arguments,arguments
)
)
)
)
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image_avec_redimensionnement_eventuel(Image_BLEUE
,NOM_D_UNE_COMPOSANTE(nom_imageAB,c_BLEUE)
,tenter_un_redimensionnement
,nombre_d_arguments,arguments
)
)
)
)
Bblock
CALS(Iluminance(ImageA1,Image_ROUGE,Image_VERTE,Image_BLEUE));
/* Au cas ou il serait ensuite impossible de visualiser en vraies couleurs (c'est le cas */
/* si le serveur -par exemple celui de '$LACT14'- ne connait pas 'TrueColor'...). Ainsi */
/* l'image visualisee en 'PseudoColor' sera representative de l'image 'TrueColor'... */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ETes
Test(PAS_D_ERREUR(CODE_ERREUR))
Bblock
Test(IL_FAUT(changer_la_dimension_de_la_fenetre))
/* Ce test a ete introduit le 20030401175939. */
Bblock
INITIALISATION_ACCROISSEMENT_2D(dimension_de_la_fenetre
,X_dimension_de_la_fenetre
,Y_dimension_de_la_fenetre
);
/* Definition des dimensions arbitraire pour la fenetre. */
Eblock
ATes
Bblock
INITIALISATION_ACCROISSEMENT_2D(dimension_de_la_fenetre
,_____lNORMALISE_OX11(dimX11)
,_____lNORMALISE_OY11(dimY11)
);
/* Definition des dimensions de la fenetre tel qu'une image y tienne juste... */
Eblock
ETes
Test(IL_FAUT(mettre_l_image_comme_fond))
Bblock
/* Cas ou l'image sert elle-meme de fond, on ne centre plus l'animation afin que cette */
/* derniere soit diffusee dans l'image situee en bas et a gauche... */
Test(EST_VRAI(IXopen_____mettre_X_Window_en_mode_fausses_couleurs))
Bblock
EGAL(mettre_un_fond,VRAI);
EGAL(centrage_de_l_animation,FAUX);
Eblock
ATes
Bblock
PRINT_ATTENTION("en mode VRAIES COULEURS, l'image ne peut etre utilisee comme fond qui est en FAUSSES COULEURS");
EGAL(mettre_un_fond,FAUX);
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(mettre_un_fond))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA2,COND(IL_FAUT(mettre_l_image_comme_fond),nom_imageA,nom_imageF)))))
/* Un fond a ete demande, on le charge... */
Bblock
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
CALi(Inoir(ImageA2));
EGAL(mettre_un_fond,FAUX);
/* En cas d'erreur, on supprime le fond, ce qui correspond a un fond 'NOIR'. */
Eblock
ETes
Eblock
ATes
Bblock
CALi(Inoir(ImageA2));
/* Il n'y a pas de fond, ce qui correspond a un fond 'NOIR'. */
Eblock
ETes
Test(IFNE(substitution_courante,L_SUBSTITUTION_NEUTRE))
Bblock
SUBSTITUTION(substitution_courante);
/* Positionnement de la substitution courante quelqu'elle soit (mais non 'NEUTRE'...). */
SET_FILTRAGE(ACTIF);
/* Et on active le filtrage... */
Eblock
ATes
Bblock
Eblock
ETes
CALS(IXinitialisation());
/* Initialisation fondamentale introduite le 20160815121949... */
CALS(IXopen(serveur_standard
,nom_imageA
,ADRESSE(dimension_de_la_fenetre)
,centrer_la_fenetre
,ADRESSE(coin_bas_gauche)
,editer_les_PRINT_ATTENTION_initiaux
)
);
CALS(IXanimation(ImageA1
,Image_ROUGE
,Image_VERTE
,Image_BLEUE
,nombre_de_trames
,temporisation_inter_trames
,facteur_de_ralentissement
,temporisation_inter_animations
,nombre_de_repetitions
,centrage_de_l_animation
,ADRESSE(translation_spatiale_entre_deux_trames)
,mettre_un_fond,ImageA2
)
);
/* Le triplet {Image_ROUGE,Image_VERTE,Image_BLEUE} a ete introduit le 20030101113051. */
CALS(IXclose());
Test(IFNE(substitution_courante,L_SUBSTITUTION_NEUTRE))
Bblock
SET_FILTRAGE(INACTIF);
SUBSTITUTION(L_SUBSTITUTION_NEUTRE);
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW
#ifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(VIDE;
)
);
/* Introduit le 20070301174416... */
PRINT_ATTENTION("les fonctions graphiques ne sont pas implementees");
#Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS
#Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS
RETU_Commande;
Eblock
ECommande
Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.