First compile-able version!
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@16 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
7c4b0858da
commit
635f8e5154
4
aide.c
4
aide.c
@ -220,7 +220,7 @@ void Bouton_Stats(void)
|
||||
|
||||
// Affichage de la m‚moire restante
|
||||
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
|
||||
sprintf(Buffer,"%d bytes",Memoire_libre());
|
||||
sprintf(Buffer,"%ld bytes",Memoire_libre());
|
||||
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
||||
|
||||
// Affichage de l'espace disque libre
|
||||
@ -230,7 +230,7 @@ void Bouton_Stats(void)
|
||||
Taille=Informations_Disque->f_bfree;
|
||||
if (Taille>=0)
|
||||
{
|
||||
sprintf(Buffer,"%d bytes",Taille);
|
||||
sprintf(Buffer,"%ld bytes",Taille);
|
||||
Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
||||
}
|
||||
else
|
||||
|
||||
135
const.h
135
const.h
@ -3,27 +3,26 @@
|
||||
|
||||
|
||||
|
||||
// D‚claration des constantes ////////////////////////////////////////////////
|
||||
// Déclaration des constantes ////////////////////////////////////////////////
|
||||
|
||||
#define M_PI 3.14159265358979323846264338328
|
||||
#define M_2PI 6.28318530717958647692528676656
|
||||
|
||||
// Note: La taille du fichier GFX2.DAT est d‚finie au d‚but de INIT.C !
|
||||
#define POURCENTAGE_VERSION "96.5%" // Libell‚ du pourcentage de la version á
|
||||
// Note: La taille du fichier GFX2.DAT est définie au début de INIT.C !
|
||||
#define POURCENTAGE_VERSION "96.5%" // Libellé du pourcentage de la version á
|
||||
#define VERSION1 2 // |
|
||||
#define VERSION2 0 // |_ Num‚ro de version d‚coup‚ en
|
||||
#define VERSION2 0 // |_ Numéro de version découpé en
|
||||
#define BETA1 96 // | plusieurs parties => 2.0 á95.5%
|
||||
#define BETA2 5 // |
|
||||
#define ALPHA_BETA "á" // Type de la version "à" ou "á"
|
||||
#define TAILLE_FICHIER_CONFIG 10351 // Taille du fichier GFX2.CFG
|
||||
#define NB_MODES_VIDEO 60 // Nombre de modes vid‚o
|
||||
#define NB_BOUTONS 38 // Nombre de boutons … g‚rer
|
||||
#define NB_MODES_VIDEO 60 // Nombre de modes vidéo
|
||||
#define NB_BOUTONS 38 // Nombre de boutons à gérer
|
||||
#define NB_TOUCHES 134 // Nombre de combinaisons de touches
|
||||
#define NB_TOUCHES_SPECIALES 72 // Nombre de touches sp‚ciales
|
||||
#define NB_OPERATIONS 32 // Nombre d'op‚rations g‚r‚es par le moteur
|
||||
#define NB_TOUCHES_SPECIALES 72 // Nombre de touches spéciales
|
||||
#define NB_OPERATIONS 32 // Nombre d'opérations gérées par le moteur
|
||||
#define NB_FACTEURS_DE_ZOOM 12 // Nombre de facteurs de zoom
|
||||
#define LARGEUR_MENU 254 // Largeur du menu en taille r‚elle
|
||||
#define HAUTEUR_MENU 44 // Hauteur du menu en taille r‚elle
|
||||
#define LARGEUR_MENU 254 // Largeur du menu en taille réelle
|
||||
#define HAUTEUR_MENU 44 // Hauteur du menu en taille réelle
|
||||
#define NB_SPRITES_CURSEUR 8 // Nombre de sprites de curseur
|
||||
#define LARGEUR_SPRITE_CURSEUR 15 // Largeur d'un sprite de curseur en pixels
|
||||
#define HAUTEUR_SPRITE_CURSEUR 15 // Hauteur d'un sprite de curseur en pixels
|
||||
@ -31,37 +30,37 @@
|
||||
#define NB_SPRITES_MENU 9 // Nombre de sprites de menu
|
||||
#define LARGEUR_SPRITE_MENU 14 // Largeur d'un sprite de menu en pixels
|
||||
#define HAUTEUR_SPRITE_MENU 14 // Hauteur d'un sprite de menu en pixels
|
||||
#define LARGEUR_PINCEAU 16 // Largeur d'un sprite de pinceau pr‚d‚fini
|
||||
#define HAUTEUR_PINCEAU 16 // Hauteur d'un sprite de pinceau pr‚d‚fini
|
||||
#define LARGEUR_PINCEAU 16 // Largeur d'un sprite de pinceau prédéfini
|
||||
#define HAUTEUR_PINCEAU 16 // Hauteur d'un sprite de pinceau prédéfini
|
||||
#define TAILLE_MAXI_PINCEAU 127 // Taille maxi des pinceaux
|
||||
#define NB_SPRITES_DRIVES 5 // Nombre de sprites de drives
|
||||
#define LARGEUR_SPRITE_DRIVE 7 // Largeur d'un sprite de drive en pixels
|
||||
#define HAUTEUR_SPRITE_DRIVE 7 // Hauteur d'un sprite de drive en pixels
|
||||
#define NB_SPRITES_PINCEAU 48 // Nombre de sprites de pinceau
|
||||
#define NB_TRAMES_PREDEFINIES 12 // Nombre de trames pr‚d‚finies
|
||||
#define TAILLE_PILE_OPERATIONS 16 // Nombre maximum d'‚l‚ments utilis‚s par les op‚rations
|
||||
#define TAILLE_MAXI_PATH 37 // Taille maximum affichable du r‚pertoire courant dans les fenˆtres du fileselect
|
||||
#define NB_TRAMES_PREDEFINIES 12 // Nombre de trames prédéfinies
|
||||
#define TAILLE_PILE_OPERATIONS 16 // Nombre maximum d'éléments utilisés par les opérations
|
||||
#define TAILLE_MAXI_PATH 37 // Taille maximum affichable du répertoire courant dans les fenêtres du fileselect
|
||||
#define TAILLE_COMMENTAIRE 32 // Taille maxi des commentaires pour le PKM
|
||||
#define TAILLE_NOM_CONSTRUCTEUR 24 // Taille maxi du nom de constructeur VESA dans la fenˆtre de stats.
|
||||
#define TAILLE_NOM_CONSTRUCTEUR 24 // Taille maxi du nom de constructeur VESA dans la fenêtre de stats.
|
||||
#define NB_PAGES_UNDO_MAX 99 // Nombre maximal de pages d'undo
|
||||
#define FACTEUR_DE_ZOOM_PAR_DEFAUT 4 // Facteur de zoom initial
|
||||
#define NB_SECTIONS_AIDE 3 // Nombre de sections dans l'aide
|
||||
|
||||
// On impose … l'allocation dynamique des pages de backups de conserver un
|
||||
// minimum de 256 Ko pour que le reste du programme puisse continuer …
|
||||
// On impose à l'allocation dynamique des pages de backups de conserver un
|
||||
// minimum de 256 Ko pour que le reste du programme puisse continuer à
|
||||
// fonctionner.
|
||||
#define QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER (256*1024)
|
||||
|
||||
#define A_GAUCHE 1 // Indique une direction (ou click) … gauche
|
||||
#define A_DROITE 2 // Indique une direction (ou click) … droite
|
||||
#define A_GAUCHE 1 // Indique une direction (ou click) à gauche
|
||||
#define A_DROITE 2 // Indique une direction (ou click) à droite
|
||||
|
||||
#define LARGEUR_BARRE_SPLIT 6 // [ Û±±° ]
|
||||
#define PROPORTION_SPLIT 0.3 // proportion de la zone non-zoom‚e en largeur par rapport … l'‚cran
|
||||
#define NB_PIXELS_ZOOMES_MIN 4 // Nombre minimal de pixels zoom‚s en largeur (Note: En dessous de 4, on ne peut plus scroller!)
|
||||
#define PROPORTION_SPLIT 0.3 // proportion de la zone non-zoomée en largeur par rapport à l'écran
|
||||
#define NB_PIXELS_ZOOMES_MIN 4 // Nombre minimal de pixels zoomés en largeur (Note: En dessous de 4, on ne peut plus scroller!)
|
||||
|
||||
// Les diff‚rents formats de fichiers:
|
||||
// Les différents formats de fichiers:
|
||||
|
||||
#define NB_FORMATS_CONNUS 12 // Nombre de formats connus (devrait ˆtre la valeur maximale de NB_FORMATS_LOAD et NB_FORMATS_SAVE, mais plus g‚n‚ralement: Card({NB_FORMATS_LOAD} UNION {NB_FORMATS_SAVE}))
|
||||
#define NB_FORMATS_CONNUS 12 // Nombre de formats connus (devrait être la valeur maximale de NB_FORMATS_LOAD et NB_FORMATS_SAVE, mais plus généralement: Card({NB_FORMATS_LOAD} UNION {NB_FORMATS_SAVE}))
|
||||
#define NB_FORMATS_LOAD 12 // Nombre de formats que l'on sait charger
|
||||
#define NB_FORMATS_SAVE 12 // Nombre de formats que l'on sait sauver
|
||||
|
||||
@ -69,21 +68,21 @@ enum FORMATS_RECONNUS
|
||||
{
|
||||
FORMAT_PKM=1, // |
|
||||
FORMAT_LBM, // |
|
||||
FORMAT_GIF, // | Il faudra penser … r‚ordonner
|
||||
FORMAT_BMP, // | les donn‚es sur les formats dans
|
||||
FORMAT_GIF, // | Il faudra penser à réordonner
|
||||
FORMAT_BMP, // | les données sur les formats dans
|
||||
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
|
||||
FORMAT_IMG, // |_ tantes.
|
||||
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_CEL, // | donn‚es.
|
||||
FORMAT_CEL, // | données.
|
||||
FORMAT_KCF, // |
|
||||
FORMAT_PAL // |
|
||||
};
|
||||
|
||||
#define FORMAT_PAR_DEFAUT FORMAT_PKM // Format par d‚faut (ah bon? oh!)
|
||||
#define FORMAT_PAR_DEFAUT FORMAT_PKM // Format par défaut (ah bon? oh!)
|
||||
|
||||
// Les diff‚rentes erreurs:
|
||||
// Les différentes erreurs:
|
||||
|
||||
enum CODES_D_ERREURS
|
||||
{
|
||||
@ -92,32 +91,32 @@ enum CODES_D_ERREURS
|
||||
ERREUR_CFG_ABSENT, // Le fichier GFX2.CFG est absent
|
||||
ERREUR_CFG_CORROMPU, // Mauvais fichier GFX2.CFG
|
||||
ERREUR_CFG_ANCIEN, // Ancienne version du fichier GFX2.CFG
|
||||
ERREUR_MEMOIRE, // Plus de m‚moire
|
||||
ERREUR_MEMOIRE, // Plus de mémoire
|
||||
ERREUR_LIGNE_COMMANDE, // Erreur sur la ligne de commande
|
||||
ERREUR_DRIVER_SOURIS, // Pas de driver souris install‚
|
||||
ERREUR_MODE_VESA_INVALIDE, // Mode VESA demand‚ sur la ligne de commande invalide
|
||||
ERREUR_MODE_INTERDIT, // Mode demand‚ sur la ligne de commande interdit (coch‚ en noir)
|
||||
ERREUR_DRIVER_SOURIS, // Pas de driver souris installé
|
||||
ERREUR_MODE_VESA_INVALIDE, // Mode VESA demandé sur la ligne de commande invalide
|
||||
ERREUR_MODE_INTERDIT, // Mode demandé sur la ligne de commande interdit (coché en noir)
|
||||
ERREUR_NUMERO_MODE, // Erreur de choix de mode sur la ligne de commande
|
||||
ERREUR_SAUVEGARDE_CFG, // Erreur en ‚criture pour GFX2.CFG
|
||||
ERREUR_REPERTOIRE_DISPARU, // Le r‚pertoire de lancement n'existe plus
|
||||
ERREUR_SAUVEGARDE_CFG, // Erreur en écriture pour GFX2.CFG
|
||||
ERREUR_REPERTOIRE_DISPARU, // Le répertoire de lancement n'existe plus
|
||||
ERREUR_INI_ABSENT, // Le fichier GFX2.INI est absent
|
||||
ERREUR_INI_CORROMPU, // Le fichier GFX2.INI est corrompu
|
||||
ERREUR_SAUVEGARDE_INI, // Le fichier GFX2.INI n'est pas inscriptible
|
||||
ERREUR_SORRY_SORRY_SORRY // On le refera plus, promis
|
||||
};
|
||||
|
||||
// Les diff‚rents types de modes vid‚os
|
||||
// Les différents types de modes vidéos
|
||||
|
||||
enum TYPES_DE_MODES_VIDEO
|
||||
{
|
||||
MODE_SDL
|
||||
/*MODE_MCGA,
|
||||
MODE_X,
|
||||
MODE_VESA, // Attention! Si on change la num‚rotation, il faut
|
||||
MODE_VESA, // Attention! Si on change la numérotation, il faut
|
||||
MODE_XVESA // que les 2 plus grandes valeurs soient ces 2 modes!*/
|
||||
};
|
||||
|
||||
// Les diff‚rents modes vid‚os (avec leur nø d'ordre)
|
||||
// Les différents modes vidéos (avec leur nø d'ordre)
|
||||
|
||||
enum MODES_VIDEO
|
||||
{
|
||||
@ -183,18 +182,18 @@ enum MODES_VIDEO
|
||||
MODE_1024_768 // 59
|
||||
};
|
||||
|
||||
// Les diff‚rentes cat‚gories de bouton:
|
||||
// Les différentes catégories de bouton:
|
||||
|
||||
enum FAMILLES_DE_BOUTONS
|
||||
{
|
||||
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_TOOLBAR, // Cache/Montre la barre d'outils
|
||||
FAMILLE_EFFETS // Effets
|
||||
};
|
||||
|
||||
// Les diff‚rentes formes de bouton:
|
||||
// Les différentes formes de bouton:
|
||||
|
||||
enum FORMES_DE_BOUTONS
|
||||
{
|
||||
@ -204,7 +203,7 @@ enum FORMES_DE_BOUTONS
|
||||
FORME_BOUTON_TRIANGLE_BAS_DROITE // Ex: Rectangles pleins
|
||||
};
|
||||
|
||||
// Les diff‚rentes formes de curseur:
|
||||
// Les différentes formes de curseur:
|
||||
|
||||
enum FORMES_DE_CURSEUR
|
||||
{
|
||||
@ -221,7 +220,7 @@ enum FORMES_DE_CURSEUR
|
||||
FORME_CURSEUR_ROTATE_XOR
|
||||
};
|
||||
|
||||
// Les diff‚rentes formes de pinceaux (les types de pinceaux doivent ˆtre au d‚but)
|
||||
// Les différentes formes de pinceaux (les types de pinceaux doivent être au début)
|
||||
|
||||
enum FORMES_DE_PINCEAUX
|
||||
{
|
||||
@ -237,18 +236,18 @@ enum FORMES_DE_PINCEAUX
|
||||
FORME_PINCEAU_LOSANGE,
|
||||
FORME_PINCEAU_ROND_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_POINT, // Utilis‚ pour r‚duire de pinceau … 1 point dans certaines op‚rations
|
||||
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_BROSSE_COULEUR,
|
||||
FORME_PINCEAU_BROSSE_MONOCHROME
|
||||
};
|
||||
|
||||
// Les diff‚rents ‚tats de bouton:
|
||||
// Les différents états de bouton:
|
||||
|
||||
#define BOUTON_RELACHE 0
|
||||
#define BOUTON_ENFONCE 1
|
||||
|
||||
// Les diff‚rents modes de Shade
|
||||
// Les différents modes de Shade
|
||||
|
||||
enum MODES_DE_SHADE
|
||||
{
|
||||
@ -257,7 +256,7 @@ enum MODES_DE_SHADE
|
||||
MODE_SHADE_NOSAT
|
||||
};
|
||||
|
||||
// Les diff‚rents chunks du fichier .CFG
|
||||
// Les différents chunks du fichier .CFG
|
||||
|
||||
enum CHUNKS_CFG
|
||||
{
|
||||
@ -272,7 +271,7 @@ enum CHUNKS_CFG
|
||||
CHUNK_QUICK_SHADE
|
||||
};
|
||||
|
||||
// Les diff‚rents types de lecteurs:
|
||||
// Les différents types de lecteurs:
|
||||
|
||||
enum TYPES_DE_LECTEURS
|
||||
{
|
||||
@ -280,10 +279,10 @@ enum TYPES_DE_LECTEURS
|
||||
DRIVE_FLOPPY_5_25, // 1: Diskette 5"¬
|
||||
DRIVE_HDD, // 2: HDD
|
||||
DRIVE_CDROM, // 3: CD-ROM
|
||||
DRIVE_NETWORK // 4: Logique (r‚seau?)
|
||||
DRIVE_NETWORK // 4: Logique (réseau?)
|
||||
};
|
||||
|
||||
// Les diff‚rents boutons:
|
||||
// Les différents boutons:
|
||||
|
||||
enum NUMEROS_DE_BOUTONS
|
||||
{
|
||||
@ -327,7 +326,7 @@ enum NUMEROS_DE_BOUTONS
|
||||
BOUTON_CACHER
|
||||
};
|
||||
|
||||
// Les actions des touches sp‚ciales
|
||||
// Les actions des touches spéciales
|
||||
|
||||
enum ACTIONS_SPECIALES
|
||||
{
|
||||
@ -337,9 +336,9 @@ enum ACTIONS_SPECIALES
|
||||
SPECIAL_MOUSE_RIGHT, // |
|
||||
SPECIAL_CLICK_LEFT, // | Il faut garder
|
||||
SPECIAL_CLICK_RIGHT, // | ces constantes
|
||||
SPECIAL_NEXT_FORECOLOR, // | au d‚but de la
|
||||
SPECIAL_NEXT_FORECOLOR, // | au début de la
|
||||
SPECIAL_PREVIOUS_FORECOLOR, // |_ liste car elles
|
||||
SPECIAL_NEXT_BACKCOLOR, // | sont r‚utilis‚es
|
||||
SPECIAL_NEXT_BACKCOLOR, // | sont réutilisées
|
||||
SPECIAL_PREVIOUS_BACKCOLOR, // | avec leurs valeurs
|
||||
SPECIAL_RETRECIR_PINCEAU, // | brutes en ASM dans
|
||||
SPECIAL_GROSSIR_PINCEAU, // | Get_input !!!
|
||||
@ -394,7 +393,7 @@ enum ACTIONS_SPECIALES
|
||||
SPECIAL_MASK_MENU, // | SPECIAL_SHADE_MODE, et que le
|
||||
SPECIAL_GRID_MODE, // | dernier soit SPECIAL_TILING_MENU,
|
||||
SPECIAL_GRID_MENU, // |_ et que seuls des effets soient
|
||||
SPECIAL_SIEVE_MODE, // | d‚finis entre ces deux l… car
|
||||
SPECIAL_SIEVE_MODE, // | définis entre ces deux là car
|
||||
SPECIAL_SIEVE_MENU, // | des tests sur cet intervalle sont
|
||||
SPECIAL_COLORIZE_MODE, // | faits dans le moteur.
|
||||
SPECIAL_COLORIZE_MENU, // |
|
||||
@ -405,15 +404,15 @@ enum ACTIONS_SPECIALES
|
||||
SPECIAL_TILING_MENU // |
|
||||
};
|
||||
|
||||
// D‚finition des op‚rations:
|
||||
// Définition des opérations:
|
||||
|
||||
enum OPERATIONS
|
||||
{
|
||||
OPERATION_DESSIN_CONTINU, // Dessin … la main continu
|
||||
OPERATION_DESSIN_DISCONTINU, // Dessin … la main discontinu
|
||||
OPERATION_DESSIN_POINT, // Dessin … la main point par point
|
||||
OPERATION_DESSIN_CONTINU, // Dessin à la main continu
|
||||
OPERATION_DESSIN_DISCONTINU, // Dessin à la main discontinu
|
||||
OPERATION_DESSIN_POINT, // Dessin à la main point par point
|
||||
OPERATION_LIGNE, // Lignes
|
||||
OPERATION_K_LIGNE, // Lignes reli‚es
|
||||
OPERATION_K_LIGNE, // Lignes reliées
|
||||
OPERATION_LIGNES_CENTREES, // Lignes concentriques
|
||||
OPERATION_RECTANGLE_VIDE, // Rectangle vide
|
||||
OPERATION_RECTANGLE_PLEIN, // Rectangle plein
|
||||
@ -425,18 +424,18 @@ enum OPERATIONS
|
||||
OPERATION_REMPLACER, // Remplacer couleur
|
||||
OPERATION_PRISE_BROSSE, // Prise de brosse rectangulaire
|
||||
OPERATION_POLYBROSSE, // Prise d'une brosse multiforme
|
||||
OPERATION_PIPETTE, // R‚cup‚ration d'une couleur
|
||||
OPERATION_LOUPE, // Positionnement de la fenˆtre de loupe
|
||||
OPERATION_COURBE_3_POINTS, // Courbe … 3 points
|
||||
OPERATION_COURBE_4_POINTS, // Courbe … 4 points
|
||||
OPERATION_PIPETTE, // Récupération d'une couleur
|
||||
OPERATION_LOUPE, // Positionnement de la fenêtre de loupe
|
||||
OPERATION_COURBE_3_POINTS, // Courbe à 3 points
|
||||
OPERATION_COURBE_4_POINTS, // Courbe à 4 points
|
||||
OPERATION_SPRAY, // Spray
|
||||
OPERATION_POLYGONE, // Polygone
|
||||
OPERATION_POLYFORM, // Polyforme
|
||||
OPERATION_POLYFILL, // Polyfill
|
||||
OPERATION_FILLED_POLYFORM, // Polyforme rempli
|
||||
OPERATION_SCROLL, // Scroll
|
||||
OPERATION_CERCLE_DEGRADE, // Cercles d‚grad‚s
|
||||
OPERATION_ELLIPSE_DEGRADEE, // Ellipses d‚grad‚es
|
||||
OPERATION_CERCLE_DEGRADE, // Cercles dégradés
|
||||
OPERATION_ELLIPSE_DEGRADEE, // Ellipses dégradées
|
||||
OPERATION_TOURNER_BROSSE, // Faire tourner brosse
|
||||
OPERATION_ETIRER_BROSSE, // Etirer brosse
|
||||
OPERATION_DEFORMER_BROSSE, // Deformer brosse
|
||||
|
||||
83
divers.c
83
divers.c
@ -276,4 +276,85 @@ long Freespace(byte Numero_de_lecteur)
|
||||
{
|
||||
puts("Freespace non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
byte Couleur_ILBM_line(word Pos_X, word Vraie_taille_ligne)
|
||||
{
|
||||
puts("Couleur_ILBM_line non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Palette_256_to_64(T_Palette Palette)
|
||||
{
|
||||
puts("Palette_256_to_64 non implémenté!\n");
|
||||
}
|
||||
|
||||
void Palette_64_to_256(T_Palette Palette)
|
||||
{
|
||||
puts("Palette_64_to_256 non implémenté!\n");
|
||||
}
|
||||
|
||||
byte Effet_Colorize_interpole (word X,word Y,byte Couleur)
|
||||
{
|
||||
puts("Effet_Colorize_interpole non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
byte Effet_Colorize_additif (word X,word Y,byte Couleur)
|
||||
{
|
||||
puts("Effet_Colorize_additif non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur)
|
||||
{
|
||||
puts("Effet_Colorize_soustractif non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Tester_chrono(void)
|
||||
{
|
||||
puts("Tester_chrono non implémenté!\n");
|
||||
}
|
||||
|
||||
void Flip_Y_LOWLEVEL(void)
|
||||
{
|
||||
puts("Flip_Y_LOWLEVEL non implémenté!\n");
|
||||
}
|
||||
|
||||
void Flip_X_LOWLEVEL(void)
|
||||
{
|
||||
puts("Flip_X_LOWLEVEL non implémenté!\n");
|
||||
}
|
||||
|
||||
void Rotate_180_deg_LOWLEVEL(void)
|
||||
{
|
||||
puts("Rotate_180_deg_LOWLEVEL non implémenté!\n");
|
||||
}
|
||||
|
||||
void Tempo_jauge(byte Vitesse)
|
||||
{
|
||||
puts("Tempo_jauge non implémenté!\n");
|
||||
}
|
||||
|
||||
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
|
||||
{
|
||||
puts("Meilleure_couleur_sans_exclusion non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu)
|
||||
{
|
||||
puts("Set_color non implémenté!\n");
|
||||
}
|
||||
|
||||
void Scroll_picture(short Decalage_X,short Decalage_Y)
|
||||
{
|
||||
puts("Scroll_picture non implémenté!\n");
|
||||
}
|
||||
|
||||
byte Get_key(void)
|
||||
{
|
||||
puts("Get_key non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
5
linux.c
5
linux.c
@ -22,3 +22,8 @@ int filelength(int fichier)
|
||||
printf("filelenght non implémenté!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void itoa(int source,char* dest, int longueur)
|
||||
{
|
||||
printf("itoa non implémenté!\n");
|
||||
}
|
||||
|
||||
3
linux.h
3
linux.h
@ -8,4 +8,7 @@ struct find_t {
|
||||
|
||||
int filelength(int);
|
||||
|
||||
void itoa(int source,char* dest, int longueur);
|
||||
/* Integer TO Ascii */
|
||||
|
||||
#define _A_SUBDIR 1
|
||||
|
||||
9
makefile
9
makefile
@ -1,9 +1,9 @@
|
||||
CC = gcc
|
||||
COPT = -Wall -Os -c
|
||||
LOPT = -lSDL
|
||||
LOPT = -lSDL -o grafx2
|
||||
|
||||
gfx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o
|
||||
$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o -o grafx2
|
||||
gfx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
|
||||
$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o operatio.o op_c.o readline.o special.o op_asm.o
|
||||
|
||||
main.o : graph.o const.h struct.h global.h graph.h divers.h init.h boutons.h moteur.h files.h loadsave.h main.c readini.h saveini.h
|
||||
$(CC) $(COPT) main.c
|
||||
@ -47,6 +47,9 @@ loadsave.o : const.h struct.h global.h divers.h graph.h loadsave.c pages.h op_c.
|
||||
op_c.o : struct.h op_c.c op_c.h op_asm.h
|
||||
$(CC) $(COPT) op_c.c
|
||||
|
||||
op_asm.o : op_asm.h op_asm.c
|
||||
$(CC) $(COPT) op_asm.c
|
||||
|
||||
sdlscreen.o : sdlscreen.c sdlscreen.h
|
||||
$(CC) $(COPT) sdlscreen.c
|
||||
|
||||
|
||||
176
moteur.c
176
moteur.c
@ -17,13 +17,13 @@
|
||||
#include "operatio.h"
|
||||
#include "shade.h"
|
||||
|
||||
// On d‚clare m‚chamment le prototype de Erreur pour ‚viter de faire un
|
||||
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
||||
// fichier "main.h":
|
||||
void Erreur(int Code);
|
||||
|
||||
//---------- Annuler les effets des modes de dessin (sauf la grille) ---------
|
||||
|
||||
// Variables m‚morisants les anciens effets
|
||||
// Variables mémorisants les anciens effets
|
||||
|
||||
byte Shade_Mode_avant_annulation;
|
||||
byte Quick_shade_Mode_avant_annulation;
|
||||
@ -272,22 +272,22 @@ void Tracer_cadre_de_bouton_du_menu(byte Numero,byte Enfonce)
|
||||
}
|
||||
|
||||
|
||||
//---------------------- D‚senclenchement d'un bouton ------------------------
|
||||
//---------------------- Désenclenchement d'un bouton ------------------------
|
||||
void Desenclencher_bouton(int Numero)
|
||||
{
|
||||
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);
|
||||
// On considŠre que le bouton est relƒch‚
|
||||
// On considère que le bouton est relƒché
|
||||
Bouton[Numero].Enfonce=BOUTON_RELACHE;
|
||||
// On appelle le d‚senclenchement particulier au bouton:
|
||||
// On appelle le désenclenchement particulier au bouton:
|
||||
Bouton[Numero].Desenclencher();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-Enclenchement d'un bouton (et d‚senclenchement de ceux de la mˆme famille)-
|
||||
//-Enclenchement d'un bouton (et désenclenchement de ceux de la même famille)-
|
||||
void Enclencher_bouton(int Numero,byte Click)
|
||||
{
|
||||
int Famille;
|
||||
@ -295,50 +295,50 @@ void Enclencher_bouton(int Numero,byte Click)
|
||||
|
||||
Effacer_curseur();
|
||||
|
||||
// On note d‚j… la famille du bouton (La "Famiglia" c'est sacr‚)
|
||||
// On note déjà la famille du bouton (La "Famiglia" c'est sacré)
|
||||
Famille=Bouton[Numero].Famille;
|
||||
|
||||
switch (Famille)
|
||||
{
|
||||
case FAMILLE_TOOLBAR: // On ne fait rien (on pr‚serve les interruptions)
|
||||
case FAMILLE_TOOLBAR: // On ne fait rien (on préserve les interruptions)
|
||||
break;
|
||||
|
||||
case FAMILLE_INTERRUPTION: // Petit cas sp‚cial dans la famille "Interruption":
|
||||
case FAMILLE_INTERRUPTION: // Petit cas spécial dans la famille "Interruption":
|
||||
if ((Numero!=BOUTON_LOUPE) || (!Loupe_Mode))
|
||||
// Pour chaque bouton:
|
||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
||||
// S'il est de la mˆme famille
|
||||
// S'il est de la même famille
|
||||
if (
|
||||
(Curseur!=Numero) &&
|
||||
(Bouton[Curseur].Famille==FAMILLE_INTERRUPTION) &&
|
||||
( (Curseur!=BOUTON_LOUPE) ||
|
||||
((Curseur==BOUTON_LOUPE) && (!Loupe_Mode)) )
|
||||
)
|
||||
// Alors on d‚senclenche le bouton
|
||||
// Alors on désenclenche le bouton
|
||||
Desenclencher_bouton(Curseur);
|
||||
break;
|
||||
|
||||
default:
|
||||
// On d‚senclenche D'ABORD les interruptions
|
||||
// On désenclenche D'ABORD les interruptions
|
||||
// Pour chaque bouton:
|
||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
||||
// S'il est de la mˆme famille
|
||||
// S'il est de la même famille
|
||||
if ( (Curseur!=Numero)
|
||||
&& (Bouton[Curseur].Famille==FAMILLE_INTERRUPTION)
|
||||
// Et que ce n'est pas la loupe, ou alors qu'on n'est pas en mode loupe
|
||||
&& (!(Loupe_Mode && (Curseur==BOUTON_LOUPE))) )
|
||||
// Alors on d‚senclenche le bouton
|
||||
// Alors on désenclenche le bouton
|
||||
Desenclencher_bouton(Curseur);
|
||||
// Pour chaque bouton:
|
||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
||||
// S'il est de la mˆme famille
|
||||
// S'il est de la même famille
|
||||
if ( (Curseur!=Numero)
|
||||
&& (Bouton[Curseur].Famille==Famille) )
|
||||
// Alors on d‚senclenche le bouton
|
||||
// Alors on désenclenche le bouton
|
||||
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);
|
||||
|
||||
Afficher_curseur();
|
||||
@ -346,7 +346,7 @@ void Enclencher_bouton(int Numero,byte Click)
|
||||
// On attend ensuite que l'utilisateur lƒche son bouton:
|
||||
Attendre_fin_de_click();
|
||||
|
||||
// On considŠre que le bouton est enfonc‚
|
||||
// On considère que le bouton est enfoncé
|
||||
Bouton[Numero].Enfonce=BOUTON_ENFONCE;
|
||||
|
||||
// Puis on se contente d'appeler l'action correspondant au bouton:
|
||||
@ -358,8 +358,8 @@ void Enclencher_bouton(int Numero,byte Click)
|
||||
|
||||
|
||||
|
||||
//--- D‚placer la barre de s‚paration entre la partie zoom‚e et la partie ----
|
||||
//------------------ non-zoom‚e lorsqu'on est en mode loupe ------------------
|
||||
//--- Déplacer la barre de séparation entre la partie zoomée et la partie ----
|
||||
//------------------ non-zoomée lorsqu'on est en mode loupe ------------------
|
||||
void Deplacer_Split(void)
|
||||
{
|
||||
short Ancien_Split=Principal_Split;
|
||||
@ -422,17 +422,17 @@ void Gestion_principale(void)
|
||||
static byte Temp_color;
|
||||
static short Old_MX=0;
|
||||
static short Old_MY=0;
|
||||
int Indice_bouton; // Num‚ro de bouton de menu en cours
|
||||
int Indice_bouton_precedent=0; // Num‚ro de bouton de menu sur lequel on ‚tait pr‚c‚demment
|
||||
byte Blink; // L'op‚ration demande un effacement du curseur
|
||||
int Bouton_Touche; // Bouton … enclencher d'aprŠs la touche de raccourci enfonc‚e
|
||||
byte Bouton_Cote; // C“t‚ du bouton … enclencher d'aprŠs la touche de raccourci enfonc‚e
|
||||
int Indice_Touche; // Indice du tableau de touches sp‚ciales correspondant … la touche enfonc‚e
|
||||
int Indice_bouton; // Numéro de bouton de menu en cours
|
||||
int Indice_bouton_precedent=0; // Numéro de bouton de menu sur lequel on était précédemment
|
||||
byte Blink; // L'opération demande un effacement du curseur
|
||||
int Bouton_Touche; // Bouton à enclencher d'après la touche de raccourci enfoncée
|
||||
byte Bouton_Cote; // C“té du bouton à enclencher d'après la touche de raccourci enfoncée
|
||||
int Indice_Touche; // Indice du tableau de touches spéciales correspondant à la touche enfoncée
|
||||
char Chaine[25];
|
||||
byte Temp;
|
||||
|
||||
|
||||
// Au d‚marrage, on sait que le curseur n'est pas dans le menu
|
||||
// Au démarrage, on sait que le curseur n'est pas dans le menu
|
||||
|
||||
Curseur_dans_menu_precedent=0;
|
||||
|
||||
@ -446,7 +446,7 @@ void Gestion_principale(void)
|
||||
{
|
||||
for (Indice_Touche=0;(Indice_Touche<NB_TOUCHES_SPECIALES) && (Touche!=Config_Touche[Indice_Touche]);Indice_Touche++);
|
||||
|
||||
// Gestion des touches sp‚ciales:
|
||||
// Gestion des touches spéciales:
|
||||
if (Indice_Touche>SPECIAL_CLICK_RIGHT)
|
||||
switch(Indice_Touche)
|
||||
{
|
||||
@ -534,7 +534,7 @@ void Gestion_principale(void)
|
||||
case SPECIAL_PREVIOUS_BACKCOLOR : // Previous background color
|
||||
Special_Previous_backcolor();
|
||||
break;
|
||||
case SPECIAL_RETRECIR_PINCEAU: // R‚tr‚cir le pinceau
|
||||
case SPECIAL_RETRECIR_PINCEAU: // Rétrécir le pinceau
|
||||
Retrecir_pinceau();
|
||||
break;
|
||||
case SPECIAL_GROSSIR_PINCEAU: // Grossir le pinceau
|
||||
@ -756,7 +756,7 @@ void Gestion_principale(void)
|
||||
Indice_bouton=NB_BOUTONS;
|
||||
}
|
||||
}
|
||||
// AprŠs avoir scrut‚ les boutons, si la recherche a ‚t‚ fructueuse,
|
||||
// Après avoir scruté les boutons, si la recherche a été fructueuse,
|
||||
// on lance le bouton.
|
||||
if (Bouton_Touche!=-1)
|
||||
{
|
||||
@ -765,8 +765,8 @@ void Gestion_principale(void)
|
||||
}
|
||||
}
|
||||
|
||||
// Si on a modifi‚ un effet, il faut rafficher le bouton des effets en
|
||||
// cons‚quence.
|
||||
// Si on a modifié un effet, il faut rafficher le bouton des effets en
|
||||
// conséquence.
|
||||
if ((Indice_Touche>=SPECIAL_SHADE_MODE)
|
||||
&& (Indice_Touche<=SPECIAL_TILING_MENU))
|
||||
{
|
||||
@ -801,7 +801,7 @@ void Gestion_principale(void)
|
||||
{
|
||||
if (Menu_visible)
|
||||
{
|
||||
// On nettoie les coordonn‚es
|
||||
// On nettoie les coordonnées
|
||||
Effacer_curseur();
|
||||
Block(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair);
|
||||
Afficher_curseur();
|
||||
@ -923,16 +923,16 @@ void Gestion_principale(void)
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Diff‚rentes fonctions d'affichage utilis‚es dans les fenˆtres //
|
||||
// Différentes fonctions d'affichage utilisées dans les fenêtres //
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//----------------------- Tracer une fenˆtre d'options -----------------------
|
||||
//----------------------- Tracer une fenêtre d'options -----------------------
|
||||
|
||||
void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
||||
// Lors de l'appel … cette proc‚dure, la souris doit ˆtre affich‚e.
|
||||
// En sortie de cette procedure, la souris est effac‚e.
|
||||
// Lors de l'appel à cette procédure, la souris doit être affichée.
|
||||
// En sortie de cette procedure, la souris est effacée.
|
||||
{
|
||||
word i,j;
|
||||
//word i,j;
|
||||
|
||||
Effacer_curseur();
|
||||
|
||||
@ -941,15 +941,15 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
||||
Fenetre_Largeur=Largeur;
|
||||
Fenetre_Hauteur=Hauteur;
|
||||
|
||||
// Positionnement de la fenˆtre
|
||||
// Positionnement de la fenêtre
|
||||
Fenetre_Pos_X=(Largeur_ecran-(Largeur*Menu_Facteur_X))>>1;
|
||||
|
||||
Fenetre_Pos_Y=(Hauteur_ecran-(Hauteur*Menu_Facteur_Y))>>1;
|
||||
|
||||
// Fenˆtre grise
|
||||
// Fenêtre grise
|
||||
Block(Fenetre_Pos_X+(Menu_Facteur_X<<1),Fenetre_Pos_Y+(Menu_Facteur_Y<<1),(Largeur-4)*Menu_Facteur_X,(Hauteur-4)*Menu_Facteur_Y,CM_Clair);
|
||||
|
||||
// -- Cadre de la fenˆtre ----- --- -- - -
|
||||
// -- Cadre de la fenêtre ----- --- -- - -
|
||||
|
||||
// Cadre noir puis en relief
|
||||
Fenetre_Afficher_cadre_mono(0,0,Largeur,Hauteur,CM_Noir);
|
||||
@ -970,22 +970,22 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
||||
Cacher_pinceau_avant_fenetre=Cacher_pinceau;
|
||||
Cacher_pinceau=1;
|
||||
|
||||
// Initialisation des listes de boutons de la fenˆtre
|
||||
// Initialisation des listes de boutons de la fenêtre
|
||||
Fenetre_Liste_boutons_normal =NULL;
|
||||
Fenetre_Liste_boutons_palette =NULL;
|
||||
Fenetre_Liste_boutons_scroller=NULL;
|
||||
Fenetre_Liste_boutons_special =NULL;
|
||||
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();
|
||||
}
|
||||
|
||||
//----------------------- Fermer une fenˆtre d'options -----------------------
|
||||
//----------------------- Fermer une fenêtre d'options -----------------------
|
||||
|
||||
void Fermer_fenetre(void)
|
||||
// Lors de l'appel … cette procedure, la souris doit ˆtre affich‚e.
|
||||
// En sortie de cette procedure, la souris est effac‚e.
|
||||
// Lors de l'appel à cette procedure, la souris doit être affichée.
|
||||
// En sortie de cette procedure, la souris est effacée.
|
||||
{
|
||||
struct Fenetre_Bouton_normal * Temp1;
|
||||
struct Fenetre_Bouton_palette * Temp2;
|
||||
@ -1022,7 +1022,7 @@ void Fermer_fenetre(void)
|
||||
}
|
||||
|
||||
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.
|
||||
|
||||
Calculer_coordonnees_pinceau();
|
||||
@ -1037,12 +1037,12 @@ void Fermer_fenetre(void)
|
||||
Touche=0;
|
||||
Mouse_K=0;
|
||||
|
||||
// On (re)passe dans le clavier am‚ricain
|
||||
// On (re)passe dans le clavier américain
|
||||
Clavier_americain();
|
||||
}
|
||||
|
||||
|
||||
//---------------- Dessiner un bouton normal dans une fenˆtre ----------------
|
||||
//---------------- Dessiner un bouton normal dans une fenêtre ----------------
|
||||
|
||||
void Fenetre_Dessiner_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur,
|
||||
char * Titre,byte Lettre_soulignee,byte Clickable)
|
||||
@ -1074,20 +1074,20 @@ void Fenetre_Dessiner_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Haut
|
||||
}
|
||||
|
||||
|
||||
// -- Bouton normal enfonc‚ dans la fenˆtre --
|
||||
// -- Bouton normal enfoncé dans la fenêtre --
|
||||
void Fenetre_Enfoncer_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur)
|
||||
{
|
||||
Fenetre_Afficher_cadre_general(Pos_X,Pos_Y,Largeur,Hauteur,CM_Fonce,CM_Noir,CM_Fonce,CM_Fonce,CM_Noir);
|
||||
}
|
||||
|
||||
// -- Bouton normal d‚senfonc‚ dans la fenˆtre --
|
||||
// -- Bouton normal désenfoncé dans la fenêtre --
|
||||
void Fenetre_Desenfoncer_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur)
|
||||
{
|
||||
Fenetre_Afficher_cadre_bombe(Pos_X,Pos_Y,Largeur,Hauteur);
|
||||
}
|
||||
|
||||
|
||||
//--------------- Dessiner un bouton palette dans une fenˆtre ----------------
|
||||
//--------------- Dessiner un bouton palette dans une fenêtre ----------------
|
||||
void Fenetre_Dessiner_bouton_palette(word Pos_X,word Pos_Y)
|
||||
{
|
||||
word Couleur;
|
||||
@ -1107,7 +1107,7 @@ void Fenetre_Effacer_tags(void)
|
||||
word Origine_Y;
|
||||
word Pos_X;
|
||||
word Pos_fenetre_X;
|
||||
word Pos_fenetre_Y;
|
||||
//word Pos_fenetre_Y;
|
||||
|
||||
Origine_X=Fenetre_Pos_X+(Fenetre_Liste_boutons_palette->Pos_X+3)*Menu_Facteur_X;
|
||||
Origine_Y=Fenetre_Pos_Y+(Fenetre_Liste_boutons_palette->Pos_Y+3)*Menu_Facteur_Y;
|
||||
@ -1121,9 +1121,9 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
|
||||
{
|
||||
word Origine_X;
|
||||
word Origine_Y;
|
||||
word Pos_X;
|
||||
//word Pos_X;
|
||||
word Pos_Y;
|
||||
word Pos_fenetre_X;
|
||||
//word Pos_fenetre_X;
|
||||
word Pos_fenetre_Y;
|
||||
word Indice;
|
||||
|
||||
@ -1149,10 +1149,10 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
|
||||
|
||||
if (Debut!=Fin)
|
||||
{
|
||||
// On complŠte le 1er TAG
|
||||
// On complète le 1er TAG
|
||||
Pixel_dans_fenetre(Origine_X+1,Origine_Y+4,CM_Noir);
|
||||
|
||||
// On affiche le 2Šme TAG
|
||||
// On affiche le 2ème TAG
|
||||
Origine_X=(Fenetre_Liste_boutons_palette->Pos_X+3)+(Fin>>4)*10;
|
||||
Origine_Y=(Fenetre_Liste_boutons_palette->Pos_Y+3)+(Fin&15)* 5;
|
||||
for (Pos_Y=0,Pos_fenetre_Y=Origine_Y; Pos_Y<5; Pos_Y++,Pos_fenetre_Y++)
|
||||
@ -1161,13 +1161,13 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
|
||||
Pixel_dans_fenetre(Origine_X+1,Pos_fenetre_Y,CM_Noir);
|
||||
Pixel_dans_fenetre(Origine_X+2,Origine_Y+2,CM_Noir);
|
||||
|
||||
// On TAG toutes les couleurs interm‚diaires
|
||||
// On TAG toutes les couleurs intermédiaires
|
||||
for (Indice=Debut+1;Indice<Fin;Indice++)
|
||||
{
|
||||
Block(Fenetre_Pos_X+(Fenetre_Liste_boutons_palette->Pos_X+3+((Indice>>4)*10))*Menu_Facteur_X,
|
||||
Fenetre_Pos_Y+(Fenetre_Liste_boutons_palette->Pos_Y+3+((Indice&15)* 5))*Menu_Facteur_Y,
|
||||
Menu_Facteur_X*2,Menu_Facteur_Y*5,CM_Noir);
|
||||
// On efface l'‚ventuelle pointe d'une ancienne extr‚mit‚ de l'intervalle
|
||||
// On efface l'éventuelle pointe d'une ancienne extrémité de l'intervalle
|
||||
Pixel_dans_fenetre(Fenetre_Liste_boutons_palette->Pos_X+5+((Indice>>4)*10),
|
||||
Fenetre_Liste_boutons_palette->Pos_Y+5+((Indice&15)* 5),
|
||||
CM_Clair);
|
||||
@ -1176,7 +1176,7 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
|
||||
}
|
||||
|
||||
|
||||
//------------------ Dessiner un scroller dans une fenˆtre -------------------
|
||||
//------------------ Dessiner un scroller dans une fenêtre -------------------
|
||||
|
||||
void Calculer_hauteur_curseur_jauge(struct Fenetre_Bouton_scroller * Enreg)
|
||||
{
|
||||
@ -1222,7 +1222,7 @@ void Fenetre_Dessiner_bouton_scroller(struct Fenetre_Bouton_scroller * Enreg)
|
||||
}
|
||||
|
||||
|
||||
//--------------- Dessiner une zone de saisie dans une fenˆtre ---------------
|
||||
//--------------- Dessiner une zone de saisie dans une fenêtre ---------------
|
||||
|
||||
void Fenetre_Dessiner_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracteres)
|
||||
{
|
||||
@ -1239,7 +1239,7 @@ void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char *
|
||||
|
||||
|
||||
|
||||
//------ Rajout d'un bouton … la liste de ceux pr‚sents dans la fenˆtre ------
|
||||
//------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------
|
||||
|
||||
void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
|
||||
word Largeur, word Hauteur,
|
||||
@ -1336,12 +1336,12 @@ void Fenetre_Definir_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracte
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Mini-MOTEUR utilis‚ dans les fenˆtres (menus des boutons...) //
|
||||
// Mini-MOTEUR utilisé dans les fenêtres (menus des boutons...) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// -- Indique si on a cliqu‚ dans une zone d‚finie par deux points extremes --
|
||||
// -- Indique si on a cliqué dans une zone définie par deux points extremes --
|
||||
byte Fenetre_click_dans_zone(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y)
|
||||
{
|
||||
short Pos_X,Pos_Y;
|
||||
@ -1357,7 +1357,7 @@ byte Fenetre_click_dans_zone(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y
|
||||
|
||||
|
||||
// --- Attend que l'on clique dans la palette pour renvoyer la couleur choisie
|
||||
// ou bien renvoie -1 si on a annul‚ l'action pas click-droit ou Escape ------
|
||||
// ou bien renvoie -1 si on a annulé l'action pas click-droit ou Escape ------
|
||||
short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
|
||||
{
|
||||
short Debut_X=Enreg->Pos_X+5;
|
||||
@ -1420,7 +1420,7 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
|
||||
|
||||
|
||||
|
||||
// -------------- R‚cup‚ration d'une couleur derriŠre un menu ----------------
|
||||
// -------------- Récupération d'une couleur derrière un menu ----------------
|
||||
void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||
{
|
||||
short Largeur=Fenetre_Largeur*Menu_Facteur_X;
|
||||
@ -1434,7 +1434,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||
byte Cacher_curseur_avant_recuperation;
|
||||
|
||||
|
||||
if (Buffer=(byte *) malloc(Largeur*Hauteur))
|
||||
if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
|
||||
{
|
||||
Effacer_curseur();
|
||||
|
||||
@ -1455,7 +1455,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
|
||||
B=Cacher_pinceau;
|
||||
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)
|
||||
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
|
||||
|
||||
@ -1471,7 +1471,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||
A=Lit_pixel(Mouse_X,Mouse_Y);
|
||||
if (A!=C)
|
||||
{
|
||||
C=A; // Mise … jour de la couleur point‚e
|
||||
C=A; // Mise à jour de la couleur pointée
|
||||
if (Menu_visible_avant_fenetre)
|
||||
{
|
||||
sprintf(Chaine,"%d",A);
|
||||
@ -1531,7 +1531,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||
|
||||
|
||||
|
||||
// ------------ Op‚ration de d‚placement de la fenˆtre … l'‚cran -------------
|
||||
// ------------ Opération de déplacement de la fenêtre à l'écran -------------
|
||||
void Deplacer_fenetre(short Dx, short Dy)
|
||||
{
|
||||
short Nouveau_X=Mouse_X-Dx;
|
||||
@ -1546,7 +1546,7 @@ void Deplacer_fenetre(short Dx, short Dy)
|
||||
byte * Buffer;
|
||||
|
||||
|
||||
if (Buffer=(byte *) malloc(Largeur*Hauteur))
|
||||
if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
|
||||
{
|
||||
Effacer_curseur();
|
||||
for (Indice=0; Indice<Hauteur; Indice++)
|
||||
@ -1631,7 +1631,7 @@ void Deplacer_fenetre(short Dx, short Dy)
|
||||
|
||||
|
||||
|
||||
// --- Renvoie le num‚ro du bouton clicke (-1:hors de la fenˆtre, 0:aucun) ---
|
||||
// --- Renvoie le numéro du bouton clicke (-1:hors de la fenêtre, 0:aucun) ---
|
||||
short Fenetre_Numero_bouton_clicke(void)
|
||||
{
|
||||
struct Fenetre_Bouton_normal * Temp1;
|
||||
@ -1639,7 +1639,7 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
struct Fenetre_Bouton_scroller * Temp3;
|
||||
struct Fenetre_Bouton_special * Temp4;
|
||||
|
||||
long Hauteur_Curseur_jauge;
|
||||
//long Hauteur_Curseur_jauge;
|
||||
long Hauteur_maxi_jauge;
|
||||
|
||||
|
||||
@ -1670,12 +1670,12 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
}
|
||||
}
|
||||
|
||||
// Test du click sur les barres de d‚filement
|
||||
// Test du click sur les barres de défilement
|
||||
for (Temp3=Fenetre_Liste_boutons_scroller; Temp3; Temp3=Temp3->Next)
|
||||
{
|
||||
if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y,Temp3->Pos_X+10,Temp3->Pos_Y+Temp3->Hauteur-1))
|
||||
{
|
||||
// Bouton flŠche Haut
|
||||
// Bouton flèche Haut
|
||||
if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y,Temp3->Pos_X+10,Temp3->Pos_Y+10))
|
||||
{
|
||||
Effacer_curseur();
|
||||
@ -1700,10 +1700,10 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
Afficher_curseur();
|
||||
}
|
||||
else
|
||||
// Bouton flŠche Bas
|
||||
// Bouton flèche Bas
|
||||
if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,Temp3->Pos_X+10,Temp3->Pos_Y+Temp3->Hauteur-1))
|
||||
{
|
||||
Effacer_Curseur();
|
||||
Effacer_curseur();
|
||||
Fenetre_Enfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
|
||||
|
||||
if (Temp3->Position+Temp3->Nb_visibles<Temp3->Nb_elements)
|
||||
@ -1716,13 +1716,13 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
else
|
||||
Fenetre_Attribut1=0;
|
||||
|
||||
Afficher_Curseur();
|
||||
Afficher_curseur();
|
||||
|
||||
Tempo_jauge((Mouse_K==1)? Config.Valeur_tempo_jauge_gauche : Config.Valeur_tempo_jauge_droite);
|
||||
|
||||
Effacer_Curseur();
|
||||
Effacer_curseur();
|
||||
Fenetre_Desenfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
|
||||
Afficher_Curseur();
|
||||
Afficher_curseur();
|
||||
}
|
||||
else
|
||||
// Jauge
|
||||
@ -1754,9 +1754,9 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
{
|
||||
Temp3->Position=Fenetre_Attribut2;
|
||||
Fenetre_Attribut1=3;
|
||||
Effacer_Curseur();
|
||||
Effacer_curseur();
|
||||
Fenetre_Dessiner_jauge(Temp3);
|
||||
Afficher_Curseur();
|
||||
Afficher_curseur();
|
||||
}
|
||||
else
|
||||
// Si le curseur de la jauge ne bouge pas:
|
||||
@ -1775,7 +1775,7 @@ short Fenetre_Numero_bouton_clicke(void)
|
||||
}
|
||||
}
|
||||
|
||||
// Test du click sur une zone sp‚ciale
|
||||
// Test du click sur une zone spéciale
|
||||
for (Temp4=Fenetre_Liste_boutons_special; Temp4; Temp4=Temp4->Next)
|
||||
{
|
||||
if (Fenetre_click_dans_zone(Temp4->Pos_X,Temp4->Pos_Y,Temp4->Pos_X+Temp4->Largeur-1,Temp4->Pos_Y+Temp4->Hauteur-1))
|
||||
@ -1795,7 +1795,7 @@ short Fenetre_Numero_bouton_touche(void)
|
||||
else
|
||||
Fenetre_Attribut1=A_GAUCHE;
|
||||
|
||||
// On fait une premiŠre recherche
|
||||
// On fait une première recherche
|
||||
Temp=Fenetre_Liste_boutons_normal;
|
||||
while (Temp!=NULL)
|
||||
{
|
||||
@ -1804,9 +1804,9 @@ short Fenetre_Numero_bouton_touche(void)
|
||||
Temp=Temp->Next;
|
||||
}
|
||||
|
||||
// Si la recherche n'a pas ‚t‚ fructueuse ET que l'utilisateur appuyait sur
|
||||
// <Shift>, on regarde si un bouton ne pourrait pas r‚agir comme si <Shift>
|
||||
// n'‚tait pas appuy‚.
|
||||
// Si la recherche n'a pas été fructueuse ET que l'utilisateur appuyait sur
|
||||
// <Shift>, on regarde si un bouton ne pourrait pas réagir comme si <Shift>
|
||||
// n'était pas appuyé.
|
||||
if (Fenetre_Attribut1==A_DROITE)
|
||||
{
|
||||
Temp=Fenetre_Liste_boutons_normal;
|
||||
|
||||
176
op_asm.c
Normal file
176
op_asm.c
Normal file
@ -0,0 +1,176 @@
|
||||
#include "op_c.h"
|
||||
#include "stdio.h"
|
||||
|
||||
void OPASM_DitherFS_6123(
|
||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||
struct Composantes * Palette, // Palette de l'image destination
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS_6123 non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_DitherFS_623(
|
||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||
struct Composantes * Palette, // Palette de l'image destination
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS_623 non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_DitherFS_12(
|
||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
|
||||
struct Composantes * Palette, // Palette de l'image destination
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS_12 non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_DitherFS_6(
|
||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
int Largeur, // Largeur à traiter, =(largeur_image-1), (>0)
|
||||
struct Composantes * Palette, // Palette de l'image destination
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS_6 non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_DitherFS(
|
||||
Bitmap256 Destination, // Pointeur sur le pixel
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_DitherFS_2(
|
||||
Bitmap256 Destination, // Pointeur sur le 1er pixel de la colonne
|
||||
Bitmap24B Source, // Idem mais sur la source
|
||||
int Hauteur, // Hauteur à traiter, =(hauteur_image-1), (>0)
|
||||
struct Composantes * Palette, // Palette de l'image destination
|
||||
byte * TableC, // Table de conversion 24b->8b
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_DitherFS_2 non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_Split_cluster_Rouge(
|
||||
int * tableO, // Table d'occurences
|
||||
int rmin, // rmin << rdec
|
||||
int vmin, // vmin << vdec
|
||||
int bmin, // bmin << bdec
|
||||
int rmax, // rmax << rdec
|
||||
int vmax, // vmin << vdec
|
||||
int bmax, // bmin << bdec
|
||||
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||
int limite, // Nombre d'occurences minimales
|
||||
int rdec, // rdec
|
||||
int * rouge) // Valeur du rouge atteignant la limite
|
||||
{
|
||||
puts("OPASM_Split_cluster_Rouge non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_Split_cluster_Vert(
|
||||
int * tableO, // Table d'occurences
|
||||
int rmin, // rmin << rdec
|
||||
int vmin, // vmin << vdec
|
||||
int bmin, // bmin << bdec
|
||||
int rmax, // rmax << rdec
|
||||
int vmax, // vmin << vdec
|
||||
int bmax, // bmin << bdec
|
||||
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||
int limite, // Nombre d'occurences minimales
|
||||
int vdec, // vdec
|
||||
int * vert) // Valeur du vert atteignant la limite
|
||||
{
|
||||
puts("OPASM_Split_cluster_Vert non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_Split_cluster_Bleu(
|
||||
int * tableO, // Table d'occurences
|
||||
int rmin, // rmin << rdec
|
||||
int vmin, // vmin << vdec
|
||||
int bmin, // bmin << bdec
|
||||
int rmax, // rmax << rdec
|
||||
int vmax, // vmin << vdec
|
||||
int bmax, // bmin << bdec
|
||||
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||
int limite, // Nombre d'occurences minimales
|
||||
int bdec, // bdec
|
||||
int * bleu) // Valeur du bleu atteignant la limite
|
||||
{
|
||||
puts("OPASM_Split_cluster_Bleu non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_Compter_occurences(
|
||||
int * Destination, // Pointeur sur la table d'occurences
|
||||
Bitmap24B Source, // Pointeur sur l'image
|
||||
int Taille, // Nombre de pixels dans l'image
|
||||
byte ReducR, // 8-Nb_bits_rouges
|
||||
byte ReducV, // 8-Nb_bits_verts
|
||||
byte ReducB, // 8-Nb_bits_bleus
|
||||
byte NbbV, // Nb_bits_verts
|
||||
byte NbbB) // Nb_bits_bleus
|
||||
{
|
||||
puts("OPASM_Compter_occurences non implémenté!\n");
|
||||
}
|
||||
|
||||
void OPASM_Analyser_cluster(
|
||||
int * TableO, // Table d'occurences
|
||||
int * rmin, // rmin << rdec
|
||||
int * vmin, // vmin << vdec
|
||||
int * bmin, // bmin << bdec
|
||||
int * rmax, // rmax << rdec
|
||||
int * vmax, // vmax << vdec
|
||||
int * bmax, // bmax << bdec
|
||||
int rdec, // rdec
|
||||
int vdec, // vdec
|
||||
int bdec, // bdec
|
||||
int rinc, // Incrémentation sur les rouges 1 << rdec
|
||||
int vinc, // Incrémentation sur les verts 1 << vdec
|
||||
int binc, // Incrémentation sur les bleus 1 << bdec
|
||||
int * Nbocc) // Nombre d'occurences
|
||||
{
|
||||
puts("OPASM_Analyser_cluster non implémenté!\n");
|
||||
}
|
||||
652
operatio.c
652
operatio.c
File diff suppressed because it is too large
Load Diff
218
palette.c
218
palette.c
@ -6,7 +6,7 @@
|
||||
#include "graph.h"
|
||||
#include "moteur.h"
|
||||
#include "readline.h"
|
||||
|
||||
#include "boutons.h"
|
||||
|
||||
// --------------------------- Menu des palettes -----------------------------
|
||||
char * Libelle_reduction_palette[7]=
|
||||
@ -15,7 +15,7 @@ char * Libelle_reduction_palette[7]=
|
||||
};
|
||||
|
||||
|
||||
void Modifier_rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
void Modifier_Rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
{
|
||||
if (Nouvelle_teinte< 0)
|
||||
Nouvelle_teinte= 0;
|
||||
@ -27,7 +27,7 @@ void Modifier_rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
}
|
||||
|
||||
|
||||
void Modifier_vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
void Modifier_Vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
{
|
||||
if (Nouvelle_teinte< 0)
|
||||
Nouvelle_teinte= 0;
|
||||
@ -39,7 +39,7 @@ void Modifier_vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
}
|
||||
|
||||
|
||||
void Modifier_bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
void Modifier_Bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
|
||||
{
|
||||
if (Nouvelle_teinte< 0)
|
||||
Nouvelle_teinte= 0;
|
||||
@ -52,8 +52,8 @@ void Modifier_bleu(byte Couleur, short Nouvelle_teinte, 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
|
||||
// pass‚es en paramŠtre
|
||||
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
|
||||
// passées en paramŠtre
|
||||
{
|
||||
short Debut_Rouge;
|
||||
short Debut_Vert;
|
||||
@ -63,8 +63,8 @@ void Degrader_palette(short Debut,short Fin,T_Palette Palette)
|
||||
short Fin_Bleu;
|
||||
short Indice;
|
||||
|
||||
// On v‚rifie qu'il y ait assez de couleurs entre le d‚but et la fin pour
|
||||
// pouvoir faire un d‚grad‚:
|
||||
// On vérifie qu'il y ait assez de couleurs entre le début et la fin pour
|
||||
// pouvoir faire un dégradé:
|
||||
if ( (Debut!=Fin) && (Debut+1!=Fin) )
|
||||
{
|
||||
Debut_Rouge=Palette[Debut].R;
|
||||
@ -124,14 +124,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
|
||||
{
|
||||
short Fin_X;
|
||||
short Fin_Y;
|
||||
short Fin_X_Loupe;
|
||||
short Fin_Y_Loupe;
|
||||
short Fin_X_Loupe=0;
|
||||
short Fin_Y_Loupe=0;
|
||||
|
||||
// On s'occupe de faire la traduction dans l'image
|
||||
Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
|
||||
Principal_Largeur_image,Principal_Hauteur_image,Principal_Largeur_image);
|
||||
|
||||
// On calcule les limites … l'‚cran de l'image
|
||||
// On calcule les limites … l'écran de l'image
|
||||
if (Principal_Hauteur_image>=Menu_Ordonnee_avant_fenetre)
|
||||
Fin_Y=Menu_Ordonnee_avant_fenetre;
|
||||
else
|
||||
@ -163,14 +163,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
|
||||
Fin_Y_Loupe=Principal_Hauteur_image*Loupe_Facteur;
|
||||
}
|
||||
|
||||
// On doit maintenant faire la traduction … l'‚cran
|
||||
// On doit maintenant faire la traduction … l'écran
|
||||
Remap_zone_HIGH(0,0,Fin_X,Fin_Y,Table_de_conversion);
|
||||
|
||||
if (Loupe_Mode)
|
||||
{
|
||||
Remap_zone_HIGH(Principal_Split,0,Fin_X_Loupe,Fin_Y_Loupe,Table_de_conversion);
|
||||
// Il peut encore rester le bas de la barre de split … remapper si la
|
||||
// partie zoom‚e ne descend pas jusqu'en bas...
|
||||
// partie zoomée ne descend pas jusqu'en bas...
|
||||
Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
|
||||
(Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
|
||||
Menu_Ordonnee_avant_fenetre,Table_de_conversion);
|
||||
@ -199,7 +199,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
||||
Utilisation_temporaire=(dword *)malloc(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.
|
||||
for (Pos_1=0;Pos_1<=255;Pos_1++)
|
||||
Table_de_conversion[Pos_1]=Pos_1;
|
||||
@ -232,7 +232,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
||||
else
|
||||
if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
|
||||
{
|
||||
// Le bloc destination d‚borde dans le bloc source.
|
||||
// Le bloc destination déborde dans le bloc source.
|
||||
|
||||
for (Pos_1=Debut_Bloc_2,Pos_2=Debut_Bloc_1;Pos_1<=Fin_1;Pos_1++)
|
||||
{
|
||||
@ -262,7 +262,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
||||
Table_de_conversion[Pos_2]=Pos_1;
|
||||
|
||||
// On intervertit le nombre d'utilisation des couleurs pour garder une
|
||||
// coh‚rence lors d'un ‚ventuel "Zap unused".
|
||||
// cohérence lors d'un éventuel "Zap unused".
|
||||
Tempo =Utilisation_couleur[Pos_1];
|
||||
Utilisation_couleur[Pos_1]=Utilisation_couleur[Pos_2];
|
||||
Utilisation_couleur[Pos_2]=Tempo;
|
||||
@ -285,8 +285,8 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
||||
free(Utilisation_temporaire);
|
||||
free(Palette_temporaire);
|
||||
|
||||
// Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
|
||||
// palette, l'image et … l'‚cran.
|
||||
// Maintenant, tous ces calculs doivent êtres pris en compte dans la
|
||||
// palette, l'image et … l'écran.
|
||||
Set_palette(Palette);
|
||||
|
||||
if (X_Swap)
|
||||
@ -307,7 +307,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
||||
for (Indice=0; Indice<256; Indice++)
|
||||
Table_de_remplacement[Indice]=Indice;
|
||||
|
||||
// On recherche les 4 couleurs les moins utilis‚es dans l'image pour pouvoir
|
||||
// On recherche les 4 couleurs les moins utilisées dans l'image pour pouvoir
|
||||
// les remplacer par les nouvelles couleurs.
|
||||
for (Indice2=0; Indice2<4; Indice2++)
|
||||
for (Indice=255; Indice>=0; Indice--)
|
||||
@ -318,11 +318,11 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
||||
Nouvelles[Indice2]=Indice;
|
||||
}
|
||||
|
||||
// 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).
|
||||
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é.
|
||||
for (Indice=0; Indice<3; Indice++)
|
||||
{
|
||||
if (Nouvelles[Indice]>Nouvelles[Indice+1])
|
||||
@ -336,7 +336,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
||||
} while (Couleur);
|
||||
|
||||
// On sauvegarde dans RVB les teintes qu'on va remplacer et on met les
|
||||
// couleurs du menu par d‚faut
|
||||
// couleurs du menu par défaut
|
||||
for (Indice=0; Indice<4; Indice++)
|
||||
{
|
||||
Couleur=Nouvelles[Indice];
|
||||
@ -348,14 +348,14 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
||||
Principal_Palette[Couleur].B=Coul_menu_pref[Indice].B;
|
||||
}
|
||||
|
||||
// Maintenant qu'on a plac‚ notre nouvelle palette, on va chercher quelles
|
||||
// Maintenant qu'on a placé notre nouvelle palette, on va chercher quelles
|
||||
// sont les couleurs qui peuvent remplacer les anciennes
|
||||
Effacer_curseur();
|
||||
for (Indice=0; Indice<4; Indice++)
|
||||
Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
|
||||
(RVB[Indice].R,RVB[Indice].V,RVB[Indice].B);
|
||||
|
||||
// On fait un changement des couleurs visibles … l'‚cran et dans l'image
|
||||
// On fait un changement des couleurs visibles … l'écran et dans l'image
|
||||
Remap_image_HIGH(Table_de_remplacement);
|
||||
|
||||
Afficher_curseur();
|
||||
@ -369,26 +369,26 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
byte Table_de_conversion[256]; // Table de conversion
|
||||
int Couleur_1; // |_ Variables de balayages
|
||||
int Couleur_2; // | de la palette
|
||||
int Meilleure_couleur_1;
|
||||
int Meilleure_couleur_2;
|
||||
int Meilleure_couleur_1=0;
|
||||
int Meilleure_couleur_2=0;
|
||||
int Difference;
|
||||
int Meilleure_difference;
|
||||
dword Utilisation;
|
||||
dword Meilleure_utilisation;
|
||||
|
||||
// On commence par initialiser la table de conversion dans un ‚tat o—
|
||||
// aucune conversion ne sera effectu‚e.
|
||||
// On commence par initialiser la table de conversion dans un état o—
|
||||
// aucune conversion ne sera effectuée.
|
||||
for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
|
||||
Table_de_conversion[Couleur_1]=Couleur_1;
|
||||
|
||||
// Si on ne connait pas encore le nombre de couleurs utilis‚es, on le
|
||||
// calcule! (!!! La fonction appel‚e Efface puis Affiche le curseur !!!)
|
||||
// Si on ne connait pas encore le nombre de couleurs utilisées, on le
|
||||
// calcule! (!!! La fonction appelée Efface puis Affiche le curseur !!!)
|
||||
if ((*Nb_couleurs_utilisees)<0)
|
||||
Compter_nb_couleurs_utilisees(Nb_couleurs_utilisees,Utilisation_couleur);
|
||||
|
||||
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...)
|
||||
|
||||
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
|
||||
@ -408,13 +408,13 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
// On va maintenant s'occuper de la table de conversion:
|
||||
Table_de_conversion[Couleur_1]=Couleur_2;
|
||||
|
||||
// Maintenant, la place d‚sign‚e par Couleur_2 est occup‚e, alors on
|
||||
// Maintenant, la place désignée par Couleur_2 est occupée, alors on
|
||||
// doit passer … un indice de destination suivant.
|
||||
Couleur_2++;
|
||||
}
|
||||
}
|
||||
|
||||
// On met toutes les couleurs inutilis‚es en noir
|
||||
// On met toutes les couleurs inutilisées en noir
|
||||
for (;Couleur_2<256;Couleur_2++)
|
||||
{
|
||||
Palette[Couleur_2].R=0;
|
||||
@ -423,13 +423,13 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
Utilisation_couleur[Couleur_2]=0;
|
||||
}
|
||||
|
||||
// Maintenant qu'on a une palette clean, on va boucler en r‚duisant
|
||||
// le nombre de couleurs jusqu'… ce qu'on atteigne le nombre d‚sir‚.
|
||||
// Maintenant qu'on a une palette clean, on va boucler en réduisant
|
||||
// le nombre de couleurs jusqu'… ce qu'on atteigne le nombre désiré.
|
||||
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
|
||||
{
|
||||
// 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
|
||||
// une seule couleur qui est la moyenne pond‚r‚e de ces 2 couleurs
|
||||
// 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
|
||||
// en fonction de leur utilisation dans l'image.
|
||||
|
||||
Meilleure_difference =0x7FFF;
|
||||
@ -456,8 +456,8 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
}
|
||||
}
|
||||
|
||||
// Maintenant qu'on les a trouv‚es, on va pouvoir mettre … jour nos
|
||||
// donn‚es pour que le remplacement se fasse sans encombres.
|
||||
// Maintenant qu'on les a trouvées, on va pouvoir mettre … jour nos
|
||||
// données pour que le remplacement se fasse sans encombres.
|
||||
|
||||
// En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
|
||||
// mais attention, on ne remplace pas Meilleure_couleur_1 par
|
||||
@ -483,8 +483,8 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
{
|
||||
if (Table_de_conversion[Couleur_1]==Meilleure_couleur_2)
|
||||
{
|
||||
// La Couleur_1 avait d‚j… pr‚vue de se faire remplacer par la
|
||||
// couleur que l'on veut maintenant ‚liminer. On va maintenant
|
||||
// La Couleur_1 avait déj… prévue de se faire remplacer par la
|
||||
// couleur que l'on veut maintenant éliminer. On va maintenant
|
||||
// demander … ce que la Couleur_1 se fasse remplacer par la
|
||||
// Meilleure_couleur_1.
|
||||
Table_de_conversion[Couleur_1]=Meilleure_couleur_1;
|
||||
@ -492,8 +492,8 @@ 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
|
||||
// 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
|
||||
// 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
|
||||
// couleur en arriŠre.
|
||||
for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
|
||||
{
|
||||
@ -505,47 +505,47 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
|
||||
// La Couleur_1 va scroller en arriŠre.
|
||||
|
||||
// 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];
|
||||
|
||||
// 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].V=Palette[Couleur_1].V;
|
||||
Palette[Couleur_1-1].B=Palette[Couleur_1].B;
|
||||
}
|
||||
|
||||
// Une fois la palette et la table d'utilisation g‚r‚es, on peut
|
||||
// Une fois la palette et la table d'utilisation gérées, on peut
|
||||
// s'occuper de notre table de conversion.
|
||||
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
|
||||
// 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]--;
|
||||
}
|
||||
|
||||
// On vient d'‚jecter une couleur, donc on peut mettre … jour le nombre
|
||||
// de couleurs utilis‚es.
|
||||
// On vient d'éjecter une couleur, donc on peut mettre … jour le nombre
|
||||
// de couleurs utilisées.
|
||||
(*Nb_couleurs_utilisees)--;
|
||||
|
||||
// A la fin, on doit passer (dans la palette) les teintes du dernier
|
||||
// ‚l‚ment de notre ensemble en noir.
|
||||
// élément de notre ensemble en noir.
|
||||
Palette[*Nb_couleurs_utilisees].R=0;
|
||||
Palette[*Nb_couleurs_utilisees].V=0;
|
||||
Palette[*Nb_couleurs_utilisees].B=0;
|
||||
|
||||
// Au passage, on va s'assurer que l'on a pas oubli‚ de la mettre … une
|
||||
// Au passage, on va s'assurer que l'on a pas oublié de la mettre … une
|
||||
// utilisation nulle.
|
||||
Utilisation_couleur[*Nb_couleurs_utilisees]=0;
|
||||
|
||||
// AprŠs avoir ‚ject‚ une couleur, on le fait savoir … l'utilisateur par
|
||||
// l'interm‚diaire du compteur de nombre utilis‚es.
|
||||
// AprŠs avoir éjecté une couleur, on le fait savoir … l'utilisateur par
|
||||
// l'intermédiaire du compteur de nombre utilisées.
|
||||
Num2str(*Nb_couleurs_utilisees,Chaine,3);
|
||||
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
|
||||
}
|
||||
|
||||
// Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
|
||||
// palette, l'image et … l'‚cran.
|
||||
Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'‚cran
|
||||
// Maintenant, tous ces calculs doivent êtres pris en compte dans la
|
||||
// palette, l'image et … l'écran.
|
||||
Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'écran
|
||||
Afficher_curseur();
|
||||
}
|
||||
|
||||
@ -599,7 +599,7 @@ void Palette_Reafficher_jauges(struct Fenetre_Bouton_scroller * Jauge_rouge,
|
||||
char Chaine[3];
|
||||
|
||||
Effacer_curseur();
|
||||
// R‚affichage des jauges:
|
||||
// Réaffichage des jauges:
|
||||
if (Debut!=Fin)
|
||||
{
|
||||
// Dans le cas d'un bloc, tout … 0.
|
||||
@ -644,9 +644,9 @@ void Bouton_Palette(void)
|
||||
{
|
||||
static short Indice_Reduction_palette=0;
|
||||
static short Reduce_Nb_couleurs=256;
|
||||
short Couleur_temporaire; // Variable pouvant reservir pour diff‚rents calculs interm‚diaires
|
||||
short Couleur_temporaire; // Variable pouvant reservir pour différents calculs intermédiaires
|
||||
dword Temp;
|
||||
byte Couleur,Click; // Variables pouvant reservir pour diff‚rents calculs interm‚diaires
|
||||
byte Couleur,Click; // Variables pouvant reservir pour différents calculs intermédiaires
|
||||
short Bouton_clicke;
|
||||
word Ancien_Mouse_X;
|
||||
word Ancien_Mouse_Y;
|
||||
@ -657,7 +657,7 @@ void Bouton_Palette(void)
|
||||
byte Derniere_couleur;
|
||||
char Chaine[10];
|
||||
word i;
|
||||
short Pos_X,Pos_Y;
|
||||
//short Pos_X,Pos_Y;
|
||||
struct Fenetre_Bouton_normal * Bouton_Used;
|
||||
struct Fenetre_Bouton_scroller * Jauge_rouge;
|
||||
struct Fenetre_Bouton_scroller * Jauge_verte;
|
||||
@ -690,7 +690,7 @@ void Bouton_Palette(void)
|
||||
Fenetre_Afficher_cadre (173, 67,121,116);
|
||||
Fenetre_Afficher_cadre (128, 16, 91, 39);
|
||||
Fenetre_Afficher_cadre (221, 16, 73, 39);
|
||||
// Cadre creux destin‚ … l'affichage de la(les) couleur(s) s‚lectionn‚e(s)
|
||||
// Cadre creux destiné … l'affichage de la(les) couleur(s) sélectionnée(s)
|
||||
Fenetre_Afficher_cadre_creux(259, 88, 26, 74);
|
||||
|
||||
// Graduation des jauges de couleur
|
||||
@ -752,7 +752,7 @@ void Bouton_Palette(void)
|
||||
Bouton_Used=Fenetre_Liste_boutons_normal;
|
||||
Fenetre_Definir_bouton_normal(132,37,83,14,"Zap unused",0,1,0x0053);//16
|
||||
|
||||
// Jauge de r‚duction de palette
|
||||
// Jauge de réduction de palette
|
||||
Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
|
||||
Jauge_Reduction=Fenetre_Liste_boutons_scroller;
|
||||
|
||||
@ -764,11 +764,11 @@ void Bouton_Palette(void)
|
||||
Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,0x002F); // 22
|
||||
|
||||
Fenetre_Definir_bouton_saisie(263,39,3); // 23
|
||||
// Affichage du facteur de r‚duction de la palette
|
||||
// Affichage du facteur de réduction de la palette
|
||||
Num2str(Reduce_Nb_couleurs,Chaine,3);
|
||||
Print_dans_fenetre(265,41,Chaine,CM_Noir,CM_Clair);
|
||||
|
||||
// Dessin des petits effets sp‚ciaux pour les boutons [+] et [-]
|
||||
// Dessin des petits effets spéciaux pour les boutons [+] et [-]
|
||||
Dessiner_zigouigoui(263, 74,CM_Blanc,-1);
|
||||
Dessiner_zigouigoui(280, 74,CM_Blanc,+1);
|
||||
Dessiner_zigouigoui(263,165,CM_Fonce,-1);
|
||||
@ -776,8 +776,8 @@ void Bouton_Palette(void)
|
||||
|
||||
Afficher_curseur();
|
||||
|
||||
Clavier_americain(); // On est oblig‚ de rester en clavier am‚ricain pour
|
||||
// que l'on puisse d‚caler la couleur s‚lectionn‚e …
|
||||
Clavier_americain(); // On est obligé de rester en clavier américain pour
|
||||
// que l'on puisse décaler la couleur sélectionnée …
|
||||
// l'aide des touche "^" et "$" ("[" et "]").
|
||||
|
||||
if (Config.Auto_nb_used)
|
||||
@ -794,7 +794,7 @@ void Bouton_Palette(void)
|
||||
{
|
||||
case 0 : // Nulle part
|
||||
break;
|
||||
case -1 : // Hors de la fenˆtre
|
||||
case -1 : // Hors de la fenêtre
|
||||
case 1 : // Palette
|
||||
if ( (Mouse_X!=Ancien_Mouse_X) || (Mouse_Y!=Ancien_Mouse_Y) || (Mouse_K!=Ancien_Mouse_K) )
|
||||
{
|
||||
@ -820,13 +820,13 @@ void Bouton_Palette(void)
|
||||
if ( (Fore_color!=Couleur_temporaire) || (Debut_block!=Fin_block) )
|
||||
{
|
||||
// La couleur en question est nouvelle ou elle annule un
|
||||
// ancien bloc. Il faut donc s‚lectionner cette couleur comme
|
||||
// ancien bloc. Il faut donc sélectionner cette couleur comme
|
||||
// unique couleur choisie.
|
||||
|
||||
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur_temporaire;
|
||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
||||
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
|
||||
Num2str(Fore_color,Chaine,3);
|
||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||
@ -853,7 +853,7 @@ void Bouton_Palette(void)
|
||||
Debut_block=Premiere_couleur;
|
||||
Fin_block=Couleur_temporaire;
|
||||
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Num2str(Debut_block,Chaine ,3);
|
||||
Num2str(Fin_block ,Chaine+4,3);
|
||||
Chaine[3]=26; // FlŠche vers la droite
|
||||
@ -862,7 +862,7 @@ void Bouton_Palette(void)
|
||||
// Affichage des jauges
|
||||
Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
|
||||
|
||||
// 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);
|
||||
}
|
||||
else if (Premiere_couleur>Couleur_temporaire)
|
||||
@ -870,7 +870,7 @@ void Bouton_Palette(void)
|
||||
Debut_block=Couleur_temporaire;
|
||||
Fin_block=Premiere_couleur;
|
||||
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Num2str(Debut_block,Chaine ,3);
|
||||
Num2str(Fin_block ,Chaine+4,3);
|
||||
Chaine[3]=26; // FlŠche vers la droite
|
||||
@ -879,7 +879,7 @@ void Bouton_Palette(void)
|
||||
// Affichage des jauges
|
||||
Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
|
||||
|
||||
// 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);
|
||||
}
|
||||
else
|
||||
@ -887,7 +887,7 @@ void Bouton_Palette(void)
|
||||
Debut_block=Fin_block=Premiere_couleur;
|
||||
Block(Fenetre_Pos_X+(Menu_Facteur_X*176),Fenetre_Pos_Y+(Menu_Facteur_Y*172),Menu_Facteur_X*84,Menu_Facteur_Y*7,CM_Clair);
|
||||
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
|
||||
Num2str(Fore_color,Chaine,3);
|
||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||
@ -924,7 +924,7 @@ void Bouton_Palette(void)
|
||||
|
||||
if (Jauge_rouge->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -961,7 +961,7 @@ void Bouton_Palette(void)
|
||||
|
||||
if (Jauge_verte->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -998,7 +998,7 @@ void Bouton_Palette(void)
|
||||
|
||||
if (Jauge_bleue->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1027,7 +1027,7 @@ void Bouton_Palette(void)
|
||||
memcpy(Palette_temporaire,Palette_defaut,sizeof(T_Palette));
|
||||
Set_palette(Palette_defaut);
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
// On pr‚pare la "modifiabilit‚" des nouvelles couleurs
|
||||
// On prépare la "modifiabilité" des nouvelles couleurs
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
Il_faut_remapper=1;
|
||||
@ -1045,7 +1045,7 @@ void Bouton_Palette(void)
|
||||
Modifier_Bleu (i,Couleur_temporaire,Palette_de_travail);
|
||||
}
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
// On pr‚pare la "modifiabilit‚" des nouvelles couleurs
|
||||
// On prépare la "modifiabilité" des nouvelles couleurs
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
Il_faut_remapper=1;
|
||||
@ -1061,7 +1061,7 @@ void Bouton_Palette(void)
|
||||
memcpy(Palette_backup,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
// On calcule le nombre de couleurs a swapper sans risquer de sortir
|
||||
// de la palette (La var. Premiere_couleur est utilis‚e pour ‚conomiser 1 var; c'est tout)
|
||||
// de la palette (La var. Premiere_couleur est utilisée pour économiser 1 var; c'est tout)
|
||||
Premiere_couleur=(Couleur_temporaire+Fin_block-Debut_block<=255)?Fin_block+1-Debut_block:256-Couleur_temporaire;
|
||||
|
||||
if (Bouton_clicke==8) // On ne fait de backup de l'image que si on
|
||||
@ -1076,7 +1076,7 @@ void Bouton_Palette(void)
|
||||
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
// On d‚place le bloc vers les modifs:
|
||||
// On déplace le bloc vers les modifs:
|
||||
Derniere_couleur=Fin_block=Couleur_temporaire+Premiere_couleur-1;
|
||||
Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
|
||||
// On raffiche le nø des bornes du bloc:
|
||||
@ -1086,7 +1086,7 @@ void Bouton_Palette(void)
|
||||
Num2str(Debut_block,Chaine ,3);
|
||||
Num2str(Fin_block ,Chaine+4,3);
|
||||
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);
|
||||
}
|
||||
else
|
||||
@ -1118,7 +1118,7 @@ void Bouton_Palette(void)
|
||||
((Couleur_temporaire+Fin_block-Debut_block<=255)?Fin_block+1-Debut_block:256-Couleur_temporaire)*3);
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
Set_palette(Palette_de_travail);
|
||||
// On d‚place le bloc vers les modifs:
|
||||
// On déplace le bloc vers les modifs:
|
||||
Derniere_couleur=Fin_block=((Couleur_temporaire+Fin_block-Debut_block<=255)?(Couleur_temporaire+Fin_block-Debut_block):255);
|
||||
Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
|
||||
// On raffiche le nø des bornes du bloc:
|
||||
@ -1128,7 +1128,7 @@ void Bouton_Palette(void)
|
||||
Num2str(Debut_block,Chaine ,3);
|
||||
Num2str(Fin_block ,Chaine+4,3);
|
||||
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);
|
||||
}
|
||||
else
|
||||
@ -1170,7 +1170,7 @@ void Bouton_Palette(void)
|
||||
}
|
||||
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
// On pr‚pare la "modifiabilit‚" des nouvelles couleurs
|
||||
// On prépare la "modifiabilité" des nouvelles couleurs
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
Il_faut_remapper=1;
|
||||
@ -1194,7 +1194,7 @@ void Bouton_Palette(void)
|
||||
memcpy(Principal_Palette,Palette_temporaire,sizeof(T_Palette));
|
||||
}
|
||||
|
||||
Set_palette(Palette_de_travail); // On d‚finit la nouvelle palette
|
||||
Set_palette(Palette_de_travail); // On définit la nouvelle palette
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
@ -1246,11 +1246,11 @@ void Bouton_Palette(void)
|
||||
Il_faut_remapper=1;
|
||||
break;
|
||||
|
||||
case 17 : // Jauge de r‚duction de palette
|
||||
case 17 : // Jauge de réduction de palette
|
||||
if (Indice_Reduction_palette!=Jauge_Reduction->Position)
|
||||
{
|
||||
Indice_Reduction_palette=Jauge_Reduction->Position;
|
||||
// Affichage du facteur de r‚duction de la palette
|
||||
// Affichage du facteur de réduction de la palette
|
||||
Effacer_curseur();
|
||||
Print_dans_fenetre(265,41,Libelle_reduction_palette[Indice_Reduction_palette],CM_Noir,CM_Clair);
|
||||
Afficher_curseur();
|
||||
@ -1315,7 +1315,7 @@ void Bouton_Palette(void)
|
||||
// -- Rouge --
|
||||
if (Jauge_rouge->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1336,7 +1336,7 @@ void Bouton_Palette(void)
|
||||
// -- Vert --
|
||||
if (Jauge_verte->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1357,7 +1357,7 @@ void Bouton_Palette(void)
|
||||
// -- Bleu --
|
||||
if (Jauge_bleue->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1437,7 +1437,7 @@ void Bouton_Palette(void)
|
||||
// -- Rouge --
|
||||
if (Jauge_rouge->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1458,7 +1458,7 @@ void Bouton_Palette(void)
|
||||
// -- Vert --
|
||||
if (Jauge_verte->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1479,7 +1479,7 @@ void Bouton_Palette(void)
|
||||
// -- Bleu --
|
||||
if (Jauge_bleue->Position>63)
|
||||
{
|
||||
// Jauge dans les n‚gatifs:
|
||||
// Jauge dans les négatifs:
|
||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||
Chaine[0]='-';
|
||||
}
|
||||
@ -1513,7 +1513,7 @@ void Bouton_Palette(void)
|
||||
Modifier_Bleu (i,63-Palette_de_travail[i].B,Palette_de_travail);
|
||||
}
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
// On pr‚pare la "modifiabilit‚" des nouvelles couleurs
|
||||
// On prépare la "modifiabilité" des nouvelles couleurs
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
Il_faut_remapper=1;
|
||||
@ -1556,13 +1556,13 @@ void Bouton_Palette(void)
|
||||
Remap_image_HIGH(Table_de_conversion);
|
||||
Afficher_curseur();
|
||||
}
|
||||
// On pr‚pare la "modifiabilit‚" des nouvelles couleurs
|
||||
// On prépare la "modifiabilité" des nouvelles couleurs
|
||||
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||
|
||||
Il_faut_remapper=1;
|
||||
break;
|
||||
|
||||
case 23 : // Saisie du nombre de couleurs pour la r‚duction de palette
|
||||
case 23 : // Saisie du nombre de couleurs pour la réduction de palette
|
||||
Num2str(Reduce_Nb_couleurs,Chaine,3);
|
||||
Effacer_curseur();
|
||||
|
||||
@ -1592,7 +1592,7 @@ void Bouton_Palette(void)
|
||||
{
|
||||
switch (Touche)
|
||||
{
|
||||
case 0x001A : // D‚caler Forecolor vers la gauche
|
||||
case 0x001A : // Décaler Forecolor vers la gauche
|
||||
if (Debut_block==Fin_block)
|
||||
{
|
||||
Fore_color--;
|
||||
@ -1603,7 +1603,7 @@ void Bouton_Palette(void)
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
Effacer_curseur();
|
||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Num2str(Fore_color,Chaine,3);
|
||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||
// Affichage dans le block de visu de la couleur en cours
|
||||
@ -1612,7 +1612,7 @@ void Bouton_Palette(void)
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x001B : // D‚caler Forecolor vers la droite
|
||||
case 0x001B : // Décaler Forecolor vers la droite
|
||||
if (Debut_block==Fin_block)
|
||||
{
|
||||
Fore_color++;
|
||||
@ -1623,7 +1623,7 @@ void Bouton_Palette(void)
|
||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||
Effacer_curseur();
|
||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Num2str(Fore_color,Chaine,3);
|
||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||
// Affichage dans le block de visu de la couleur en cours
|
||||
@ -1645,7 +1645,7 @@ void Bouton_Palette(void)
|
||||
Afficher_curseur();
|
||||
break;
|
||||
|
||||
case 0x000E : // Remise des couleurs du menu … l'‚tat normal en essayant
|
||||
case 0x000E : // Remise des couleurs du menu … l'état normal en essayant
|
||||
// de ne pas trop modifier l'image.
|
||||
if (!Backup_de_l_image_effectue)
|
||||
{
|
||||
@ -1668,12 +1668,12 @@ void Bouton_Palette(void)
|
||||
Il_faut_remapper=1;
|
||||
break;
|
||||
|
||||
case 0x0029 : // R‚cup‚ration d'une couleur derriŠre le menu
|
||||
case 0x0029 : // Récupération d'une couleur derriŠre le menu
|
||||
case 0x0033 :
|
||||
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
|
||||
if (Click)
|
||||
{
|
||||
Effacer_Curseur();
|
||||
Effacer_curseur();
|
||||
if (Click==A_DROITE)
|
||||
{
|
||||
if (Back_color!=Couleur)
|
||||
@ -1691,7 +1691,7 @@ void Bouton_Palette(void)
|
||||
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur;
|
||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
||||
|
||||
// Affichage du nø de la couleur s‚lectionn‚e
|
||||
// Affichage du nø de la couleur sélectionnée
|
||||
Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
|
||||
Num2str(Fore_color,Chaine,3);
|
||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||
@ -1761,7 +1761,7 @@ void Bouton_Palette(void)
|
||||
|
||||
Calculer_couleurs_menu_optimales(Principal_Palette);
|
||||
|
||||
// La variable employ‚e ici n'a pas vraiment de rapport avec son nom...
|
||||
// La variable employée ici n'a pas vraiment de rapport avec son nom...
|
||||
Il_faut_remapper=(Fenetre_Pos_Y+(Fenetre_Hauteur*Menu_Facteur_Y)<Menu_Ordonnee_avant_fenetre);
|
||||
|
||||
Fermer_fenetre();
|
||||
@ -1769,9 +1769,9 @@ void Bouton_Palette(void)
|
||||
|
||||
Recadrer_palette();
|
||||
|
||||
// On affiche les "ForeBack" car le menu n'est raffich‚ que si la fenˆtre
|
||||
// empi‚tait sur le menu. Mais si les couleurs on ‚t‚ modifi‚es, il faut
|
||||
// rafficher tout le menu remapp‚.
|
||||
// On affiche les "ForeBack" car le menu n'est raffiché que si la fenêtre
|
||||
// empiétait sur le menu. Mais si les couleurs on été modifiées, il faut
|
||||
// rafficher tout le menu remappé.
|
||||
if (Il_faut_remapper)
|
||||
Afficher_menu();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user