Scroll_picture
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@84 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
7e48434e19
commit
14191db899
38
divers.c
38
divers.c
@ -384,7 +384,14 @@ void Pixel_dans_ecran_courant (word X,word Y,byte Couleur)
|
|||||||
|
|
||||||
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur)
|
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
byte* edi;
|
||||||
|
|
||||||
|
// pour chaque pixel :
|
||||||
|
for(edi = Principal_Ecran;edi < Principal_Ecran + Principal_Hauteur_image * Principal_Largeur_image;edi++)
|
||||||
|
if (*edi == Ancienne_couleur)
|
||||||
|
*edi = Nouvelle_couleur;
|
||||||
|
SDL_UpdateRect(Ecran_SDL,0,0,0,0); // On pet TOUT a jour
|
||||||
|
// C'est pas un problème car il n'y a pas de preview
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical)
|
void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical)
|
||||||
@ -651,7 +658,34 @@ void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu)
|
|||||||
|
|
||||||
void Scroll_picture(short Decalage_X,short Decalage_Y)
|
void Scroll_picture(short Decalage_X,short Decalage_Y)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
byte* esi = Ecran_backup; //Source de la copie
|
||||||
|
byte* edi = Principal_Ecran + Decalage_Y * Principal_Largeur_image + Decalage_X;
|
||||||
|
const word ax = Principal_Largeur_image - Decalage_X; // Nombre de pixels à copier à droite
|
||||||
|
word dx;
|
||||||
|
for(dx = Principal_Hauteur_image - Decalage_Y;dx>0;dx--)
|
||||||
|
{
|
||||||
|
// Pour chaque ligne
|
||||||
|
memcpy(edi,esi,ax);
|
||||||
|
memcpy(edi - Decalage_X,esi+ax,Decalage_X);
|
||||||
|
|
||||||
|
// On passe à la ligne suivante
|
||||||
|
edi += Principal_Largeur_image;
|
||||||
|
esi += Principal_Largeur_image;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On vient de faire le traitement pour otutes les lignes au-dessous de Decalage_Y
|
||||||
|
// Maintenant on traite celles au dessus
|
||||||
|
edi = Decalage_X + Principal_Ecran;
|
||||||
|
for(dx = Decalage_Y;dx>0;dx--)
|
||||||
|
{
|
||||||
|
memcpy(edi,esi,ax);
|
||||||
|
memcpy(edi - Decalage_X,esi+ax,Decalage_X);
|
||||||
|
|
||||||
|
edi += Principal_Largeur_image;
|
||||||
|
esi += Principal_Largeur_image;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRect(Ecran_SDL,0,0,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
word Get_key(void)
|
word Get_key(void)
|
||||||
|
|||||||
2
graph.c
2
graph.c
@ -5198,6 +5198,8 @@ void Polyfill_General(int Vertices, short * Points, int Color)
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(initial_edge);
|
free(initial_edge);
|
||||||
|
// On ne connait pas simplement les xmin et xmax ici, mais de toutes façon ce n'est pas utilisé en preview
|
||||||
|
Mettre_Ecran_A_Jour(0,top,Principal_Largeur_image,bottom-top+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user