No longer updates the whole screen when painting. The program now runs
MUCH faster and begins to be useable :) git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@56 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
4ba7550bfc
commit
b184c1ca0f
159
graph.c
159
graph.c
@ -1634,18 +1634,28 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
// Couleur: couleur à appliquer au pinceau
|
// Couleur: couleur à appliquer au pinceau
|
||||||
// Preview: "Il ne faut l'afficher qu'à l'écran"
|
// Preview: "Il ne faut l'afficher qu'à l'écran"
|
||||||
{
|
{
|
||||||
short Debut_X; // Position X (dans l'image) à partir de laquelle on affiche la brosse/pinceau
|
short Debut_X; // Position X (dans l'image) à partir de laquelle on
|
||||||
short Debut_Y; // Position Y (dans l'image) à partir de laquelle on affiche la brosse/pinceau
|
// affiche la brosse/pinceau
|
||||||
short Largeur; // Largeur dans l'écran selon laquelle on affiche la brosse/pinceau
|
short Debut_Y; // Position Y (dans l'image) à partir de laquelle on
|
||||||
short Hauteur; // Hauteur dans l'écran selon laquelle on affiche la brosse/pinceau
|
// affiche la brosse/pinceau
|
||||||
short Debut_Compteur_X; // Position X (dans la brosse/pinceau) à partir de laquelle on affiche la brosse/pinceau
|
short Largeur; // Largeur dans l'écran selon laquelle on affiche la
|
||||||
short Debut_Compteur_Y; // Position Y (dans la brosse/pinceau) à partir de laquelle on affiche la brosse/pinceau
|
// brosse/pinceau
|
||||||
|
short Hauteur; // Hauteur dans l'écran selon laquelle on affiche la
|
||||||
|
// brosse/pinceau
|
||||||
|
short Debut_Compteur_X; // Position X (dans la brosse/pinceau) à partir
|
||||||
|
// de laquelle on affiche la brosse/pinceau
|
||||||
|
short Debut_Compteur_Y; // Position Y (dans la brosse/pinceau) à partir
|
||||||
|
// de laquelle on affiche la brosse/pinceau
|
||||||
short Pos_X; // Position X (dans l'image) en cours d'affichage
|
short Pos_X; // Position X (dans l'image) en cours d'affichage
|
||||||
short Pos_Y; // Position Y (dans l'image) en cours d'affichage
|
short Pos_Y; // Position Y (dans l'image) en cours d'affichage
|
||||||
short Compteur_X; // Position X (dans la brosse/pinceau) en cours d'affichage
|
short Compteur_X; // Position X (dans la brosse/pinceau) en cours
|
||||||
short Compteur_Y; // Position Y (dans la brosse/pinceau) en cours d'affichage
|
// d'affichage
|
||||||
short Fin_Compteur_X; // Position X ou s'arrête l'affichade de la brosse/pinceau
|
short Compteur_Y; // Position Y (dans la brosse/pinceau) en cours
|
||||||
short Fin_Compteur_Y; // Position Y ou s'arrête l'affichade de la brosse/pinceau
|
// d'affichage
|
||||||
|
short Fin_Compteur_X; // Position X ou s'arrête l'affichade de la
|
||||||
|
// brosse/pinceau
|
||||||
|
short Fin_Compteur_Y; // Position Y ou s'arrête l'affichade de la
|
||||||
|
// brosse/pinceau
|
||||||
byte Couleur_temporaire; // Couleur de la brosse en cours d'affichage
|
byte Couleur_temporaire; // Couleur de la brosse en cours d'affichage
|
||||||
int Position;
|
int Position;
|
||||||
byte * Temp;
|
byte * Temp;
|
||||||
@ -1659,7 +1669,13 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
&& (Pinceau_Y>=Limite_Haut)
|
&& (Pinceau_Y>=Limite_Haut)
|
||||||
&& (Pinceau_Y<=Limite_Bas) )
|
&& (Pinceau_Y<=Limite_Bas) )
|
||||||
Pixel_Preview(Pinceau_X,Pinceau_Y,Couleur);
|
Pixel_Preview(Pinceau_X,Pinceau_Y,Couleur);
|
||||||
|
|
||||||
|
// UpdateRect
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Pinceau_X,Pinceau_Y,
|
||||||
|
1,1
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORME_PINCEAU_BROSSE_COULEUR : // Brosse en couleur
|
case FORME_PINCEAU_BROSSE_COULEUR : // Brosse en couleur
|
||||||
Debut_X=X-Brosse_Decalage_X;
|
Debut_X=X-Brosse_Decalage_X;
|
||||||
Debut_Y=Y-Brosse_Decalage_Y;
|
Debut_Y=Y-Brosse_Decalage_Y;
|
||||||
@ -1673,21 +1689,31 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
if (Preview)
|
if (Preview)
|
||||||
{
|
{
|
||||||
if ( (Largeur>0) && (Hauteur>0) )
|
if ( (Largeur>0) && (Hauteur>0) )
|
||||||
Display_brush_Color(Debut_X-Principal_Decalage_X,
|
Display_brush_Color(
|
||||||
Debut_Y-Principal_Decalage_Y,
|
Debut_X-Principal_Decalage_X,
|
||||||
Debut_Compteur_X,Debut_Compteur_Y,
|
Debut_Y-Principal_Decalage_Y,
|
||||||
Largeur,Hauteur,Back_color,
|
Debut_Compteur_X,
|
||||||
Brosse_Largeur);
|
Debut_Compteur_Y,
|
||||||
|
Largeur,
|
||||||
|
Hauteur,
|
||||||
|
Back_color,
|
||||||
|
Brosse_Largeur
|
||||||
|
);
|
||||||
|
|
||||||
|
// UpdateRect dans la fonction
|
||||||
|
|
||||||
if (Loupe_Mode)
|
if (Loupe_Mode)
|
||||||
{
|
{
|
||||||
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,&Hauteur);
|
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,
|
||||||
|
&Hauteur
|
||||||
|
);
|
||||||
|
|
||||||
Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
|
Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
|
||||||
Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
|
Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
|
||||||
|
|
||||||
if ( (Largeur>0) && (Hauteur>0) )
|
if ( (Largeur>0) && (Hauteur>0) )
|
||||||
{
|
{
|
||||||
// Corrections d–es au Zoom:
|
// Corrections dues au Zoom:
|
||||||
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
||||||
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
||||||
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
||||||
@ -1699,6 +1725,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Largeur,Hauteur,Back_color,
|
Largeur,Hauteur,Back_color,
|
||||||
Brosse_Largeur,
|
Brosse_Largeur,
|
||||||
Buffer_de_ligne_horizontale);
|
Buffer_de_ligne_horizontale);
|
||||||
|
// updaterect dans la fonction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1709,30 +1736,41 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
if (Smear_Debut)
|
if (Smear_Debut)
|
||||||
{
|
{
|
||||||
if ((Largeur>0) && (Hauteur>0))
|
if ((Largeur>0) && (Hauteur>0))
|
||||||
Copier_une_partie_d_image_dans_une_autre(Principal_Ecran,
|
Copier_une_partie_d_image_dans_une_autre(
|
||||||
Debut_X,Debut_Y,
|
Principal_Ecran, Debut_X, Debut_Y, Largeur, Hauteur,
|
||||||
Largeur,Hauteur,
|
Principal_Largeur_image, Smear_Brosse,
|
||||||
Principal_Largeur_image,
|
Debut_Compteur_X, Debut_Compteur_Y,
|
||||||
Smear_Brosse,
|
Smear_Brosse_Largeur
|
||||||
Debut_Compteur_X,
|
);
|
||||||
Debut_Compteur_Y,
|
// UPDATERECT
|
||||||
Smear_Brosse_Largeur);
|
|
||||||
Smear_Debut=0;
|
Smear_Debut=0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=Debut_Compteur_Y;Compteur_Y<Fin_Compteur_Y;Pos_Y++,Compteur_Y++)
|
for (Pos_Y = Debut_Y, Compteur_Y = Debut_Compteur_Y;
|
||||||
for (Pos_X=Debut_X,Compteur_X=Debut_Compteur_X;Compteur_X<Fin_Compteur_X;Pos_X++,Compteur_X++)
|
Compteur_Y < Fin_Compteur_Y;
|
||||||
|
Pos_Y++, Compteur_Y++
|
||||||
|
)
|
||||||
|
for (Pos_X = Debut_X, Compteur_X = Debut_Compteur_X;
|
||||||
|
Compteur_X < Fin_Compteur_X;
|
||||||
|
Pos_X++, Compteur_X++
|
||||||
|
)
|
||||||
{
|
{
|
||||||
Couleur_temporaire=Lit_pixel_dans_ecran_courant(Pos_X,Pos_Y);
|
Couleur_temporaire = Lit_pixel_dans_ecran_courant(
|
||||||
Position=(Compteur_Y*Smear_Brosse_Largeur)+Compteur_X;
|
Pos_X,Pos_Y
|
||||||
if ( (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)!=Back_color)
|
);
|
||||||
|
Position = (Compteur_Y * Smear_Brosse_Largeur)+ Compteur_X;
|
||||||
|
if ( (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)
|
||||||
|
!= Back_color)
|
||||||
&& (Compteur_Y<Smear_Max_Y) && (Compteur_X<Smear_Max_X)
|
&& (Compteur_Y<Smear_Max_Y) && (Compteur_X<Smear_Max_X)
|
||||||
&& (Compteur_Y>=Smear_Min_Y) && (Compteur_X>=Smear_Min_X) )
|
&& (Compteur_Y>=Smear_Min_Y) && (Compteur_X>=Smear_Min_X) )
|
||||||
Afficher_pixel(Pos_X,Pos_Y,Smear_Brosse[Position]);
|
Afficher_pixel(Pos_X,Pos_Y,Smear_Brosse[Position]);
|
||||||
Smear_Brosse[Position]=Couleur_temporaire;
|
Smear_Brosse[Position]=Couleur_temporaire;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
Smear_Min_X=Debut_Compteur_X;
|
Smear_Min_X=Debut_Compteur_X;
|
||||||
Smear_Min_Y=Debut_Compteur_Y;
|
Smear_Min_Y=Debut_Compteur_Y;
|
||||||
Smear_Max_X=Fin_Compteur_X;
|
Smear_Max_X=Fin_Compteur_X;
|
||||||
@ -1755,7 +1793,11 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
if (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)!=Back_color)
|
if (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)!=Back_color)
|
||||||
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
||||||
}
|
}
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FORME_PINCEAU_BROSSE_MONOCHROME : // Brosse monochrome
|
case FORME_PINCEAU_BROSSE_MONOCHROME : // Brosse monochrome
|
||||||
@ -1778,6 +1820,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Back_color,Fore_color,
|
Back_color,Fore_color,
|
||||||
Brosse_Largeur);
|
Brosse_Largeur);
|
||||||
|
|
||||||
|
// UPDATERECT ds FCT
|
||||||
|
|
||||||
if (Loupe_Mode)
|
if (Loupe_Mode)
|
||||||
{
|
{
|
||||||
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,&Hauteur);
|
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,&Hauteur);
|
||||||
@ -1786,7 +1830,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
|
|
||||||
if ( (Largeur>0) && (Hauteur>0) )
|
if ( (Largeur>0) && (Hauteur>0) )
|
||||||
{
|
{
|
||||||
// Corrections d–es au Zoom:
|
// Corrections dues au Zoom:
|
||||||
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
||||||
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
||||||
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
||||||
@ -1799,6 +1843,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Back_color,Fore_color,
|
Back_color,Fore_color,
|
||||||
Brosse_Largeur,
|
Brosse_Largeur,
|
||||||
Buffer_de_ligne_horizontale);
|
Buffer_de_ligne_horizontale);
|
||||||
|
|
||||||
|
// UPDATERECT ds FCT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1817,6 +1863,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Debut_Compteur_X,
|
Debut_Compteur_X,
|
||||||
Debut_Compteur_Y,
|
Debut_Compteur_Y,
|
||||||
Smear_Brosse_Largeur);
|
Smear_Brosse_Largeur);
|
||||||
|
//UPDATERECT
|
||||||
Smear_Debut=0;
|
Smear_Debut=0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1832,7 +1879,13 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Afficher_pixel(Pos_X,Pos_Y,Smear_Brosse[Position]);
|
Afficher_pixel(Pos_X,Pos_Y,Smear_Brosse[Position]);
|
||||||
Smear_Brosse[Position]=Couleur_temporaire;
|
Smear_Brosse[Position]=Couleur_temporaire;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Smear_Min_X=Debut_Compteur_X;
|
Smear_Min_X=Debut_Compteur_X;
|
||||||
Smear_Min_Y=Debut_Compteur_Y;
|
Smear_Min_Y=Debut_Compteur_Y;
|
||||||
Smear_Max_X=Fin_Compteur_X;
|
Smear_Max_X=Fin_Compteur_X;
|
||||||
@ -1846,6 +1899,10 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
if (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)!=Back_color)
|
if (Lit_pixel_dans_brosse(Compteur_X,Compteur_Y)!=Back_color)
|
||||||
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1872,6 +1929,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
0,Fore_color,
|
0,Fore_color,
|
||||||
TAILLE_MAXI_PINCEAU);
|
TAILLE_MAXI_PINCEAU);
|
||||||
|
|
||||||
|
// UPDATERECT ds FCT
|
||||||
|
|
||||||
if (Loupe_Mode)
|
if (Loupe_Mode)
|
||||||
{
|
{
|
||||||
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,&Hauteur);
|
Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&Largeur,&Hauteur);
|
||||||
@ -1880,7 +1939,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
|
|
||||||
if ( (Largeur>0) && (Hauteur>0) )
|
if ( (Largeur>0) && (Hauteur>0) )
|
||||||
{
|
{
|
||||||
// Corrections d–es au Zoom:
|
// Corrections dues au Zoom:
|
||||||
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
Debut_X=(Debut_X-Loupe_Decalage_X)*Loupe_Facteur;
|
||||||
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
Debut_Y=(Debut_Y-Loupe_Decalage_Y)*Loupe_Facteur;
|
||||||
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
Hauteur=Debut_Y+(Hauteur*Loupe_Facteur);
|
||||||
@ -1893,6 +1952,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
0,Fore_color,
|
0,Fore_color,
|
||||||
TAILLE_MAXI_PINCEAU,
|
TAILLE_MAXI_PINCEAU,
|
||||||
Buffer_de_ligne_horizontale);
|
Buffer_de_ligne_horizontale);
|
||||||
|
|
||||||
|
// UPDATERECT ds FCT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1913,6 +1974,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Debut_Compteur_X,
|
Debut_Compteur_X,
|
||||||
Debut_Compteur_Y,
|
Debut_Compteur_Y,
|
||||||
Smear_Brosse_Largeur);
|
Smear_Brosse_Largeur);
|
||||||
|
// UPDATERECT
|
||||||
Smear_Debut=0;
|
Smear_Debut=0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1929,6 +1991,11 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
Smear_Brosse[Position]=Couleur_temporaire;
|
Smear_Brosse[Position]=Couleur_temporaire;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
|
|
||||||
Smear_Min_X=Debut_Compteur_X;
|
Smear_Min_X=Debut_Compteur_X;
|
||||||
Smear_Min_Y=Debut_Compteur_Y;
|
Smear_Min_Y=Debut_Compteur_Y;
|
||||||
Smear_Max_X=Fin_Compteur_X;
|
Smear_Max_X=Fin_Compteur_X;
|
||||||
@ -1942,26 +2009,36 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte Preview)
|
|||||||
if (Pinceau_Sprite[(TAILLE_MAXI_PINCEAU*Compteur_Y)+Compteur_X])
|
if (Pinceau_Sprite[(TAILLE_MAXI_PINCEAU*Compteur_Y)+Compteur_X])
|
||||||
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
Afficher_pixel(Pos_X,Pos_Y,Couleur);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,
|
||||||
|
Fin_Compteur_X,Fin_Compteur_Y
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,Largeur,Hauteur);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- Effacer le pinceau --
|
// -- Effacer le pinceau -- //
|
||||||
|
|
||||||
void Effacer_pinceau(short X,short Y)
|
void Effacer_pinceau(short X,short Y)
|
||||||
// X,Y: position du centre du pinceau
|
// X,Y: position du centre du pinceau
|
||||||
{
|
{
|
||||||
short Debut_X; // Position X (dans l'image) à partir de laquelle on affiche la brosse/pinceau
|
short Debut_X; // Position X (dans l'image) à partir de laquelle on
|
||||||
short Debut_Y; // Position Y (dans l'image) à partir de laquelle on affiche la brosse/pinceau
|
// affiche la brosse/pinceau
|
||||||
short Largeur; // Largeur dans l'écran selon laquelle on affiche la brosse/pinceau
|
short Debut_Y; // Position Y (dans l'image) à partir de laquelle on
|
||||||
short Hauteur; // Hauteur dans l'écran selon laquelle on affiche la brosse/pinceau
|
// affiche la brosse/pinceau
|
||||||
short Debut_Compteur_X; // Position X (dans la brosse/pinceau) à partir de laquelle on affiche la brosse/pinceau
|
short Largeur; // Largeur dans l'écran selon laquelle on affiche la
|
||||||
short Debut_Compteur_Y; // Position Y (dans la brosse/pinceau) à partir de laquelle on affiche la brosse/pinceau
|
// brosse/pinceau
|
||||||
|
short Hauteur; // Hauteur dans l'écran selon laquelle on affiche la
|
||||||
|
// brosse/pinceau
|
||||||
|
short Debut_Compteur_X; // Position X (dans la brosse/pinceau) à partir
|
||||||
|
// de laquelle on affiche la brosse/pinceau
|
||||||
|
short Debut_Compteur_Y; // Position Y (dans la brosse/pinceau) à partir
|
||||||
|
// de laquelle on affiche la brosse/pinceau
|
||||||
//short Pos_X; // Position X (dans l'image) en cours d'affichage
|
//short Pos_X; // Position X (dans l'image) en cours d'affichage
|
||||||
//short Pos_Y; // Position Y (dans l'image) en cours d'affichage
|
//short Pos_Y; // Position Y (dans l'image) en cours d'affichage
|
||||||
//short Compteur_X; // Position X (dans la brosse/pinceau) en cours d'affichage
|
//short Compteur_X; // Position X (dans la brosse/pinceau) en cours
|
||||||
|
//d'affichage
|
||||||
//short Compteur_Y; // Position Y (dans la brosse/pinceau) en cours d'affichage
|
//short Compteur_Y; // Position Y (dans la brosse/pinceau) en cours d'affichage
|
||||||
short Fin_Compteur_X; // Position X ou s'arrête l'affichade de la brosse/pinceau
|
short Fin_Compteur_X; // Position X ou s'arrête l'affichade de la brosse/pinceau
|
||||||
short Fin_Compteur_Y; // Position Y ou s'arrête l'affichade de la brosse/pinceau
|
short Fin_Compteur_Y; // Position Y ou s'arrête l'affichade de la brosse/pinceau
|
||||||
|
|||||||
10
main.c
10
main.c
@ -511,17 +511,15 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Principal_Hauteur_image=Hauteur_ecran;
|
Principal_Hauteur_image=Hauteur_ecran;
|
||||||
Brouillon_Largeur_image=Largeur_ecran;
|
Brouillon_Largeur_image=Largeur_ecran;
|
||||||
Brouillon_Hauteur_image=Hauteur_ecran;
|
Brouillon_Hauteur_image=Hauteur_ecran;
|
||||||
DEBUG("Avant init",0);
|
|
||||||
// Allocation de mémoire pour les différents écrans virtuels (et brosse)
|
// Allocation de mémoire pour les différents écrans virtuels (et brosse)
|
||||||
if (Initialiser_les_listes_de_backups_en_debut_de_programme(Config.Nb_pages_Undo+1,Largeur_ecran,Hauteur_ecran)==0)
|
if (Initialiser_les_listes_de_backups_en_debut_de_programme(Config.Nb_pages_Undo+1,Largeur_ecran,Hauteur_ecran)==0)
|
||||||
Erreur(ERREUR_MEMOIRE);
|
Erreur(ERREUR_MEMOIRE);
|
||||||
DEBUG("Apres init",1);
|
|
||||||
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
||||||
// par le passage d'un fichier en paramètre lors du traitement précédent.
|
// par le passage d'un fichier en paramètre lors du traitement précédent.
|
||||||
// Note: le fait que l'on ne modifie que les variables globales Brouillon_*
|
// Note: le fait que l'on ne modifie que les variables globales
|
||||||
// et pas les infos contenues dans la page de brouillon elle-même ne m'ins-
|
// Brouillon_* et pas les infos contenues dans la page de brouillon
|
||||||
// -pire pas confiance mais ça a l'air de marcher sans poser de problèmes,
|
// elle-même ne m'inspire pas confiance mais ça a l'air de marcher sans
|
||||||
// alors...
|
// poser de problèmes, alors...
|
||||||
if (Un_fichier_a_ete_passe_en_parametre)
|
if (Un_fichier_a_ete_passe_en_parametre)
|
||||||
{
|
{
|
||||||
strcpy(Brouillon_Repertoire_fichier,Brouillon_Repertoire_courant);
|
strcpy(Brouillon_Repertoire_fichier,Brouillon_Repertoire_courant);
|
||||||
|
|||||||
33
pages.c
33
pages.c
@ -435,24 +435,12 @@ int Nouvelle_page_possible(
|
|||||||
Taille_page_brouillon =Taille_d_une_page(Liste_secondaire->Pages);
|
Taille_page_brouillon =Taille_d_une_page(Liste_secondaire->Pages);
|
||||||
Taille_nouvelle_page =Taille_d_une_page(Nouvelle_page);
|
Taille_nouvelle_page =Taille_d_une_page(Nouvelle_page);
|
||||||
|
|
||||||
printf("Memoire libre : %ld\n",Memoire_libre());
|
|
||||||
DEBUG("QMin",QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER);
|
|
||||||
|
|
||||||
DEBUG("Taille_immediatement_disponible",Taille_immediatement_disponible);
|
|
||||||
DEBUG("Taille_liste_courante",Taille_immediatement_disponible);
|
|
||||||
DEBUG("Taille_liste_brouillon",Taille_liste_brouillon);
|
|
||||||
DEBUG("Taille_page_brouillon",Taille_page_brouillon);
|
|
||||||
DEBUG("Taille_nouvelle_page",Taille_nouvelle_page);
|
|
||||||
|
|
||||||
// Il faut pouvoir loger la nouvelle page et son backup dans la page
|
// Il faut pouvoir loger la nouvelle page et son backup dans la page
|
||||||
// courante, en conservant au pire la 1ère page de brouillon.
|
// courante, en conservant au pire la 1ère page de brouillon.
|
||||||
if ( (Taille_immediatement_disponible + Taille_liste_courante +
|
if ( (Taille_immediatement_disponible + Taille_liste_courante +
|
||||||
Taille_liste_brouillon - Taille_page_brouillon)
|
Taille_liste_brouillon - Taille_page_brouillon)
|
||||||
< (2*Taille_nouvelle_page) )
|
< (2*Taille_nouvelle_page) )
|
||||||
{
|
|
||||||
DEBUG("A",0);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
// Il faut pouvoir loger le brouillon et son backup dans la page de
|
// Il faut pouvoir loger le brouillon et son backup dans la page de
|
||||||
// brouillon, en conservant au pire un exemplaire de la nouvelle page dans
|
// brouillon, en conservant au pire un exemplaire de la nouvelle page dans
|
||||||
@ -460,10 +448,7 @@ DEBUG("Taille_nouvelle_page",Taille_nouvelle_page);
|
|||||||
// brouillon)
|
// brouillon)
|
||||||
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
||||||
Taille_liste_brouillon-Taille_nouvelle_page)<(2*Taille_page_brouillon))
|
Taille_liste_brouillon-Taille_nouvelle_page)<(2*Taille_page_brouillon))
|
||||||
{
|
|
||||||
DEBUG("B",1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -698,22 +683,26 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
|
|||||||
Retour=1;
|
Retour=1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{DEBUG("Il n'est pas possible de démarrer le programme avec la page \
|
{
|
||||||
principale et la page de brouillon aux dimensions demandée par \
|
// Il n'est pas possible de démarrer le programme avec la page
|
||||||
l'utilisateur. ==> On l'envoie ballader",0);
|
// principale et la page de brouillon aux dimensions demandée par
|
||||||
|
// l'utilisateur. ==> On l'envoie ballader
|
||||||
Retour=0;
|
Retour=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{DEBUG("On ne peut pas démarrer le programme avec ne serait-ce qu'une\
|
{
|
||||||
page de la dimension souhaitée, donc on laisse tout tomber et on le \
|
// On ne peut pas démarrer le programme avec ne serait-ce qu'une
|
||||||
renvoie chier.",0);
|
// page de la dimension souhaitée, donc on laisse tout tomber et on
|
||||||
|
// le renvoie chier.
|
||||||
Retour=0;
|
Retour=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DEBUG("On n'a même pas réussi à créer les listes. Donc c'est même pas la peine de continuer : l'utilisateur ne pourra jamais rien faire, autant avorter le chargement du programme.",0);
|
// On n'a même pas réussi à créer les listes. Donc c'est même pas la
|
||||||
|
// peine de continuer : l'utilisateur ne pourra jamais rien faire,
|
||||||
|
// autant avorter le chargement du programme.
|
||||||
Retour=0;
|
Retour=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user