Corrected Memoire_libre to take account of mem_unit in the sysinfo

struct


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@55 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2008-07-22 08:25:39 +00:00
parent 272506e850
commit 4ba7550bfc
6 changed files with 59 additions and 32 deletions

14
aide.c
View File

@ -213,14 +213,22 @@ void Bouton_Stats(void)
Fenetre_Definir_bouton_normal(120,153,70,14,"OK",0,1,0x0001); // 1
// Affichage du numro de version
// Affichage du numéro de version
Print_dans_fenetre(10,19,"Version:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"GrafX 2.00 %s%s",ALPHA_BETA,POURCENTAGE_VERSION);
Print_dans_fenetre(82,19,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de la mmoire restante
// Affichage de la mémoire restante
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%d bytes",Memoire_libre());
unsigned long freeRam = Memoire_libre();
if(freeRam > (1024*1024*1024))
sprintf(Buffer,"%ld Gigabytes",freeRam/(1024*1024*1024));
else if(freeRam > (1024*1024))
sprintf(Buffer,"%ld Megabytes",freeRam/(1024*1024));
else if(freeRam > 1024)
sprintf(Buffer,"%ld Kilobytes",freeRam/1024);
else
sprintf(Buffer,"%ld bytes",freeRam);
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de l'espace disque libre

View File

@ -18,6 +18,7 @@
#include <ctype.h>
#include "boutons.h"
#include "operatio.h"
#include "pages.h"
// On déclare méchamment le prototype de Erreur pour éviter de faire un
// fichier "main.h":

View File

@ -62,7 +62,7 @@
; 1: Solid ³ 1: Solide
; 2: Transparent ³ 2: Transparent
; 3: Thin (solid) ³ 3: Fin (solide)
Cursor_aspect = 2 ; (default 1)
Cursor_aspect = 1 ; (default 1)
@ -102,7 +102,7 @@
; Font: ³ Police de caractères (fonte):
; 1: Classic ³ 1: Classique
; 2: Fun ³ 2: Fun
Font = 2 ; (default 1)
Font = 1 ; (default 1)
@ -158,7 +158,7 @@
; modes that are not supported by ³ 'yes' après avoir inhibé les modes
; your video card or monitor. ³ vidéo qui ne sont pas supportés par
; ³ votre matériel.
Auto_set_resolution = no ; (default 'no')
Auto_set_resolution = yes ; (default 'no')
; If the variable above is set to ³ Si la variable ci-dessus est à 'yes',
; 'yes', this one tells if you want ³ celle-ci indique si vous voulez
@ -198,7 +198,7 @@
; Coordinates: ³ Coordonnées:
; 1: Relative ³ 1: Relatives
; 2: Absolute ³ 2: Absolues
Coordinates = 1 ; (default 1)
Coordinates = 2 ; (default 1)
; Create a backup file when saving. ³ Créer un fichier backup lors des
; ³ sauvegardes.
@ -237,7 +237,7 @@
; Separate the colors in the tool- ³ Séparer les couleurs dans la barre
; bar by a black squaring. ³ d'outils par un quadrillage noir.
Separate_colors = yes ; (default 'yes')
Separate_colors = no ; (default 'yes')
; Initial value of the feedback for ³ Valeur initiale du "feedback" pour les
; the drawing modes (cf. docs). ³ modes de dessin (cf. docs).
@ -252,7 +252,7 @@
; the menu if there are less than 4 ³ de 4 couleurs après une "réduction" ou
; colors left after "reducing" or ³ un "zapping".
; "zapping". ³
Safety_colors = yes ; (default 'yes')
Safety_colors = no ; (default 'yes')
; Display a message at startup ³ Afficher un message au démarrage
; telling the version number of the ³ indiquant le numéro de version du

12
graph.c
View File

@ -393,12 +393,12 @@ void Calculer_couleurs_menu_optimales(struct Composantes * Palette)
// Indique quelle est la mémoire disponible
dword Memoire_libre(void)
unsigned long Memoire_libre(void)
{
// On appelle la fonction qui optimise la mémoire libre afin d'en regagner
// un maximum. Sinon, tous les "free" libèrent une mémoire qui n'est pas
// prise en compte par la fonction, et on se retrouve avec un manque
// alarmant de mémoire.
// On appelle la fonction qui optimise la mémoire libre afin d'en
// regagner un maximum. Sinon, tous les "free" libèrent une mémoire qui
// n'est pas prise en compte par la fonction, et on se retrouve avec un
// manque alarmant de mémoire.
/*
A revoir, mais est-ce vraiment utile?
_heapmin();
@ -406,7 +406,7 @@ dword Memoire_libre(void)
struct sysinfo info;
sysinfo(&info);
return info.freeram;
return info.freeram*info.mem_unit;
}

View File

@ -5,9 +5,11 @@
void Remapper_ecran_apres_changement_couleurs_menu(void);
void Calculer_couleurs_menu_optimales(struct Composantes * Palette);
dword Memoire_libre(void);
unsigned long Memoire_libre(void);
void Liste2tables(word * Liste,short Pas,byte Mode,byte * Table_inc,byte * Table_dec);
void Liste2tables(word * Liste, short Pas, byte Mode, byte * Table_inc,
byte * Table_dec
);
void Num2str(dword Nombre,char * Chaine,byte Taille);
int Str2num(char * Chaine);
@ -138,11 +140,8 @@ void Capturer_brosse_au_lasso(int Vertices, short * Points,short Effacement);
// Gestion des backups:
void Download_infos_page_principal(S_Page * Page);
void Upload_infos_page_principal(S_Page * Page);
void Download_infos_page_brouillon(S_Page * Page);
void Upload_infos_page_brouillon(S_Page * Page);
void Download_infos_backup(S_Liste_de_pages * Liste);
// int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Largeur,int Hauteur); // pages.h
void Detruire_les_listes_de_backups_en_fin_de_programme(void);
void Nouveau_nombre_de_backups(int Nouveau);
int Backup_avec_nouvelles_dimensions(int Upload,int Largeur,int Hauteur);

43
pages.c
View File

@ -414,26 +414,41 @@ void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
}
}
int Nouvelle_page_possible(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courante,S_Liste_de_pages * Liste_secondaire)
int Nouvelle_page_possible(
S_Page * Nouvelle_page,
S_Liste_de_pages * Liste_courante,
S_Liste_de_pages * Liste_secondaire
)
{
unsigned int Taille_immediatement_disponible;
unsigned int Taille_liste_courante;
unsigned int Taille_liste_brouillon;
unsigned int Taille_page_courante;
unsigned int Taille_page_brouillon;
unsigned int Taille_nouvelle_page;
unsigned long Taille_immediatement_disponible;
unsigned long Taille_liste_courante;
unsigned long Taille_liste_brouillon;
unsigned long Taille_page_courante;
unsigned long Taille_page_brouillon;
unsigned long Taille_nouvelle_page;
Taille_immediatement_disponible=Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER;
Taille_immediatement_disponible = Memoire_libre()
- QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER;
Taille_liste_courante =Taille_d_une_liste_de_pages(Liste_courante);
Taille_liste_brouillon=Taille_d_une_liste_de_pages(Liste_secondaire);
Taille_page_courante =Taille_d_une_page(Liste_courante->Pages);
Taille_page_brouillon =Taille_d_une_page(Liste_secondaire->Pages);
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
// courante, en conservant au pire la 1ère page de brouillon.
if ((Taille_immediatement_disponible+Taille_liste_courante+
Taille_liste_brouillon-Taille_page_brouillon)<(2*Taille_nouvelle_page))
if ( (Taille_immediatement_disponible + Taille_liste_courante +
Taille_liste_brouillon - Taille_page_brouillon)
< (2*Taille_nouvelle_page) )
{
DEBUG("A",0);
return 0;
@ -683,12 +698,16 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
Retour=1;
}
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 l'utilisateur. ==> On l'envoie ballader",0);
{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 \
l'utilisateur. ==> On l'envoie ballader",0);
Retour=0;
}
}
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 renvoie chier.",0);
{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 \
renvoie chier.",0);
Retour=0;
}
}