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)
 | 
			
		||||
  Cursor_aspect = 1	; (default 1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[MENU]                                # [MENU]
 | 
			
		||||
 | 
			
		||||
  ; 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 
 | 
			
		||||
  ; remembers the last window size.   | fenêtré.
 | 
			
		||||
  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 Mouse_Facteur_de_correction_X;
 | 
			
		||||
  byte Mouse_Facteur_de_correction_Y;
 | 
			
		||||
  byte Mouse_Merge_movement;
 | 
			
		||||
  byte Valeur_tempo_jauge_gauche;
 | 
			
		||||
  byte Valeur_tempo_jauge_droite;
 | 
			
		||||
  long Chrono_delay;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								input.c
									
									
									
									
									
								
							@ -44,6 +44,7 @@ byte Directional_up_left;
 | 
			
		||||
long Directional_delay;
 | 
			
		||||
long Directional_last_move;
 | 
			
		||||
long Directional_step;
 | 
			
		||||
short Mouse_count; // Number of mouse movements received in the current Get_input()
 | 
			
		||||
 | 
			
		||||
// TODO: move to config
 | 
			
		||||
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
 | 
			
		||||
int Move_cursor_with_constraints()
 | 
			
		||||
{
 | 
			
		||||
  int Retour=0;
 | 
			
		||||
  
 | 
			
		||||
  //Gestion "avancée" du curseur: interdire la descente du curseur dans le
 | 
			
		||||
  //menu lorsqu'on est en train de travailler dans l'image
 | 
			
		||||
  if (Operation_Taille_pile != 0)
 | 
			
		||||
@ -125,24 +128,27 @@ int Move_cursor_with_constraints()
 | 
			
		||||
                    );
 | 
			
		||||
        }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (
 | 
			
		||||
          (INPUT_Nouveau_Mouse_X != Mouse_X) ||
 | 
			
		||||
          (INPUT_Nouveau_Mouse_Y != Mouse_Y) ||
 | 
			
		||||
          (INPUT_Nouveau_Mouse_K != Mouse_K)
 | 
			
		||||
     )
 | 
			
		||||
  if ((INPUT_Nouveau_Mouse_X != Mouse_X) ||
 | 
			
		||||
    (INPUT_Nouveau_Mouse_Y == Mouse_Y))
 | 
			
		||||
  {
 | 
			
		||||
    Forcer_affichage_curseur=0;
 | 
			
		||||
    Effacer_curseur(); // On efface le curseur AVANT de le déplacer...
 | 
			
		||||
    Mouse_X=INPUT_Nouveau_Mouse_X;
 | 
			
		||||
    Mouse_Y=INPUT_Nouveau_Mouse_Y;
 | 
			
		||||
      Mouse_K=INPUT_Nouveau_Mouse_K;
 | 
			
		||||
    Calculer_coordonnees_pinceau();
 | 
			
		||||
    Afficher_curseur();
 | 
			
		||||
      return 1;
 | 
			
		||||
    
 | 
			
		||||
    Mouse_count++;
 | 
			
		||||
    if (Mouse_count>Config.Mouse_Merge_movement)
 | 
			
		||||
      Retour=1;
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    return 0;
 | 
			
		||||
  if ((INPUT_Nouveau_Mouse_K != Mouse_K))
 | 
			
		||||
  {
 | 
			
		||||
    Mouse_K=INPUT_Nouveau_Mouse_K;
 | 
			
		||||
    Retour=1;        
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return Retour;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Fonction qui filtre les evenements génériques.
 | 
			
		||||
@ -582,6 +588,7 @@ int Get_input(void)
 | 
			
		||||
 | 
			
		||||
    Touche_ANSI = 0;
 | 
			
		||||
    Touche = 0;
 | 
			
		||||
    Mouse_count=0;
 | 
			
		||||
 | 
			
		||||
    // Process as much events as possible without redrawing the screen.
 | 
			
		||||
    // 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;
 | 
			
		||||
  Conf->Curseur=Valeurs[0]-1;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MENU]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
@ -697,6 +696,15 @@ int Charger_INI(struct S_Config * Conf)
 | 
			
		||||
      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);
 | 
			
		||||
 | 
			
		||||
  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)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]")))
 | 
			
		||||
    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)))
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
  fclose(Nouveau_fichier);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user