Debugged mouse cursor erasing !
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@60 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									6233c24a9d
								
							
						
					
					
						commit
						a90c04af77
					
				
							
								
								
									
										2
									
								
								divers.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								divers.c
									
									
									
									
									
								
							@ -304,10 +304,10 @@ void Get_input(void)
 | 
			
		||||
    )
 | 
			
		||||
    {
 | 
			
		||||
	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;
 | 
			
		||||
	Effacer_curseur();
 | 
			
		||||
	Calculer_coordonnees_pinceau();
 | 
			
		||||
	Afficher_curseur();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								graph.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								graph.c
									
									
									
									
									
								
							@ -2473,7 +2473,8 @@ void Effacer_curseur(void)
 | 
			
		||||
  short X1,Y1,X2,Y2,X3,Y3,X4,Y4;
 | 
			
		||||
 | 
			
		||||
  if ( ( (Mouse_Y<Menu_Ordonnee)
 | 
			
		||||
      && ( (!Loupe_Mode) || (Mouse_X<Principal_Split) || (Mouse_X>=Principal_X_Zoom) ) )
 | 
			
		||||
      && ( (!Loupe_Mode) || (Mouse_X<Principal_Split) 
 | 
			
		||||
      			 || (Mouse_X>=Principal_X_Zoom) ) )
 | 
			
		||||
    || (Une_fenetre_est_ouverte) || (Forme_curseur==FORME_CURSEUR_SABLIER) )
 | 
			
		||||
    Forme=Forme_curseur;
 | 
			
		||||
  else
 | 
			
		||||
@ -2498,9 +2499,11 @@ void Effacer_curseur(void)
 | 
			
		||||
          if (Fin_X<4)
 | 
			
		||||
            Ligne_horizontale_XOR(Mouse_X+3,Mouse_Y,4-Fin_X);
 | 
			
		||||
 | 
			
		||||
          Fin_Y=(Mouse_Y+7>Menu_Ordonnee/*Hauteur_ecran*/)?Mouse_Y+7-Menu_Ordonnee/*Hauteur_ecran*/:0;
 | 
			
		||||
          Fin_Y=(Mouse_Y+7>Hauteur_ecran)?Mouse_Y+7-Hauteur_ecran:0;
 | 
			
		||||
          if (Fin_Y<4)
 | 
			
		||||
            Ligne_verticale_XOR  (Mouse_X,Mouse_Y+3,4-Fin_Y);
 | 
			
		||||
 | 
			
		||||
	  SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,Fin_X-Debut_X,Fin_Y-Debut_Y);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
@ -2540,12 +2543,10 @@ void Effacer_curseur(void)
 | 
			
		||||
          if (Fin_X<3)
 | 
			
		||||
            Ligne_horizontale_XOR(Mouse_X+3,Mouse_Y,3-Fin_X);
 | 
			
		||||
 | 
			
		||||
          Fin_Y=(Mouse_Y+6>Menu_Ordonnee/*Hauteur_ecran*/)?Mouse_Y+6-Menu_Ordonnee/*Hauteur_ecran*/:0;
 | 
			
		||||
          Fin_Y=(Mouse_Y+6>Hauteur_ecran)?Mouse_Y+6-Hauteur_ecran:0;
 | 
			
		||||
          if (Fin_Y<3)
 | 
			
		||||
            Ligne_verticale_XOR  (Mouse_X,Mouse_Y+3,3-Fin_Y);
 | 
			
		||||
 | 
			
		||||
          // Petites barres aux extrémités
 | 
			
		||||
 | 
			
		||||
          Debut_X=(!Mouse_X);
 | 
			
		||||
          Debut_Y=(!Mouse_Y);
 | 
			
		||||
          Fin_X=(Mouse_X>=Largeur_ecran-1);
 | 
			
		||||
@ -2562,6 +2563,8 @@ void Effacer_curseur(void)
 | 
			
		||||
 | 
			
		||||
          if (Mouse_Y<Menu_Ordonnee-6)
 | 
			
		||||
            Ligne_horizontale_XOR(Debut_X+Mouse_X-1,Mouse_Y+6,3-(Debut_X+Fin_X));
 | 
			
		||||
 | 
			
		||||
          SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,Fin_X-Debut_X,Fin_Y-Debut_Y);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
@ -2603,10 +2606,16 @@ void Effacer_curseur(void)
 | 
			
		||||
 | 
			
		||||
      Compteur_X=(Loupe_Mode)?Principal_Split:Largeur_ecran; // Largeur de la barre XOR
 | 
			
		||||
      if ((Pos_Y<Menu_Ordonnee) && (Pinceau_Y>=Limite_Haut))
 | 
			
		||||
      {
 | 
			
		||||
        Ligne_horizontale_XOR(0,Pinceau_Y-Principal_Decalage_Y,Compteur_X);
 | 
			
		||||
        SDL_UpdateRect(Ecran_SDL,0,Pinceau_Y-Principal_Decalage_Y,Compteur_X,1);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if ((Pos_X<Compteur_X) && (Pinceau_X>=Limite_Gauche))
 | 
			
		||||
      {
 | 
			
		||||
        Ligne_verticale_XOR(Pinceau_X-Principal_Decalage_X,0,Menu_Ordonnee);
 | 
			
		||||
	SDL_UpdateRect(Ecran_SDL,Pinceau_X-Principal_Decalage_X,0,1,Menu_Ordonnee);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (Loupe_Mode)
 | 
			
		||||
      {
 | 
			
		||||
@ -2616,6 +2625,7 @@ void Effacer_curseur(void)
 | 
			
		||||
          Ligne_verticale_XOR_Zoom(Pinceau_X,Limite_Haut_Zoom,Loupe_Hauteur);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_CURSEUR_RECTANGLE_XOR :
 | 
			
		||||
      // !!! Cette forme ne peut pas être utilisée en mode Loupe !!!
 | 
			
		||||
 | 
			
		||||
@ -13,8 +13,7 @@ void inline Pixel_SDL (word X,word Y,byte Couleur)
 | 
			
		||||
byte inline Lit_Pixel_SDL (word X,word Y)
 | 
			
		||||
/* On retourne la couleur du pixel aux coords données */
 | 
			
		||||
{
 | 
			
		||||
	byte* p = Ecran + Y*Largeur_ecran + X;
 | 
			
		||||
	return *p;
 | 
			
		||||
	return *( Ecran + Y * Largeur_ecran + X );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Effacer_Tout_l_Ecran_SDL (byte Couleur)
 | 
			
		||||
@ -319,5 +318,7 @@ void Set_Mode_SDL()
 | 
			
		||||
{
 | 
			
		||||
	Ecran_SDL=SDL_SetVideoMode(Largeur_ecran,Hauteur_ecran,8,SDL_HWSURFACE/*|SDL_FULLSCREEN*/);
 | 
			
		||||
	Ecran=Ecran_SDL->pixels;
 | 
			
		||||
 | 
			
		||||
	SDL_ShowCursor(0); // Cache le curseur SDL, on le gère en soft
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user