In gfx2.ini, setting Merge_movement to >0 should help solve lag (issue 80)
for users who have a mouse with update frequency >100Hz git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@613 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
1ed8852d64
commit
47c8397cbf
10
gfx2def.ini
10
gfx2def.ini
@ -64,8 +64,6 @@
|
|||||||
; 3: Thin (solid) | 3: Fin (solide)
|
; 3: Thin (solid) | 3: Fin (solide)
|
||||||
Cursor_aspect = 1 ; (default 1)
|
Cursor_aspect = 1 ; (default 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[MENU] # [MENU]
|
[MENU] # [MENU]
|
||||||
|
|
||||||
; Colors of the menus (the black | Couleurs des menus (la couleur noire
|
; Colors of the menus (the black | Couleurs des menus (la couleur noire
|
||||||
@ -290,3 +288,11 @@
|
|||||||
; Window dimensions. The program | Dimensions de la fenêtre en mode
|
; Window dimensions. The program | Dimensions de la fenêtre en mode
|
||||||
; remembers the last window size. | fenêtré.
|
; remembers the last window size. | fenêtré.
|
||||||
Default_window_size = 640,480 ; (default '640,480')
|
Default_window_size = 640,480 ; (default '640,480')
|
||||||
|
|
||||||
|
; This setting allows you merge successive mouse movements into a single
|
||||||
|
; mouse movement. Ideally you should leave it at zero, but if you have an
|
||||||
|
; extremely fast mouse and you see the mouse cursor lagging WHEN YOU'RE NOT
|
||||||
|
; DRAWING, you may want to set it to 1, 2 or more, so that GrafX2 skips small
|
||||||
|
; steps. A very high value (100) guarantees that Grafx2 merges all the mouse
|
||||||
|
; steps into a single one.
|
||||||
|
Merge_movement = 100 ; (default 100)
|
||||||
|
|||||||
1
global.h
1
global.h
@ -61,6 +61,7 @@ GFX2_GLOBAL struct S_Config
|
|||||||
byte Indice_Sensibilite_souris_Y;
|
byte Indice_Sensibilite_souris_Y;
|
||||||
byte Mouse_Facteur_de_correction_X;
|
byte Mouse_Facteur_de_correction_X;
|
||||||
byte Mouse_Facteur_de_correction_Y;
|
byte Mouse_Facteur_de_correction_Y;
|
||||||
|
byte Mouse_Merge_movement;
|
||||||
byte Valeur_tempo_jauge_gauche;
|
byte Valeur_tempo_jauge_gauche;
|
||||||
byte Valeur_tempo_jauge_droite;
|
byte Valeur_tempo_jauge_droite;
|
||||||
long Chrono_delay;
|
long Chrono_delay;
|
||||||
|
|||||||
39
input.c
39
input.c
@ -44,6 +44,7 @@ byte Directional_up_left;
|
|||||||
long Directional_delay;
|
long Directional_delay;
|
||||||
long Directional_last_move;
|
long Directional_last_move;
|
||||||
long Directional_step;
|
long Directional_step;
|
||||||
|
short Mouse_count; // Number of mouse movements received in the current Get_input()
|
||||||
|
|
||||||
// TODO: move to config
|
// TODO: move to config
|
||||||
short Button_shift=-1; // Button number that serves as a "shift" modifier
|
short Button_shift=-1; // Button number that serves as a "shift" modifier
|
||||||
@ -83,6 +84,8 @@ int Est_Raccourci(word Touche, word Fonction)
|
|||||||
// Called each time there is a cursor move, either triggered by mouse or keyboard shortcuts
|
// Called each time there is a cursor move, either triggered by mouse or keyboard shortcuts
|
||||||
int Move_cursor_with_constraints()
|
int Move_cursor_with_constraints()
|
||||||
{
|
{
|
||||||
|
int Retour=0;
|
||||||
|
|
||||||
//Gestion "avancée" du curseur: interdire la descente du curseur dans le
|
//Gestion "avancée" du curseur: interdire la descente du curseur dans le
|
||||||
//menu lorsqu'on est en train de travailler dans l'image
|
//menu lorsqu'on est en train de travailler dans l'image
|
||||||
if (Operation_Taille_pile != 0)
|
if (Operation_Taille_pile != 0)
|
||||||
@ -125,24 +128,27 @@ int Move_cursor_with_constraints()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((INPUT_Nouveau_Mouse_X != Mouse_X) ||
|
||||||
if (
|
(INPUT_Nouveau_Mouse_Y == Mouse_Y))
|
||||||
(INPUT_Nouveau_Mouse_X != Mouse_X) ||
|
|
||||||
(INPUT_Nouveau_Mouse_Y != Mouse_Y) ||
|
|
||||||
(INPUT_Nouveau_Mouse_K != Mouse_K)
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
Forcer_affichage_curseur=0;
|
Forcer_affichage_curseur=0;
|
||||||
Effacer_curseur(); // On efface le curseur AVANT de le déplacer...
|
Effacer_curseur(); // On efface le curseur AVANT de le déplacer...
|
||||||
Mouse_X=INPUT_Nouveau_Mouse_X;
|
Mouse_X=INPUT_Nouveau_Mouse_X;
|
||||||
Mouse_Y=INPUT_Nouveau_Mouse_Y;
|
Mouse_Y=INPUT_Nouveau_Mouse_Y;
|
||||||
Mouse_K=INPUT_Nouveau_Mouse_K;
|
Calculer_coordonnees_pinceau();
|
||||||
Calculer_coordonnees_pinceau();
|
Afficher_curseur();
|
||||||
Afficher_curseur();
|
|
||||||
return 1;
|
Mouse_count++;
|
||||||
|
if (Mouse_count>Config.Mouse_Merge_movement)
|
||||||
|
Retour=1;
|
||||||
}
|
}
|
||||||
else
|
if ((INPUT_Nouveau_Mouse_K != Mouse_K))
|
||||||
return 0;
|
{
|
||||||
|
Mouse_K=INPUT_Nouveau_Mouse_K;
|
||||||
|
Retour=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Retour;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fonction qui filtre les evenements génériques.
|
// Fonction qui filtre les evenements génériques.
|
||||||
@ -582,6 +588,7 @@ int Get_input(void)
|
|||||||
|
|
||||||
Touche_ANSI = 0;
|
Touche_ANSI = 0;
|
||||||
Touche = 0;
|
Touche = 0;
|
||||||
|
Mouse_count=0;
|
||||||
|
|
||||||
// Process as much events as possible without redrawing the screen.
|
// Process as much events as possible without redrawing the screen.
|
||||||
// This mostly allows us to merge mouse events for people with an high
|
// This mostly allows us to merge mouse events for people with an high
|
||||||
|
|||||||
10
readini.c
10
readini.c
@ -456,7 +456,6 @@ int Charger_INI(struct S_Config * Conf)
|
|||||||
goto Erreur_ERREUR_INI_CORROMPU;
|
goto Erreur_ERREUR_INI_CORROMPU;
|
||||||
Conf->Curseur=Valeurs[0]-1;
|
Conf->Curseur=Valeurs[0]-1;
|
||||||
|
|
||||||
|
|
||||||
if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MENU]")))
|
if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MENU]")))
|
||||||
goto Erreur_Retour;
|
goto Erreur_Retour;
|
||||||
|
|
||||||
@ -697,6 +696,15 @@ int Charger_INI(struct S_Config * Conf)
|
|||||||
Mode_video[0].Hauteur = Valeurs[1];
|
Mode_video[0].Hauteur = Valeurs[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Conf->Mouse_Merge_movement=100;
|
||||||
|
// Optionnel, paramètre pour grouper les mouvements souris (>98.0%)
|
||||||
|
if (!Charger_INI_Get_values (Fichier,Buffer,"Merge_movement",1,Valeurs))
|
||||||
|
{
|
||||||
|
if ((Valeurs[0]<0) || (Valeurs[0]>1000))
|
||||||
|
goto Erreur_ERREUR_INI_CORROMPU;
|
||||||
|
Conf->Mouse_Merge_movement=Valeurs[0];
|
||||||
|
}
|
||||||
|
|
||||||
fclose(Fichier);
|
fclose(Fichier);
|
||||||
|
|
||||||
free(Nom_du_fichier);
|
free(Nom_du_fichier);
|
||||||
|
|||||||
@ -453,7 +453,6 @@ int Sauver_INI(struct S_Config * Conf)
|
|||||||
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,Valeurs,0)))
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,Valeurs,0)))
|
||||||
goto Erreur_Retour;
|
goto Erreur_Retour;
|
||||||
|
|
||||||
|
|
||||||
if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]")))
|
if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]")))
|
||||||
goto Erreur_Retour;
|
goto Erreur_Retour;
|
||||||
|
|
||||||
@ -605,6 +604,10 @@ int Sauver_INI(struct S_Config * Conf)
|
|||||||
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_window_size",2,Valeurs,0)))
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_window_size",2,Valeurs,0)))
|
||||||
goto Erreur_Retour;
|
goto Erreur_Retour;
|
||||||
|
|
||||||
|
Valeurs[0]=(Conf->Mouse_Merge_movement);
|
||||||
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Merge_movement",1,Valeurs,0)))
|
||||||
|
goto Erreur_Retour;
|
||||||
|
|
||||||
Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer);
|
Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer);
|
||||||
|
|
||||||
fclose(Nouveau_fichier);
|
fclose(Nouveau_fichier);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user