Changed all the remaining OEM characters in the source code into Windows-1252.
Except in aide.c, because the strings are printed with an OEM font. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@175 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
48fca5ceb3
commit
11a4a488a6
20
boutons.h
20
boutons.h
@ -16,7 +16,7 @@ void Bouton_Choix_backcolor(void);
|
|||||||
void Bouton_Brosse_monochrome(void);
|
void Bouton_Brosse_monochrome(void);
|
||||||
void Bouton_Menu_pinceaux(void);
|
void Bouton_Menu_pinceaux(void);
|
||||||
|
|
||||||
// Boutons relatifs au mode de dessin … main lev‚e
|
// Boutons relatifs au mode de dessin à main levée
|
||||||
void Bouton_Dessin(void);
|
void Bouton_Dessin(void);
|
||||||
void Bouton_Dessin_Switch_mode(void);
|
void Bouton_Dessin_Switch_mode(void);
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ void Bouton_desenclencher_Fill(void);
|
|||||||
void Bouton_Spray(void);
|
void Bouton_Spray(void);
|
||||||
void Bouton_Spray_Menu(void);
|
void Bouton_Spray_Menu(void);
|
||||||
|
|
||||||
// Courbes de B‚zier
|
// Courbes de Bézier
|
||||||
void Bouton_Courbes(void);
|
void Bouton_Courbes(void);
|
||||||
void Bouton_Courbes_Switch_mode(void);
|
void Bouton_Courbes_Switch_mode(void);
|
||||||
|
|
||||||
@ -41,10 +41,10 @@ void Bouton_Courbes_Switch_mode(void);
|
|||||||
void Bouton_Rectangle_vide(void);
|
void Bouton_Rectangle_vide(void);
|
||||||
void Bouton_Rectangle_plein(void);
|
void Bouton_Rectangle_plein(void);
|
||||||
|
|
||||||
// Boutons relatifs aux d‚grad‚s
|
// Boutons relatifs aux dégradés
|
||||||
void Bouton_Degrades(void);
|
void Bouton_Degrades(void);
|
||||||
void Degrade_Charger_infos_du_tableau(int Indice);
|
void Degrade_Charger_infos_du_tableau(int Indice);
|
||||||
// Boutons relatifs aux cercles (ellipses) d‚grad‚(e)s
|
// Boutons relatifs aux cercles (ellipses) dégradé(e)s
|
||||||
void Bouton_Cercle_degrade(void);
|
void Bouton_Cercle_degrade(void);
|
||||||
void Bouton_Ellipse_degrade(void);
|
void Bouton_Ellipse_degrade(void);
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ void Bouton_desenclencher_Brosse(void);
|
|||||||
void Bouton_Lasso(void);
|
void Bouton_Lasso(void);
|
||||||
void Bouton_desenclencher_Lasso(void);
|
void Bouton_desenclencher_Lasso(void);
|
||||||
|
|
||||||
// Bouton relatifs … la pipette
|
// Bouton relatifs à la pipette
|
||||||
void Bouton_Pipette(void);
|
void Bouton_Pipette(void);
|
||||||
void Bouton_desenclencher_Pipette(void);
|
void Bouton_desenclencher_Pipette(void);
|
||||||
void Bouton_Inverser_foreback(void);
|
void Bouton_Inverser_foreback(void);
|
||||||
@ -112,16 +112,16 @@ void Bouton_Loupe(void);
|
|||||||
void Bouton_Menu_Loupe(void);
|
void Bouton_Menu_Loupe(void);
|
||||||
void Bouton_desenclencher_Loupe(void);
|
void Bouton_desenclencher_Loupe(void);
|
||||||
|
|
||||||
// Les diff‚rents effets sur la brosse
|
// Les différents effets sur la brosse
|
||||||
void Bouton_Brush_FX(void);
|
void Bouton_Brush_FX(void);
|
||||||
|
|
||||||
// Boutons relatifs aux diff‚rentes pages
|
// Boutons relatifs aux différentes pages
|
||||||
void Bouton_Page(void);
|
void Bouton_Page(void);
|
||||||
void Bouton_Copy_page(void);
|
void Bouton_Copy_page(void);
|
||||||
void Copier_image_seule(void);
|
void Copier_image_seule(void);
|
||||||
void Bouton_Kill(void);
|
void Bouton_Kill(void);
|
||||||
|
|
||||||
// Boutons relatifs aux changements de r‚solution et de taille d'image
|
// Boutons relatifs aux changements de résolution et de taille d'image
|
||||||
void Bouton_Resol(void);
|
void Bouton_Resol(void);
|
||||||
void Bouton_Safety_resol(void);
|
void Bouton_Safety_resol(void);
|
||||||
|
|
||||||
@ -131,10 +131,10 @@ void Bouton_Reload(void);
|
|||||||
void Bouton_Save(void);
|
void Bouton_Save(void);
|
||||||
void Bouton_Autosave(void);
|
void Bouton_Autosave(void);
|
||||||
|
|
||||||
// R‚glage des paramŠtres de l'utilisateur
|
// Réglage des paramètres de l'utilisateur
|
||||||
void Bouton_Settings(void);
|
void Bouton_Settings(void);
|
||||||
|
|
||||||
// Annulation de la derniŠre modification
|
// Annulation de la dernière modification
|
||||||
void Bouton_Undo(void);
|
void Bouton_Undo(void);
|
||||||
void Bouton_Redo(void);
|
void Bouton_Redo(void);
|
||||||
|
|
||||||
|
|||||||
6
const.h
6
const.h
@ -79,7 +79,7 @@ enum FORMATS_RECONNUS
|
|||||||
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
|
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
|
||||||
FORMAT_IMG, // |_ tantes.
|
FORMAT_IMG, // |_ tantes.
|
||||||
FORMAT_SCx, // |
|
FORMAT_SCx, // |
|
||||||
FORMAT_PI1, // | Elles représentent l'indice o—
|
FORMAT_PI1, // | Elles représentent l'indice où
|
||||||
FORMAT_PC1, // | l'on doit aller piocher ces
|
FORMAT_PC1, // | l'on doit aller piocher ces
|
||||||
FORMAT_CEL, // | données.
|
FORMAT_CEL, // | données.
|
||||||
FORMAT_KCF, // |
|
FORMAT_KCF, // |
|
||||||
@ -192,7 +192,7 @@ enum MODES_VIDEO
|
|||||||
enum FAMILLES_DE_BOUTONS
|
enum FAMILLES_DE_BOUTONS
|
||||||
{
|
{
|
||||||
FAMILLE_OUTIL=1, // Outils de dessin
|
FAMILLE_OUTIL=1, // Outils de dessin
|
||||||
FAMILLE_INTERRUPTION, // Opération éphémŠre
|
FAMILLE_INTERRUPTION, // Opération éphémère
|
||||||
FAMILLE_INSTANTANE, // Pif paf
|
FAMILLE_INSTANTANE, // Pif paf
|
||||||
FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils
|
FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils
|
||||||
FAMILLE_EFFETS // Effets
|
FAMILLE_EFFETS // Effets
|
||||||
@ -241,7 +241,7 @@ enum FORMES_DE_PINCEAUX
|
|||||||
FORME_PINCEAU_LOSANGE,
|
FORME_PINCEAU_LOSANGE,
|
||||||
FORME_PINCEAU_ROND_TRAME,
|
FORME_PINCEAU_ROND_TRAME,
|
||||||
FORME_PINCEAU_CARRE_TRAME,
|
FORME_PINCEAU_CARRE_TRAME,
|
||||||
FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme ‡a il indique le nombre de types de pinceaux (-1)
|
FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme ça il indique le nombre de types de pinceaux (-1)
|
||||||
FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations
|
FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations
|
||||||
FORME_PINCEAU_BROSSE_COULEUR,
|
FORME_PINCEAU_BROSSE_COULEUR,
|
||||||
FORME_PINCEAU_BROSSE_MONOCHROME
|
FORME_PINCEAU_BROSSE_MONOCHROME
|
||||||
|
|||||||
2
divers.c
2
divers.c
@ -349,7 +349,7 @@ byte Lit_pixel_dans_brosse (word X,word Y)
|
|||||||
void Clavier_de_depart(void)
|
void Clavier_de_depart(void)
|
||||||
{
|
{
|
||||||
//SDL_EnableUNICODE(SDL_ENABLE);
|
//SDL_EnableUNICODE(SDL_ENABLE);
|
||||||
//SDL_EnableKeyRepeat(250, 32); // TODO … placer … un meilleur endroit
|
//SDL_EnableKeyRepeat(250, 32); // TODO à placer à un meilleur endroit
|
||||||
}
|
}
|
||||||
|
|
||||||
void Clavier_americain(void)
|
void Clavier_americain(void)
|
||||||
|
|||||||
10
files.c
10
files.c
@ -73,7 +73,7 @@ int Repertoire_existe(char * Repertoire)
|
|||||||
|
|
||||||
|
|
||||||
int Fichier_existe(char * Fichier)
|
int Fichier_existe(char * Fichier)
|
||||||
// Détermine si un fichier passé en paramŠtre existe ou non dans le
|
// Détermine si un fichier passé en paramètre existe ou non dans le
|
||||||
// répertoire courant.
|
// répertoire courant.
|
||||||
{
|
{
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
@ -95,7 +95,7 @@ int Fichier_existe(char * Fichier)
|
|||||||
// qu'un findfirst dans le répertoire courant à faire:
|
// qu'un findfirst dans le répertoire courant à faire:
|
||||||
|
|
||||||
|
|
||||||
// -- Déstruction de la liste chaŒnée ---------------------------------------
|
// -- Déstruction de la liste chaînée ---------------------------------------
|
||||||
void Detruire_liste_du_fileselect(void)
|
void Detruire_liste_du_fileselect(void)
|
||||||
// Cette procédure détruit la chaine des fichiers. Elle doit être appelée
|
// Cette procédure détruit la chaine des fichiers. Elle doit être appelée
|
||||||
// avant de rappeler la fonction Lire_liste_des_fichiers, ainsi qu'en fin de
|
// avant de rappeler la fonction Lire_liste_des_fichiers, ainsi qu'en fin de
|
||||||
@ -305,7 +305,7 @@ void Trier_la_liste_des_fichiers(void)
|
|||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
// Par défaut, on considŠre que la liste est triée
|
// Par défaut, on considère que la liste est triée
|
||||||
La_liste_est_triee=1;
|
La_liste_est_triee=1;
|
||||||
|
|
||||||
Element_courant=Liste_du_fileselect;
|
Element_courant=Liste_du_fileselect;
|
||||||
@ -340,13 +340,13 @@ void Trier_la_liste_des_fichiers(void)
|
|||||||
Element_precedent =Element_courant->Precedent;
|
Element_precedent =Element_courant->Precedent;
|
||||||
Element_suivant_le_suivant=Element_suivant->Suivant;
|
Element_suivant_le_suivant=Element_suivant->Suivant;
|
||||||
|
|
||||||
// On permute le chaŒnage des deux éléments entree eux
|
// On permute le chaînage des deux éléments entree eux
|
||||||
Element_courant->Suivant =Element_suivant_le_suivant;
|
Element_courant->Suivant =Element_suivant_le_suivant;
|
||||||
Element_courant->Precedent=Element_suivant;
|
Element_courant->Precedent=Element_suivant;
|
||||||
Element_suivant->Suivant =Element_courant;
|
Element_suivant->Suivant =Element_courant;
|
||||||
Element_suivant->Precedent=Element_precedent;
|
Element_suivant->Precedent=Element_precedent;
|
||||||
|
|
||||||
// On tente un chaŒnage des éléments encapsulant les compŠres:
|
// On tente un chaînage des éléments encapsulant les compères:
|
||||||
if (Element_precedent!=NULL)
|
if (Element_precedent!=NULL)
|
||||||
Element_precedent->Suivant=Element_suivant;
|
Element_precedent->Suivant=Element_suivant;
|
||||||
if (Element_suivant_le_suivant!=NULL)
|
if (Element_suivant_le_suivant!=NULL)
|
||||||
|
|||||||
118
global.h
118
global.h
@ -82,7 +82,7 @@ GLOBAL struct S_Mode_video Mode_video[NB_MODES_VIDEO];
|
|||||||
GLOBAL struct
|
GLOBAL struct
|
||||||
{
|
{
|
||||||
byte Granularite; // Facteur de gestion de la granularité
|
byte Granularite; // Facteur de gestion de la granularité
|
||||||
byte Code_fenetres; // Utilisation des fenˆtres: 0=AA 1=BB 2=AB 3=BA
|
byte Code_fenetres; // Utilisation des fenêtres: 0=AA 1=BB 2=AB 3=BA
|
||||||
byte * WinFuncPtr;
|
byte * WinFuncPtr;
|
||||||
byte * Adresse_physique_LFB; // Si = 0 => Pas de LFB
|
byte * Adresse_physique_LFB; // Si = 0 => Pas de LFB
|
||||||
dword Taille_LFB; // Taille de la mémoire LFB
|
dword Taille_LFB; // Taille de la mémoire LFB
|
||||||
@ -124,7 +124,7 @@ GLOBAL byte Autoriser_changement_de_couleur_pendant_operation;
|
|||||||
// Données sur le curseur
|
// Données sur le curseur
|
||||||
|
|
||||||
GLOBAL byte Forme_curseur;
|
GLOBAL byte Forme_curseur;
|
||||||
GLOBAL byte Forme_curseur_avant_fenetre; // Forme du curseur avant l'ouverture d'une fenˆtre
|
GLOBAL byte Forme_curseur_avant_fenetre; // Forme du curseur avant l'ouverture d'une fenêtre
|
||||||
GLOBAL byte Forcer_affichage_curseur; // Forcer l'affichage du curseur au prochain Get_input();
|
GLOBAL byte Forcer_affichage_curseur; // Forcer l'affichage du curseur au prochain Get_input();
|
||||||
GLOBAL byte Cacher_curseur;
|
GLOBAL byte Cacher_curseur;
|
||||||
GLOBAL byte Curseur_dans_menu; // Booléen "Le curseur se trouve dans le menu"
|
GLOBAL byte Curseur_dans_menu; // Booléen "Le curseur se trouve dans le menu"
|
||||||
@ -157,25 +157,25 @@ GLOBAL short Pinceau_Decalage_Y;
|
|||||||
|
|
||||||
// Commandes graphiques
|
// Commandes graphiques
|
||||||
|
|
||||||
GLOBAL fonction_afficheur Pixel; // Affiche un point … l'‚cran
|
GLOBAL fonction_afficheur Pixel; // Affiche un point à l'écran
|
||||||
GLOBAL fonction_afficheur Pixel_dans_menu;// Affiche un point dans le menu (ou pas si le menu est invisible)
|
GLOBAL fonction_afficheur Pixel_dans_menu;// Affiche un point dans le menu (ou pas si le menu est invisible)
|
||||||
GLOBAL fonction_lecteur Lit_pixel; // Teste la couleur d'un pixel dans l'écran
|
GLOBAL fonction_lecteur Lit_pixel; // Teste la couleur d'un pixel dans l'écran
|
||||||
GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'‚cran (en faisant attention de ne pas effacer le menu)
|
GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
|
||||||
GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'‚cran (en faisant attention de ne pas effacer le menu)
|
GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
|
||||||
GLOBAL fonction_block Block; // Affiche rapidement un bloc … l'‚cran
|
GLOBAL fonction_block Block; // Affiche rapidement un bloc à l'écran
|
||||||
GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc … l'‚cran sans rafraichir
|
GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc à l'écran sans rafraichir
|
||||||
GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image … l'écran en mode normal (pas en mode loupe)
|
GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image à l'écran en mode normal (pas en mode loupe)
|
||||||
GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image … l'écran en mode loupe
|
GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image à l'écran en mode loupe
|
||||||
GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image … l'écran en fonction de l'état du mode loupe
|
GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image à l'écran en fonction de l'état du mode loupe
|
||||||
GLOBAL fonction_Ligne_XOR Ligne_horizontale_XOR;// Affiche une ligne horizontale en XOR (pour placer la loupe)
|
GLOBAL fonction_Ligne_XOR Ligne_horizontale_XOR;// Affiche une ligne horizontale en XOR (pour placer la loupe)
|
||||||
GLOBAL fonction_Ligne_XOR Ligne_verticale_XOR; // Affiche une ligne verticale en XOR (pour placer la loupe)
|
GLOBAL fonction_Ligne_XOR Ligne_verticale_XOR; // Affiche une ligne verticale en XOR (pour placer la loupe)
|
||||||
GLOBAL fonction_display_brush_Color Display_brush_Color; // Affiche une partie de la brosse en couleur
|
GLOBAL fonction_display_brush_Color Display_brush_Color; // Affiche une partie de la brosse en couleur
|
||||||
GLOBAL fonction_display_brush_Mono Display_brush_Mono; // Affiche une partie de la brosse en monochrome
|
GLOBAL fonction_display_brush_Mono Display_brush_Mono; // Affiche une partie de la brosse en monochrome
|
||||||
GLOBAL fonction_display_brush_Color Clear_brush; // Efface la partie de la brosse affichée … l'écran
|
GLOBAL fonction_display_brush_Color Clear_brush; // Efface la partie de la brosse affichée à l'écran
|
||||||
GLOBAL fonction_remap Remap_screen; // Remappe une partie de l'écran avec les nouvelles couleurs du menu
|
GLOBAL fonction_remap Remap_screen; // Remappe une partie de l'écran avec les nouvelles couleurs du menu
|
||||||
GLOBAL fonction_procsline Afficher_ligne; // Afficher une ligne
|
GLOBAL fonction_procsline Afficher_ligne; // Afficher une ligne
|
||||||
GLOBAL fonction_procsline Lire_ligne; // Afficher ou lire une ligne
|
GLOBAL fonction_procsline Lire_ligne; // Afficher ou lire une ligne
|
||||||
GLOBAL fonction_display_zoom Display_zoomed_screen; // Affiche rapidement toute la partie zoomée … l'écran (en faisant attention de ne pas effacer le menu)
|
GLOBAL fonction_display_zoom Display_zoomed_screen; // Affiche rapidement toute la partie zoomée à l'écran (en faisant attention de ne pas effacer le menu)
|
||||||
GLOBAL fonction_display_brush_Color_zoom Display_brush_Color_zoom;
|
GLOBAL fonction_display_brush_Color_zoom Display_brush_Color_zoom;
|
||||||
GLOBAL fonction_display_brush_Mono_zoom Display_brush_Mono_zoom;
|
GLOBAL fonction_display_brush_Mono_zoom Display_brush_Mono_zoom;
|
||||||
GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom;
|
GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom;
|
||||||
@ -184,7 +184,7 @@ GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom;
|
|||||||
|
|
||||||
GLOBAL int Resolution_actuelle; // Résolution graphique courante
|
GLOBAL int Resolution_actuelle; // Résolution graphique courante
|
||||||
GLOBAL short Ecran_original_X; // |_ Dimensions de l'écran d'origine de
|
GLOBAL short Ecran_original_X; // |_ Dimensions de l'écran d'origine de
|
||||||
GLOBAL short Ecran_original_Y; // | l'image qui vient d'ˆtre chargée.
|
GLOBAL short Ecran_original_Y; // | l'image qui vient d'être chargée.
|
||||||
GLOBAL short Largeur_ecran; // Largeur de l'écran
|
GLOBAL short Largeur_ecran; // Largeur de l'écran
|
||||||
GLOBAL short Hauteur_ecran; // Hauteur de l'écran
|
GLOBAL short Hauteur_ecran; // Hauteur de l'écran
|
||||||
GLOBAL short Limite_Haut; // |
|
GLOBAL short Limite_Haut; // |
|
||||||
@ -192,13 +192,13 @@ GLOBAL short Limite_Bas; // |_ Limites dans lesquelles
|
|||||||
GLOBAL short Limite_Gauche; // | on peut écrire
|
GLOBAL short Limite_Gauche; // | on peut écrire
|
||||||
GLOBAL short Limite_Droite; // |
|
GLOBAL short Limite_Droite; // |
|
||||||
GLOBAL short Limite_visible_Bas; // |_ Derniers points visibles
|
GLOBAL short Limite_visible_Bas; // |_ Derniers points visibles
|
||||||
GLOBAL short Limite_visible_Droite; // | "… l'image"
|
GLOBAL short Limite_visible_Droite; // | "à l'image"
|
||||||
|
|
||||||
GLOBAL short Limite_Haut_Zoom; // |
|
GLOBAL short Limite_Haut_Zoom; // |
|
||||||
GLOBAL short Limite_Bas_Zoom; // |_ Limites dans lesquelles on peut
|
GLOBAL short Limite_Bas_Zoom; // |_ Limites dans lesquelles on peut
|
||||||
GLOBAL short Limite_Gauche_Zoom; // | écrire dans la partie zoomée
|
GLOBAL short Limite_Gauche_Zoom; // | écrire dans la partie zoomée
|
||||||
GLOBAL short Limite_Droite_Zoom; // |
|
GLOBAL short Limite_Droite_Zoom; // |
|
||||||
GLOBAL short Limite_visible_Bas_Zoom; // |_ Derniers points visibles "…
|
GLOBAL short Limite_visible_Bas_Zoom; // |_ Derniers points visibles "à
|
||||||
GLOBAL short Limite_visible_Droite_Zoom; // | l'image" dans la partie zoomée
|
GLOBAL short Limite_visible_Droite_Zoom; // | l'image" dans la partie zoomée
|
||||||
|
|
||||||
GLOBAL byte * Buffer_de_ligne_horizontale; // Buffer d'affichage de lignes
|
GLOBAL byte * Buffer_de_ligne_horizontale; // Buffer d'affichage de lignes
|
||||||
@ -231,7 +231,7 @@ GLOBAL char Principal_Commentaire[TAILLE_COMMENTAIRE+1]; // Commentaire de l'im
|
|||||||
|
|
||||||
GLOBAL short Principal_Split; // Position en X du bord gauche du split de la loupe
|
GLOBAL short Principal_Split; // Position en X du bord gauche du split de la loupe
|
||||||
GLOBAL short Principal_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
GLOBAL short Principal_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
||||||
GLOBAL float Principal_Proportion_split; // Proportion de la zone non-zoomée par rapport … l'écran
|
GLOBAL float Principal_Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
|
||||||
|
|
||||||
// Données sur le brouillon:
|
// Données sur le brouillon:
|
||||||
|
|
||||||
@ -257,16 +257,16 @@ GLOBAL char Brouillon_Commentaire[TAILLE_COMMENTAIRE+1]; // Commentaire de l'im
|
|||||||
|
|
||||||
GLOBAL short Brouillon_Split; // Position en X du bord gauche du split de la loupe
|
GLOBAL short Brouillon_Split; // Position en X du bord gauche du split de la loupe
|
||||||
GLOBAL short Brouillon_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
GLOBAL short Brouillon_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
||||||
GLOBAL float Brouillon_Proportion_split; // Proportion de la zone non-zoomée par rapport … l'écran
|
GLOBAL float Brouillon_Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
|
||||||
|
|
||||||
GLOBAL byte Brouillon_Loupe_Mode; // On est en mode loupe dans le brouillon
|
GLOBAL byte Brouillon_Loupe_Mode; // On est en mode loupe dans le brouillon
|
||||||
GLOBAL word Brouillon_Loupe_Facteur; // Facteur de zoom dans le brouillon
|
GLOBAL word Brouillon_Loupe_Facteur; // Facteur de zoom dans le brouillon
|
||||||
GLOBAL word Brouillon_Loupe_Hauteur; // Largeur de la fenˆtre de zoom dans le brouillon
|
GLOBAL word Brouillon_Loupe_Hauteur; // Largeur de la fenêtre de zoom dans le brouillon
|
||||||
GLOBAL word Brouillon_Loupe_Largeur; // Hauteur de la fenˆtre de zoom dans le brouillon
|
GLOBAL word Brouillon_Loupe_Largeur; // Hauteur de la fenêtre de zoom dans le brouillon
|
||||||
GLOBAL short Brouillon_Loupe_Decalage_X;// Decalage horizontal de la fenˆtre de zoom dans le brouillon
|
GLOBAL short Brouillon_Loupe_Decalage_X;// Decalage horizontal de la fenêtre de zoom dans le brouillon
|
||||||
GLOBAL short Brouillon_Loupe_Decalage_Y;// Decalage vertical de la fenˆtre de zoom dans le brouillon
|
GLOBAL short Brouillon_Loupe_Decalage_Y;// Decalage vertical de la fenêtre de zoom dans le brouillon
|
||||||
|
|
||||||
GLOBAL byte Masque_copie_couleurs[256]; // Tableau des couleurs … copier vers le brouillon
|
GLOBAL byte Masque_copie_couleurs[256]; // Tableau des couleurs à copier vers le brouillon
|
||||||
|
|
||||||
// Sauvegarde de l'image:
|
// Sauvegarde de l'image:
|
||||||
|
|
||||||
@ -298,26 +298,26 @@ GLOBAL short Brosse_Centre_rotation_Y; // | de la brosse
|
|||||||
|
|
||||||
// Données sur le menu
|
// Données sur le menu
|
||||||
|
|
||||||
GLOBAL byte Menu_visible; // Le menu est actif … l'écran
|
GLOBAL byte Menu_visible; // Le menu est actif à l'écran
|
||||||
GLOBAL word Menu_Ordonnee; // Ordonnée o— commence le menu
|
GLOBAL word Menu_Ordonnee; // Ordonnée où commence le menu
|
||||||
GLOBAL word Menu_Ordonnee_Texte; // Ordonnée o— commence le texte dans le menu
|
GLOBAL word Menu_Ordonnee_Texte; // Ordonnée où commence le texte dans le menu
|
||||||
GLOBAL word Menu_Facteur_X; // Facteur de grossissement du menu en X
|
GLOBAL word Menu_Facteur_X; // Facteur de grossissement du menu en X
|
||||||
GLOBAL word Menu_Facteur_Y; // Facteur de grossissement du menu en Y
|
GLOBAL word Menu_Facteur_Y; // Facteur de grossissement du menu en Y
|
||||||
GLOBAL word Menu_Taille_couleur; // Taille d'une couleur de la palette du menu
|
GLOBAL word Menu_Taille_couleur; // Taille d'une couleur de la palette du menu
|
||||||
|
|
||||||
|
|
||||||
// Données sur la fenˆtre de menu
|
// Données sur la fenêtre de menu
|
||||||
|
|
||||||
GLOBAL byte Une_fenetre_est_ouverte;
|
GLOBAL byte Une_fenetre_est_ouverte;
|
||||||
|
|
||||||
GLOBAL word Fenetre_Pos_X; // Position du bord gauche de la fenˆtre dans l'écran
|
GLOBAL word Fenetre_Pos_X; // Position du bord gauche de la fenêtre dans l'écran
|
||||||
GLOBAL word Fenetre_Pos_Y; // Position du bord haut de la fenˆtre dans l'écran
|
GLOBAL word Fenetre_Pos_Y; // Position du bord haut de la fenêtre dans l'écran
|
||||||
GLOBAL word Fenetre_Largeur; // Largeur de la fenˆtre
|
GLOBAL word Fenetre_Largeur; // Largeur de la fenêtre
|
||||||
GLOBAL word Fenetre_Hauteur; // Hauteur de la fenˆtre
|
GLOBAL word Fenetre_Hauteur; // Hauteur de la fenêtre
|
||||||
|
|
||||||
GLOBAL byte Menu_visible_avant_fenetre; // Le menu était visible avant d'ouvir une fenˆtre
|
GLOBAL byte Menu_visible_avant_fenetre; // Le menu était visible avant d'ouvir une fenêtre
|
||||||
GLOBAL word Menu_Ordonnee_avant_fenetre; // Ordonnée du menu avant d'ouvrir une fenˆtre
|
GLOBAL word Menu_Ordonnee_avant_fenetre; // Ordonnée du menu avant d'ouvrir une fenêtre
|
||||||
GLOBAL byte Cacher_pinceau_avant_fenetre;// Le pinceau étatit déj… caché avant l'ouverture de la fenetre?
|
GLOBAL byte Cacher_pinceau_avant_fenetre;// Le pinceau étatit déjà caché avant l'ouverture de la fenetre?
|
||||||
|
|
||||||
GLOBAL word Nb_boutons_fenetre;
|
GLOBAL word Nb_boutons_fenetre;
|
||||||
GLOBAL struct Fenetre_Bouton_normal * Fenetre_Liste_boutons_normal;
|
GLOBAL struct Fenetre_Bouton_normal * Fenetre_Liste_boutons_normal;
|
||||||
@ -335,7 +335,7 @@ GLOBAL int Fenetre_Attribut2;
|
|||||||
GLOBAL struct
|
GLOBAL struct
|
||||||
{
|
{
|
||||||
// Informations sur l'aspect du bouton (graphisme):
|
// Informations sur l'aspect du bouton (graphisme):
|
||||||
word Decalage_X; // Décalage par rapport … la gauche du menu
|
word Decalage_X; // Décalage par rapport à la gauche du menu
|
||||||
word Decalage_Y; // Décalage par rapport au haut du menu
|
word Decalage_Y; // Décalage par rapport au haut du menu
|
||||||
word Largeur; // Largeur du bouton
|
word Largeur; // Largeur du bouton
|
||||||
word Hauteur; // Hauteur du bouton
|
word Hauteur; // Hauteur du bouton
|
||||||
@ -345,8 +345,8 @@ GLOBAL struct
|
|||||||
// Information sur les clicks de la souris:
|
// Information sur les clicks de la souris:
|
||||||
fonction_action Gauche; // Action déclenchée par un click gauche sur le bouton
|
fonction_action Gauche; // Action déclenchée par un click gauche sur le bouton
|
||||||
fonction_action Droite; // Action déclenchée par un click droit sur le bouton
|
fonction_action Droite; // Action déclenchée par un click droit sur le bouton
|
||||||
word Raccourci_gauche; // Raccourci clavier équivalent … un click gauche sur le bouton
|
word Raccourci_gauche; // Raccourci clavier équivalent à un click gauche sur le bouton
|
||||||
word Raccourci_droite; // Raccourci clavier équivalent … un click droit sur le bouton
|
word Raccourci_droite; // Raccourci clavier équivalent à un click droit sur le bouton
|
||||||
|
|
||||||
// Informations sur le désenclenchement du bouton géré par le moteur:
|
// Informations sur le désenclenchement du bouton géré par le moteur:
|
||||||
fonction_action Desenclencher; // Action appelée lors du désenclenchement du bouton
|
fonction_action Desenclencher; // Action appelée lors du désenclenchement du bouton
|
||||||
@ -362,7 +362,7 @@ GLOBAL fonction_effet Fonction_effet;
|
|||||||
|
|
||||||
GLOBAL byte * FX_Feedback_Ecran;
|
GLOBAL byte * FX_Feedback_Ecran;
|
||||||
|
|
||||||
GLOBAL byte Exclude_color[256]; // Couleurs … exclure pour Meilleure_couleur
|
GLOBAL byte Exclude_color[256]; // Couleurs à exclure pour Meilleure_couleur
|
||||||
|
|
||||||
// Mode smear:
|
// Mode smear:
|
||||||
|
|
||||||
@ -396,7 +396,7 @@ GLOBAL byte Stencil[256]; // Tableau des couleurs prot
|
|||||||
GLOBAL byte Snap_Mode; // Le mode grille est enclenché
|
GLOBAL byte Snap_Mode; // Le mode grille est enclenché
|
||||||
GLOBAL short Snap_Largeur; // Largeur entre 2 points de la grille
|
GLOBAL short Snap_Largeur; // Largeur entre 2 points de la grille
|
||||||
GLOBAL short Snap_Hauteur; // Hauteur entre 2 points de la grille
|
GLOBAL short Snap_Hauteur; // Hauteur entre 2 points de la grille
|
||||||
GLOBAL short Snap_Decalage_X; // Position en X du point le + … gauche
|
GLOBAL short Snap_Decalage_X; // Position en X du point le + à gauche
|
||||||
GLOBAL short Snap_Decalage_Y; // Position en Y du point le + en haut
|
GLOBAL short Snap_Decalage_Y; // Position en Y du point le + en haut
|
||||||
|
|
||||||
// Mode trame:
|
// Mode trame:
|
||||||
@ -467,7 +467,7 @@ GLOBAL short Degrade_Borne_Inferieure; // Plus petite couleur englob
|
|||||||
GLOBAL short Degrade_Borne_Superieure; // Plus grande couleur englobée par le dégradé
|
GLOBAL short Degrade_Borne_Superieure; // Plus grande couleur englobée par le dégradé
|
||||||
GLOBAL int Degrade_Inverse; // Booléen "Le dégradé est en réalité inversé"
|
GLOBAL int Degrade_Inverse; // Booléen "Le dégradé est en réalité inversé"
|
||||||
GLOBAL long Degrade_Intervalle_bornes; // = Abs(Degrade_Borne_Inferieure-Degrade_Borne_Superieure)+1
|
GLOBAL long Degrade_Intervalle_bornes; // = Abs(Degrade_Borne_Inferieure-Degrade_Borne_Superieure)+1
|
||||||
GLOBAL long Degrade_Intervalle_total; // Valeur maximum des indices passés … la fonction de dégradé (!!! >0 !!!)
|
GLOBAL long Degrade_Intervalle_total; // Valeur maximum des indices passés à la fonction de dégradé (!!! >0 !!!)
|
||||||
GLOBAL long Degrade_Melange_aleatoire; // Facteur de mélange (1-256+) du dégradé
|
GLOBAL long Degrade_Melange_aleatoire; // Facteur de mélange (1-256+) du dégradé
|
||||||
GLOBAL fonction_degrade Traiter_degrade; // Fonction de traitement du dégradé, varie selon la méthode choisie par l'utilisateur.
|
GLOBAL fonction_degrade Traiter_degrade; // Fonction de traitement du dégradé, varie selon la méthode choisie par l'utilisateur.
|
||||||
GLOBAL fonction_afficheur Traiter_pixel_de_degrade; // Redirection de l'affichage
|
GLOBAL fonction_afficheur Traiter_pixel_de_degrade; // Redirection de l'affichage
|
||||||
@ -480,9 +480,9 @@ GLOBAL int Degrade_Courant; // Indice du tableau correspondant au d
|
|||||||
// Données sur le Spray:
|
// Données sur le Spray:
|
||||||
|
|
||||||
GLOBAL byte Spray_Mode; // Mode Mono(1) ou Multicolore(0)
|
GLOBAL byte Spray_Mode; // Mode Mono(1) ou Multicolore(0)
|
||||||
GLOBAL short Spray_Size; // DiamŠtre du spray en pixels
|
GLOBAL short Spray_Size; // Diamètre du spray en pixels
|
||||||
GLOBAL byte Spray_Delay; // Délai en VBLs entre 2 "pschiitt"
|
GLOBAL byte Spray_Delay; // Délai en VBLs entre 2 "pschiitt"
|
||||||
GLOBAL byte Spray_Mono_flow; // Nombre de pixels qui sortent en mˆme temps en mono
|
GLOBAL byte Spray_Mono_flow; // Nombre de pixels qui sortent en même temps en mono
|
||||||
GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur
|
GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur
|
||||||
|
|
||||||
|
|
||||||
@ -490,7 +490,7 @@ GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur
|
|||||||
|
|
||||||
GLOBAL byte Sortir_du_programme;
|
GLOBAL byte Sortir_du_programme;
|
||||||
GLOBAL char Repertoire_du_programme[256]; // Répertoire dans lequel se trouve le programme
|
GLOBAL char Repertoire_du_programme[256]; // Répertoire dans lequel se trouve le programme
|
||||||
GLOBAL char Repertoire_initial[256]; // Répertoire … partir duquel … été lancé le programme
|
GLOBAL char Repertoire_initial[256]; // Répertoire à partir duquel à été lancé le programme
|
||||||
GLOBAL byte Fore_color;
|
GLOBAL byte Fore_color;
|
||||||
GLOBAL byte Back_color;
|
GLOBAL byte Back_color;
|
||||||
GLOBAL byte Mode_de_dessin_en_cours;
|
GLOBAL byte Mode_de_dessin_en_cours;
|
||||||
@ -498,7 +498,7 @@ GLOBAL byte Courbe_en_cours;
|
|||||||
GLOBAL byte Ligne_en_cours;
|
GLOBAL byte Ligne_en_cours;
|
||||||
GLOBAL byte Couleur_debut_palette;
|
GLOBAL byte Couleur_debut_palette;
|
||||||
GLOBAL byte Un_fichier_a_ete_passe_en_parametre;
|
GLOBAL byte Un_fichier_a_ete_passe_en_parametre;
|
||||||
GLOBAL byte Une_resolution_a_ete_passee_en_parametre; // utilisée uniquement si la variable précédente est … 1
|
GLOBAL byte Une_resolution_a_ete_passee_en_parametre; // utilisée uniquement si la variable précédente est à 1
|
||||||
|
|
||||||
// Variables concernant l'OBJ DIVERS
|
// Variables concernant l'OBJ DIVERS
|
||||||
|
|
||||||
@ -527,7 +527,7 @@ GLOBAL byte * VESA_WinFuncPtr; // Handler software de changement de banque
|
|||||||
GLOBAL word * VESA_Liste_des_modes;
|
GLOBAL word * VESA_Liste_des_modes;
|
||||||
GLOBAL dword VESA_Decalage_synchro;
|
GLOBAL dword VESA_Decalage_synchro;
|
||||||
GLOBAL word VESA_Largeur_ecran_en_dword;
|
GLOBAL word VESA_Largeur_ecran_en_dword;
|
||||||
GLOBAL byte VESA_Banque_en_cours; // Variable normalement locale … VIDEO.ASM
|
GLOBAL byte VESA_Banque_en_cours; // Variable normalement locale à VIDEO.ASM
|
||||||
GLOBAL byte VESA_Derniere_banque_Fenetre_A_utilisee;
|
GLOBAL byte VESA_Derniere_banque_Fenetre_A_utilisee;
|
||||||
GLOBAL byte VESA_Derniere_banque_Fenetre_B_utilisee;
|
GLOBAL byte VESA_Derniere_banque_Fenetre_B_utilisee;
|
||||||
GLOBAL fonction_action VESA_Change_banque_lecture;
|
GLOBAL fonction_action VESA_Change_banque_lecture;
|
||||||
@ -572,9 +572,9 @@ GLOBAL short Pipette_Y;
|
|||||||
#ifdef VARIABLES_GLOBALES
|
#ifdef VARIABLES_GLOBALES
|
||||||
byte CURSEUR_D_OPERATION[NB_OPERATIONS]=
|
byte CURSEUR_D_OPERATION[NB_OPERATIONS]=
|
||||||
{
|
{
|
||||||
FORME_CURSEUR_CIBLE , // Dessin … la main continu
|
FORME_CURSEUR_CIBLE , // Dessin à la main continu
|
||||||
FORME_CURSEUR_CIBLE , // Dessin … la main discontinu
|
FORME_CURSEUR_CIBLE , // Dessin à la main discontinu
|
||||||
FORME_CURSEUR_CIBLE , // Dessin … la main point par point
|
FORME_CURSEUR_CIBLE , // Dessin à la main point par point
|
||||||
FORME_CURSEUR_CIBLE , // Lignes
|
FORME_CURSEUR_CIBLE , // Lignes
|
||||||
FORME_CURSEUR_CIBLE , // Lignes reliées
|
FORME_CURSEUR_CIBLE , // Lignes reliées
|
||||||
FORME_CURSEUR_CIBLE , // Lignes centrées
|
FORME_CURSEUR_CIBLE , // Lignes centrées
|
||||||
@ -589,9 +589,9 @@ GLOBAL short Pipette_Y;
|
|||||||
FORME_CURSEUR_CIBLE_XOR , // Prise de brosse rectangulaire
|
FORME_CURSEUR_CIBLE_XOR , // Prise de brosse rectangulaire
|
||||||
FORME_CURSEUR_CIBLE , // Prise d'une brosse multiforme
|
FORME_CURSEUR_CIBLE , // Prise d'une brosse multiforme
|
||||||
FORME_CURSEUR_CIBLE_PIPETTE , // Récupération d'une couleur
|
FORME_CURSEUR_CIBLE_PIPETTE , // Récupération d'une couleur
|
||||||
FORME_CURSEUR_RECTANGLE_XOR , // Positionnement de la fenˆtre de loupe
|
FORME_CURSEUR_RECTANGLE_XOR , // Positionnement de la fenêtre de loupe
|
||||||
FORME_CURSEUR_CIBLE , // Courbe … 3 points
|
FORME_CURSEUR_CIBLE , // Courbe à 3 points
|
||||||
FORME_CURSEUR_CIBLE , // Courbe … 4 points
|
FORME_CURSEUR_CIBLE , // Courbe à 4 points
|
||||||
FORME_CURSEUR_CIBLE , // Spray
|
FORME_CURSEUR_CIBLE , // Spray
|
||||||
FORME_CURSEUR_CIBLE , // Polygone
|
FORME_CURSEUR_CIBLE , // Polygone
|
||||||
FORME_CURSEUR_CIBLE , // Polyforme
|
FORME_CURSEUR_CIBLE , // Polyforme
|
||||||
@ -609,7 +609,7 @@ GLOBAL short Pipette_Y;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// Procédures … appeler: Opération,Mouse_K,Etat de la pile
|
// Procédures à appeler: Opération,Mouse_K,Etat de la pile
|
||||||
|
|
||||||
GLOBAL struct
|
GLOBAL struct
|
||||||
{
|
{
|
||||||
@ -632,7 +632,7 @@ GLOBAL byte SPRITE_DRIVE[NB_SPRITES_DRIVES][HAUTEUR_SPRITE_DRIVE][LARGEUR_SPRITE
|
|||||||
GLOBAL short Liste_Nb_elements;
|
GLOBAL short Liste_Nb_elements;
|
||||||
GLOBAL short Liste_Nb_fichiers;
|
GLOBAL short Liste_Nb_fichiers;
|
||||||
GLOBAL short Liste_Nb_repertoires;
|
GLOBAL short Liste_Nb_repertoires;
|
||||||
// Tˆte de la liste chaŒnée:
|
// Tête de la liste chaînée:
|
||||||
GLOBAL struct Element_de_liste_de_fileselect * Liste_du_fileselect;
|
GLOBAL struct Element_de_liste_de_fileselect * Liste_du_fileselect;
|
||||||
|
|
||||||
// ------------------- Inititialisation des formats connus -------------------
|
// ------------------- Inititialisation des formats connus -------------------
|
||||||
@ -658,7 +658,7 @@ void Rien_du_tout(void);
|
|||||||
"pal" // PAL
|
"pal" // PAL
|
||||||
};
|
};
|
||||||
|
|
||||||
// Fonction … appeler pour vérifier la signature du fichier
|
// Fonction à appeler pour vérifier la signature du fichier
|
||||||
fonction_action Format_Test[NB_FORMATS_LOAD]=
|
fonction_action Format_Test[NB_FORMATS_LOAD]=
|
||||||
{
|
{
|
||||||
Test_PKM, // PKM
|
Test_PKM, // PKM
|
||||||
@ -675,7 +675,7 @@ void Rien_du_tout(void);
|
|||||||
Test_PAL // PAL
|
Test_PAL // PAL
|
||||||
};
|
};
|
||||||
|
|
||||||
// Fonction … appeler pour charger l'image
|
// Fonction à appeler pour charger l'image
|
||||||
fonction_action Format_Load[NB_FORMATS_LOAD]=
|
fonction_action Format_Load[NB_FORMATS_LOAD]=
|
||||||
{
|
{
|
||||||
Load_PKM, // PKM
|
Load_PKM, // PKM
|
||||||
@ -692,7 +692,7 @@ void Rien_du_tout(void);
|
|||||||
Load_PAL // PAL
|
Load_PAL // PAL
|
||||||
};
|
};
|
||||||
|
|
||||||
// Fonction … appeler pour sauvegarder l'image
|
// Fonction à appeler pour sauvegarder l'image
|
||||||
fonction_action Format_Save[NB_FORMATS_SAVE]=
|
fonction_action Format_Save[NB_FORMATS_SAVE]=
|
||||||
{
|
{
|
||||||
Save_PKM, // PKM
|
Save_PKM, // PKM
|
||||||
@ -751,9 +751,9 @@ void Rien_du_tout(void);
|
|||||||
extern byte Format_Commentaire[NB_FORMATS_CONNUS];
|
extern byte Format_Commentaire[NB_FORMATS_CONNUS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GLOBAL signed char Erreur_fichier; // 0: op‚ration I/O OK
|
GLOBAL signed char Erreur_fichier; // 0: opération I/O OK
|
||||||
// 1: Erreur dŠs le d‚but de l'op‚ration
|
// 1: Erreur dès le début de l'opération
|
||||||
// 2: Erreur durant l'op‚ration => donn‚es modifi‚es
|
// 2: Erreur durant l'opération => données modifiées
|
||||||
//-1: Interruption du chargement d'une preview
|
//-1: Interruption du chargement d'une preview
|
||||||
|
|
||||||
GLOBAL int Ligne_INI;
|
GLOBAL int Ligne_INI;
|
||||||
@ -762,7 +762,7 @@ GLOBAL fonction_afficheur Pixel_de_chargement;
|
|||||||
GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde;
|
GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde;
|
||||||
|
|
||||||
/********************
|
/********************
|
||||||
* Sp‚cifique … SDL *
|
* Spécifique à SDL *
|
||||||
********************/
|
********************/
|
||||||
GLOBAL SDL_Surface * Ecran_SDL;
|
GLOBAL SDL_Surface * Ecran_SDL;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
48
graph.c
48
graph.c
@ -331,7 +331,7 @@ void Remapper_ecran_apres_changement_couleurs_menu(void)
|
|||||||
Afficher_palette_du_menu_en_evitant_la_fenetre(Table_de_conversion);
|
Afficher_palette_du_menu_en_evitant_la_fenetre(Table_de_conversion);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Il faudrait peut-ˆtre remapper les pointillés délimitant l'image.
|
Il faudrait peut-être remapper les pointillés délimitant l'image.
|
||||||
Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe.
|
Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe.
|
||||||
Mais de toutes façons, c'est franchement facultatif...
|
Mais de toutes façons, c'est franchement facultatif...
|
||||||
*/
|
*/
|
||||||
@ -1047,7 +1047,7 @@ void Pixel_dans_fenetre(word X,word Y,byte Couleur)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -- Affichages de différents cƒdres dans une fenêtre -----------------------
|
// -- Affichages de différents cadres dans une fenêtre -----------------------
|
||||||
|
|
||||||
// -- Cadre général avec couleurs paramètrables --
|
// -- Cadre général avec couleurs paramètrables --
|
||||||
|
|
||||||
@ -3189,11 +3189,11 @@ void Redimentionner_image(word Largeur_choisie,word Hauteur_choisie)
|
|||||||
word Ancienne_largeur=Principal_Largeur_image;
|
word Ancienne_largeur=Principal_Largeur_image;
|
||||||
word Ancienne_hauteur=Principal_Hauteur_image;
|
word Ancienne_hauteur=Principal_Hauteur_image;
|
||||||
|
|
||||||
// ÚÄÂÄ¿
|
// +-+-+
|
||||||
// ³C³ ³ A+B+C = Ancienne image
|
// |C| | A+B+C = Ancienne image
|
||||||
// ÃÄ´A³
|
// +-+A|
|
||||||
// ³B³ ³ C = Nouvelle image
|
// |B| | C = Nouvelle image
|
||||||
// ÀÄÁÄÙ
|
// +-+-+
|
||||||
|
|
||||||
if (Backup_avec_nouvelles_dimensions(1,Largeur_choisie,Hauteur_choisie))
|
if (Backup_avec_nouvelles_dimensions(1,Largeur_choisie,Hauteur_choisie))
|
||||||
{
|
{
|
||||||
@ -3382,7 +3382,7 @@ void Remap_brosse(void)
|
|||||||
// On va maintenant se servir de la table "Utilisee" comme table de
|
// On va maintenant se servir de la table "Utilisee" comme table de
|
||||||
// conversion: pour chaque indice, la table donne une couleur de
|
// conversion: pour chaque indice, la table donne une couleur de
|
||||||
// remplacement.
|
// remplacement.
|
||||||
// Note : Seules les couleurs utilisées on besoin d'ˆtres recalculées: les
|
// Note : Seules les couleurs utilisées on besoin d'êtres recalculées: les
|
||||||
// autres ne seront jamais consultées dans la nouvelle table de
|
// autres ne seront jamais consultées dans la nouvelle table de
|
||||||
// conversion puisque elles n'existent pas dans la brosse, donc elles
|
// conversion puisque elles n'existent pas dans la brosse, donc elles
|
||||||
// ne seront pas utilisées par Remap_brush_LOWLEVEL.
|
// ne seront pas utilisées par Remap_brush_LOWLEVEL.
|
||||||
@ -3427,7 +3427,7 @@ void Remap_picture(void)
|
|||||||
// On va maintenant se servir de la table "Utilisee" comme table de
|
// On va maintenant se servir de la table "Utilisee" comme table de
|
||||||
// conversion: pour chaque indice, la table donne une couleur de
|
// conversion: pour chaque indice, la table donne une couleur de
|
||||||
// remplacement.
|
// remplacement.
|
||||||
// Note : Seules les couleurs utilisées on besoin d'ˆtres recalculées: les
|
// Note : Seules les couleurs utilisées on besoin d'êtres recalculées: les
|
||||||
// autres ne seront jamais consultées dans la nouvelle table de
|
// autres ne seront jamais consultées dans la nouvelle table de
|
||||||
// conversion puisque elles n'existent pas dans l'image, donc elles
|
// conversion puisque elles n'existent pas dans l'image, donc elles
|
||||||
// ne seront pas utilisées par Remap_general_LOWLEVEL.
|
// ne seront pas utilisées par Remap_general_LOWLEVEL.
|
||||||
@ -3726,7 +3726,7 @@ void Fill(short * Limite_atteinte_Haut , short * Limite_atteinte_Bas,
|
|||||||
// l'image. Les limites employées sont Limite_Haut, Limite_Bas, Limite_Gauche
|
// l'image. Les limites employées sont Limite_Haut, Limite_Bas, Limite_Gauche
|
||||||
// et Limite_Droite. Le point de départ du remplissage est Pinceau_X,Pinceau_Y
|
// et Limite_Droite. Le point de départ du remplissage est Pinceau_X,Pinceau_Y
|
||||||
// et s'effectue en théorie sur la couleur 1 et emploie la couleur 2 pour le
|
// et s'effectue en théorie sur la couleur 1 et emploie la couleur 2 pour le
|
||||||
// remplissage. Ces restrictions sont d–es à l'utilisation qu'on en fait dans
|
// remplissage. Ces restrictions sont dûes à l'utilisation qu'on en fait dans
|
||||||
// la fonction principale "Remplir", qui se charge de faire une gestion de
|
// la fonction principale "Remplir", qui se charge de faire une gestion de
|
||||||
// tous les effets.
|
// tous les effets.
|
||||||
// Cette fonction ne doit pas être directement appelée.
|
// Cette fonction ne doit pas être directement appelée.
|
||||||
@ -4751,12 +4751,12 @@ void Degrade_de_trames_simples(long Indice,short Pos_X,short Pos_Y)
|
|||||||
// dans cette procédure par "Position_dans_degrade", on calcule la position
|
// dans cette procédure par "Position_dans_degrade", on calcule la position
|
||||||
// de l'indice dans le schéma suivant:
|
// de l'indice dans le schéma suivant:
|
||||||
//
|
//
|
||||||
// Ú Les indices qui traînent de ce c“té du segment se voient subir
|
// | Les indices qui traînent de ce côté du segment se voient subir
|
||||||
// ³ une incrémentation conditionnelle à leur position dans l'écran.
|
// | une incrémentation conditionnelle à leur position dans l'écran.
|
||||||
// v
|
// v
|
||||||
// ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄúúú ú ú
|
// |---|---|---|---- - - -
|
||||||
// ^
|
// ^
|
||||||
// ÀÄ Les indices qui traînent de ce c“té du segment se voient subir une
|
// |_ Les indices qui traînent de ce côté du segment se voient subir une
|
||||||
// décrémentation conditionnelle à leur position dans l'écran.
|
// décrémentation conditionnelle à leur position dans l'écran.
|
||||||
|
|
||||||
// On fait d'abord un premier calcul partiel
|
// On fait d'abord un premier calcul partiel
|
||||||
@ -4789,7 +4789,7 @@ void Degrade_de_trames_simples(long Indice,short Pos_X,short Pos_Y)
|
|||||||
// suffisament au centre du segment pour ne pas avoir à subir la trame
|
// suffisament au centre du segment pour ne pas avoir à subir la trame
|
||||||
|
|
||||||
case 3 : // On est sur la droite du segment
|
case 3 : // On est sur la droite du segment
|
||||||
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 c“tés de la trame.
|
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 côtés de la trame.
|
||||||
Position_dans_degrade++;
|
Position_dans_degrade++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4818,17 +4818,17 @@ void Degrade_de_trames_etendues(long Indice,short Pos_X,short Pos_Y)
|
|||||||
long Position_dans_degrade;
|
long Position_dans_degrade;
|
||||||
long Position_dans_segment;
|
long Position_dans_segment;
|
||||||
|
|
||||||
//
|
//
|
||||||
// But de l'opération: en plus de calculer la position de base (désignée
|
// But de l'opération: en plus de calculer la position de base (désignée
|
||||||
// dans cette procédure par "Position_dans_degrade", on calcule la position
|
// dans cette procédure par "Position_dans_degrade", on calcule la position
|
||||||
// de l'indice dans le schéma suivant:
|
// de l'indice dans le schéma suivant:
|
||||||
//
|
//
|
||||||
// Ú Les indices qui traînent de ce c“té du segment se voient subir
|
// | Les indices qui traînent de ce côté du segment se voient subir
|
||||||
// ³ une incrémentation conditionnelle à leur position dans l'écran.
|
// | une incrémentation conditionnelle à leur position dans l'écran.
|
||||||
// v
|
// v
|
||||||
// ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄúúú ú ú
|
// |---|---|---|---- - - -
|
||||||
// ^
|
// ^
|
||||||
// ÀÄ Les indices qui traînent de ce c“té du segment se voient subir une
|
// |_ Les indices qui traînent de ce côté du segment se voient subir une
|
||||||
// décrémentation conditionnelle à leur position dans l'écran.
|
// décrémentation conditionnelle à leur position dans l'écran.
|
||||||
|
|
||||||
// On fait d'abord un premier calcul partiel
|
// On fait d'abord un premier calcul partiel
|
||||||
@ -4873,7 +4873,7 @@ void Degrade_de_trames_etendues(long Indice,short Pos_X,short Pos_Y)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 7 : // On est sur l'extreme droite du segment
|
case 7 : // On est sur l'extreme droite du segment
|
||||||
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 c“tés de la trame.
|
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 côtés de la trame.
|
||||||
Position_dans_degrade++;
|
Position_dans_degrade++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5029,7 +5029,7 @@ void Tracer_ellipse_degradee(short Centre_X,short Centre_Y,short Rayon_horizonta
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// -- Tracer un polyg“ne plein --
|
// -- Tracer un polygône plein --
|
||||||
|
|
||||||
typedef struct POLYGON_EDGE /* an active edge */
|
typedef struct POLYGON_EDGE /* an active edge */
|
||||||
{
|
{
|
||||||
@ -5512,7 +5512,7 @@ void Etirer_brosse(short X1, short Y1, short X2, short Y2)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
|
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
|
||||||
// o— c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
|
// où c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
|
||||||
// normalement la place pour elle puisque rien d'autre n'a pu être alloué
|
// normalement la place pour elle puisque rien d'autre n'a pu être alloué
|
||||||
// entre temps.
|
// entre temps.
|
||||||
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);
|
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);
|
||||||
@ -5907,7 +5907,7 @@ void Tourner_brosse(float Angle)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
|
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
|
||||||
// o— c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
|
// où c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
|
||||||
// normalement la place pour elle puisque rien d'autre n'a pu être alloué
|
// normalement la place pour elle puisque rien d'autre n'a pu être alloué
|
||||||
// entre temps.
|
// entre temps.
|
||||||
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);
|
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);
|
||||||
|
|||||||
2
init.c
2
init.c
@ -273,7 +273,7 @@ void Charger_DAT(void)
|
|||||||
if (!(Fonte_temporaire=(byte *)malloc(2048)))
|
if (!(Fonte_temporaire=(byte *)malloc(2048)))
|
||||||
Erreur(ERREUR_MEMOIRE);
|
Erreur(ERREUR_MEMOIRE);
|
||||||
|
|
||||||
// Lecture de la fonte systŠme
|
// Lecture de la fonte système
|
||||||
if (fread(Fonte_temporaire,1,2048,Handle)!=2048)
|
if (fread(Fonte_temporaire,1,2048,Handle)!=2048)
|
||||||
Erreur(ERREUR_DAT_CORROMPU);
|
Erreur(ERREUR_DAT_CORROMPU);
|
||||||
for (Indice=0;Indice<256;Indice++)
|
for (Indice=0;Indice<256;Indice++)
|
||||||
|
|||||||
118
loadsave.c
118
loadsave.c
@ -192,7 +192,7 @@ void Initialiser_preview_24b(int Largeur,int Hauteur)
|
|||||||
{
|
{
|
||||||
// Afficher un message d'erreur
|
// Afficher un message d'erreur
|
||||||
|
|
||||||
// Pour être s–r que ce soit lisible.
|
// Pour être sûr que ce soit lisible.
|
||||||
Calculer_couleurs_menu_optimales(Principal_Palette);
|
Calculer_couleurs_menu_optimales(Principal_Palette);
|
||||||
Message_Memoire_insuffisante();
|
Message_Memoire_insuffisante();
|
||||||
if (Pixel_de_chargement==Pixel_Chargement_dans_ecran_courant)
|
if (Pixel_de_chargement==Pixel_Chargement_dans_ecran_courant)
|
||||||
@ -212,7 +212,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
|
|||||||
//
|
//
|
||||||
// Cette procédure doit être appelée par les routines de chargement
|
// Cette procédure doit être appelée par les routines de chargement
|
||||||
// d'images.
|
// d'images.
|
||||||
// Elle doit être appelée entre le moment o— l'on connait la dimension de
|
// Elle doit être appelée entre le moment où l'on connait la dimension de
|
||||||
// l'image (dimension réelle, pas dimension tronquée) et l'affichage du
|
// l'image (dimension réelle, pas dimension tronquée) et l'affichage du
|
||||||
// premier point.
|
// premier point.
|
||||||
//
|
//
|
||||||
@ -257,7 +257,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Le fichier fait plus de 10 Giga octets (cas trŠs rare :))
|
// Le fichier fait plus de 10 Giga octets (cas très rare :))
|
||||||
Print_dans_fenetre(226,63,"TOO BIG!!",CM_Noir,CM_Clair);
|
Print_dans_fenetre(226,63,"TOO BIG!!",CM_Noir,CM_Clair);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
|
|||||||
Preview_Pos_X=Fenetre_Pos_X+180*Menu_Facteur_X;
|
Preview_Pos_X=Fenetre_Pos_X+180*Menu_Facteur_X;
|
||||||
Preview_Pos_Y=Fenetre_Pos_Y+ (89+FILENAMESPACE)*Menu_Facteur_Y;
|
Preview_Pos_Y=Fenetre_Pos_Y+ (89+FILENAMESPACE)*Menu_Facteur_Y;
|
||||||
|
|
||||||
// On nettoie la zone o— va s'afficher la preview:
|
// On nettoie la zone où va s'afficher la preview:
|
||||||
Block(Preview_Pos_X,Preview_Pos_Y,
|
Block(Preview_Pos_X,Preview_Pos_Y,
|
||||||
Round_div_max(Largeur,Preview_Facteur_X),
|
Round_div_max(Largeur,Preview_Facteur_X),
|
||||||
Round_div_max(Hauteur,Preview_Facteur_Y),
|
Round_div_max(Hauteur,Preview_Facteur_Y),
|
||||||
@ -303,13 +303,13 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
|
|||||||
{
|
{
|
||||||
// La nouvelle page a pu être allouée, elle est pour l'instant pleine
|
// La nouvelle page a pu être allouée, elle est pour l'instant pleine
|
||||||
// de 0s. Elle fait Principal_Largeur_image de large.
|
// de 0s. Elle fait Principal_Largeur_image de large.
|
||||||
// Normalement tout va bien, tout est sous contr“le...
|
// Normalement tout va bien, tout est sous contrôle...
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Afficher un message d'erreur
|
// Afficher un message d'erreur
|
||||||
|
|
||||||
// Pour être s–r que ce soit lisible.
|
// Pour être sûr que ce soit lisible.
|
||||||
Calculer_couleurs_menu_optimales(Principal_Palette);
|
Calculer_couleurs_menu_optimales(Principal_Palette);
|
||||||
Message_Memoire_insuffisante();
|
Message_Memoire_insuffisante();
|
||||||
Erreur_fichier=1; // 1 => On n'a pas perdu l'image courante
|
Erreur_fichier=1; // 1 => On n'a pas perdu l'image courante
|
||||||
@ -481,12 +481,12 @@ void /*__interrupt __near*/ Nouveau_handler_clavier(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------- Modifier la valeur du code d'erreur d'accŠs à un fichier --------
|
// -------- Modifier la valeur du code d'erreur d'accès à un fichier --------
|
||||||
// On n'est pas obligé d'utiliser cette fonction à chaque fois mais il est
|
// On n'est pas obligé d'utiliser cette fonction à chaque fois mais il est
|
||||||
// important de l'utiliser dans les cas du type:
|
// important de l'utiliser dans les cas du type:
|
||||||
// if (!Erreur_fichier) *** else Erreur_fichier=***;
|
// if (!Erreur_fichier) *** else Erreur_fichier=***;
|
||||||
// En fait, dans le cas o— l'on modifie Erreur_fichier alors qu'elle contient
|
// En fait, dans le cas où l'on modifie Erreur_fichier alors qu'elle contient
|
||||||
// dŠjà un code d'erreur.
|
// dèjà un code d'erreur.
|
||||||
void Modif_Erreur_fichier(int Nouvelle_valeur)
|
void Modif_Erreur_fichier(int Nouvelle_valeur)
|
||||||
{
|
{
|
||||||
if (Erreur_fichier>=0)
|
if (Erreur_fichier>=0)
|
||||||
@ -501,7 +501,7 @@ void Charger_image(byte Image)
|
|||||||
int Format=0; // Format du fichier à charger
|
int Format=0; // Format du fichier à charger
|
||||||
|
|
||||||
|
|
||||||
// On place par défaut Erreur_fichier à vrai au cas o— on ne sache pas
|
// On place par défaut Erreur_fichier à vrai au cas où on ne sache pas
|
||||||
// charger le format du fichier:
|
// charger le format du fichier:
|
||||||
Erreur_fichier=1;
|
Erreur_fichier=1;
|
||||||
|
|
||||||
@ -530,7 +530,7 @@ void Charger_image(byte Image)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si on a su déterminer avec succŠs le format du fichier:
|
// Si on a su déterminer avec succès le format du fichier:
|
||||||
if (!Erreur_fichier)
|
if (!Erreur_fichier)
|
||||||
{
|
{
|
||||||
// Installer le handler d'interruption du clavier pour stopper une preview
|
// Installer le handler d'interruption du clavier pour stopper une preview
|
||||||
@ -584,7 +584,7 @@ void Charger_image(byte Image)
|
|||||||
{
|
{
|
||||||
if ( (Erreur_fichier!=1) && (Format_Backup_done[Format]) )
|
if ( (Erreur_fichier!=1) && (Format_Backup_done[Format]) )
|
||||||
{
|
{
|
||||||
// On considŠre que l'image chargée n'est plus modifiée
|
// On considère que l'image chargée n'est plus modifiée
|
||||||
Principal_Image_modifiee=0;
|
Principal_Image_modifiee=0;
|
||||||
// Et on documente la variable Principal_Format_fichier avec la valeur:
|
// Et on documente la variable Principal_Format_fichier avec la valeur:
|
||||||
Principal_Format_fichier=Format+1;
|
Principal_Format_fichier=Format+1;
|
||||||
@ -597,7 +597,7 @@ void Charger_image(byte Image)
|
|||||||
}
|
}
|
||||||
else if (Erreur_fichier!=1)
|
else if (Erreur_fichier!=1)
|
||||||
{
|
{
|
||||||
// On considŠre que l'image chargée est encore modifiée
|
// On considère que l'image chargée est encore modifiée
|
||||||
Principal_Image_modifiee=1;
|
Principal_Image_modifiee=1;
|
||||||
// Et on documente la variable Principal_Format_fichier avec la valeur:
|
// Et on documente la variable Principal_Format_fichier avec la valeur:
|
||||||
Principal_Format_fichier=Format+1;
|
Principal_Format_fichier=Format+1;
|
||||||
@ -605,13 +605,13 @@ void Charger_image(byte Image)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Dans ce cas, on sait que l'image n'a pas changé, mais ses
|
// Dans ce cas, on sait que l'image n'a pas changé, mais ses
|
||||||
// paramŠtres (dimension, palette, ...) si. Donc on les restaures.
|
// paramètres (dimension, palette, ...) si. Donc on les restaures.
|
||||||
Download_infos_page_principal(Principal_Backups->Pages);
|
Download_infos_page_principal(Principal_Backups->Pages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// Sinon, l'appelant sera au courant de l'échec grƒce à Erreur_fichier;
|
// Sinon, l'appelant sera au courant de l'échec grace à Erreur_fichier;
|
||||||
// et si on s'apprêtait à faire un chargement définitif de l'image (pas
|
// et si on s'apprêtait à faire un chargement définitif de l'image (pas
|
||||||
// une preview), alors on flash l'utilisateur.
|
// une preview), alors on flash l'utilisateur.
|
||||||
if (Pixel_de_chargement!=Pixel_Chargement_dans_preview)
|
if (Pixel_de_chargement!=Pixel_Chargement_dans_preview)
|
||||||
@ -622,7 +622,7 @@ void Charger_image(byte Image)
|
|||||||
// -- Sauver n'importe quel type connu de fichier d'image (ou palette) ------
|
// -- Sauver n'importe quel type connu de fichier d'image (ou palette) ------
|
||||||
void Sauver_image(byte Image)
|
void Sauver_image(byte Image)
|
||||||
{
|
{
|
||||||
// On place par défaut Erreur_fichier à vrai au cas o— on ne sache pas
|
// On place par défaut Erreur_fichier à vrai au cas où on ne sache pas
|
||||||
// sauver le format du fichier: (Est-ce vraiment utile??? Je ne crois pas!)
|
// sauver le format du fichier: (Est-ce vraiment utile??? Je ne crois pas!)
|
||||||
Erreur_fichier=1;
|
Erreur_fichier=1;
|
||||||
|
|
||||||
@ -738,10 +738,10 @@ void Save_PAL(void)
|
|||||||
Erreur_fichier=1;
|
Erreur_fichier=1;
|
||||||
fclose(Fichier);
|
fclose(Fichier);
|
||||||
remove(Nom_du_fichier);
|
remove(Nom_du_fichier);
|
||||||
// On se fout du résultat de l'opération car si ‡a
|
// On se fout du résultat de l'opération car si ça
|
||||||
// renvoie 0 c'est que le fichier avait été partiel-
|
// renvoie 0 c'est que le fichier avait été partiel-
|
||||||
// -lement écrit, sinon pas du tout. Or dans tous les
|
// -lement écrit, sinon pas du tout. Or dans tous les
|
||||||
// cas ‡a revient au même pour nous: Sauvegarde ratée!
|
// cas ça revient au même pour nous: Sauvegarde ratée!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +818,7 @@ void Load_IMG(void)
|
|||||||
Initialiser_preview(IMG_Header.Largeur,IMG_Header.Hauteur,Taille_du_fichier,FORMAT_IMG);
|
Initialiser_preview(IMG_Header.Largeur,IMG_Header.Hauteur,Taille_du_fichier,FORMAT_IMG);
|
||||||
if (Erreur_fichier==0)
|
if (Erreur_fichier==0)
|
||||||
{
|
{
|
||||||
// On commence par passer la palette en 256 comme ‡a, si la nouvelle
|
// On commence par passer la palette en 256 comme ça, si la nouvelle
|
||||||
// palette a moins de 256 coul, la précédente ne souffrira pas d'un
|
// palette a moins de 256 coul, la précédente ne souffrira pas d'un
|
||||||
// assombrissement préjudiciable.
|
// assombrissement préjudiciable.
|
||||||
Palette_64_to_256(Principal_Palette);
|
Palette_64_to_256(Principal_Palette);
|
||||||
@ -952,7 +952,7 @@ void Test_PKM(void)
|
|||||||
if (read_bytes(Fichier,&Head,sizeof(T_Header_PKM)))
|
if (read_bytes(Fichier,&Head,sizeof(T_Header_PKM)))
|
||||||
{
|
{
|
||||||
// On regarde s'il y a la signature PKM suivie de la méthode 0.
|
// On regarde s'il y a la signature PKM suivie de la méthode 0.
|
||||||
// La constante "PKM" étant un chaŒne, elle se termine toujours par 0.
|
// La constante "PKM" étant un chaîne, elle se termine toujours par 0.
|
||||||
// Donc pas la peine de s'emm...er à regarder si la méthode est à 0.
|
// Donc pas la peine de s'emm...er à regarder si la méthode est à 0.
|
||||||
if ( (!memcmp(&Head,"PKM",4)) && Head.Largeur && Head.Hauteur)
|
if ( (!memcmp(&Head,"PKM",4)) && Head.Largeur && Head.Hauteur)
|
||||||
Erreur_fichier=0;
|
Erreur_fichier=0;
|
||||||
@ -1179,7 +1179,7 @@ void Load_PKM(void)
|
|||||||
}
|
}
|
||||||
*Recon1=Best;
|
*Recon1=Best;
|
||||||
|
|
||||||
// Enfin Recon2 devient la 2Šme moins utilisée
|
// Enfin Recon2 devient la 2ème moins utilisée
|
||||||
*Recon2=0;
|
*Recon2=0;
|
||||||
Best=0;
|
Best=0;
|
||||||
NBest=INT_MAX;
|
NBest=INT_MAX;
|
||||||
@ -1331,7 +1331,7 @@ void Save_PKM(void)
|
|||||||
fclose(Fichier);
|
fclose(Fichier);
|
||||||
}
|
}
|
||||||
// S'il y a eu une erreur de sauvegarde, on ne va tout de même pas laisser
|
// S'il y a eu une erreur de sauvegarde, on ne va tout de même pas laisser
|
||||||
// ce fichier pourri traŒner... Ca fait pas propre.
|
// ce fichier pourri traîner... Ca fait pas propre.
|
||||||
if (Erreur_fichier)
|
if (Erreur_fichier)
|
||||||
remove(Nom_du_fichier);
|
remove(Nom_du_fichier);
|
||||||
}
|
}
|
||||||
@ -1472,7 +1472,7 @@ void Test_LBM(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Ici, il reste les 16 derniŠres couleurs à modifier
|
// Ici, il reste les 16 dernières couleurs à modifier
|
||||||
for (I=240,J=0; J<16; I++,J++)
|
for (I=240,J=0; J<16; I++,J++)
|
||||||
{
|
{
|
||||||
Temp=Principal_Palette[J].R+8;
|
Temp=Principal_Palette[J].R+8;
|
||||||
@ -1686,14 +1686,14 @@ void Load_LBM(void)
|
|||||||
if ((Nb_couleurs==32) && (Header.BitPlanes==6))
|
if ((Nb_couleurs==32) && (Header.BitPlanes==6))
|
||||||
{ // Ce n'est pas une image HAM mais une image 64 coul.
|
{ // Ce n'est pas une image HAM mais une image 64 coul.
|
||||||
Image_HAM=1; // Sauvée en 32 coul. => il faut copier les 32 coul.
|
Image_HAM=1; // Sauvée en 32 coul. => il faut copier les 32 coul.
|
||||||
} // sur les 32 suivantes et assombrir ces derniŠres.
|
} // sur les 32 suivantes et assombrir ces dernières.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((Header.BitPlanes==6) || (Header.BitPlanes==8))
|
if ((Header.BitPlanes==6) || (Header.BitPlanes==8))
|
||||||
Image_HAM=Header.BitPlanes;
|
Image_HAM=Header.BitPlanes;
|
||||||
else
|
else
|
||||||
// Erreur_fichier=1; /* C'est censé être incorrect mais j'ai */
|
// Erreur_fichier=1; /* C'est censé être incorrect mais j'ai */
|
||||||
Image_HAM=0; /* trouvé un fichier comme ‡a, alors... */
|
Image_HAM=0; /* trouvé un fichier comme ça, alors... */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1925,11 +1925,11 @@ void Load_LBM(void)
|
|||||||
|
|
||||||
switch (LBM_Taille_de_file)
|
switch (LBM_Taille_de_file)
|
||||||
{
|
{
|
||||||
case 0 : // PremiŠre couleur
|
case 0 : // Première couleur
|
||||||
LBM_File_de_couleurs[0]=Couleur;
|
LBM_File_de_couleurs[0]=Couleur;
|
||||||
LBM_Taille_de_file=1;
|
LBM_Taille_de_file=1;
|
||||||
break;
|
break;
|
||||||
case 1 : // DeuxiŠme couleur
|
case 1 : // Deuxième couleur
|
||||||
Derniere_couleur=LBM_File_de_couleurs[0];
|
Derniere_couleur=LBM_File_de_couleurs[0];
|
||||||
LBM_Mode_repetition=(Derniere_couleur==Couleur);
|
LBM_Mode_repetition=(Derniere_couleur==Couleur);
|
||||||
LBM_File_de_couleurs[1]=Couleur;
|
LBM_File_de_couleurs[1]=Couleur;
|
||||||
@ -2481,7 +2481,7 @@ void Save_BMP(void)
|
|||||||
// 0 à 255 parce que le standard VGA c'est de 0 à 63 (logique!). Et
|
// 0 à 255 parce que le standard VGA c'est de 0 à 63 (logique!). Et
|
||||||
// puis comme c'est pas assez débile, on va aussi y rajouter un octet
|
// puis comme c'est pas assez débile, on va aussi y rajouter un octet
|
||||||
// toujours à 0 pour forcer les gens à s'acheter des gros disques
|
// toujours à 0 pour forcer les gens à s'acheter des gros disques
|
||||||
// durs... Comme ‡a, ‡a fera passer la pillule lorsqu'on sortira
|
// durs... Comme ça, ça fera passer la pillule lorsqu'on sortira
|
||||||
// Windows 95." ...
|
// Windows 95." ...
|
||||||
Palette_64_to_256(Principal_Palette);
|
Palette_64_to_256(Principal_Palette);
|
||||||
for (Indice=0; Indice<256; Indice++)
|
for (Indice=0; Indice<256; Indice++)
|
||||||
@ -2854,7 +2854,7 @@ void Load_GIF(void)
|
|||||||
Nb_couleurs=(1 << ((IDB.Indicateur & 0x07)+1));
|
Nb_couleurs=(1 << ((IDB.Indicateur & 0x07)+1));
|
||||||
Nb_bits_initial=(IDB.Indicateur & 0x07)+2;
|
Nb_bits_initial=(IDB.Indicateur & 0x07)+2;
|
||||||
|
|
||||||
// On commence par passer la palette en 256 comme ‡a, si la
|
// On commence par passer la palette en 256 comme ça, si la
|
||||||
// nouvelle palette a moins de 256 coul, la précédente ne
|
// nouvelle palette a moins de 256 coul, la précédente ne
|
||||||
// souffrira pas d'un assombrissement préjudiciable.
|
// souffrira pas d'un assombrissement préjudiciable.
|
||||||
Palette_64_to_256(Principal_Palette);
|
Palette_64_to_256(Principal_Palette);
|
||||||
@ -3066,11 +3066,11 @@ void Save_GIF(void)
|
|||||||
|
|
||||||
word * Alphabet_Prefixe; // Table des préfixes des codes
|
word * Alphabet_Prefixe; // Table des préfixes des codes
|
||||||
word * Alphabet_Suffixe; // Table des suffixes des codes
|
word * Alphabet_Suffixe; // Table des suffixes des codes
|
||||||
word * Alphabet_Fille; // Table des chaŒnes filles (plus longues)
|
word * Alphabet_Fille; // Table des chaînes filles (plus longues)
|
||||||
word * Alphabet_Soeur; // Table des chaŒnes soeurs (même longueur)
|
word * Alphabet_Soeur; // Table des chaînes soeurs (même longueur)
|
||||||
word Alphabet_Free; // Position libre dans l'alphabet
|
word Alphabet_Free; // Position libre dans l'alphabet
|
||||||
word Alphabet_Max; // Nombre d'entrées possibles dans l'alphabet
|
word Alphabet_Max; // Nombre d'entrées possibles dans l'alphabet
|
||||||
word Depart; // Code précédent (sert au linkage des chaŒnes)
|
word Depart; // Code précédent (sert au linkage des chaînes)
|
||||||
int Descente; // Booléen "On vient de descendre"
|
int Descente; // Booléen "On vient de descendre"
|
||||||
|
|
||||||
T_LSDB LSDB;
|
T_LSDB LSDB;
|
||||||
@ -3078,9 +3078,9 @@ void Save_GIF(void)
|
|||||||
|
|
||||||
|
|
||||||
byte Block_indicateur; // Code indicateur du type de bloc en cours
|
byte Block_indicateur; // Code indicateur du type de bloc en cours
|
||||||
word Chaine_en_cours; // Code de la chaŒne en cours de traitement
|
word Chaine_en_cours; // Code de la chaîne en cours de traitement
|
||||||
byte Caractere; // CaractŠre à coder
|
byte Caractere; // Caractère à coder
|
||||||
word Indice; // Indice de recherche de chaŒne
|
word Indice; // Indice de recherche de chaîne
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////// FIN DES DECLARATIONS //
|
/////////////////////////////////////////////////// FIN DES DECLARATIONS //
|
||||||
@ -3135,7 +3135,7 @@ void Save_GIF(void)
|
|||||||
{
|
{
|
||||||
// La palette a été correctement écrite.
|
// La palette a été correctement écrite.
|
||||||
|
|
||||||
// Le jour o— on se servira des blocks d'extensions pour placer
|
// Le jour où on se servira des blocks d'extensions pour placer
|
||||||
// des commentaires, on le fera ici.
|
// des commentaires, on le fera ici.
|
||||||
|
|
||||||
// On va écrire un block indicateur d'IDB et l'IDB du fichier
|
// On va écrire un block indicateur d'IDB et l'IDB du fichier
|
||||||
@ -3180,7 +3180,7 @@ void Save_GIF(void)
|
|||||||
{
|
{
|
||||||
Caractere=GIF_Pixel_suivant();
|
Caractere=GIF_Pixel_suivant();
|
||||||
|
|
||||||
// On regarde si dans la table on aurait pas une chaŒne
|
// On regarde si dans la table on aurait pas une chaîne
|
||||||
// équivalente à Chaine_en_cours+Caractere
|
// équivalente à Chaine_en_cours+Caractere
|
||||||
|
|
||||||
while ( (Indice<Alphabet_Free) &&
|
while ( (Indice<Alphabet_Free) &&
|
||||||
@ -3209,7 +3209,7 @@ void Save_GIF(void)
|
|||||||
else
|
else
|
||||||
Alphabet_Soeur[Depart]=Alphabet_Free;
|
Alphabet_Soeur[Depart]=Alphabet_Free;
|
||||||
|
|
||||||
// On rajoute la chaŒne Chaine_en_cours+Caractere à la table
|
// On rajoute la chaîne Chaine_en_cours+Caractere à la table
|
||||||
Alphabet_Prefixe[Alphabet_Free ]=Chaine_en_cours;
|
Alphabet_Prefixe[Alphabet_Free ]=Chaine_en_cours;
|
||||||
Alphabet_Suffixe[Alphabet_Free++]=Caractere;
|
Alphabet_Suffixe[Alphabet_Free++]=Caractere;
|
||||||
|
|
||||||
@ -3248,19 +3248,19 @@ void Save_GIF(void)
|
|||||||
if (!Erreur_fichier)
|
if (!Erreur_fichier)
|
||||||
{
|
{
|
||||||
// On écrit le code dans le fichier
|
// On écrit le code dans le fichier
|
||||||
GIF_Set_code(Chaine_en_cours); // DerniŠre portion d'image
|
GIF_Set_code(Chaine_en_cours); // Dernière portion d'image
|
||||||
|
|
||||||
// Cette derniŠre portion ne devrait pas poser de problŠmes
|
// Cette dernière portion ne devrait pas poser de problèmes
|
||||||
// du c“té GIF_Nb_bits puisque pour que GIF_Nb_bits change de
|
// du côté GIF_Nb_bits puisque pour que GIF_Nb_bits change de
|
||||||
// valeur, il faudrait que la table de chaŒne soit remplie or
|
// valeur, il faudrait que la table de chaîne soit remplie or
|
||||||
// c'est impossible puisqu'on traite une chaŒne qui se trouve
|
// c'est impossible puisqu'on traite une chaîne qui se trouve
|
||||||
// déjà dans la table, et qu'elle n'a rien d'inédit. Donc on
|
// déjà dans la table, et qu'elle n'a rien d'inédit. Donc on
|
||||||
// ne devrait pas avoir à changer de taille, mais je laisse
|
// ne devrait pas avoir à changer de taille, mais je laisse
|
||||||
// quand même en remarque tout ‡a, au cas o— il subsisterait
|
// quand même en remarque tout ça, au cas où il subsisterait
|
||||||
// des problŠmes dans certains cas exceptionnels.
|
// des problèmes dans certains cas exceptionnels.
|
||||||
//
|
//
|
||||||
// Note: de toutes fa‡ons, ces lignes en commentaires ont étés
|
// Note: de toutes façons, ces lignes en commentaires ont étés
|
||||||
// écrites par copier/coller du temps o— la sauvegarde du
|
// écrites par copier/coller du temps où la sauvegarde du
|
||||||
// GIF déconnait. Il y a donc fort à parier qu'elles ne
|
// GIF déconnait. Il y a donc fort à parier qu'elles ne
|
||||||
// sont pas correctes.
|
// sont pas correctes.
|
||||||
|
|
||||||
@ -3288,8 +3288,8 @@ void Save_GIF(void)
|
|||||||
GIF_Set_code(257); // Code de Fin d'image
|
GIF_Set_code(257); // Code de Fin d'image
|
||||||
if (GIF_Rest_bits!=0)
|
if (GIF_Rest_bits!=0)
|
||||||
GIF_Set_code(0); // Code bidon permettant de s'assurer que tous les bits du dernier code aient bien étés inscris dans le buffer GIF
|
GIF_Set_code(0); // Code bidon permettant de s'assurer que tous les bits du dernier code aient bien étés inscris dans le buffer GIF
|
||||||
GIF_Vider_le_buffer(); // On envoie les derniŠres données du buffer GIF dans le buffer KM
|
GIF_Vider_le_buffer(); // On envoie les dernières données du buffer GIF dans le buffer KM
|
||||||
Close_ecriture(GIF_Fichier); // On envoie les derniŠres données du buffer KM dans le fichier
|
Close_ecriture(GIF_Fichier); // On envoie les dernières données du buffer KM dans le fichier
|
||||||
|
|
||||||
Chaine_en_cours=0x3B00; // On écrit un GIF TERMINATOR, exigé par SVGA et SEA.
|
Chaine_en_cours=0x3B00; // On écrit un GIF TERMINATOR, exigé par SVGA et SEA.
|
||||||
if (! write_bytes(GIF_Fichier,&Chaine_en_cours,sizeof(Chaine_en_cours)))
|
if (! write_bytes(GIF_Fichier,&Chaine_en_cours,sizeof(Chaine_en_cours)))
|
||||||
@ -3351,7 +3351,7 @@ typedef struct
|
|||||||
word X_dpi; // |_ Densité de |_ (Presque inutile parce que
|
word X_dpi; // |_ Densité de |_ (Presque inutile parce que
|
||||||
word Y_dpi; // | l'image | aucun moniteur n'est pareil!)
|
word Y_dpi; // | l'image | aucun moniteur n'est pareil!)
|
||||||
byte Palette_16c[48]; // Palette 16 coul (inutile pour 256c) (débile!)
|
byte Palette_16c[48]; // Palette 16 coul (inutile pour 256c) (débile!)
|
||||||
byte Reserved; // Ca me plait ‡a aussi!
|
byte Reserved; // Ca me plait ça aussi!
|
||||||
byte Plane; // 4 => 16c , 1 => 256c , ...
|
byte Plane; // 4 => 16c , 1 => 256c , ...
|
||||||
word Bytes_per_plane_line;// Doit toujours être pair
|
word Bytes_per_plane_line;// Doit toujours être pair
|
||||||
word Palette_info; // 1 => Couleur , 2 => Gris (ignoré à partir de la version 4)
|
word Palette_info; // 1 => Couleur , 2 => Gris (ignoré à partir de la version 4)
|
||||||
@ -4884,7 +4884,7 @@ void Save_PI1(void)
|
|||||||
void PC1_Decompresser_PackBits(byte * Src,byte * Dst)
|
void PC1_Decompresser_PackBits(byte * Src,byte * Dst)
|
||||||
{
|
{
|
||||||
int is,id; // Les indices de parcour des buffers
|
int is,id; // Les indices de parcour des buffers
|
||||||
int n; // Octet de contr“le
|
int n; // Octet de contrôle
|
||||||
|
|
||||||
for (is=id=0;id<32000;)
|
for (is=id=0;id<32000;)
|
||||||
{
|
{
|
||||||
@ -4906,7 +4906,7 @@ void PC1_Decompresser_PackBits(byte * Src,byte * Dst)
|
|||||||
Dst[id++]=Src[is++];
|
Dst[id++]=Src[is++];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contr“le des erreurs
|
// Contrôle des erreurs
|
||||||
if (n>0)
|
if (n>0)
|
||||||
Erreur_fichier=1;
|
Erreur_fichier=1;
|
||||||
}
|
}
|
||||||
@ -4924,7 +4924,7 @@ void PC1_Compresser_PackBits(byte * Src,byte * Dst,int TailleS,int * TailleD)
|
|||||||
|
|
||||||
for (is=id=0;is<TailleS;)
|
for (is=id=0;is<TailleS;)
|
||||||
{
|
{
|
||||||
// On recherche le 1er endroit o— il y a répétition d'au moins 3 valeurs
|
// On recherche le 1er endroit où il y a répétition d'au moins 3 valeurs
|
||||||
// identiques
|
// identiques
|
||||||
|
|
||||||
repet=0;
|
repet=0;
|
||||||
@ -5234,18 +5234,18 @@ void Load_TGA(char * nom,Bitmap24B * dest,int * larg,int * haut)
|
|||||||
FILE* fichier;
|
FILE* fichier;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
byte Id_field_size; // Taille des donn‚es sp‚cifiques plac‚es aprŠs le header
|
byte Id_field_size; // Taille des données spécifiques placées après le header
|
||||||
byte Color_map_type; // Pr‚sence d'une palette
|
byte Color_map_type; // Présence d'une palette
|
||||||
byte Image_type_code; // Type d'image
|
byte Image_type_code; // Type d'image
|
||||||
word Color_map_origin; // Indice de d‚part de la palette
|
word Color_map_origin; // Indice de départ de la palette
|
||||||
word Color_map_length; // Taille de la palette
|
word Color_map_length; // Taille de la palette
|
||||||
byte Color_map_entry_size; // Palette sur 16, 24 ou 32 bits
|
byte Color_map_entry_size; // Palette sur 16, 24 ou 32 bits
|
||||||
word X_origin; // Coordonn‚es de d‚part
|
word X_origin; // Coordonnées de départ
|
||||||
word Y_origin;
|
word Y_origin;
|
||||||
word Width; // Largeur de l'image
|
word Width; // Largeur de l'image
|
||||||
word Height; // Hauteur de l'image
|
word Height; // Hauteur de l'image
|
||||||
byte Pixel_size; // Pixels sur 16, 24 ou 32 bits
|
byte Pixel_size; // Pixels sur 16, 24 ou 32 bits
|
||||||
byte Descriptor; // ParamŠtres divers
|
byte Descriptor; // Paramètres divers
|
||||||
} TGA_Header;
|
} TGA_Header;
|
||||||
int x,y,py,skip,t;
|
int x,y,py,skip,t;
|
||||||
byte * buffer;
|
byte * buffer;
|
||||||
@ -5302,7 +5302,7 @@ void Load_TGA(char * nom,Bitmap24B * dest,int * larg,int * haut)
|
|||||||
buffer[(x*3)+2]=t;
|
buffer[(x*3)+2]=t;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prise en compte du sens d'‚criture verticale
|
// Prise en compte du sens d'écriture verticale
|
||||||
if (TGA_Header.Descriptor & 0x20)
|
if (TGA_Header.Descriptor & 0x20)
|
||||||
py=y;
|
py=y;
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// Diff‚rentes tables utilis‚es pour les changements de modes vid‚os X
|
// Différentes tables utilisées pour les changements de modes vidéos X
|
||||||
|
|
||||||
/*
|
/*
|
||||||
word X376Y564[] =
|
word X376Y564[] =
|
||||||
@ -172,7 +172,7 @@ word X400Y600[] =
|
|||||||
0x0008, 0x6009, 0x7C10, 0x8C11, 0x5712, 0x3213, 0x0014, 0x5815, 0x7016,
|
0x0008, 0x6009, 0x7C10, 0x8C11, 0x5712, 0x3213, 0x0014, 0x5815, 0x7016,
|
||||||
0xE317 };
|
0xE317 };
|
||||||
|
|
||||||
// Diff‚rentes tables utilis‚es pour les modifications de modes vid‚os VESA
|
// Différentes tables utilisées pour les modifications de modes vidéos VESA
|
||||||
|
|
||||||
word Y224[] =
|
word Y224[] =
|
||||||
{ 0x09A3, 0x6F06, 0xBA07, 0x0008, 0x4109, 0x0810, 0x8A11, 0xBF12, 0xC715,
|
{ 0x09A3, 0x6F06, 0xBA07, 0x0008, 0x4109, 0x0810, 0x8A11, 0xBF12, 0xC715,
|
||||||
|
|||||||
18
moteur.c
18
moteur.c
@ -278,9 +278,9 @@ void Desenclencher_bouton(int Numero)
|
|||||||
{
|
{
|
||||||
if (Bouton[Numero].Enfonce)
|
if (Bouton[Numero].Enfonce)
|
||||||
{
|
{
|
||||||
// On affiche le cadre autour du bouton de fa‡on à ce qu'il paraisse relƒché
|
// On affiche le cadre autour du bouton de façon à ce qu'il paraisse relâché
|
||||||
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE);
|
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE);
|
||||||
// On considère que le bouton est relƒché
|
// On considère que le bouton est relâché
|
||||||
Bouton[Numero].Enfonce=BOUTON_RELACHE;
|
Bouton[Numero].Enfonce=BOUTON_RELACHE;
|
||||||
// On appelle le désenclenchement particulier au bouton:
|
// On appelle le désenclenchement particulier au bouton:
|
||||||
Bouton[Numero].Desenclencher();
|
Bouton[Numero].Desenclencher();
|
||||||
@ -339,12 +339,12 @@ void Enclencher_bouton(int Numero,byte Click)
|
|||||||
Desenclencher_bouton(Curseur);
|
Desenclencher_bouton(Curseur);
|
||||||
}
|
}
|
||||||
|
|
||||||
// On affiche le cadre autour du bouton de fa‡on à ce qu'il paraisse enfoncé
|
// On affiche le cadre autour du bouton de façon à ce qu'il paraisse enfoncé
|
||||||
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_ENFONCE);
|
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_ENFONCE);
|
||||||
|
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
// On attend ensuite que l'utilisateur lƒche son bouton:
|
// On attend ensuite que l'utilisateur lâche son bouton:
|
||||||
Attendre_fin_de_click();
|
Attendre_fin_de_click();
|
||||||
|
|
||||||
// On considère que le bouton est enfoncé
|
// On considère que le bouton est enfoncé
|
||||||
@ -978,7 +978,7 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
|||||||
Fenetre_Liste_boutons_special =NULL;
|
Fenetre_Liste_boutons_special =NULL;
|
||||||
Nb_boutons_fenetre =0;
|
Nb_boutons_fenetre =0;
|
||||||
|
|
||||||
// On (re)passe dans le clavier de départ (fran‡ais pour nous)
|
// On (re)passe dans le clavier de départ (français pour nous)
|
||||||
Clavier_de_depart();
|
Clavier_de_depart();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1024,7 +1024,7 @@ void Fermer_fenetre(void)
|
|||||||
|
|
||||||
Une_fenetre_est_ouverte=0;
|
Une_fenetre_est_ouverte=0;
|
||||||
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
|
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
|
||||||
// d'outils si le curseur est sur une ic“ne.
|
// d'outils si le curseur est sur une icône.
|
||||||
|
|
||||||
Calculer_coordonnees_pinceau();
|
Calculer_coordonnees_pinceau();
|
||||||
|
|
||||||
@ -1433,7 +1433,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
|||||||
short Ancien_X=-1;
|
short Ancien_X=-1;
|
||||||
short Ancien_Y=-1;
|
short Ancien_Y=-1;
|
||||||
short Indice;
|
short Indice;
|
||||||
short A,B,C,D; // Variables temporaires et multitƒches...
|
short A,B,C,D; // Variables temporaires et multitâches...
|
||||||
byte * Buffer;
|
byte * Buffer;
|
||||||
char Chaine[25];
|
char Chaine[25];
|
||||||
byte Cacher_curseur_avant_recuperation;
|
byte Cacher_curseur_avant_recuperation;
|
||||||
@ -1460,7 +1460,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
|||||||
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
|
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
|
||||||
B=Cacher_pinceau;
|
B=Cacher_pinceau;
|
||||||
Cacher_pinceau=1;
|
Cacher_pinceau=1;
|
||||||
C=-1; // Couleur pointée: au début aucune, comme ‡a on initialise tout
|
C=-1; // Couleur pointée: au début aucune, comme ça on initialise tout
|
||||||
if (Menu_visible_avant_fenetre)
|
if (Menu_visible_avant_fenetre)
|
||||||
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
|
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
|
||||||
|
|
||||||
@ -1740,7 +1740,7 @@ short Fenetre_Numero_bouton_clicke(void)
|
|||||||
|
|
||||||
Hauteur_maxi_jauge=(Temp3->Hauteur-24);
|
Hauteur_maxi_jauge=(Temp3->Hauteur-24);
|
||||||
|
|
||||||
// Fenetre_Attribut2 re‡oit la position dans la jauge correspondant au click
|
// Fenetre_Attribut2 reçoit la position dans la jauge correspondant au click
|
||||||
Fenetre_Attribut2 =(Mouse_Y-Fenetre_Pos_Y) / Menu_Facteur_Y;
|
Fenetre_Attribut2 =(Mouse_Y-Fenetre_Pos_Y) / Menu_Facteur_Y;
|
||||||
Fenetre_Attribut2-=(Temp3->Pos_Y+12+((Temp3->Hauteur_curseur-1)>>1));
|
Fenetre_Attribut2-=(Temp3->Pos_Y+12+((Temp3->Hauteur_curseur-1)>>1));
|
||||||
Fenetre_Attribut2*=(Temp3->Nb_elements-Temp3->Nb_visibles);
|
Fenetre_Attribut2*=(Temp3->Nb_elements-Temp3->Nb_visibles);
|
||||||
|
|||||||
34
op_asm.h
34
op_asm.h
@ -4,7 +4,7 @@
|
|||||||
void OPASM_DitherFS_6123(
|
void OPASM_DitherFS_6123(
|
||||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||||
Bitmap24B Source, // Idem mais sur la source
|
Bitmap24B Source, // Idem mais sur la source
|
||||||
int Largeur, // Largeur … traiter, =(largeur_image-2), (>0)
|
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||||
struct Composantes * Palette, // Palette de l'image destination
|
struct Composantes * Palette, // Palette de l'image destination
|
||||||
byte * TableC, // Table de conversion 24b->8b
|
byte * TableC, // Table de conversion 24b->8b
|
||||||
byte ReducR, // 8-Nb_bits_rouges
|
byte ReducR, // 8-Nb_bits_rouges
|
||||||
@ -16,7 +16,7 @@ void OPASM_DitherFS_6123(
|
|||||||
void OPASM_DitherFS_623(
|
void OPASM_DitherFS_623(
|
||||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||||
Bitmap24B Source, // Idem mais sur la source
|
Bitmap24B Source, // Idem mais sur la source
|
||||||
int Largeur, // Largeur … traiter, =(largeur_image-2), (>0)
|
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||||
struct Composantes * Palette, // Palette de l'image destination
|
struct Composantes * Palette, // Palette de l'image destination
|
||||||
byte * TableC, // Table de conversion 24b->8b
|
byte * TableC, // Table de conversion 24b->8b
|
||||||
byte ReducR, // 8-Nb_bits_rouges
|
byte ReducR, // 8-Nb_bits_rouges
|
||||||
@ -28,7 +28,7 @@ void OPASM_DitherFS_623(
|
|||||||
void OPASM_DitherFS_12(
|
void OPASM_DitherFS_12(
|
||||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||||
Bitmap24B Source, // Idem mais sur la source
|
Bitmap24B Source, // Idem mais sur la source
|
||||||
int Largeur, // Largeur … traiter, =(largeur_image-2), (>0)
|
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||||
struct Composantes * Palette, // Palette de l'image destination
|
struct Composantes * Palette, // Palette de l'image destination
|
||||||
byte * TableC, // Table de conversion 24b->8b
|
byte * TableC, // Table de conversion 24b->8b
|
||||||
byte ReducR, // 8-Nb_bits_rouges
|
byte ReducR, // 8-Nb_bits_rouges
|
||||||
@ -40,7 +40,7 @@ void OPASM_DitherFS_12(
|
|||||||
void OPASM_DitherFS_6(
|
void OPASM_DitherFS_6(
|
||||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||||
Bitmap24B Source, // Idem mais sur la source
|
Bitmap24B Source, // Idem mais sur la source
|
||||||
int Largeur, // Largeur … traiter, =(largeur_image-1), (>0)
|
int Largeur, // Largeur à traiter, =(largeur_image-1), (>0)
|
||||||
struct Composantes * Palette, // Palette de l'image destination
|
struct Composantes * Palette, // Palette de l'image destination
|
||||||
byte * TableC, // Table de conversion 24b->8b
|
byte * TableC, // Table de conversion 24b->8b
|
||||||
byte ReducR, // 8-Nb_bits_rouges
|
byte ReducR, // 8-Nb_bits_rouges
|
||||||
@ -62,7 +62,7 @@ void OPASM_DitherFS(
|
|||||||
void OPASM_DitherFS_2(
|
void OPASM_DitherFS_2(
|
||||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la colonne
|
Bitmap256 Destination, // Pointeur sur le 1er pixel de la colonne
|
||||||
Bitmap24B Source, // Idem mais sur la source
|
Bitmap24B Source, // Idem mais sur la source
|
||||||
int Hauteur, // Hauteur … traiter, =(hauteur_image-1), (>0)
|
int Hauteur, // Hauteur à traiter, =(hauteur_image-1), (>0)
|
||||||
struct Composantes * Palette, // Palette de l'image destination
|
struct Composantes * Palette, // Palette de l'image destination
|
||||||
byte * TableC, // Table de conversion 24b->8b
|
byte * TableC, // Table de conversion 24b->8b
|
||||||
byte ReducR, // 8-Nb_bits_rouges
|
byte ReducR, // 8-Nb_bits_rouges
|
||||||
@ -92,9 +92,9 @@ void OPASM_Analyser_cluster(
|
|||||||
int rdec, // rdec
|
int rdec, // rdec
|
||||||
int vdec, // vdec
|
int vdec, // vdec
|
||||||
int bdec, // bdec
|
int bdec, // bdec
|
||||||
int rinc, // Incr‚mentation sur les rouges 1 << rdec
|
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||||
int vinc, // Incr‚mentation sur les verts 1 << vdec
|
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||||
int binc, // Incr‚mentation sur les bleus 1 << bdec
|
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||||
int * Nbocc); // Nombre d'occurences
|
int * Nbocc); // Nombre d'occurences
|
||||||
|
|
||||||
void OPASM_Split_cluster_Rouge(
|
void OPASM_Split_cluster_Rouge(
|
||||||
@ -105,9 +105,9 @@ void OPASM_Split_cluster_Rouge(
|
|||||||
int rmax, // rmax << rdec
|
int rmax, // rmax << rdec
|
||||||
int vmax, // vmin << vdec
|
int vmax, // vmin << vdec
|
||||||
int bmax, // bmin << bdec
|
int bmax, // bmin << bdec
|
||||||
int rinc, // Incr‚mentation sur les rouges 1 << rdec
|
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||||
int vinc, // Incr‚mentation sur les verts 1 << vdec
|
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||||
int binc, // Incr‚mentation sur les bleus 1 << bdec
|
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||||
int limite, // Nombre d'occurences minimales
|
int limite, // Nombre d'occurences minimales
|
||||||
int rdec, // rdec
|
int rdec, // rdec
|
||||||
int * rouge); // Valeur du rouge atteignant la limite
|
int * rouge); // Valeur du rouge atteignant la limite
|
||||||
@ -120,9 +120,9 @@ void OPASM_Split_cluster_Vert(
|
|||||||
int rmax, // rmax << rdec
|
int rmax, // rmax << rdec
|
||||||
int vmax, // vmin << vdec
|
int vmax, // vmin << vdec
|
||||||
int bmax, // bmin << bdec
|
int bmax, // bmin << bdec
|
||||||
int rinc, // Incr‚mentation sur les rouges 1 << rdec
|
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||||
int vinc, // Incr‚mentation sur les verts 1 << vdec
|
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||||
int binc, // Incr‚mentation sur les bleus 1 << bdec
|
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||||
int limite, // Nombre d'occurences minimales
|
int limite, // Nombre d'occurences minimales
|
||||||
int vdec, // vdec
|
int vdec, // vdec
|
||||||
int * vert); // Valeur du vert atteignant la limite
|
int * vert); // Valeur du vert atteignant la limite
|
||||||
@ -135,9 +135,9 @@ void OPASM_Split_cluster_Bleu(
|
|||||||
int rmax, // rmax << rdec
|
int rmax, // rmax << rdec
|
||||||
int vmax, // vmin << vdec
|
int vmax, // vmin << vdec
|
||||||
int bmax, // bmin << bdec
|
int bmax, // bmin << bdec
|
||||||
int rinc, // Incr‚mentation sur les rouges 1 << rdec
|
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||||
int vinc, // Incr‚mentation sur les verts 1 << vdec
|
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||||
int binc, // Incr‚mentation sur les bleus 1 << bdec
|
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||||
int limite, // Nombre d'occurences minimales
|
int limite, // Nombre d'occurences minimales
|
||||||
int bdec, // bdec
|
int bdec, // bdec
|
||||||
int * bleu); // Valeur du bleu atteignant la limite
|
int * bleu); // Valeur du bleu atteignant la limite
|
||||||
|
|||||||
44
operatio.c
44
operatio.c
@ -729,7 +729,7 @@ void Rectangle_12_0(void)
|
|||||||
|
|
||||||
if ((Config.Coords_rel) && (Menu_visible))
|
if ((Config.Coords_rel) && (Menu_visible))
|
||||||
Print_dans_menu("\035: 1 \022: 1",0);
|
Print_dans_menu("\035: 1 \022: 1",0);
|
||||||
// On laisse une trace du curseur … l'écran
|
// On laisse une trace du curseur à l'écran
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
if (Mouse_K==A_GAUCHE)
|
if (Mouse_K==A_GAUCHE)
|
||||||
@ -2406,7 +2406,7 @@ void Polyform_12_8(void)
|
|||||||
// On efface la preview du segment validé:
|
// On efface la preview du segment validé:
|
||||||
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
||||||
|
|
||||||
// On l'affiche de fa‡on définitive:
|
// On l'affiche de façon définitive:
|
||||||
Tracer_ligne_Definitif(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
|
Tracer_ligne_Definitif(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
|
||||||
|
|
||||||
// Et on affiche un pixel de preview en (Pinceau_X,Pinceau_Y):
|
// Et on affiche un pixel de preview en (Pinceau_X,Pinceau_Y):
|
||||||
@ -2438,7 +2438,7 @@ void Polyform_12_8(void)
|
|||||||
// On efface la preview du segment annulé:
|
// On efface la preview du segment annulé:
|
||||||
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
||||||
|
|
||||||
// On affiche de fa‡on définitive le bouclage du polygone:
|
// On affiche de façon définitive le bouclage du polygone:
|
||||||
Tracer_ligne_Definitif(Debut_X,Debut_Y,Initial_X,Initial_Y,Couleur);
|
Tracer_ligne_Definitif(Debut_X,Debut_Y,Initial_X,Initial_Y,Couleur);
|
||||||
|
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
@ -2473,7 +2473,7 @@ void Polyform_0_8(void)
|
|||||||
Operation_POP(&Debut_X);
|
Operation_POP(&Debut_X);
|
||||||
Operation_POP(&Couleur);
|
Operation_POP(&Couleur);
|
||||||
|
|
||||||
// On met … jour l'affichage de la preview du prochain segment:
|
// On met à jour l'affichage de la preview du prochain segment:
|
||||||
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
|
||||||
Tracer_ligne_Preview (Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
|
Tracer_ligne_Preview (Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
|
||||||
|
|
||||||
@ -2568,7 +2568,7 @@ void Filled_polyform_12_8(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Print_coordonnees();
|
Print_coordonnees();
|
||||||
|
|
||||||
// On le place … l'écran
|
// On le place à l'écran
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
||||||
|
|
||||||
@ -2597,7 +2597,7 @@ void Filled_polyform_12_8(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Print_coordonnees();
|
Print_coordonnees();
|
||||||
|
|
||||||
// On le place … l'écran
|
// On le place à l'écran
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
@ -2671,7 +2671,7 @@ void Filled_polyform_0_8(void)
|
|||||||
Operation_POP(&Debut_Y);
|
Operation_POP(&Debut_Y);
|
||||||
Operation_POP(&Debut_X);
|
Operation_POP(&Debut_X);
|
||||||
|
|
||||||
// On met … jour l'affichage de la preview du prochain segment:
|
// On met à jour l'affichage de la preview du prochain segment:
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
||||||
|
|
||||||
@ -2703,14 +2703,14 @@ void Brosse_12_0(void)
|
|||||||
if (Mouse_K==A_DROITE) // Besoin d'effacer la brosse après ?
|
if (Mouse_K==A_DROITE) // Besoin d'effacer la brosse après ?
|
||||||
{
|
{
|
||||||
Operation_PUSH(1);
|
Operation_PUSH(1);
|
||||||
// Puisque la zone o— on prend la brosse sera effacée, on fait un backup
|
// Puisque la zone où on prend la brosse sera effacée, on fait un backup
|
||||||
Backup();
|
Backup();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Operation_PUSH(0);
|
Operation_PUSH(0);
|
||||||
|
|
||||||
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser
|
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser
|
||||||
// o— demarre sa brosse:
|
// où demarre sa brosse:
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
Operation_PUSH(Pinceau_X); // Début X
|
Operation_PUSH(Pinceau_X); // Début X
|
||||||
@ -2797,7 +2797,7 @@ void Brosse_0_5(void)
|
|||||||
Ancien_Pinceau_Y=Pinceau_Y;
|
Ancien_Pinceau_Y=Pinceau_Y;
|
||||||
Pinceau_X=Debut_X;
|
Pinceau_X=Debut_X;
|
||||||
Pinceau_Y=Debut_Y;
|
Pinceau_Y=Debut_Y;
|
||||||
Effacer_curseur(); // Maintenant, il n'y a plus de croix … l'écran.
|
Effacer_curseur(); // Maintenant, il n'y a plus de croix à l'écran.
|
||||||
|
|
||||||
Pinceau_X=Ancien_Pinceau_X;
|
Pinceau_X=Ancien_Pinceau_X;
|
||||||
Pinceau_Y=Ancien_Pinceau_Y;
|
Pinceau_Y=Ancien_Pinceau_Y;
|
||||||
@ -2836,12 +2836,12 @@ void Brosse_0_5(void)
|
|||||||
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
||||||
if (Config.Auto_discontinuous)
|
if (Config.Auto_discontinuous)
|
||||||
{
|
{
|
||||||
// On se place en mode Dessin discontinu … la main
|
// On se place en mode Dessin discontinu à la main
|
||||||
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
||||||
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
||||||
}
|
}
|
||||||
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
||||||
// d'appel … cette action:
|
// d'appel à cette action:
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On passe en brosse couleur:
|
// On passe en brosse couleur:
|
||||||
@ -2891,7 +2891,7 @@ void Polybrosse_12_8(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Print_coordonnees();
|
Print_coordonnees();
|
||||||
|
|
||||||
// On le place … l'écran
|
// On le place à l'écran
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
||||||
|
|
||||||
@ -2920,7 +2920,7 @@ void Polybrosse_12_8(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Print_coordonnees();
|
Print_coordonnees();
|
||||||
|
|
||||||
// On le place … l'écran
|
// On le place à l'écran
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
|
||||||
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
@ -2982,12 +2982,12 @@ void Polybrosse_12_8(void)
|
|||||||
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
||||||
if (Config.Auto_discontinuous)
|
if (Config.Auto_discontinuous)
|
||||||
{
|
{
|
||||||
// On se place en mode Dessin discontinu … la main
|
// On se place en mode Dessin discontinu à la main
|
||||||
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
||||||
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
||||||
}
|
}
|
||||||
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
||||||
// d'appel … cette action:
|
// d'appel à cette action:
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On passe en brosse couleur:
|
// On passe en brosse couleur:
|
||||||
@ -3014,7 +3014,7 @@ void Etirer_brosse_12_0(void)
|
|||||||
if (Mouse_K==A_GAUCHE)
|
if (Mouse_K==A_GAUCHE)
|
||||||
{
|
{
|
||||||
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser
|
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser
|
||||||
// o— demarre sa brosse:
|
// où demarre sa brosse:
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
Operation_PUSH(Pinceau_X); // Dernier calcul X
|
Operation_PUSH(Pinceau_X); // Dernier calcul X
|
||||||
@ -3276,12 +3276,12 @@ void Etirer_brosse_2_7(void)
|
|||||||
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
||||||
if (Config.Auto_discontinuous)
|
if (Config.Auto_discontinuous)
|
||||||
{
|
{
|
||||||
// On se place en mode Dessin discontinu … la main
|
// On se place en mode Dessin discontinu à la main
|
||||||
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
||||||
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
||||||
}
|
}
|
||||||
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
||||||
// d'appel … cette action:
|
// d'appel à cette action:
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On passe en brosse couleur:
|
// On passe en brosse couleur:
|
||||||
@ -3501,7 +3501,7 @@ void Tourner_brosse_2_5(void)
|
|||||||
Operation_POP(&Calcul_Y);
|
Operation_POP(&Calcul_Y);
|
||||||
Operation_POP(&Calcul_X);
|
Operation_POP(&Calcul_X);
|
||||||
|
|
||||||
// Calcul de l'angle par rapport … la dernière position calculée
|
// Calcul de l'angle par rapport à la dernière position calculée
|
||||||
if ( (Brosse_Centre_rotation_X==Calcul_X)
|
if ( (Brosse_Centre_rotation_X==Calcul_X)
|
||||||
&& (Brosse_Centre_rotation_Y==Calcul_Y) )
|
&& (Brosse_Centre_rotation_Y==Calcul_Y) )
|
||||||
Angle=0.0;
|
Angle=0.0;
|
||||||
@ -3525,12 +3525,12 @@ void Tourner_brosse_2_5(void)
|
|||||||
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
|
||||||
if (Config.Auto_discontinuous)
|
if (Config.Auto_discontinuous)
|
||||||
{
|
{
|
||||||
// On se place en mode Dessin discontinu … la main
|
// On se place en mode Dessin discontinu à la main
|
||||||
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
|
||||||
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
|
||||||
}
|
}
|
||||||
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
|
||||||
// d'appel … cette action:
|
// d'appel à cette action:
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On passe en brosse couleur:
|
// On passe en brosse couleur:
|
||||||
|
|||||||
52
pages.c
52
pages.c
@ -71,7 +71,7 @@ void Download_infos_page_principal(S_Page * Page)
|
|||||||
Principal_Decalage_X=Page->Decalage_X;
|
Principal_Decalage_X=Page->Decalage_X;
|
||||||
Principal_Decalage_Y=Page->Decalage_Y;
|
Principal_Decalage_Y=Page->Decalage_Y;
|
||||||
|
|
||||||
// On corrige les décalages en fonction de la dimension de l'‚cran
|
// On corrige les décalages en fonction de la dimension de l'écran
|
||||||
if ( (Principal_Decalage_X>0) &&
|
if ( (Principal_Decalage_X>0) &&
|
||||||
(Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image) )
|
(Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image) )
|
||||||
Principal_Decalage_X=Max(0,Principal_Largeur_image-Largeur_ecran);
|
Principal_Decalage_X=Max(0,Principal_Largeur_image-Largeur_ecran);
|
||||||
@ -91,7 +91,7 @@ void Download_infos_page_principal(S_Page * Page)
|
|||||||
Loupe_Decalage_X=Page->Loupe_Decalage_X;
|
Loupe_Decalage_X=Page->Loupe_Decalage_X;
|
||||||
Loupe_Decalage_Y=Page->Loupe_Decalage_Y;
|
Loupe_Decalage_Y=Page->Loupe_Decalage_Y;
|
||||||
|
|
||||||
// Comme le facteur de zoom a des chances d'avoir chang‚, on appelle
|
// Comme le facteur de zoom a des chances d'avoir changé, on appelle
|
||||||
// "Changer_facteur_loupe".
|
// "Changer_facteur_loupe".
|
||||||
for (Indice_facteur=0; FACTEUR_ZOOM[Indice_facteur]!=Loupe_Facteur; Indice_facteur++);
|
for (Indice_facteur=0; FACTEUR_ZOOM[Indice_facteur]!=Loupe_Facteur; Indice_facteur++);
|
||||||
Changer_facteur_loupe(Indice_facteur);
|
Changer_facteur_loupe(Indice_facteur);
|
||||||
@ -329,7 +329,7 @@ int Taille_d_une_liste_de_pages(S_Liste_de_pages * Liste)
|
|||||||
|
|
||||||
void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
||||||
{
|
{
|
||||||
// Cette fonction fait l'‚quivalent d'un "Undo" dans la liste de pages.
|
// Cette fonction fait l'équivalent d'un "Undo" dans la liste de pages.
|
||||||
// Elle effectue une sorte de ROL (Rotation Left) sur la liste:
|
// Elle effectue une sorte de ROL (Rotation Left) sur la liste:
|
||||||
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
|
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
|
||||||
// º0º1³2³3³4³5³6³7³8³9³Aº |
|
// º0º1³2³3³4³5³6³7³8³9³Aº |
|
||||||
@ -372,7 +372,7 @@ void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
|||||||
|
|
||||||
void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
||||||
{
|
{
|
||||||
// Cette fonction fait l'‚quivalent d'un "Redo" dans la liste de pages.
|
// Cette fonction fait l'équivalent d'un "Redo" dans la liste de pages.
|
||||||
// Elle effectue une sorte de ROR (Rotation Right) sur la liste:
|
// Elle effectue une sorte de ROR (Rotation Right) sur la liste:
|
||||||
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
|
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
|
||||||
// º0º1³2³3³4³5³6³7³8³9³Aº |
|
// º0º1³2³3³4³5³6³7³8³9³Aº |
|
||||||
@ -502,7 +502,7 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// On manque de mémoire ou la Liste_courante est pleine. Dans tous les
|
// On manque de mémoire ou la Liste_courante est pleine. Dans tous les
|
||||||
// cas, il faut libérer une page... qui peut-ˆtre pourra re-servir.
|
// cas, il faut libérer une page... qui peut-être pourra re-servir.
|
||||||
|
|
||||||
// Tant qu'il faut libérer
|
// Tant qu'il faut libérer
|
||||||
while (Il_faut_liberer)
|
while (Il_faut_liberer)
|
||||||
@ -531,13 +531,13 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
|
|||||||
// la liste)
|
// la liste)
|
||||||
Page_a_supprimer=Liste_a_raboter->Pages+(Liste_a_raboter->Nb_pages_allouees)-1;
|
Page_a_supprimer=Liste_a_raboter->Pages+(Liste_a_raboter->Nb_pages_allouees)-1;
|
||||||
|
|
||||||
// On regarde si on peut recycler directement la page (cas o— elle
|
// On regarde si on peut recycler directement la page (cas où elle
|
||||||
// aurait la mˆme surface que la Nouvelle_page)
|
// aurait la même surface que la Nouvelle_page)
|
||||||
if ((Page_a_supprimer->Hauteur*Page_a_supprimer->Largeur)==
|
if ((Page_a_supprimer->Hauteur*Page_a_supprimer->Largeur)==
|
||||||
(Nouvelle_page->Hauteur*Nouvelle_page->Largeur))
|
(Nouvelle_page->Hauteur*Nouvelle_page->Largeur))
|
||||||
{
|
{
|
||||||
// Alors
|
// Alors
|
||||||
// On récupère le bitmap de la page à supprimer (‚vite de faire des
|
// On récupère le bitmap de la page à supprimer (évite de faire des
|
||||||
// allocations/désallocations fastidieuses et inutiles)
|
// allocations/désallocations fastidieuses et inutiles)
|
||||||
Nouvelle_page->Image=Page_a_supprimer->Image;
|
Nouvelle_page->Image=Page_a_supprimer->Image;
|
||||||
|
|
||||||
@ -567,11 +567,11 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// D'après l'hypothèse de départ, la boucle ci-dessus doit s'arrˆter car
|
// D'après l'hypothèse de départ, la boucle ci-dessus doit s'arrêter car
|
||||||
// on a assez de mémoire pour allouer la nouvelle page.
|
// on a assez de mémoire pour allouer la nouvelle page.
|
||||||
// Désormais Nouvelle_page contient un pointeur sur une zone bitmap valide.
|
// Désormais Nouvelle_page contient un pointeur sur une zone bitmap valide.
|
||||||
|
|
||||||
// Décaler la Liste_courante d'un cran vers le pass‚.
|
// Décaler la Liste_courante d'un cran vers le passé.
|
||||||
for (Indice=Liste_courante->Taille_liste-1;Indice>0;Indice--)
|
for (Indice=Liste_courante->Taille_liste-1;Indice>0;Indice--)
|
||||||
Copier_S_page(Liste_courante->Pages+Indice,Liste_courante->Pages+Indice-1);
|
Copier_S_page(Liste_courante->Pages+Indice,Liste_courante->Pages+Indice-1);
|
||||||
|
|
||||||
@ -622,7 +622,7 @@ void Detruire_la_page_courante_d_une_liste(S_Liste_de_pages * Liste)
|
|||||||
// destruction il ne reste pas encore au moins une page.
|
// destruction il ne reste pas encore au moins une page.
|
||||||
if (Liste->Nb_pages_allouees>1)
|
if (Liste->Nb_pages_allouees>1)
|
||||||
{
|
{
|
||||||
// On fait faire un undo à la liste, comme ‡a, la nouvelle page courante
|
// On fait faire un undo à la liste, comme ça, la nouvelle page courante
|
||||||
// est la page précédente
|
// est la page précédente
|
||||||
Reculer_dans_une_liste_de_pages(Principal_Backups);
|
Reculer_dans_une_liste_de_pages(Principal_Backups);
|
||||||
|
|
||||||
@ -667,7 +667,7 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
|
|||||||
Download_infos_page_principal(Page);
|
Download_infos_page_principal(Page);
|
||||||
Download_infos_backup(Principal_Backups);
|
Download_infos_backup(Principal_Backups);
|
||||||
|
|
||||||
// Maintenant, on regarde si on a le droit de créer la mˆme page dans
|
// Maintenant, on regarde si on a le droit de créer la même page dans
|
||||||
// la page de brouillon.
|
// la page de brouillon.
|
||||||
if (Nouvelle_page_possible(Page,Brouillon_Backups,Principal_Backups))
|
if (Nouvelle_page_possible(Page,Brouillon_Backups,Principal_Backups))
|
||||||
{
|
{
|
||||||
@ -718,7 +718,7 @@ void Detruire_les_listes_de_backups_en_fin_de_programme(void)
|
|||||||
while (Brouillon_Backups->Nb_pages_allouees>0)
|
while (Brouillon_Backups->Nb_pages_allouees>0)
|
||||||
Detruire_derniere_page_allouee_de_la_liste(Brouillon_Backups);
|
Detruire_derniere_page_allouee_de_la_liste(Brouillon_Backups);
|
||||||
|
|
||||||
// Puis on peut détruire les structures de liste elles-mˆmes
|
// Puis on peut détruire les structures de liste elles-mêmes
|
||||||
Liberer_une_liste_de_pages(Principal_Backups);
|
Liberer_une_liste_de_pages(Principal_Backups);
|
||||||
Liberer_une_liste_de_pages(Brouillon_Backups);
|
Liberer_une_liste_de_pages(Brouillon_Backups);
|
||||||
free(Principal_Backups);
|
free(Principal_Backups);
|
||||||
@ -744,7 +744,7 @@ int Backup_avec_nouvelles_dimensions(int Upload,int Largeur,int Hauteur)
|
|||||||
int Retour=0;
|
int Retour=0;
|
||||||
|
|
||||||
if (Upload)
|
if (Upload)
|
||||||
// On remet à jour l'‚tat des infos de la page courante (pour pouvoir les
|
// On remet à jour l'état des infos de la page courante (pour pouvoir les
|
||||||
// retrouver plus tard)
|
// retrouver plus tard)
|
||||||
Upload_infos_page_principal(Principal_Backups->Pages);
|
Upload_infos_page_principal(Principal_Backups->Pages);
|
||||||
|
|
||||||
@ -779,7 +779,7 @@ int Backuper_et_redimensionner_brouillon(int Largeur,int Hauteur)
|
|||||||
S_Page * Nouvelle_page;
|
S_Page * Nouvelle_page;
|
||||||
int Retour=0;
|
int Retour=0;
|
||||||
|
|
||||||
// On remet à jour l'‚tat des infos de la page de brouillon (pour pouvoir
|
// On remet à jour l'état des infos de la page de brouillon (pour pouvoir
|
||||||
// les retrouver plus tard)
|
// les retrouver plus tard)
|
||||||
Upload_infos_page_brouillon(Brouillon_Backups->Pages);
|
Upload_infos_page_brouillon(Brouillon_Backups->Pages);
|
||||||
|
|
||||||
@ -835,7 +835,7 @@ void Backup(void)
|
|||||||
|
|
||||||
void Undo(void)
|
void Undo(void)
|
||||||
{
|
{
|
||||||
// On remet à jour l'‚tat des infos de la page courante (pour pouvoir les
|
// On remet à jour l'état des infos de la page courante (pour pouvoir les
|
||||||
// retrouver plus tard)
|
// retrouver plus tard)
|
||||||
Upload_infos_page_principal(Principal_Backups->Pages);
|
Upload_infos_page_principal(Principal_Backups->Pages);
|
||||||
// On fait faire un undo à la liste des backups de la page principale
|
// On fait faire un undo à la liste des backups de la page principale
|
||||||
@ -845,15 +845,15 @@ void Undo(void)
|
|||||||
Download_infos_page_principal(Principal_Backups->Pages);
|
Download_infos_page_principal(Principal_Backups->Pages);
|
||||||
// Et celles du backup
|
// Et celles du backup
|
||||||
Download_infos_backup(Principal_Backups);
|
Download_infos_backup(Principal_Backups);
|
||||||
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme
|
// Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
|
||||||
// palette que la page courante. Mais en temps normal, le backup
|
// palette que la page courante. Mais en temps normal, le backup
|
||||||
// n'est pas utilisé à la suite d'un Undo. Donc ‡a ne devrait pas
|
// n'est pas utilisé à la suite d'un Undo. Donc ça ne devrait pas
|
||||||
// poser de problèmes.
|
// poser de problèmes.
|
||||||
}
|
}
|
||||||
|
|
||||||
void Redo(void)
|
void Redo(void)
|
||||||
{
|
{
|
||||||
// On remet à jour l'‚tat des infos de la page courante (pour pouvoir les
|
// On remet à jour l'état des infos de la page courante (pour pouvoir les
|
||||||
// retrouver plus tard)
|
// retrouver plus tard)
|
||||||
Upload_infos_page_principal(Principal_Backups->Pages);
|
Upload_infos_page_principal(Principal_Backups->Pages);
|
||||||
// On fait faire un redo à la liste des backups de la page principale
|
// On fait faire un redo à la liste des backups de la page principale
|
||||||
@ -863,9 +863,9 @@ void Redo(void)
|
|||||||
Download_infos_page_principal(Principal_Backups->Pages);
|
Download_infos_page_principal(Principal_Backups->Pages);
|
||||||
// Et celles du backup
|
// Et celles du backup
|
||||||
Download_infos_backup(Principal_Backups);
|
Download_infos_backup(Principal_Backups);
|
||||||
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme
|
// Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
|
||||||
// palette que la page courante. Mais en temps normal, le backup
|
// palette que la page courante. Mais en temps normal, le backup
|
||||||
// n'est pas utilisé à la suite d'un Redo. Donc ‡a ne devrait pas
|
// n'est pas utilisé à la suite d'un Redo. Donc ça ne devrait pas
|
||||||
// poser de problèmes.
|
// poser de problèmes.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -877,9 +877,9 @@ void Detruire_la_page_courante(void)
|
|||||||
Download_infos_page_principal(Principal_Backups->Pages);
|
Download_infos_page_principal(Principal_Backups->Pages);
|
||||||
// Et celles du backup
|
// Et celles du backup
|
||||||
Download_infos_backup(Principal_Backups);
|
Download_infos_backup(Principal_Backups);
|
||||||
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme
|
// Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
|
||||||
// palette que la page courante. Mais en temps normal, le backup
|
// palette que la page courante. Mais en temps normal, le backup
|
||||||
// n'est pas utilisé à la suite d'une destruction de page. Donc ‡a ne
|
// n'est pas utilisé à la suite d'une destruction de page. Donc ça ne
|
||||||
// devrait pas poser de problèmes.
|
// devrait pas poser de problèmes.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -888,7 +888,7 @@ void Interchanger_image_principale_et_brouillon(void)
|
|||||||
S_Liste_de_pages * Liste_tempo;
|
S_Liste_de_pages * Liste_tempo;
|
||||||
|
|
||||||
// On commence par mettre à jour dans les descripteurs les infos sur les
|
// On commence par mettre à jour dans les descripteurs les infos sur les
|
||||||
// pages qu'on s'apprˆte à échanger, pour qu'on se retrouve pas avec de
|
// pages qu'on s'apprête à échanger, pour qu'on se retrouve pas avec de
|
||||||
// vieilles valeurs qui datent de mathuzalem.
|
// vieilles valeurs qui datent de mathuzalem.
|
||||||
Upload_infos_page_principal(Principal_Backups->Pages);
|
Upload_infos_page_principal(Principal_Backups->Pages);
|
||||||
Upload_infos_page_brouillon(Brouillon_Backups->Pages);
|
Upload_infos_page_brouillon(Brouillon_Backups->Pages);
|
||||||
@ -904,8 +904,8 @@ void Interchanger_image_principale_et_brouillon(void)
|
|||||||
/* SECTION GROS CACA PROUT PROUT */
|
/* SECTION GROS CACA PROUT PROUT */
|
||||||
// Auparavant on ruse en mettant déjà à jour les dimensions de la
|
// Auparavant on ruse en mettant déjà à jour les dimensions de la
|
||||||
// nouvelle page courante. Si on ne le fait pas, le "Download" va détecter
|
// nouvelle page courante. Si on ne le fait pas, le "Download" va détecter
|
||||||
// un changement de dimensions et va bˆtement sortir du mode loupe, alors
|
// un changement de dimensions et va bêtement sortir du mode loupe, alors
|
||||||
// que lors d'un changement de page, on veut bien conserver l'‚tat du mode
|
// que lors d'un changement de page, on veut bien conserver l'état du mode
|
||||||
// loupe du brouillon.
|
// loupe du brouillon.
|
||||||
Principal_Largeur_image=Principal_Backups->Pages->Largeur;
|
Principal_Largeur_image=Principal_Backups->Pages->Largeur;
|
||||||
Principal_Hauteur_image=Principal_Backups->Pages->Hauteur;
|
Principal_Hauteur_image=Principal_Backups->Pages->Hauteur;
|
||||||
|
|||||||
50
palette.c
50
palette.c
@ -56,7 +56,7 @@ void Modifier_Bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
|||||||
|
|
||||||
void Degrader_palette(short Debut,short Fin,T_Palette Palette)
|
void Degrader_palette(short Debut,short Fin,T_Palette Palette)
|
||||||
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
|
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
|
||||||
// passées en paramŠtre
|
// passées en paramètre
|
||||||
{
|
{
|
||||||
short Debut_Rouge;
|
short Debut_Rouge;
|
||||||
short Debut_Vert;
|
short Debut_Vert;
|
||||||
@ -202,12 +202,12 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
|||||||
Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
|
Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
|
||||||
memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
|
memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
|
||||||
|
|
||||||
// On commence à initialiser la table de conversion à un état o— elle ne
|
// On commence à initialiser la table de conversion à un état où elle ne
|
||||||
// fera aucune conversion.
|
// fera aucune conversion.
|
||||||
for (Pos_1=0;Pos_1<=255;Pos_1++)
|
for (Pos_1=0;Pos_1<=255;Pos_1++)
|
||||||
Table_de_conversion[Pos_1]=Pos_1;
|
Table_de_conversion[Pos_1]=Pos_1;
|
||||||
|
|
||||||
// On calcul les derniŠres couleurs de chaque bloc.
|
// On calcul les dernières couleurs de chaque bloc.
|
||||||
Fin_1=Debut_Bloc_1+Taille_du_bloc-1;
|
Fin_1=Debut_Bloc_1+Taille_du_bloc-1;
|
||||||
Fin_2=Debut_Bloc_2+Taille_du_bloc-1;
|
Fin_2=Debut_Bloc_2+Taille_du_bloc-1;
|
||||||
|
|
||||||
@ -225,7 +225,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
|||||||
Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
|
Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
|
||||||
Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
|
Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
|
||||||
|
|
||||||
// On gŠre la mise à jour de Pos_2
|
// On gère la mise à jour de Pos_2
|
||||||
if (Pos_2==Fin_2)
|
if (Pos_2==Fin_2)
|
||||||
Pos_2=Debut_Bloc_1;
|
Pos_2=Debut_Bloc_1;
|
||||||
else
|
else
|
||||||
@ -247,7 +247,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
|||||||
Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
|
Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
|
||||||
Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
|
Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
|
||||||
|
|
||||||
// On gŠre la mise à jour de Pos_2
|
// On gère la mise à jour de Pos_2
|
||||||
if (Pos_2==Fin_1)
|
if (Pos_2==Fin_1)
|
||||||
Pos_2=Debut_Bloc_2;
|
Pos_2=Debut_Bloc_2;
|
||||||
else
|
else
|
||||||
@ -322,7 +322,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// On trie maintenant la table dans le sens décroissant.
|
// On trie maintenant la table dans le sens décroissant.
|
||||||
// (Ce n'est pas indispensable, mais ‡a fera plus joli dans la palette).
|
// (Ce n'est pas indispensable, mais ça fera plus joli dans la palette).
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
Couleur=0; // Booléen qui dit si le tri n'est pas terminé.
|
Couleur=0; // Booléen qui dit si le tri n'est pas terminé.
|
||||||
@ -379,7 +379,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
dword Utilisation;
|
dword Utilisation;
|
||||||
dword Meilleure_utilisation;
|
dword Meilleure_utilisation;
|
||||||
|
|
||||||
// On commence par initialiser la table de conversion dans un état o—
|
// On commence par initialiser la table de conversion dans un état où
|
||||||
// aucune conversion ne sera effectuée.
|
// aucune conversion ne sera effectuée.
|
||||||
for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
|
for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
|
||||||
Table_de_conversion[Couleur_1]=Couleur_1;
|
Table_de_conversion[Couleur_1]=Couleur_1;
|
||||||
@ -392,7 +392,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On tasse la palette vers le début parce qu'elle doit ressembler à
|
// On tasse la palette vers le début parce qu'elle doit ressembler à
|
||||||
// du GruyŠre (et comme Papouille il aime pas le fromage...)
|
// du Gruyère (et comme Papouille il aime pas le fromage...)
|
||||||
|
|
||||||
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
|
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
|
||||||
// Couleur_2 comme position de destination.
|
// Couleur_2 comme position de destination.
|
||||||
@ -431,7 +431,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
|
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
|
||||||
{
|
{
|
||||||
// Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
|
// Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
|
||||||
// parmis celles qui sont utilisées (bien s–r) et de les remplacer par
|
// parmis celles qui sont utilisées (bien sûr) et de les remplacer par
|
||||||
// une seule couleur qui est la moyenne pondérée de ces 2 couleurs
|
// une seule couleur qui est la moyenne pondérée de ces 2 couleurs
|
||||||
// en fonction de leur utilisation dans l'image.
|
// en fonction de leur utilisation dans l'image.
|
||||||
|
|
||||||
@ -496,23 +496,23 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
|
|
||||||
// Bon, maintenant que l'on a fait bouger nos petites choses concernants
|
// Bon, maintenant que l'on a fait bouger nos petites choses concernants
|
||||||
// la couleur à éliminer, on va s'occuper de faire bouger les couleurs
|
// la couleur à éliminer, on va s'occuper de faire bouger les couleurs
|
||||||
// situées aprŠs la couleur à éliminer pour qu'elles se dépla‡ent d'une
|
// situées après la couleur à éliminer pour qu'elles se déplaçent d'une
|
||||||
// couleur en arriŠre.
|
// couleur en arrière.
|
||||||
for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
|
for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
|
||||||
{
|
{
|
||||||
// Commen‡ons par nous occuper des tables d'utilisation et de la
|
// Commençons par nous occuper des tables d'utilisation et de la
|
||||||
// palette.
|
// palette.
|
||||||
|
|
||||||
if (Couleur_1>Meilleure_couleur_2)
|
if (Couleur_1>Meilleure_couleur_2)
|
||||||
{
|
{
|
||||||
// La Couleur_1 va scroller en arriŠre.
|
// La Couleur_1 va scroller en arrière.
|
||||||
|
|
||||||
// Donc on transfŠre son utilisation dans l'utilisation de la
|
// Donc on transfère son utilisation dans l'utilisation de la
|
||||||
// couleur qui la précŠde.
|
// couleur qui la précède.
|
||||||
Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1];
|
Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1];
|
||||||
|
|
||||||
// Et on transfŠre ses teintes dans les teintes de la couleur qui
|
// Et on transfère ses teintes dans les teintes de la couleur qui
|
||||||
// la précŠde.
|
// la précède.
|
||||||
Palette[Couleur_1-1].R=Palette[Couleur_1].R;
|
Palette[Couleur_1-1].R=Palette[Couleur_1].R;
|
||||||
Palette[Couleur_1-1].V=Palette[Couleur_1].V;
|
Palette[Couleur_1-1].V=Palette[Couleur_1].V;
|
||||||
Palette[Couleur_1-1].B=Palette[Couleur_1].B;
|
Palette[Couleur_1-1].B=Palette[Couleur_1].B;
|
||||||
@ -522,7 +522,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
// s'occuper de notre table de conversion.
|
// s'occuper de notre table de conversion.
|
||||||
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
|
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
|
||||||
// La Couleur_1 avait l'intention de se faire remplacer par une
|
// La Couleur_1 avait l'intention de se faire remplacer par une
|
||||||
// couleur que l'on va (ou que l'on a déjà) bouger en arriŠre.
|
// couleur que l'on va (ou que l'on a déjà) bouger en arrière.
|
||||||
Table_de_conversion[Couleur_1]--;
|
Table_de_conversion[Couleur_1]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,7 +540,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
|||||||
// utilisation nulle.
|
// utilisation nulle.
|
||||||
Utilisation_couleur[*Nb_couleurs_utilisees]=0;
|
Utilisation_couleur[*Nb_couleurs_utilisees]=0;
|
||||||
|
|
||||||
// AprŠs avoir éjecté une couleur, on le fait savoir à l'utilisateur par
|
// Après avoir éjecté une couleur, on le fait savoir à l'utilisateur par
|
||||||
// l'intermédiaire du compteur de nombre utilisées.
|
// l'intermédiaire du compteur de nombre utilisées.
|
||||||
Num2str(*Nb_couleurs_utilisees,Chaine,3);
|
Num2str(*Nb_couleurs_utilisees,Chaine,3);
|
||||||
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
|
||||||
@ -850,7 +850,7 @@ void Bouton_Palette(void)
|
|||||||
// On maintient le click, on va donc tester si le curseur bouge
|
// On maintient le click, on va donc tester si le curseur bouge
|
||||||
if (Couleur_temporaire!=Derniere_couleur)
|
if (Couleur_temporaire!=Derniere_couleur)
|
||||||
{
|
{
|
||||||
// On commence par ordonner la 1Šre et derniŠre couleur du bloc
|
// On commence par ordonner la 1ère et dernière couleur du bloc
|
||||||
if (Premiere_couleur<Couleur_temporaire)
|
if (Premiere_couleur<Couleur_temporaire)
|
||||||
{
|
{
|
||||||
Debut_block=Premiere_couleur;
|
Debut_block=Premiere_couleur;
|
||||||
@ -859,7 +859,7 @@ void Bouton_Palette(void)
|
|||||||
// Affichage du nø de la couleur sélectionnée
|
// Affichage du nø de la couleur sélectionnée
|
||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // Flèche vers la droite
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
|
|
||||||
// Affichage des jauges
|
// Affichage des jauges
|
||||||
@ -876,7 +876,7 @@ void Bouton_Palette(void)
|
|||||||
// Affichage du nø de la couleur sélectionnée
|
// Affichage du nø de la couleur sélectionnée
|
||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // Flèche vers la droite
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
|
|
||||||
// Affichage des jauges
|
// Affichage des jauges
|
||||||
@ -1088,7 +1088,7 @@ void Bouton_Palette(void)
|
|||||||
// Cas d'un bloc multi-couleur
|
// Cas d'un bloc multi-couleur
|
||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // Flèche vers la droite
|
||||||
// Affichage dans le block de visu du bloc (dégradé) en cours
|
// Affichage dans le block de visu du bloc (dégradé) en cours
|
||||||
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
@ -1130,7 +1130,7 @@ void Bouton_Palette(void)
|
|||||||
// Cas d'un bloc multi-couleur
|
// Cas d'un bloc multi-couleur
|
||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // Flèche vers la droite
|
||||||
// Affichage dans le block de visu du bloc (dégradé) en cours
|
// Affichage dans le block de visu du bloc (dégradé) en cours
|
||||||
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
@ -1672,7 +1672,7 @@ void Bouton_Palette(void)
|
|||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDLK_BACKQUOTE : // Récupération d'une couleur derriŠre le menu
|
case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
|
||||||
case SDLK_COMMA :
|
case SDLK_COMMA :
|
||||||
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
|
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
|
||||||
if (Click)
|
if (Click)
|
||||||
|
|||||||
10
readini.c
10
readini.c
@ -48,13 +48,13 @@ int Charger_INI_Seek_pattern(char * Buffer,char * Pattern)
|
|||||||
// A partir de chaque lettre de la chaîne Buffer
|
// A partir de chaque lettre de la chaîne Buffer
|
||||||
for (Indice_buffer=0;Buffer[Indice_buffer]!='\0';Indice_buffer++)
|
for (Indice_buffer=0;Buffer[Indice_buffer]!='\0';Indice_buffer++)
|
||||||
{
|
{
|
||||||
// On regarde si la chaîne Pattern est équivalente … la position courante
|
// On regarde si la chaîne Pattern est équivalente à la position courante
|
||||||
// de la chaîne Buffer:
|
// de la chaîne Buffer:
|
||||||
for (Indice_pattern=0;(Pattern[Indice_pattern]!='\0') && (Buffer[Indice_buffer+Indice_pattern]==Pattern[Indice_pattern]);Indice_pattern++);
|
for (Indice_pattern=0;(Pattern[Indice_pattern]!='\0') && (Buffer[Indice_buffer+Indice_pattern]==Pattern[Indice_pattern]);Indice_pattern++);
|
||||||
|
|
||||||
// Si on a trouvé la chaîne Pattern dans la chaîne Buffer, on renvoie la
|
// Si on a trouvé la chaîne Pattern dans la chaîne Buffer, on renvoie la
|
||||||
// position … laquelle on l'a trouvée (+1 pour que si on la trouve au
|
// position à laquelle on l'a trouvée (+1 pour que si on la trouve au
|
||||||
// début ‡a ne renvoie pas la mˆme chose que si on ne l'avait pas
|
// début ça ne renvoie pas la même chose que si on ne l'avait pas
|
||||||
// trouvée):
|
// trouvée):
|
||||||
if (Pattern[Indice_pattern]=='\0')
|
if (Pattern[Indice_pattern]=='\0')
|
||||||
return (Indice_buffer+1);
|
return (Indice_buffer+1);
|
||||||
@ -76,7 +76,7 @@ int Charger_INI_Reach_group(FILE * File,char * Buffer,char * Group)
|
|||||||
Group_upper=(char *)malloc(1024);
|
Group_upper=(char *)malloc(1024);
|
||||||
Buffer_upper=(char *)malloc(1024);
|
Buffer_upper=(char *)malloc(1024);
|
||||||
|
|
||||||
// On commence par se faire une version majuscule du groupe … rechercher:
|
// On commence par se faire une version majuscule du groupe à rechercher:
|
||||||
strcpy(Group_upper,Group);
|
strcpy(Group_upper,Group);
|
||||||
Charger_INI_Clear_string(Group_upper);
|
Charger_INI_Clear_string(Group_upper);
|
||||||
|
|
||||||
@ -241,7 +241,7 @@ int Charger_INI_Get_values(FILE * File,char * Buffer,char * Option,int Nb_values
|
|||||||
Option_upper=(char *)malloc(1024);
|
Option_upper=(char *)malloc(1024);
|
||||||
Buffer_upper=(char *)malloc(1024);
|
Buffer_upper=(char *)malloc(1024);
|
||||||
|
|
||||||
// On commence par se faire une version majuscule de l'option … rechercher:
|
// On commence par se faire une version majuscule de l'option à rechercher:
|
||||||
strcpy(Option_upper,Option);
|
strcpy(Option_upper,Option);
|
||||||
Charger_INI_Clear_string(Option_upper);
|
Charger_INI_Clear_string(Option_upper);
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,7 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set,
|
|||||||
// On commence par inscrire le symbole '$':
|
// On commence par inscrire le symbole '$':
|
||||||
Destination[Indice_destination]='$';
|
Destination[Indice_destination]='$';
|
||||||
|
|
||||||
// Puis on y concatŠne la valeur:
|
// Puis on y concatène la valeur:
|
||||||
sprintf(Destination+Indice_destination+1,"%x",Values[Indice_valeur]);
|
sprintf(Destination+Indice_destination+1,"%x",Values[Indice_valeur]);
|
||||||
Indice_destination+=strlen(Destination+Indice_destination);
|
Indice_destination+=strlen(Destination+Indice_destination);
|
||||||
}
|
}
|
||||||
@ -154,14 +154,14 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set,
|
|||||||
{
|
{
|
||||||
// Il reste d'autres valeurs à écrire
|
// Il reste d'autres valeurs à écrire
|
||||||
|
|
||||||
// On recopie tous les caractŠres de la source jusqu'au suivant qui
|
// On recopie tous les caractères de la source jusqu'au suivant qui
|
||||||
// désigne une valeur:
|
// désigne une valeur:
|
||||||
for (;(!Sauver_INI_char_in_value_alphabet(Source[Indice_source])) && (Source[Indice_source]!='\0');Indice_source++,Indice_destination++)
|
for (;(!Sauver_INI_char_in_value_alphabet(Source[Indice_source])) && (Source[Indice_source]!='\0');Indice_source++,Indice_destination++)
|
||||||
Destination[Indice_destination]=Source[Indice_source];
|
Destination[Indice_destination]=Source[Indice_source];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// C'est la derniŠre valeur à initialiser
|
// C'est la dernière valeur à initialiser
|
||||||
|
|
||||||
// On recopie toute la fin de la ligne:
|
// On recopie toute la fin de la ligne:
|
||||||
for (;Source[Indice_source]!='\0';Indice_source++,Indice_destination++)
|
for (;Source[Indice_source]!='\0';Indice_source++,Indice_destination++)
|
||||||
|
|||||||
2
shade.c
2
shade.c
@ -430,7 +430,7 @@ int Menu_Shade(void)
|
|||||||
Buffer_Undo =(word *)malloc(512*sizeof(word));
|
Buffer_Undo =(word *)malloc(512*sizeof(word));
|
||||||
Pointeur_temp=(word *)malloc(512*sizeof(word));
|
Pointeur_temp=(word *)malloc(512*sizeof(word));
|
||||||
|
|
||||||
// Ouverture de la fenˆtre du menu
|
// Ouverture de la fenêtre du menu
|
||||||
Ouvrir_fenetre(310,190,"Shade");
|
Ouvrir_fenetre(310,190,"Shade");
|
||||||
|
|
||||||
// Déclaration & tracé du bouton de palette
|
// Déclaration & tracé du bouton de palette
|
||||||
|
|||||||
16
special.c
16
special.c
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------- Modifier le pinceau sp‚cial -------------------------
|
//---------------------- Modifier le pinceau spécial -------------------------
|
||||||
|
|
||||||
void Modifier_pinceau(int Largeur, int Hauteur)
|
void Modifier_pinceau(int Largeur, int Hauteur)
|
||||||
{
|
{
|
||||||
@ -192,7 +192,7 @@ void Grossir_pinceau(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------- Passer … la ForeColor suivante -----------------------
|
//--------------------- Passer à la ForeColor suivante -----------------------
|
||||||
void Special_Next_forecolor(void)
|
void Special_Next_forecolor(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
@ -207,7 +207,7 @@ void Special_Next_forecolor(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------- Passer … la ForeColor pr‚c‚dente ----------------------
|
//-------------------- Passer à la ForeColor précédente ----------------------
|
||||||
void Special_Previous_forecolor(void)
|
void Special_Previous_forecolor(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
@ -222,7 +222,7 @@ void Special_Previous_forecolor(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------- Passer … la BackColor suivante -----------------------
|
//--------------------- Passer à la BackColor suivante -----------------------
|
||||||
void Special_Next_backcolor(void)
|
void Special_Next_backcolor(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
@ -231,7 +231,7 @@ void Special_Next_backcolor(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------- Passer … la BackColor pr‚c‚dente ----------------------
|
//-------------------- Passer à la BackColor précédente ----------------------
|
||||||
void Special_Previous_backcolor(void)
|
void Special_Previous_backcolor(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
@ -241,7 +241,7 @@ void Special_Previous_backcolor(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ------------------- Scroller l'‚cran (pas en mode loupe) ------------------
|
// ------------------- Scroller l'écran (pas en mode loupe) ------------------
|
||||||
void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y)
|
void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y)
|
||||||
{
|
{
|
||||||
short Decalage_temporaire_X;
|
short Decalage_temporaire_X;
|
||||||
@ -275,7 +275,7 @@ void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ---------------------- Scroller la fenˆtre de la loupe --------------------
|
// ---------------------- Scroller la fenêtre de la loupe --------------------
|
||||||
void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
|
void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
|
||||||
{
|
{
|
||||||
short Decalage_temporaire_X;
|
short Decalage_temporaire_X;
|
||||||
@ -311,7 +311,7 @@ void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------------- Changer le Zoom (grƒce aux touches [+] et [-]) -------------
|
// -------------- Changer le Zoom (grâce aux touches [+] et [-]) -------------
|
||||||
void Zoom(short Sens)
|
void Zoom(short Sens)
|
||||||
{
|
{
|
||||||
short Indice;
|
short Indice;
|
||||||
|
|||||||
28
struct.h
28
struct.h
@ -98,7 +98,7 @@ struct Element_de_liste_de_fileselect
|
|||||||
char NomComplet[256]; // Le nom du fichier ou du répertoire
|
char NomComplet[256]; // Le nom du fichier ou du répertoire
|
||||||
byte Type; // Type d'élément : 0 = Fichier, 1 = Répertoire
|
byte Type; // Type d'élément : 0 = Fichier, 1 = Répertoire
|
||||||
|
|
||||||
// données de chaŒnage de la liste
|
// données de chaînage de la liste
|
||||||
struct Element_de_liste_de_fileselect * Suivant;
|
struct Element_de_liste_de_fileselect * Suivant;
|
||||||
struct Element_de_liste_de_fileselect * Precedent;
|
struct Element_de_liste_de_fileselect * Precedent;
|
||||||
};
|
};
|
||||||
@ -115,11 +115,11 @@ struct Section_d_aide
|
|||||||
// Déclaration d'une info sur un dégradé
|
// Déclaration d'une info sur un dégradé
|
||||||
struct T_Degrade_Tableau
|
struct T_Degrade_Tableau
|
||||||
{
|
{
|
||||||
byte Debut; // PremiŠre couleur du dégradé
|
byte Debut; // Première couleur du dégradé
|
||||||
byte Fin; // DerniŠre couleur du dégradé
|
byte Fin; // Dernière couleur du dégradé
|
||||||
dword Inverse; // "Le dégradé va de Fin … Debut" //INT
|
dword Inverse; // "Le dégradé va de Fin à Debut" //INT
|
||||||
dword Melange; // Valeur de mélange du dégradé (0-255) //LONG
|
dword Melange; // Valeur de mélange du dégradé (0-255) //LONG
|
||||||
dword Technique; // Technique … utiliser (0-2) //INT
|
dword Technique; // Technique à utiliser (0-2) //INT
|
||||||
};
|
};
|
||||||
|
|
||||||
// Déclaration d'une info de shade
|
// Déclaration d'une info de shade
|
||||||
@ -166,10 +166,10 @@ struct Config_Infos_touche
|
|||||||
|
|
||||||
|
|
||||||
// Structures utilisées pour les descriptions de pages et de liste de pages.
|
// Structures utilisées pour les descriptions de pages et de liste de pages.
|
||||||
// Lorsqu'on gŠrera les animations, il faudra aussi des listes de listes de
|
// Lorsqu'on gèrera les animations, il faudra aussi des listes de listes de
|
||||||
// pages.
|
// pages.
|
||||||
|
|
||||||
// Ces structures sont manipulées … travers des fonctions de gestion du
|
// Ces structures sont manipulées à travers des fonctions de gestion du
|
||||||
// backup dans "graph.c".
|
// backup dans "graph.c".
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -188,19 +188,19 @@ typedef struct
|
|||||||
/*
|
/*
|
||||||
short Decalage_X; // Décalage en X de l'écran par rapport au début de l'image
|
short Decalage_X; // Décalage en X de l'écran par rapport au début de l'image
|
||||||
short Decalage_Y; // Décalage en Y de l'écran par rapport au début de l'image
|
short Decalage_Y; // Décalage en Y de l'écran par rapport au début de l'image
|
||||||
short Ancien_Decalage_X; // Le mˆme avant le passage en mode loupe
|
short Ancien_Decalage_X; // Le même avant le passage en mode loupe
|
||||||
short Ancien_Decalage_Y; // Le mˆme avant le passage en mode loupe
|
short Ancien_Decalage_Y; // Le même avant le passage en mode loupe
|
||||||
|
|
||||||
short Split; // Position en X du bord gauche du split de la loupe
|
short Split; // Position en X du bord gauche du split de la loupe
|
||||||
short X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
short X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
|
||||||
float Proportion_split; // Proportion de la zone non-zoomée par rapport … l'écran
|
float Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
|
||||||
|
|
||||||
byte Loupe_Mode; // On est en mode loupe
|
byte Loupe_Mode; // On est en mode loupe
|
||||||
word Loupe_Facteur; // Facteur de zoom
|
word Loupe_Facteur; // Facteur de zoom
|
||||||
word Loupe_Hauteur; // Largeur de la fenˆtre de zoom
|
word Loupe_Hauteur; // Largeur de la fenêtre de zoom
|
||||||
word Loupe_Largeur; // Hauteur de la fenˆtre de zoom
|
word Loupe_Largeur; // Hauteur de la fenêtre de zoom
|
||||||
short Loupe_Decalage_X; // Decalage horizontal de la fenˆtre de zoom
|
short Loupe_Decalage_X; // Decalage horizontal de la fenêtre de zoom
|
||||||
short Loupe_Decalage_Y; // Decalage vertical de la fenˆtre de zoom
|
short Loupe_Decalage_Y; // Decalage vertical de la fenêtre de zoom
|
||||||
*/
|
*/
|
||||||
} S_Page;
|
} S_Page;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user