From 2fd88b81bb1bf74ac7407915830e35343019ddde Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Mon, 28 Sep 2009 21:01:29 +0000 Subject: [PATCH] [layers] work on layer sharing (still stable) git-svn-id: svn://pulkomandy.tk/GrafX2/branches/layers@1045 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- buttons.c | 2 ++ graph.c | 3 ++- misc.c | 10 +++++----- operatio.c | 5 ++++- pages.c | 7 ++++++- pages.h | 3 +++ palette.c | 14 +++++++------- pversion.c | 2 +- 8 files changed, 30 insertions(+), 16 deletions(-) diff --git a/buttons.c b/buttons.c index 1c513a99..41c757ec 100644 --- a/buttons.c +++ b/buttons.c @@ -507,6 +507,7 @@ void Button_Clear(void) Hide_current_image_with_stencil(0,Stencil); else Hide_current_image(0); + Redraw_layered_image(); Display_all_screen(); End_of_modification(); Unselect_button(BUTTON_CLEAR); @@ -521,6 +522,7 @@ void Button_Clear_with_backcolor(void) Hide_current_image_with_stencil(Back_color,Stencil); else Hide_current_image(Back_color); + Redraw_layered_image(); Display_all_screen(); End_of_modification(); Unselect_button(BUTTON_CLEAR); diff --git a/graph.c b/graph.c index bbb347af..d056b178 100644 --- a/graph.c +++ b/graph.c @@ -662,7 +662,8 @@ void Get_colors_from_brush(void) if (Confirmation_box("Modify current palette ?")) { - Backup(); + // Backup with unchanged layers, only palette is modified + Backup_layers(0); // On commence par initialiser le tableau de booléen à faux for (color=0;color<=255;color++) diff --git a/misc.c b/misc.c index b6434bac..473fe562 100644 --- a/misc.c +++ b/misc.c @@ -175,16 +175,16 @@ void Hide_current_image_with_stencil(byte color, byte * stencil) int nb_pixels=0; //ECX //al=color //edi=Screen_pixels - byte* Pixel_Courant=Screen_pixels; //dl + byte* pixel=Main_backups->Pages->Image[Main_current_layer]; int i; nb_pixels=Main_image_height*Main_image_width; for(i=0;iPages->Image[Main_current_layer], color , Main_image_width * Main_image_height ); diff --git a/operatio.c b/operatio.c index e21d0ae6..83ed306a 100644 --- a/operatio.c +++ b/operatio.c @@ -3909,12 +3909,15 @@ void Scroll_12_0(void) // { Init_start_operation(); - Backup(); Operation_push(Paintbrush_X); Operation_push(Paintbrush_Y); Operation_push(Paintbrush_X); Operation_push(Paintbrush_Y); Operation_push(Mouse_K); // LEFT_SIDE or RIGHT_SIDE + if (Mouse_K == LEFT_SIDE) + Backup(); + else + Backup_layers(Main_layers_visible); Cursor_hidden_before_scroll=Cursor_hidden; Cursor_hidden=1; diff --git a/pages.c b/pages.c index 0792371d..633c84f9 100644 --- a/pages.c +++ b/pages.c @@ -649,7 +649,12 @@ void Backup(void) // Sauve la page courante comme première page de backup et crée une nouvelle page // pur continuer à dessiner. Utilisé par exemple pour le fill { - int i; + Backup_layers(1<