From 8fb16e7089e82d85bf2f80b773ad430a57907a42 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Wed, 19 Oct 2011 23:35:56 +0000 Subject: [PATCH] Re-integrated anim in trunk, fixing the 999-layer limit at the same time git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1841 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- share/grafx2/skins/skin_Aurora.png | Bin 26717 -> 27751 bytes share/grafx2/skins/skin_DPaint.png | Bin 15328 -> 21435 bytes share/grafx2/skins/skin_classic.png | Bin 16395 -> 17193 bytes share/grafx2/skins/skin_modern.png | Bin 20040 -> 20796 bytes share/grafx2/skins/skin_scenish.png | Bin 19303 -> 20045 bytes src/buttons.c | 6 +- src/const.h | 10 ++ src/engine.c | 6 + src/factory.c | 10 +- src/fileformats.c | 113 +++++++++--- src/global.h | 8 +- src/graph.c | 61 ++++--- src/helpfile.h | 20 ++- src/hotkeys.c | 54 ++++++ src/init.c | 114 +++++++++++- src/layers.c | 266 +++++++++++++++++++++++++++- src/layers.h | 12 +- src/loadsave.c | 35 +++- src/loadsave.h | 13 +- src/misc.c | 12 +- src/oldies.c | 10 +- src/operatio.c | 4 +- src/pages.c | 102 ++++++----- src/pages.h | 8 +- src/palette.c | 2 +- src/struct.h | 13 +- src/transform.c | 22 +-- src/windows.c | 26 ++- 28 files changed, 753 insertions(+), 174 deletions(-) diff --git a/share/grafx2/skins/skin_Aurora.png b/share/grafx2/skins/skin_Aurora.png index 7b9177b935ecc6b9309a32f85a801be8c78b3166..e86663f3fa3a4dd72fa1e2f990d0316cc7fd5d0d 100644 GIT binary patch literal 27751 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 delta 26042 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 B799Wp diff --git a/share/grafx2/skins/skin_DPaint.png b/share/grafx2/skins/skin_DPaint.png index 52fd207687c7ba68941f949741c69894be55df70..eae8e11435bd021066db3a1638eb09c619c168b9 100644 GIT binary patch delta 20771 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 delta 14616 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 Nj1A2V%C9=d{vXe#F&_W` diff --git a/share/grafx2/skins/skin_classic.png b/share/grafx2/skins/skin_classic.png index 2216df0c17178b5c22827514633d9d8a6ea6ae88..2241f9908c36728412d2d567a8a5d265525f86b2 100644 GIT binary patch literal 17193 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 literal 16395 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 diff --git a/share/grafx2/skins/skin_modern.png b/share/grafx2/skins/skin_modern.png index 39be261d03a4f144ef6e098c77ac5143eee1ceca..b062284d240a345d2d10488ab32a04357e33eb1d 100644 GIT binary patch delta 19644 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 diff --git a/share/grafx2/skins/skin_scenish.png b/share/grafx2/skins/skin_scenish.png index 2fcfb5877d6e7db4cf4812391f594e06cdaffe29..eb7a574a5a2a4f95e6f91e7b84c5fc5f64ddf907 100644 GIT binary patch literal 20045 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 To#vk#Kc|9Tba$d$xSjMryDy_b delta 18384 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 gL}+ny`akoM*Bh=n^s(6ikKPages->Image[i],Main_backups->Pages->Image[Main_current_layer],Main_image_width*Main_image_height); + memcpy(Spare_backups->Pages->Image[i].Pixels,Main_backups->Pages->Image[Main_current_layer].Pixels,Main_image_width*Main_image_height); } else { // Resize the original layer Copy_part_of_image_to_another( - Spare_backups->Pages->Next->Image[i],0,0,Min(old_width,Spare_image_width), + Spare_backups->Pages->Next->Image[i].Pixels,0,0,Min(old_width,Spare_image_width), Min(old_height,Spare_image_height),old_width, - Spare_backups->Pages->Image[i],0,0,Spare_image_width); + Spare_backups->Pages->Image[i].Pixels,0,0,Spare_image_width); } } diff --git a/src/const.h b/src/const.h index 2dcb9f6a..58e11b99 100644 --- a/src/const.h +++ b/src/const.h @@ -71,7 +71,11 @@ /// Character to display in menus for an ellipsis. #define ELLIPSIS_CHARACTER '…' #define NB_LAYERS 1 ///< Initial number of layers for a new image +#ifdef NOLAYERS +#define MAX_NB_LAYERS 999 ///< Maximum number of layers that can be used in grafx2. Note that 32 is upper limit because of a few bit fields. +#else #define MAX_NB_LAYERS 16 ///< Maximum number of layers that can be used in grafx2. Note that 32 is upper limit because of a few bit fields. +#endif #define BRUSH_CONTAINER_PREVIEW_WIDTH 16 ///< Size for preview of a brush in Brush container #define BRUSH_CONTAINER_PREVIEW_HEIGHT 16 ///< Size for preview of a brush in Brush container #define BRUSH_CONTAINER_COLUMNS 4 ///< Number of columns in the Brush container @@ -289,6 +293,12 @@ enum BUTTON_NUMBERS BUTTON_LAYER_REMOVE, BUTTON_LAYER_UP, BUTTON_LAYER_DOWN, + BUTTON_ANIM_TIME, + BUTTON_ANIM_FIRST_FRAME, + BUTTON_ANIM_PREV_FRAME, + BUTTON_ANIM_NEXT_FRAME, + BUTTON_ANIM_LAST_FRAME, + BUTTON_ANIM_PLAY, BUTTON_LAYER_SELECT, // Main menu diff --git a/src/engine.c b/src/engine.c index 85a40981..80984aa6 100644 --- a/src/engine.c +++ b/src/engine.c @@ -79,6 +79,12 @@ char * Menu_tooltip[NB_BUTTONS]= "Drop layer ", "Raise layer ", "Lower layer ", + "Set frame time ", + "Go to first frame ", + "Go to previous frame ", + "Go to next frame ", + "Go to last frame ", + "Preview animation ", "Layer select / toggle ", "Paintbrush choice ", "Adjust / Transform menu ", diff --git a/src/factory.c b/src/factory.c index 947ea03b..42b9fdd4 100644 --- a/src/factory.c +++ b/src/factory.c @@ -299,9 +299,9 @@ int L_SetPictureSize(lua_State* L) for (i=0; iPages->Nb_layers; i++) { Copy_part_of_image_to_another( - Main_backups->Pages->Next->Image[i],0,0,Min(Main_backups->Pages->Next->Width,Main_image_width), + Main_backups->Pages->Next->Image[i].Pixels,0,0,Min(Main_backups->Pages->Next->Width,Main_image_width), Min(Main_backups->Pages->Next->Height,Main_image_height),Main_backups->Pages->Next->Width, - Main_backups->Pages->Image[i],0,0,Main_image_width); + Main_backups->Pages->Image[i].Pixels,0,0,Main_image_width); } Redraw_layered_image(); @@ -326,9 +326,9 @@ int L_SetSparePictureSize(lua_State* L) for (i=0; iPages->Nb_layers; i++) { Copy_part_of_image_to_another( - Spare_backups->Pages->Next->Image[i],0,0,Min(Spare_backups->Pages->Next->Width,Spare_image_width), + Spare_backups->Pages->Next->Image[i].Pixels,0,0,Min(Spare_backups->Pages->Next->Width,Spare_image_width), Min(Spare_backups->Pages->Next->Height,Spare_image_height),Spare_backups->Pages->Next->Width, - Spare_backups->Pages->Image[i],0,0,Spare_image_width); + Spare_backups->Pages->Image[i].Pixels,0,0,Spare_image_width); } Redraw_spare_image(); @@ -637,7 +637,7 @@ int L_GetSpareLayerPixel(lua_State* L) lua_pushinteger(L, Spare_backups->Pages->Transparent_color); return 1; } - lua_pushinteger(L, *(Spare_backups->Pages->Image[Spare_current_layer] + y*Spare_image_width + x)); + lua_pushinteger(L, *(Spare_backups->Pages->Image[Spare_current_layer].Pixels + y*Spare_image_width + x)); return 1; } diff --git a/src/fileformats.c b/src/fileformats.c index 62bd2735..476b8499 100644 --- a/src/fileformats.c +++ b/src/fileformats.c @@ -1706,18 +1706,26 @@ typedef struct typedef struct { - // byte Block_identifier : 0x21 - // byte Function : 0xF9 - // byte Block_size // 4 + byte Block_identifier; // 0x21 + byte Function; // 0xF9 + byte Block_size; // 4 byte Packed_fields; // 11100000 : Reserved // 00011100 : Disposal method // 00000010 : User input flag // 00000001 : Transparent flag word Delay_time; // Time for this frame to stay displayed byte Transparent_color; // Which color index acts as transparent - //word Bloc_terminator; // 0x00 + word Block_terminator; // 0x00 } T_GIF_GCE; // Graphic Control Extension +enum DISPOSAL_METHOD +{ + DISPOSAL_METHOD_UNDEFINED = 0, + DISPOSAL_METHOD_DO_NOT_DISPOSE = 1, + DISPOSAL_METHOD_RESTORE_BGCOLOR = 2, + DISPOSAL_METHOD_RESTORE_PREVIOUS = 3, +}; + // -- Tester si un fichier est au format GIF -------------------------------- void Test_GIF(T_IO_Context * context) @@ -1801,8 +1809,9 @@ word GIF_get_next_code(void) // -- Affiche un nouveau pixel -- -void GIF_new_pixel(T_IO_Context * context, T_GIF_IDB *idb, byte color) +void GIF_new_pixel(T_IO_Context * context, T_GIF_IDB *idb, int is_transparent, byte color) { + if (!is_transparent || color!=context->Transparent_color) Set_pixel(context, idb->Pos_X+GIF_pos_X, idb->Pos_Y+GIF_pos_Y,color); GIF_pos_X++; @@ -1872,7 +1881,11 @@ void Load_GIF(T_IO_Context * context) word value_eof; // Valeur <=> End d'image long file_size; int number_LID; // Nombre d'images trouvées dans le fichier - short current_layer = 0; + int current_layer = 0; + int last_delay = 0; + byte is_transparent = 0; + byte disposal_method = DISPOSAL_METHOD_RESTORE_BGCOLOR; + byte previous_disposal_method = DISPOSAL_METHOD_RESTORE_BGCOLOR; /////////////////////////////////////////////////// FIN DES DECLARATIONS // @@ -1972,19 +1985,23 @@ void Load_GIF(T_IO_Context * context) && Read_word_le(GIF_file,&(GCE.Delay_time)) && Read_byte(GIF_file,&(GCE.Transparent_color))) { + previous_disposal_method = disposal_method; + disposal_method = (GCE.Packed_fields >> 2) & 7; + last_delay = GCE.Delay_time; + context->Transparent_color= GCE.Transparent_color; if (GCE.Packed_fields & 1) { if (number_LID == 0) context->Background_transparent = 1; - context->Transparent_color= GCE.Transparent_color; } else { if (number_LID == 0) context->Background_transparent = 0; - context->Transparent_color = 0; // Reset transparent color } - + is_transparent = + (previous_disposal_method==DISPOSAL_METHOD_DO_NOT_DISPOSE + ||previous_disposal_method==DISPOSAL_METHOD_UNDEFINED); } else File_error=2; @@ -2117,7 +2134,35 @@ void Load_GIF(T_IO_Context * context) // Attempt to add a layer to current image current_layer++; Set_loading_layer(context, current_layer); +#ifdef NOLAYERS + if (context->Type == CONTEXT_MAIN_IMAGE) + { + if (is_transparent) + // Copy the content of previous layer, in case of loading a GIF + // that uses transparency compression + memcpy( + Main_backups->Pages->Image[Main_current_layer].Pixels, + Main_backups->Pages->Image[Main_current_layer-1].Pixels, + Main_backups->Pages->Width*Main_backups->Pages->Height); + else + memset( + Main_backups->Pages->Image[Main_current_layer].Pixels, + LSDB.Backcol, + Main_backups->Pages->Width*Main_backups->Pages->Height); + } +#endif } + else + { + if (context->Type == CONTEXT_MAIN_IMAGE) + memset( + Main_backups->Pages->Image[Main_current_layer].Pixels, + LSDB.Backcol, + Main_backups->Pages->Width*Main_backups->Pages->Height); + } + + // Duration was set in the previously loaded GCE + Set_frame_duration(context, last_delay*10); number_LID++; // lecture de 10 derniers octets @@ -2202,7 +2247,7 @@ void Load_GIF(T_IO_Context * context) special_case=alphabet_stack[alphabet_stack_pos++]=GIF_current_code; do - GIF_new_pixel(context, &IDB, alphabet_stack[--alphabet_stack_pos]); + GIF_new_pixel(context, &IDB, is_transparent, alphabet_stack[--alphabet_stack_pos]); while (alphabet_stack_pos!=0); alphabet_prefix[alphabet_free ]=old_code; @@ -2222,7 +2267,7 @@ void Load_GIF(T_IO_Context * context) alphabet_free =(1<Nb_layers>1) + Write_bytes(GIF_file,"\x21\xFF\x0BNETSCAPE2.0\x03\x01\x00\x00\x00",19); +#endif // Ecriture du commentaire if (context->Comment[0]) @@ -2471,24 +2520,36 @@ void Save_GIF(T_IO_Context * context) current_layer++) { // Write a Graphic Control Extension - byte GCE_block[] = "\x21\xF9\x04\x04\x05\x00\x00\x00"; - // 'Default' values: - // Disposal method "Do not dispose" - // Duration 5/100s (minimum viable value for current web browsers) - - if (current_layer > 0 || context->Background_transparent) - GCE_block[3] |= 1; // Transparent color flag - GCE_block[6] = context->Transparent_color; + T_GIF_GCE GCE; Set_saving_layer(context, current_layer); + GCE.Block_identifier = 0x21; + GCE.Function = 0xF9; + GCE.Block_size=4; +#ifdef NOLAYERS + GCE.Packed_fields=(2<<2)|(context->Background_transparent); + GCE.Delay_time=Get_frame_duration(context)/10; +#else + if (current_layer==0) + GCE.Packed_fields=(1<<2)|(context->Background_transparent); + else + GCE.Packed_fields=(1<<2)|(1); + GCE.Delay_time=5; // Duration 5/100s (minimum viable value for current web browsers) if (current_layer == context->Nb_layers -1) - { - // "Infinite" delay for last frame - GCE_block[4] = 255; - GCE_block[5] = 255; - } - if (Write_bytes(GIF_file,GCE_block,8)) + GCE.Delay_time=0xFFFF; // Infinity (10 minutes) +#endif + GCE.Transparent_color=context->Transparent_color; + GCE.Block_terminator=0x00; + + if (Write_byte(GIF_file,GCE.Block_identifier) + && Write_byte(GIF_file,GCE.Function) + && Write_byte(GIF_file,GCE.Block_size) + && Write_byte(GIF_file,GCE.Packed_fields) + && Write_word_le(GIF_file,GCE.Delay_time) + && Write_byte(GIF_file,GCE.Transparent_color) + && Write_byte(GIF_file,GCE.Block_terminator) + ) { // On va écrire un block indicateur d'IDB et l'IDB du fichier diff --git a/src/global.h b/src/global.h index 133972af..8aa18abd 100644 --- a/src/global.h +++ b/src/global.h @@ -336,7 +336,7 @@ GFX2_GLOBAL short Main_magnifier_offset_X; /// Y position (in image space) of the pixel to display in the top left corner of the magnified view. GFX2_GLOBAL short Main_magnifier_offset_Y; /// Index of layer currently being edited -GFX2_GLOBAL byte Main_current_layer; +GFX2_GLOBAL int Main_current_layer; /// Bitfield that records which layers are visible. 2^0 for 0, 2^1 for 1, 2^2 for 2, etc. GFX2_GLOBAL dword Main_layers_visible; /// Index to use next time, when creating incremental backups, to make unique filename. @@ -402,7 +402,7 @@ GFX2_GLOBAL short Spare_magnifier_offset_X; /// Y position (in image space) of the pixel to display in the top left corner of the magnified view. GFX2_GLOBAL short Spare_magnifier_offset_Y; /// Index of layer currently being edited -GFX2_GLOBAL byte Spare_current_layer; +GFX2_GLOBAL int Spare_current_layer; /// Bitfield that records which layers are visible. 2^0 for 0, 2^1 for 1, 2^2 for 2, etc. GFX2_GLOBAL dword Spare_layers_visible; /// Index to use next time, when creating incremental backups, to make unique filename. @@ -495,7 +495,11 @@ GFX2_GLOBAL T_Menu_Bar Menu_bars[MENUBAR_COUNT] #ifdef GLOBAL_VARIABLES = {{MENU_WIDTH, 9, 1, 45, {NULL,NULL,NULL}, 20, BUTTON_HIDE }, // Status +#ifdef NOLAYERS + {MENU_WIDTH, 14, 1, 35, {NULL,NULL,NULL}, 236, BUTTON_LAYER_SELECT }, // Animation +#else {MENU_WIDTH, 10, 1, 35, {NULL,NULL,NULL}, 144, BUTTON_LAYER_SELECT }, // Layers +#endif {MENU_WIDTH, 35, 1, 0, {NULL,NULL,NULL}, 254, BUTTON_CHOOSE_COL }} // Main #endif ; diff --git a/src/graph.c b/src/graph.c index b95429a2..bf7b90a9 100644 --- a/src/graph.c +++ b/src/graph.c @@ -632,9 +632,9 @@ void Resize_image(word chosen_width,word chosen_height) for (i=0; iPages->Nb_layers; i++) { Copy_part_of_image_to_another( - Main_backups->Pages->Next->Image[i],0,0,Min(old_width,Main_image_width), + Main_backups->Pages->Next->Image[i].Pixels,0,0,Min(old_width,Main_image_width), Min(old_height,Main_image_height),old_width, - Main_backups->Pages->Image[i],0,0,Main_image_width); + Main_backups->Pages->Image[i].Pixels,0,0,Main_image_width); } Redraw_layered_image(); } @@ -655,7 +655,7 @@ void Remap_spare(void) short y_pos; // Variable de balayage de la brosse byte used[256]; // Tableau de booléens "La couleur est utilisée" int color; - byte layer; + int layer; // On commence par initialiser le tableau de booléens à faux for (color=0;color<=255;color++) @@ -665,7 +665,7 @@ void Remap_spare(void) for (layer=0; layerPages->Nb_layers; layer++) for (y_pos=0;y_posPages->Image[layer]+(y_pos*Spare_image_width+x_pos))]=1; + used[*(Spare_backups->Pages->Image[layer].Pixels+(y_pos*Spare_image_width+x_pos))]=1; // On va maintenant se servir de la table "used" comme table de // conversion: pour chaque indice, la table donne une couleur de @@ -682,7 +682,7 @@ void Remap_spare(void) // qui craint un peu, on peut faire l'échange dans la brosse de toutes les // teintes. for (layer=0; layerPages->Nb_layers; layer++) - Remap_general_lowlevel(used,Spare_backups->Pages->Image[layer],Spare_backups->Pages->Image[layer],Spare_image_width,Spare_image_height,Spare_image_width); + Remap_general_lowlevel(used,Spare_backups->Pages->Image[layer].Pixels,Spare_backups->Pages->Image[layer].Pixels,Spare_image_width,Spare_image_height,Spare_image_width); // Change transparent color index Spare_backups->Pages->Transparent_color=used[Spare_backups->Pages->Transparent_color]; @@ -979,7 +979,7 @@ void Fill(short * top_reached , short * bottom_reached, byte Read_pixel_from_backup_layer(word x,word y) { - return *((y)*Main_image_width+(x)+Main_backups->Pages->Next->Image[Main_current_layer]); + return *((y)*Main_image_width+(x)+Main_backups->Pages->Next->Image[Main_current_layer].Pixels); } void Fill_general(byte fill_color) @@ -1035,34 +1035,34 @@ void Fill_general(byte fill_color) // Il va maintenant falloir qu'on "turn" ce gros caca "into" un truc qui // ressemble un peu plus à ce à quoi l'utilisateur peut s'attendre. if (top_reached>Limit_top) - Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer], // source + Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer].Pixels, // source Limit_left,Limit_top, // Pos X et Y dans source (Limit_right-Limit_left)+1, // width copie top_reached-Limit_top,// height copie Main_image_width, // width de la source - Main_backups->Pages->Image[Main_current_layer], // Destination + Main_backups->Pages->Image[Main_current_layer].Pixels, // Destination Limit_left,Limit_top, // Pos X et Y destination Main_image_width); // width destination if (bottom_reachedPages->Next->Image[Main_current_layer], + Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer].Pixels, Limit_left,bottom_reached+1, (Limit_right-Limit_left)+1, Limit_bottom-bottom_reached, - Main_image_width,Main_backups->Pages->Image[Main_current_layer], + Main_image_width,Main_backups->Pages->Image[Main_current_layer].Pixels, Limit_left,bottom_reached+1,Main_image_width); if (left_reached>Limit_left) - Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer], + Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer].Pixels, Limit_left,top_reached, left_reached-Limit_left, (bottom_reached-top_reached)+1, - Main_image_width,Main_backups->Pages->Image[Main_current_layer], + Main_image_width,Main_backups->Pages->Image[Main_current_layer].Pixels, Limit_left,top_reached,Main_image_width); if (right_reachedPages->Next->Image[Main_current_layer], + Copy_part_of_image_to_another(Main_backups->Pages->Next->Image[Main_current_layer].Pixels, right_reached+1,top_reached, Limit_right-right_reached, (bottom_reached-top_reached)+1, - Main_image_width,Main_backups->Pages->Image[Main_current_layer], + Main_image_width,Main_backups->Pages->Image[Main_current_layer].Pixels, right_reached+1,top_reached,Main_image_width); for (y_pos=top_reached;y_pos<=bottom_reached;y_pos++) @@ -2924,7 +2924,7 @@ byte Effect_layer_copy(word x,word y,byte color) { if (colorPages->Nb_layers) { - return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[color]); + return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[color].Pixels); } return Read_pixel_from_feedback_screen(x,y); } @@ -2974,16 +2974,16 @@ byte Read_pixel_from_current_screen (word x,word y) byte color; if (Main_current_layer==4) - return *(Main_backups->Pages->Image[Main_current_layer] + x+y*Main_image_width); + return *(Main_backups->Pages->Image[Main_current_layer].Pixels + x+y*Main_image_width); color = *(Main_screen+y*Main_image_width+x); if (color != Main_backups->Pages->Transparent_color) // transparent color return color; depth = *(Main_visible_image_depth_buffer.Image+x+y*Main_image_width); - return *(Main_backups->Pages->Image[depth] + x+y*Main_image_width); + return *(Main_backups->Pages->Image[depth].Pixels + x+y*Main_image_width); #else - return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer]); + return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer].Pixels); #endif } @@ -2993,30 +2993,29 @@ void Pixel_in_current_screen (word x,word y,byte color,int with_preview) if (!Constraint_mode) { byte depth = *(Main_visible_image_depth_buffer.Image+x+y*Main_image_width); - *(Main_backups->Pages->Image[Main_current_layer] + x+y*Main_image_width)=color; + *(Main_backups->Pages->Image[Main_current_layer].Pixels + x+y*Main_image_width)=color; if ( depth <= Main_current_layer) { if (color == Main_backups->Pages->Transparent_color) // transparent color // fetch pixel color from the topmost visible layer - color=*(Main_backups->Pages->Image[depth] + x+y*Main_image_width); + color=*(Main_backups->Pages->Image[depth].Pixels + x+y*Main_image_width); *(x+y*Main_image_width+Main_screen)=color; if (with_preview) Pixel_preview(x,y,color); } - } else if ( Main_current_layer == 4) { if (color<4) { // Paste in layer - *(Main_backups->Pages->Image[Main_current_layer] + x+y*Main_image_width)=color; + *(Main_backups->Pages->Image[Main_current_layer].Pixels + x+y*Main_image_width)=color; // Paste in depth buffer *(Main_visible_image_depth_buffer.Image+x+y*Main_image_width)=color; // Fetch pixel color from the target raster layer - color=*(Main_backups->Pages->Image[color] + x+y*Main_image_width); + color=*(Main_backups->Pages->Image[color].Pixels + x+y*Main_image_width); // Draw that color on the visible image buffer *(x+y*Main_image_width+Main_screen)=color; @@ -3029,9 +3028,9 @@ void Pixel_in_current_screen (word x,word y,byte color,int with_preview) byte depth; // Paste in layer - *(Main_backups->Pages->Image[Main_current_layer] + x+y*Main_image_width)=color; + *(Main_backups->Pages->Image[Main_current_layer].Pixels + x+y*Main_image_width)=color; // Search depth - depth = *(Main_backups->Pages->Image[4] + x+y*Main_image_width); + depth = *(Main_backups->Pages->Image[4].Pixels + x+y*Main_image_width); if ( depth == Main_current_layer) { @@ -3046,13 +3045,13 @@ void Pixel_in_current_screen (word x,word y,byte color,int with_preview) { byte depth; - *(Main_backups->Pages->Image[Main_current_layer] + x+y*Main_image_width)=color; + *(Main_backups->Pages->Image[Main_current_layer].Pixels + x+y*Main_image_width)=color; depth = *(Main_visible_image_depth_buffer.Image+x+y*Main_image_width); if ( depth <= Main_current_layer) { if (color == Main_backups->Pages->Transparent_color) // transparent color // fetch pixel color from the topmost visible layer - color=*(Main_backups->Pages->Image[depth] + x+y*Main_image_width); + color=*(Main_backups->Pages->Image[depth].Pixels + x+y*Main_image_width); *(x+y*Main_image_width+Main_screen)=color; @@ -3061,7 +3060,7 @@ void Pixel_in_current_screen (word x,word y,byte color,int with_preview) } } #else - *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer])=color; + *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer].Pixels)=color; if (with_preview) Pixel_preview(x,y,color); #endif @@ -3069,15 +3068,15 @@ void Pixel_in_current_screen (word x,word y,byte color,int with_preview) void Pixel_in_spare(word x,word y, byte color) { - *((y)*Spare_image_width+(x)+Spare_backups->Pages->Image[Spare_current_layer])=color; + *((y)*Spare_image_width+(x)+Spare_backups->Pages->Image[Spare_current_layer].Pixels)=color; } void Pixel_in_current_layer(word x,word y, byte color) { - *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer])=color; + *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer].Pixels)=color; } byte Read_pixel_from_current_layer(word x,word y) { - return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer]); + return *((y)*Main_image_width+(x)+Main_backups->Pages->Image[Main_current_layer].Pixels); } diff --git a/src/helpfile.h b/src/helpfile.h index ed722a8b..a5fe74d3 100644 --- a/src/helpfile.h +++ b/src/helpfile.h @@ -306,15 +306,18 @@ static const T_Help_table helptable_help[] = HELP_LINK (" Next : %s", SPECIAL_NEXT_USER_BACKCOLOR) HELP_LINK (" Previous: %s", SPECIAL_PREVIOUS_USER_BACKCOLOR) HELP_TEXT ("") - HELP_TEXT ("LAYERS") + HELP_TEXT ("LAYERS / ANIMATION FRAMES") HELP_TEXT ("") HELP_LINK (" Menu : %s", 0x100+BUTTON_LAYER_MENU) HELP_LINK (" Add new : %s", 0x100+BUTTON_LAYER_ADD) HELP_LINK (" Delete : %s", 0x100+BUTTON_LAYER_REMOVE) +#ifndef NOLAYERS HELP_LINK (" Merge : %s", 0x100+BUTTON_LAYER_MERGE) +#endif HELP_LINK (" Move up : %s", 0x100+BUTTON_LAYER_UP) HELP_LINK (" Move down : %s", 0x100+BUTTON_LAYER_DOWN) //HELP_LINK (" Set transp: %s", 0x100+BUTTON_LAYER_COLOR) +#ifndef NOLAYERS HELP_TEXT (" Select :") HELP_LINK (" 1 : %s", SPECIAL_LAYER1_SELECT) HELP_LINK (" 2 : %s", SPECIAL_LAYER2_SELECT) @@ -333,6 +336,13 @@ static const T_Help_table helptable_help[] = HELP_LINK (" 6 : %s", SPECIAL_LAYER6_TOGGLE) HELP_LINK (" 7 : %s", SPECIAL_LAYER7_TOGGLE) HELP_LINK (" 8 : %s", SPECIAL_LAYER8_TOGGLE) +#else + HELP_LINK (" Go to first: %s", 0x100+BUTTON_ANIM_FIRST_FRAME) + HELP_LINK (" Go to previous: %s", 0x100+BUTTON_ANIM_PREV_FRAME) + HELP_LINK (" Go to next: %s", 0x100+BUTTON_ANIM_NEXT_FRAME) + HELP_LINK (" Go to last: %s", 0x100+BUTTON_ANIM_LAST_FRAME) + HELP_LINK (" Set duration: %s", 0x100+BUTTON_ANIM_TIME) +#endif HELP_TEXT ("") HELP_LINK (" Format check : %s", SPECIAL_FORMAT_CHECKER) HELP_LINK (" Format check menu: %s", SPECIAL_FORMAT_CHECKER_MENU) @@ -2924,6 +2934,14 @@ T_Help_section Help_section[] = HELP_TABLE_DECLARATION(helptable_layerdel) HELP_TABLE_DECLARATION(helptable_layerup) HELP_TABLE_DECLARATION(helptable_layerdown) + // TODO: implement specific help sections for anim buttons + HELP_TABLE_DECLARATION(helptable_layerselect) + HELP_TABLE_DECLARATION(helptable_layerselect) + HELP_TABLE_DECLARATION(helptable_layerselect) + HELP_TABLE_DECLARATION(helptable_layerselect) + HELP_TABLE_DECLARATION(helptable_layerselect) + HELP_TABLE_DECLARATION(helptable_layerselect) + // HELP_TABLE_DECLARATION(helptable_layerselect) HELP_TABLE_DECLARATION(helptable_paintbrush) HELP_TABLE_DECLARATION(helptable_adjust) diff --git a/src/hotkeys.c b/src/hotkeys.c index 3467b6b2..02fbdb58 100644 --- a/src/hotkeys.c +++ b/src/hotkeys.c @@ -1657,6 +1657,54 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = { true, 0, 0}, + {200, + "Set frame time", + "Opens a window where you", + "can set the current animation", + "frame duration.", + true, + 0, // No shortcut + 0}, + {201, + "Go to first frame", + "Edits the first frame of", + "an animation", + "", + true, + 0, // No shortcut + 0}, + {202, + "Go to last frame", + "Edits the last frame of", + "an animation", + "", + true, + 0, // No shortcut + 0}, + {203, + "Go to previous frame", + "Edits the previous frame of", + "an animation", + "", + true, + 0, // No shortcut + 0}, + {204, + "Go to next frame", + "Edits the next frame of", + "an animation", + "", + true, + 0, // No shortcut + 0}, + {205, + "Preview animation", + "Runs the current animation.", + "", + "", + true, + 0, // No shortcut + 0}, }; word Ordering[NB_SHORTCUTS]= @@ -1861,4 +1909,10 @@ word Ordering[NB_SHORTCUTS]= SPECIAL_CYCLE_MODE, SPECIAL_FORMAT_CHECKER, SPECIAL_FORMAT_CHECKER_MENU, + 0x100+BUTTON_ANIM_TIME, + 0x100+BUTTON_ANIM_FIRST_FRAME, + 0x100+BUTTON_ANIM_LAST_FRAME, + 0x100+BUTTON_ANIM_PREV_FRAME, + 0x100+BUTTON_ANIM_NEXT_FRAME, + 0x100+BUTTON_ANIM_PLAY, }; diff --git a/src/init.c b/src/init.c index 8be7e423..c42b3aea 100644 --- a/src/init.c +++ b/src/init.c @@ -374,9 +374,16 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) // Layerbar if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "layer bar")) return 1; - if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Layerbar_block[0], Menu_bars[MENUBAR_LAYERS].Skin_width, Menu_bars[MENUBAR_LAYERS].Height,"layer bar",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Layerbar_block[0], 144, 10,"layer bar",0)) return 1; - cursor_y+= Menu_bars[MENUBAR_LAYERS].Height; + cursor_y+= 10; + + // Animbar + if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "anim bar")) + return 1; + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Animbar_block[0], 236, 14,"anim bar",0)) + return 1; + cursor_y+= 14; // Status bar if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "status bar")) @@ -395,9 +402,16 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) // Layerbar (selected) if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "selected layer bar")) return 1; - if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Layerbar_block[1], Menu_bars[MENUBAR_LAYERS].Skin_width, Menu_bars[MENUBAR_LAYERS].Height,"selected layer bar",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Layerbar_block[1], 144, 10,"selected layer bar",0)) return 1; - cursor_y+= Menu_bars[MENUBAR_LAYERS].Height; + cursor_y+= 10; + + // Animbar (selected) + if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "selected anim bar")) + return 1; + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Animbar_block[1], 236, 14,"selected anim bar",0)) + return 1; + cursor_y+= 14; // Status bar (selected) if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "selected status bar")) @@ -635,7 +649,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) memcpy(gfx->Menu_block[2], gfx->Menu_block[0], Menu_bars[MENUBAR_TOOLS].Skin_width*Menu_bars[MENUBAR_TOOLS].Height); memcpy(gfx->Layerbar_block[2], gfx->Layerbar_block[0], - Menu_bars[MENUBAR_LAYERS].Skin_width*Menu_bars[MENUBAR_LAYERS].Height); + sizeof(gfx->Layerbar_block[0])); + memcpy(gfx->Animbar_block[2], gfx->Animbar_block[0], + sizeof(gfx->Animbar_block[0])); memcpy(gfx->Statusbar_block[2], gfx->Statusbar_block[0], Menu_bars[MENUBAR_STATUS].Skin_width*Menu_bars[MENUBAR_STATUS].Height); @@ -1146,6 +1162,7 @@ void Init_buttons(void) FAMILY_INSTANT); // Layer bar +#ifndef NOLAYERS Init_button(BUTTON_LAYER_MENU, 0,0, 57,9, @@ -1210,6 +1227,89 @@ void Init_buttons(void) 0,0, Do_nothing, FAMILY_INSTANT); +#else + // Anim bar + Init_button(BUTTON_LAYER_MENU, + 0,0, + 44,13, + BUTTON_SHAPE_RECTANGLE, + Button_Layer_menu, Button_Layer_menu, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_ANIM_TIME, + 45,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Anim_time, Button_Anim_time, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_ANIM_FIRST_FRAME, + 116,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Anim_first_frame, Button_Anim_first_frame, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_ANIM_PREV_FRAME, + 130,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Anim_prev_frame, Button_Anim_continuous_prev, + 0,1, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_ANIM_NEXT_FRAME, + 144,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Anim_next_frame, Button_Anim_continuous_next, + 0,1, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_ANIM_LAST_FRAME, + 158,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Anim_last_frame, Button_Anim_last_frame, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_LAYER_ADD, + 177,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Layer_add, Button_Layer_add, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_LAYER_REMOVE, + 191,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Layer_remove, Button_Layer_remove, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_LAYER_DOWN, + 205,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Layer_down, Button_Layer_down, + 0,0, + Do_nothing, + FAMILY_INSTANT); + Init_button(BUTTON_LAYER_UP, + 219,0, + 13,13, + BUTTON_SHAPE_RECTANGLE, + Button_Layer_up, Button_Layer_up, + 0,0, + Do_nothing, + FAMILY_INSTANT); +#endif // Status bar Init_button(BUTTON_HIDE, 0,0, @@ -2695,7 +2795,11 @@ void Set_current_skin(const char *skinfile, T_Gui_skin *gfx) for (i=0; i<3; i++) { Menu_bars[MENUBAR_TOOLS ].Skin[i] = (byte*)&(gfx->Menu_block[i]); +#ifndef NOLAYERS Menu_bars[MENUBAR_LAYERS].Skin[i] = (byte*)&(gfx->Layerbar_block[i]); +#else + Menu_bars[MENUBAR_LAYERS].Skin[i] = (byte*)&(gfx->Animbar_block[i]); +#endif Menu_bars[MENUBAR_STATUS].Skin[i] = (byte*)&(gfx->Statusbar_block[i]); } } diff --git a/src/layers.c b/src/layers.c index 6b8abfb9..31009ab0 100644 --- a/src/layers.c +++ b/src/layers.c @@ -29,8 +29,9 @@ #include "input.h" #include "help.h" #include "misc.h" +#include "readline.h" -void Layer_activate(byte layer, short side) +void Layer_activate(int layer, short side) { word old_layers; @@ -103,8 +104,18 @@ void Button_Layer_add(void) Backup_layers(0); if (!Add_layer(Main_backups,Main_current_layer+1)) { + #ifdef NOLAYERS + // Make a copy of current image, so the display is unchanged + memcpy( + Main_backups->Pages->Image[Main_current_layer].Pixels, + Main_backups->Pages->Image[Main_current_layer-1].Pixels, + Main_backups->Pages->Width*Main_backups->Pages->Height); + #else Update_depth_buffer(); + // I just noticed this might be unneeded, since the new layer + // is transparent, it shouldn't have any visible effect. Display_all_screen(); + #endif Display_layerbar(); End_of_modification(); } @@ -154,7 +165,7 @@ void Button_Layer_select(void) void Button_Layer_toggle(void) { - short layer; + int layer; // Determine which button is clicked according to mouse position layer = (Mouse_X/Menu_factor_X - Menu_bars[MENUBAR_LAYERS].Skin_width) / Layer_button_width; @@ -318,7 +329,7 @@ void Button_Layer_up(void) if (Main_current_layer < (Main_backups->Pages->Nb_layers-1)) { - byte * tmp; + T_Image tmp; dword layer_flags; // Backup with unchanged layers @@ -357,7 +368,7 @@ void Button_Layer_down(void) if (Main_current_layer > 0) { - byte * tmp; + T_Image tmp; dword layer_flags; // Backup with unchanged layers @@ -389,3 +400,250 @@ void Button_Layer_down(void) Unselect_button(BUTTON_LAYER_DOWN); Display_cursor(); } + +int Interpret_delay(int delay) +{ + // Firefox behavior + if (delay>30) + return delay; + if (delay==0) + return 100; + return 30; +} +void Button_Anim_time(void) +{ + short clicked_button; + int mode=0; + int frame; + char buffer[5+1]; + T_Special_button * input_duration_button; + int duration=Main_backups->Pages->Image[Main_current_layer].Duration; + + Open_window(166,110,"Animation speed"); + + Print_in_window(80,20,"ms",MC_Black,MC_Light); + input_duration_button = Window_set_input_button(33,18,5); // 1 + + Num2str(duration,buffer,5); + Print_in_window_limited(input_duration_button->Pos_X+2,input_duration_button->Pos_Y+2,buffer,input_duration_button->Width/8,MC_Black,MC_Light); + + Print_in_window(24,37,"Set this frame",MC_Black,MC_Light); + Window_set_normal_button(7, 34, 13,13,"X" , 0,1,KEY_NONE); // 2 + + Print_in_window(24,55,"Set all frames",MC_Black,MC_Light); + Window_set_normal_button(7, 52, 13,13,"" , 0,1,KEY_NONE); // 3 + + Print_in_window(24,73,"Add to all frames",MC_Black,MC_Light); + Window_set_normal_button(7, 70, 13,13,"" , 0,1,KEY_NONE); // 4 + + Window_set_normal_button( 7, 92, 51,14,"OK" , 0,1,SDLK_RETURN); // 5 + Window_set_normal_button(63, 92, 51,14,"Cancel", 0,1,KEY_ESC); // 6 + + Update_window_area(0,0,Window_width, Window_height); + + do + { + + clicked_button=Window_clicked_button(); + if (Is_shortcut(Key,0x100+BUTTON_HELP)) + Window_help(BUTTON_ANIM_TIME, NULL); + switch(clicked_button) + { + case 1: // duration + Num2str(duration,buffer,5); + Hide_cursor(); + if (Readline(input_duration_button->Pos_X+2, + input_duration_button->Pos_Y+2, + buffer, + 5, + INPUT_TYPE_DECIMAL)) + { + duration=atoi(buffer); + } + Print_in_window_limited(input_duration_button->Pos_X+2,input_duration_button->Pos_Y+2,buffer,input_duration_button->Width/8,MC_Black,MC_Light); + Display_cursor(); + break; + case 2: // Radio: set 1 + case 3: // Radio: set all + case 4: // Radio: add + mode=clicked_button-2; + Hide_cursor(); + Print_in_window(10,37,mode==0?"X":" ",MC_Black,MC_Light); + Print_in_window(10,55,mode==1?"X":" ",MC_Black,MC_Light); + Print_in_window(10,73,mode==2?"X":" ",MC_Black,MC_Light); + Display_cursor(); + break; + } + } + while (clicked_button<5); + + // On exit + Hide_cursor(); + Close_window(); + if (clicked_button==5) + { + // Accept changes + Backup_layers(0); + switch(mode) + { + case 0: + if (duration<1) + duration=1; + Main_backups->Pages->Image[Main_current_layer].Duration = duration; + break; + case 1: + if (duration<1) + duration=1; + for (frame=0; framePages->Nb_layers; frame++) + { + Main_backups->Pages->Image[frame].Duration = duration; + } + break; + case 2: + for (frame=0; framePages->Nb_layers; frame++) + { + int cur_duration = Main_backups->Pages->Image[frame].Duration+duration; + if (cur_duration<1) + cur_duration=1; + else if (cur_duration>32767) + cur_duration=32767; + Main_backups->Pages->Image[frame].Duration = cur_duration; + } + break; + break; + } + End_of_modification(); + } + + Unselect_button(BUTTON_ANIM_TIME); + Display_cursor(); +} + +void Button_Anim_first_frame(void) +{ + if (Main_current_layer>0) + Layer_activate(0,LEFT_SIDE); + + Hide_cursor(); + Unselect_button(BUTTON_ANIM_FIRST_FRAME); + Display_cursor(); +} + +void Button_Anim_prev_frame(void) +{ + if (Main_backups->Pages->Nb_layers>1) + { + if (Main_current_layer==0) + Layer_activate(Main_backups->Pages->Nb_layers-1,LEFT_SIDE); + else + Layer_activate(Main_current_layer-1,LEFT_SIDE); + } + Hide_cursor(); + Unselect_button(BUTTON_ANIM_PREV_FRAME); + Display_cursor(); +} + +void Button_Anim_next_frame(void) +{ + if (Main_backups->Pages->Nb_layers>1) + { + if (Main_current_layer==Main_backups->Pages->Nb_layers-1) + Layer_activate(0,LEFT_SIDE); + else + Layer_activate(Main_current_layer+1,LEFT_SIDE); + } + + Hide_cursor(); + Unselect_button(BUTTON_ANIM_NEXT_FRAME); + Display_cursor(); +} + +void Button_Anim_last_frame(void) +{ + if (Main_current_layer < (Main_backups->Pages->Nb_layers-1)) + Layer_activate((Main_backups->Pages->Nb_layers-1),LEFT_SIDE); + + Hide_cursor(); + Unselect_button(BUTTON_ANIM_LAST_FRAME); + Display_cursor(); +} + +void Button_Anim_play(void) +{ + Hide_cursor(); + + // + + Unselect_button(BUTTON_ANIM_PLAY); + Display_cursor(); +} + +void Button_Anim_continuous_next(void) +{ + Uint32 time_start; + int time_in_current_frame=0; + + time_start = SDL_GetTicks(); + + do + { + int target_frame; + Uint32 time_now; + + Get_input(20); + + time_now=SDL_GetTicks(); + time_in_current_frame += time_now-time_start; + time_start=time_now; + target_frame = Main_current_layer; + while (time_in_current_frame > Main_backups->Pages->Image[target_frame].Duration) + { + time_in_current_frame -= Interpret_delay(Main_backups->Pages->Image[target_frame].Duration); + target_frame = (target_frame+1) % Main_backups->Pages->Nb_layers; + } + if (target_frame != Main_current_layer) + { + Layer_activate(target_frame,LEFT_SIDE); + } + + } while (Mouse_K); + + Hide_cursor(); + Unselect_button(BUTTON_ANIM_NEXT_FRAME); + Display_cursor(); +} + +void Button_Anim_continuous_prev(void) +{ + Uint32 time_start; + int time_in_current_frame=0; + + time_start = SDL_GetTicks(); + + do + { + int target_frame; + Uint32 time_now; + + Get_input(20); + + time_now=SDL_GetTicks(); + time_in_current_frame += time_now-time_start; + time_start=time_now; + target_frame = Main_current_layer; + while (time_in_current_frame > Main_backups->Pages->Image[target_frame].Duration) + { + time_in_current_frame -= Interpret_delay(Main_backups->Pages->Image[target_frame].Duration); + target_frame = (target_frame+Main_backups->Pages->Nb_layers-1) % Main_backups->Pages->Nb_layers; + } + if (target_frame != Main_current_layer) + { + Layer_activate(target_frame,LEFT_SIDE); + } + + } while (Mouse_K); + + Hide_cursor(); + Unselect_button(BUTTON_ANIM_NEXT_FRAME); + Display_cursor(); +} diff --git a/src/layers.h b/src/layers.h index 9bf83f49..2c2fe3bf 100644 --- a/src/layers.h +++ b/src/layers.h @@ -30,6 +30,12 @@ void Button_Layer_up(void); void Button_Layer_down(void); void Button_Layer_select(void); void Button_Layer_toggle(void); -void Layer_activate(byte layer, short side); - - +void Layer_activate(int layer, short side); +void Button_Anim_time(void); +void Button_Anim_first_frame(void); +void Button_Anim_prev_frame(void); +void Button_Anim_next_frame(void); +void Button_Anim_last_frame(void); +void Button_Anim_play(void); +void Button_Anim_continuous_prev(void); +void Button_Anim_continuous_next(void); diff --git a/src/loadsave.c b/src/loadsave.c index a61c2ce4..fbd2eca5 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -321,6 +321,29 @@ void Set_palette_fake_24b(T_Palette palette) } } +void Set_frame_duration(T_IO_Context *context, int duration) +{ + switch(context->Type) + { + case CONTEXT_MAIN_IMAGE: + Main_backups->Pages->Image[context->Current_layer].Duration = duration; + break; + default: + break; + } +} + +int Get_frame_duration(T_IO_Context *context) +{ + switch(context->Type) + { + case CONTEXT_MAIN_IMAGE: + return Main_backups->Pages->Image[context->Current_layer].Duration; + default: + return 0; + } +} + /// /// Generic allocation and similar stuff, done at beginning of image load, /// as soon as size is known. @@ -644,7 +667,7 @@ void Load_image(T_IO_Context *context) Cursor_shape=CURSOR_SHAPE_HOURGLASS; Display_cursor(); Flush_update(); - if (Convert_24b_bitmap_to_256(Main_backups->Pages->Image[0],context->Buffer_image_24b,context->Width,context->Height,context->Palette)) + if (Convert_24b_bitmap_to_256(Main_backups->Pages->Image[0].Pixels,context->Buffer_image_24b,context->Width,context->Height,context->Palette)) File_error=2; else { @@ -1213,7 +1236,7 @@ void Init_context_layered_image(T_IO_Context * context, char *file_name, char *f context->Ratio=PIXEL_TALL; else context->Ratio=PIXEL_SIMPLE; - context->Target_address=Main_backups->Pages->Image[0]; + context->Target_address=Main_backups->Pages->Image[0].Pixels; context->Pitch=Main_image_width; // Color cyling ranges: @@ -1280,18 +1303,18 @@ void Init_context_surface(T_IO_Context * context, char *file_name, char *file_di } /// Function to call when need to switch layers. -void Set_saving_layer(T_IO_Context *context, byte layer) +void Set_saving_layer(T_IO_Context *context, int layer) { context->Current_layer = layer; if (context->Type == CONTEXT_MAIN_IMAGE) { - context->Target_address=Main_backups->Pages->Image[layer]; + context->Target_address=Main_backups->Pages->Image[layer].Pixels; } } /// Function to call when need to switch layers. -void Set_loading_layer(T_IO_Context *context, byte layer) +void Set_loading_layer(T_IO_Context *context, int layer) { context->Current_layer = layer; @@ -1311,7 +1334,7 @@ void Set_loading_layer(T_IO_Context *context, byte layer) Main_layers_visible = (2<Target_address=Main_backups->Pages->Image[layer]; + context->Target_address=Main_backups->Pages->Image[layer].Pixels; } } diff --git a/src/loadsave.h b/src/loadsave.h index ca05b6ef..9ce5ce12 100644 --- a/src/loadsave.h +++ b/src/loadsave.h @@ -62,7 +62,7 @@ typedef struct T_Palette Palette; short Width; short Height; - byte Nb_layers; + int Nb_layers; char Comment[COMMENT_SIZE+1]; byte Background_transparent; byte Transparent_color; @@ -83,7 +83,7 @@ typedef struct T_Color_cycle Cycle_range[16]; /// Internal: during load, marks which layer is being loaded. - short Current_layer; + int Current_layer; /// Internal: Used to mark truecolor images on loading. Only used by preview. //byte Is_truecolor; @@ -215,10 +215,13 @@ void Set_pixel(T_IO_Context *context, short x, short y, byte c); /// Set the color of a 24bit pixel (on load) void Set_pixel_24b(T_IO_Context *context, short x, short y, byte r, byte g, byte b); /// Function to call when need to switch layers. -void Set_loading_layer(T_IO_Context *context, byte layer); +void Set_loading_layer(T_IO_Context *context, int layer); /// Function to call when need to switch layers. -void Set_saving_layer(T_IO_Context *context, byte layer); - +void Set_saving_layer(T_IO_Context *context, int layer); +/// Function to call when loading an image's duration +void Set_frame_duration(T_IO_Context *context, int duration); +/// Function to call to get an image's duration for saving +int Get_frame_duration(T_IO_Context *context); // ================================================================= // What follows here are the definitions of functions and data diff --git a/src/misc.c b/src/misc.c index 28a8ea0f..c3354623 100644 --- a/src/misc.c +++ b/src/misc.c @@ -61,7 +61,7 @@ word Count_used_colors(dword* usage) // For each layer for (layer = 0; layer < Main_backups->Pages->Nb_layers; layer++) { - current_pixel = Main_backups->Pages->Image[layer]; + current_pixel = Main_backups->Pages->Image[layer].Pixels; // For each pixel in picture for (i = 0; i < nb_pixels; i++) { @@ -188,7 +188,7 @@ void Clear_current_image_with_stencil(byte color, byte * stencil) int nb_pixels=0; //ECX //al=color //edi=Screen_pixels - byte* pixel=Main_backups->Pages->Image[Main_current_layer]; + byte* pixel=Main_backups->Pages->Image[Main_current_layer].Pixels; int i; nb_pixels=Main_image_height*Main_image_width; @@ -205,7 +205,7 @@ void Clear_current_image(byte color) // Effacer l'image courante avec une certaine couleur { memset( - Main_backups->Pages->Image[Main_current_layer], + Main_backups->Pages->Image[Main_current_layer].Pixels, color , Main_image_width * Main_image_height ); @@ -306,7 +306,7 @@ byte Read_pixel_from_spare_screen(word x,word y) #ifndef NOLAYERS return *(Spare_visible_image.Image + y*Spare_image_width + x); #else - return *(Spare_backups->Pages->Image[Spare_current_layer] + y*Spare_image_width + x); + return *(Spare_backups->Pages->Image[Spare_current_layer].Pixels + y*Spare_image_width + x); #endif } @@ -362,7 +362,7 @@ void Remap_general_lowlevel(byte * conversion_table,byte * in_buffer, byte *out_ void Copy_image_to_brush(short start_x,short start_y,short Brush_width,short Brush_height,word image_width) { - byte* src=start_y*image_width+start_x+Main_backups->Pages->Image[Main_current_layer]; //Adr départ image (ESI) + byte* src=start_y*image_width+start_x+Main_backups->Pages->Image[Main_current_layer].Pixels; //Adr départ image (ESI) byte* dest=Brush_original_pixels; //Adr dest brosse (EDI) int dx; @@ -407,7 +407,7 @@ void Replace_colors_within_limits(byte * replace_table) // Pour chaque pixel sur la ligne : for (x = Limit_left;x <= Limit_right;x ++) { - pixel = Main_backups->Pages->Image[Main_current_layer]+y*Main_image_width+x; + pixel = Main_backups->Pages->Image[Main_current_layer].Pixels+y*Main_image_width+x; *pixel = replace_table[*pixel]; } } diff --git a/src/oldies.c b/src/oldies.c index 9be48122..6134205f 100644 --- a/src/oldies.c +++ b/src/oldies.c @@ -33,7 +33,7 @@ void Pixel_in_layer(word x,word y, byte layer, byte color) { - *((y)*Main_image_width+(x)+Main_backups->Pages->Image[layer])=color; + *((y)*Main_image_width+(x)+Main_backups->Pages->Image[layer].Pixels)=color; } byte C64_FLI(byte *bitmap, byte *screen_ram, byte *color_ram, byte *background) @@ -73,7 +73,7 @@ byte C64_FLI(byte *bitmap, byte *screen_ram, byte *color_ram, byte *background) { for (x=0;x<4;x++) { - byte c=*((row)*Main_image_width+(col*4+x)+Main_backups->Pages->Image[2]); + byte c=*((row)*Main_image_width+(col*4+x)+Main_backups->Pages->Image[2].Pixels); used_colors[row][col] |= 1<Pages->Image[0]); + byte c=*((row)*Main_image_width+0+Main_backups->Pages->Image[0].Pixels); if (c<16) { line_color[row]=c; @@ -97,7 +97,7 @@ byte C64_FLI(byte *bitmap, byte *screen_ram, byte *color_ram, byte *background) { for (col=0;col<40;col++) { - byte c=*((row)*Main_image_width+(col*4)+Main_backups->Pages->Image[1]); + byte c=*((row)*Main_image_width+(col*4)+Main_backups->Pages->Image[1].Pixels); if (c<16) { block_color[row/8][col]=c; @@ -309,7 +309,7 @@ byte C64_FLI(byte *bitmap, byte *screen_ram, byte *color_ram, byte *background) for(x=0; x<4; x++) { byte bits; - byte c=*((row*8+y)*Main_image_width+(col*4+x)+Main_backups->Pages->Image[2]); + byte c=*((row*8+y)*Main_image_width+(col*4+x)+Main_backups->Pages->Image[2].Pixels); if (c==line_color[row*8+y]) // BG color diff --git a/src/operatio.c b/src/operatio.c index cbddd2d4..c83549be 100644 --- a/src/operatio.c +++ b/src/operatio.c @@ -2841,7 +2841,7 @@ void Scroll_12_5(void) else { // One layer at once - Scroll_picture(Main_backups->Pages->Next->Image[Main_current_layer], Main_backups->Pages->Image[Main_current_layer], x_offset, y_offset); + Scroll_picture(Main_backups->Pages->Next->Image[Main_current_layer].Pixels, Main_backups->Pages->Image[Main_current_layer].Pixels, x_offset, y_offset); Redraw_current_layer(); } @@ -2898,7 +2898,7 @@ void Scroll_0_5(void) // Do the actual scroll operation on all layers. for (i=0; iPages->Nb_layers; i++) //if ((1<Pages->Next->Image[i], Main_backups->Pages->Image[i], x_offset, y_offset); + Scroll_picture(Main_backups->Pages->Next->Image[i].Pixels, Main_backups->Pages->Image[i].Pixels, x_offset, y_offset); // Update the depth buffer too ... // It would be faster to scroll it, but we don't have method // for in-place scrolling. diff --git a/src/pages.c b/src/pages.c index b7901bb8..d3a263eb 100644 --- a/src/pages.c +++ b/src/pages.c @@ -57,16 +57,19 @@ long Stats_pages_number=0; long long Stats_pages_memory=0; /// Allocate and initialize a new page. -T_Page * New_page(byte nb_layers) +T_Page * New_page(int nb_layers) { T_Page * page; - page = (T_Page *)malloc(sizeof(T_Page)+nb_layers*sizeof(byte *)); + page = (T_Page *)malloc(sizeof(T_Page)+nb_layers*sizeof(T_Image)); if (page!=NULL) { int i; for (i=0; iImage[i]=NULL; + { + page->Image[i].Pixels=NULL; + page->Image[i].Duration=1; + } page->Width=0; page->Height=0; memset(page->Palette,0,sizeof(T_Palette)); @@ -110,13 +113,13 @@ byte * New_layer(long pixel_size) } /// Free a layer -void Free_layer(T_Page * page, byte layer) +void Free_layer(T_Page * page, int layer) { short * ptr; - if (page->Image[layer]==NULL) + if (page->Image[layer].Pixels==NULL) return; - ptr = (short *)(page->Image[layer]); + ptr = (short *)(page->Image[layer].Pixels); if (-- (*(ptr-1))) // Users-- return; else { @@ -189,7 +192,7 @@ void Download_infos_page_main(T_Page * page) } //Update_buffers( page->Width, page->Height); - //memcpy(Main_screen, page->Image[Main_current_layer], page->Width*page->Height); + //memcpy(Main_screen, page->Image[Main_current_layer].Pixels, page->Width*page->Height); } @@ -206,13 +209,13 @@ void Redraw_layered_image(void) int i; for (i=0; i< Main_image_width*Main_image_height; i++) { - layer = *(Main_backups->Pages->Image[4]+i); - Main_visible_image.Image[i]=*(Main_backups->Pages->Image[layer]+i); + layer = *(Main_backups->Pages->Image[4].Pixels+i); + Main_visible_image.Image[i]=*(Main_backups->Pages->Image[layer].Pixels+i); } // Copy it to the depth buffer memcpy(Main_visible_image_depth_buffer.Image, - Main_backups->Pages->Image[4], + Main_backups->Pages->Image[4].Pixels, Main_image_width*Main_image_height); // Next @@ -226,7 +229,7 @@ void Redraw_layered_image(void) { // Copy it in Main_visible_image memcpy(Main_visible_image.Image, - Main_backups->Pages->Image[layer], + Main_backups->Pages->Image[layer].Pixels, Main_image_width*Main_image_height); // Initialize the depth buffer @@ -248,7 +251,7 @@ void Redraw_layered_image(void) int i; for (i=0; iPages->Image[layer]+i); + byte color = *(Main_backups->Pages->Image[layer].Pixels+i); if (color != Main_backups->Pages->Transparent_color) // transparent color { *(Main_visible_image.Image+i) = color; @@ -299,7 +302,7 @@ void Update_depth_buffer(void) int i; for (i=0; iPages->Image[layer]+i); + byte color = *(Main_backups->Pages->Image[layer].Pixels+i); if (color != Main_backups->Pages->Transparent_color) // transparent color { *(Main_visible_image_depth_buffer.Image+i) = layer; @@ -323,7 +326,7 @@ void Redraw_spare_image(void) { // Copy it in Spare_visible_image memcpy(Spare_visible_image.Image, - Spare_backups->Pages->Image[layer], + Spare_backups->Pages->Image[layer].Pixels, Spare_image_width*Spare_image_height); // No depth buffer in the spare @@ -344,7 +347,7 @@ void Redraw_spare_image(void) int i; for (i=0; iPages->Image[layer]+i); + byte color = *(Spare_backups->Pages->Image[layer].Pixels+i); if (color != Spare_backups->Pages->Transparent_color) // transparent color { *(Spare_visible_image.Image+i) = color; @@ -366,14 +369,14 @@ void Redraw_current_layer(void) byte depth = *(Main_visible_image_depth_buffer.Image+i); if (depth<=Main_current_layer) { - byte color = *(Main_backups->Pages->Image[Main_current_layer]+i); + byte color = *(Main_backups->Pages->Image[Main_current_layer].Pixels+i); if (color != Main_backups->Pages->Transparent_color) // transparent color { *(Main_visible_image.Image+i) = color; } else { - *(Main_visible_image.Image+i) = *(Main_backups->Pages->Image[depth]+i); + *(Main_visible_image.Image+i) = *(Main_backups->Pages->Image[depth].Pixels+i); } } } @@ -385,7 +388,7 @@ void Upload_infos_page_main(T_Page * page) { if (page!=NULL) { - //page->Image[Main_current_layer]=Main_screen; + //page->Image[Main_current_layer].Pixels=Main_screen; page->Width=Main_image_width; page->Height=Main_image_height; memcpy(page->Palette,Main_palette,sizeof(T_Palette)); @@ -409,7 +412,7 @@ void Upload_infos_page_spare(T_Page * page) { if (page!=NULL) { - //page->Image[Spare_current_layer]=Spare_screen; + //page->Image[Spare_current_layer].Pixels=Spare_screen; page->Width=Spare_image_width; page->Height=Spare_image_height; memcpy(page->Palette,Spare_palette,sizeof(T_Palette)); @@ -423,9 +426,9 @@ void Update_FX_feedback(byte with_feedback) { if (with_feedback) - FX_feedback_screen=Main_backups->Pages->Image[Main_current_layer]; + FX_feedback_screen=Main_backups->Pages->Image[Main_current_layer].Pixels; else - FX_feedback_screen=Main_backups->Pages->Next->Image[Main_current_layer]; + FX_feedback_screen=Main_backups->Pages->Next->Image[Main_current_layer].Pixels; } void Clear_page(T_Page * page) @@ -435,7 +438,8 @@ void Clear_page(T_Page * page) for (i=0; iNb_layers; i++) { Free_layer(page, i); - page->Image[i]=NULL; + page->Image[i].Pixels=NULL; + page->Image[i].Duration=1; } // Free_gradient() : This data is reference-counted @@ -621,9 +625,10 @@ int Create_new_page(T_Page * new_page, T_List_of_pages * list, dword layer_mask) for (i=0; iNb_layers; i++) { if ((1<Image[i]=New_layer(new_page->Height*new_page->Width); + new_page->Image[i].Pixels=New_layer(new_page->Height*new_page->Width); else - new_page->Image[i]=Dup_layer(list->Pages->Image[i]); + new_page->Image[i].Pixels=Dup_layer(list->Pages->Image[i].Pixels); + new_page->Image[i].Duration=list->Pages->Image[i].Duration; } } @@ -669,8 +674,8 @@ void Update_screen_targets(void) Main_screen=Main_visible_image.Image; Screen_backup=Main_visible_image_backup.Image; #else - Main_screen=Main_backups->Pages->Image[Main_current_layer]; - Screen_backup=Main_backups->Pages->Next->Image[Main_current_layer]; + Main_screen=Main_backups->Pages->Image[Main_current_layer].Pixels; + Screen_backup=Main_backups->Pages->Next->Image[Main_current_layer].Pixels; #endif } @@ -762,10 +767,10 @@ int Init_all_backup_lists(int width,int height) for (i=0; iPages->Nb_layers; i++) { - Main_backups->Pages->Image[i]=New_layer(width*height); - if (! Main_backups->Pages->Image[i]) + Main_backups->Pages->Image[i].Pixels=New_layer(width*height); + if (! Main_backups->Pages->Image[i].Pixels) return 0; - memset(Main_backups->Pages->Image[i], 0, width*height); + memset(Main_backups->Pages->Image[i].Pixels, 0, width*height); } #ifndef NOLAYERS Main_visible_image.Width = 0; @@ -811,10 +816,10 @@ int Init_all_backup_lists(int width,int height) // Spare for (i=0; iPages->Image[i]=New_layer(width*height); - if (! Spare_backups->Pages->Image[i]) + Spare_backups->Pages->Image[i].Pixels=New_layer(width*height); + if (! Spare_backups->Pages->Image[i].Pixels) return 0; - memset(Spare_backups->Pages->Image[i], 0, width*height); + memset(Spare_backups->Pages->Image[i].Pixels, 0, width*height); } //memset(Spare_screen,0,Spare_image_width*Spare_image_height); @@ -833,7 +838,7 @@ void Set_number_of_backups(int nb_backups) // (nb_backups = Nombre de backups, sans compter les pages courantes) } -int Backup_new_image(byte layers,int width,int height) +int Backup_new_image(int layers,int width,int height) { // Retourne 1 si une nouvelle page est disponible et 0 sinon T_Page * new_page; @@ -900,7 +905,7 @@ int Backup_with_new_dimensions(int width,int height) // Fill with transparent color for (i=0; iPages->Nb_layers;i++) { - memset(Main_backups->Pages->Image[i], Main_backups->Pages->Transparent_color, width*height); + memset(Main_backups->Pages->Image[i].Pixels, Main_backups->Pages->Transparent_color, width*height); } Update_buffers(width, height); @@ -959,10 +964,10 @@ int Backup_in_place(int width,int height) { // Replace layers Free_layer(Main_backups->Pages,i); - Main_backups->Pages->Image[i]=new_layer[i]; + Main_backups->Pages->Image[i].Pixels=new_layer[i]; // Fill with transparency - memset(Main_backups->Pages->Image[i], Main_backups->Pages->Transparent_color, width*height); + memset(Main_backups->Pages->Image[i].Pixels, Main_backups->Pages->Transparent_color, width*height); } Main_backups->Pages->Width=width; @@ -1009,7 +1014,7 @@ int Backup_and_resize_the_spare(int width,int height) T_Page * new_page; int return_code=0; - byte nb_layers; + int nb_layers; nb_layers=Spare_backups->Pages->Nb_layers; // On crée un descripteur pour la nouvelle page de brouillon @@ -1032,7 +1037,7 @@ int Backup_and_resize_the_spare(int width,int height) for (i=0; iPages->Image[i], Spare_backups->Pages->Transparent_color, width*height); + memset(Spare_backups->Pages->Image[i].Pixels, Spare_backups->Pages->Transparent_color, width*height); } // Update_buffers(width, height); // Not for spare @@ -1088,8 +1093,8 @@ void Backup_layers(dword layer_mask) for (i=0; iPages->Nb_layers;i++) { if ((1<Pages->Image[i], - Main_backups->Pages->Next->Image[i], + memcpy(Main_backups->Pages->Image[i].Pixels, + Main_backups->Pages->Next->Image[i].Pixels, Main_image_width*Main_image_height); } // Light up the 'has unsaved changes' indicator @@ -1122,8 +1127,8 @@ void Backup_the_spare(dword layer_mask) for (i=0; iPages->Nb_layers;i++) { if ((1<Pages->Image[i], - Spare_backups->Pages->Next->Image[i], + memcpy(Spare_backups->Pages->Image[i].Pixels, + Spare_backups->Pages->Next->Image[i].Pixels, Spare_image_width*Spare_image_height); } // Light up the 'has unsaved changes' indicator @@ -1277,7 +1282,7 @@ void End_of_modification(void) } /// Add a new layer to latest page of a list. Returns 0 on success. -byte Add_layer(T_List_of_pages *list, byte layer) +byte Add_layer(T_List_of_pages *list, int layer) { T_Page * source_page; T_Page * new_page; @@ -1301,7 +1306,7 @@ byte Add_layer(T_List_of_pages *list, byte layer) return 1; } // Re-allocate the page itself, with room for one more pointer - new_page = realloc(source_page, sizeof(T_Page)+(list->Pages->Nb_layers+1)*sizeof(byte *)); + new_page = realloc(source_page, sizeof(T_Page)+(list->Pages->Nb_layers+1)*sizeof(T_Image)); if (!new_page) { Error(0); @@ -1322,7 +1327,8 @@ byte Add_layer(T_List_of_pages *list, byte layer) { new_page->Image[i]=new_page->Image[i-1]; } - new_page->Image[layer]=new_image; + new_page->Image[layer].Pixels=new_image; + new_page->Image[layer].Duration=1; // Fill with transparency, initially memset(new_image, Main_backups->Pages->Transparent_color, list->Pages->Height*list->Pages->Width); // transparent color @@ -1359,7 +1365,7 @@ byte Add_layer(T_List_of_pages *list, byte layer) } /// Delete a layer from the latest page of a list. Returns 0 on success. -byte Delete_layer(T_List_of_pages *list, byte layer) +byte Delete_layer(T_List_of_pages *list, int layer) { T_Page * page; int i; @@ -1432,9 +1438,9 @@ byte Merge_layer() int i; for (i=0; iPages->Image[Main_current_layer]+i); + byte color = *(Main_backups->Pages->Image[Main_current_layer].Pixels+i); if (color != Main_backups->Pages->Transparent_color) // transparent color - *(Main_backups->Pages->Image[Main_current_layer-1]+i) = color; + *(Main_backups->Pages->Image[Main_current_layer-1].Pixels+i) = color; } return Delete_layer(Main_backups,Main_current_layer); } diff --git a/src/pages.h b/src/pages.h index 31a514c5..5efacf03 100644 --- a/src/pages.h +++ b/src/pages.h @@ -58,14 +58,14 @@ extern T_Bitmap Spare_visible_image; void Download_infos_page_main(T_Page * page); void Upload_infos_page_main(T_Page * page); /// Add a new layer to latest page of a list. Returns 0 on success. -byte Add_layer(T_List_of_pages *list, byte layer); +byte Add_layer(T_List_of_pages *list, int layer); /// Delete a layer from the latest page of a list. Returns 0 on success. -byte Delete_layer(T_List_of_pages *list, byte layer); +byte Delete_layer(T_List_of_pages *list, int layer); /// Merges the current layer onto the one below it. byte Merge_layer(); // private -T_Page * New_page(byte nb_layers); +T_Page * New_page(int nb_layers); void Download_infos_page_spare(T_Page * page); void Upload_infos_page_spare(T_Page * page); void Clear_page(T_Page * page); @@ -95,7 +95,7 @@ void Free_page_of_a_list(T_List_of_pages * list); int Init_all_backup_lists(int width,int height); void Set_number_of_backups(int nb_backups); -int Backup_new_image(byte layers,int width,int height); +int Backup_new_image(int layers,int width,int height); int Backup_with_new_dimensions(int width,int height); /// /// Resizes a backup step in-place (doesn't add a Undo/Redo step). diff --git a/src/palette.c b/src/palette.c index d3f3aca2..2a802f27 100644 --- a/src/palette.c +++ b/src/palette.c @@ -315,7 +315,7 @@ void Remap_image_highlevel(byte * conversion_table) // Remap all layers for (layer=0; layerPages->Nb_layers; layer++) - Remap_general_lowlevel(conversion_table,Main_backups->Pages->Image[layer],Main_backups->Pages->Image[layer],Main_image_width,Main_image_height,Main_image_width); + Remap_general_lowlevel(conversion_table,Main_backups->Pages->Image[layer].Pixels,Main_backups->Pages->Image[layer].Pixels,Main_image_width,Main_image_height,Main_image_width); // Remap transparent color Main_backups->Pages->Transparent_color = diff --git a/src/struct.h b/src/struct.h index ce507262..25b2c2ea 100644 --- a/src/struct.h +++ b/src/struct.h @@ -379,6 +379,12 @@ typedef struct // Ces structures sont manipulées à travers des fonctions de gestion du // backup dans "graph.c". +typedef struct T_Image +{ + byte * Pixels; + int Duration; +} T_Image; + /// This is the data for one step of Undo/Redo, for one image. /// This structure is resized dynamically to hold pointers to all of the layers in the picture. /// The pointed layers are just byte* holding the raw pixel data. But at Image[0]-1 you will find a short that is used as a reference counter for each layer. @@ -399,12 +405,12 @@ typedef struct T_Page T_Gradient_array *Gradients; ///< Pointer to the gradients used by the image. byte Background_transparent; ///< Boolean, true if Layer 0 should have transparent pixels byte Transparent_color; ///< Index of transparent color. 0 to 255. - byte Nb_layers; ///< Number of layers + int Nb_layers; ///< Number of layers #if __GNUC__ < 3 // gcc2 doesn't suport [], but supports [0] which does the same thing. - byte * Image[0]; ///< Pixel data for the (first layer of) image. + T_Image Image[0]; ///< Pixel data for the (first layer of) image. #else - byte * Image[]; ///< Pixel data for the (first layer of) image. + T_Image Image[]; ///< Pixel data for the (first layer of) image. #endif // No field after Image[] ! Dynamic layer allocation for Image[1], [2] etc. } T_Page; @@ -461,6 +467,7 @@ typedef struct /// Bitmap data for the menu, a single rectangle. byte Menu_block[3][35][MENU_WIDTH]; byte Layerbar_block[3][10][144]; + byte Animbar_block[3][14][236]; byte Statusbar_block[3][9][20]; /// Bitmap data for the icons that are displayed over the menu. byte Menu_sprite[2][NB_MENU_SPRITES][MENU_SPRITE_HEIGHT][MENU_SPRITE_WIDTH]; diff --git a/src/transform.c b/src/transform.c index f603fa4a..a468af30 100644 --- a/src/transform.c +++ b/src/transform.c @@ -385,40 +385,40 @@ void Button_Transform_menu(void) case 2 : // Flip X for (i=0; iPages->Nb_layers; i++) { - memcpy(Main_backups->Pages->Image[i],Main_backups->Pages->Next->Image[i],Main_image_width*Main_image_height); - Flip_X_lowlevel(Main_backups->Pages->Image[i], Main_image_width, Main_image_height); + memcpy(Main_backups->Pages->Image[i].Pixels,Main_backups->Pages->Next->Image[i].Pixels,Main_image_width*Main_image_height); + Flip_X_lowlevel(Main_backups->Pages->Image[i].Pixels, Main_image_width, Main_image_height); } break; case 3 : // Flip Y for (i=0; iPages->Nb_layers; i++) { - memcpy(Main_backups->Pages->Image[i],Main_backups->Pages->Next->Image[i],Main_image_width*Main_image_height); - Flip_Y_lowlevel(Main_backups->Pages->Image[i], Main_image_width, Main_image_height); + memcpy(Main_backups->Pages->Image[i].Pixels,Main_backups->Pages->Next->Image[i].Pixels,Main_image_width*Main_image_height); + Flip_Y_lowlevel(Main_backups->Pages->Image[i].Pixels, Main_image_width, Main_image_height); } break; case 4 : // -90° Rotation for (i=0; iPages->Nb_layers; i++) { - Rotate_270_deg_lowlevel(Main_backups->Pages->Next->Image[i], Main_backups->Pages->Image[i], old_width, old_height); + Rotate_270_deg_lowlevel(Main_backups->Pages->Next->Image[i].Pixels, Main_backups->Pages->Image[i].Pixels, old_width, old_height); } break; case 5 : // +90° Rotation for (i=0; iPages->Nb_layers; i++) { - Rotate_90_deg_lowlevel(Main_backups->Pages->Next->Image[i], Main_backups->Pages->Image[i], old_width, old_height); + Rotate_90_deg_lowlevel(Main_backups->Pages->Next->Image[i].Pixels, Main_backups->Pages->Image[i].Pixels, old_width, old_height); } break; case 6 : // 180° Rotation for (i=0; iPages->Nb_layers; i++) { - memcpy(Main_backups->Pages->Image[i],Main_backups->Pages->Next->Image[i],Main_image_width*Main_image_height); - Rotate_180_deg_lowlevel(Main_backups->Pages->Image[i], Main_image_width, Main_image_height); + memcpy(Main_backups->Pages->Image[i].Pixels,Main_backups->Pages->Next->Image[i].Pixels,Main_image_width*Main_image_height); + Rotate_180_deg_lowlevel(Main_backups->Pages->Image[i].Pixels, Main_image_width, Main_image_height); } break; case 7 : // Resize for (i=0; iPages->Nb_layers; i++) { - Rescale(Main_backups->Pages->Next->Image[i], old_width, old_height, Main_backups->Pages->Image[i], Main_image_width, Main_image_height, 0, 0); + Rescale(Main_backups->Pages->Next->Image[i].Pixels, old_width, old_height, Main_backups->Pages->Image[i].Pixels, Main_image_width, Main_image_height, 0, 0); } break; } @@ -426,9 +426,9 @@ void Button_Transform_menu(void) for (i=0; iPages->Next->Image[i],0,0,Min(old_width,Main_image_width), + Main_backups->Pages->Next->Image[i].Pixels,0,0,Min(old_width,Main_image_width), Min(old_height,Main_image_height),old_width, - Main_backups->Pages->Image[i],0,0,Main_image_width); + Main_backups->Pages->Image[i].Pixels,0,0,Main_image_width); } */ Redraw_layered_image(); diff --git a/src/windows.c b/src/windows.c index a89fa54f..966e3237 100644 --- a/src/windows.c +++ b/src/windows.c @@ -464,6 +464,7 @@ void Draw_bar_remainder(word current_menu, word x_off) /// Display / update the layer menubar void Display_layerbar(void) { +#ifndef NOLAYERS word x_off=0; word button_width = LAYER_SPRITE_WIDTH; word button_number = Main_backups->Pages->Nb_layers; @@ -547,6 +548,21 @@ void Display_layerbar(void) Menu_Y+Menu_bars[MENUBAR_LAYERS].Top*Menu_factor_Y, horiz_space*Menu_factor_X, Menu_bars[MENUBAR_LAYERS].Height*Menu_factor_Y); +#else + char str[8]; + // Rest of horizontal line + Draw_bar_remainder(MENUBAR_LAYERS, Menu_bars[MENUBAR_LAYERS].Skin_width); + // Frame# background rectangle + // Block((Menu_bars[MENUBAR_LAYERS].Skin_width)*Menu_factor_X,(0+Menu_bars[MENUBAR_LAYERS].Top)*Menu_factor_Y+Menu_Y,8*8*Menu_factor_X,8*Menu_factor_Y,MC_Light); + // Frame #/# + snprintf(str, 5, "#%3d", Main_current_layer+1); + Print_general((82)*Menu_factor_X,(Menu_bars[MENUBAR_LAYERS].Top+3)*Menu_factor_Y+Menu_Y,str,MC_Black,MC_Light); + Update_rect( + (82)*Menu_factor_X, + (Menu_bars[MENUBAR_LAYERS].Top+3)*Menu_factor_Y+Menu_Y, + 4*8*Menu_factor_X, + 8*Menu_factor_Y); +#endif } @@ -3172,10 +3188,14 @@ void Remap_menu_sprites() Remap_pixel(&Gfx->Statusbar_block[k][j][i]); // Layer bar for (k=0; k<3; k++) - for (j=0; jLayerbar_block[k][j][i]); - + // Anim bar + for (k=0; k<3; k++) + for (j=0; j<14; j++) + for (i=0; i<236; i++) + Remap_pixel(&Gfx->Animbar_block[k][j][i]); // Help fonts for (k=0; k<256; k++) for (j=0; j<8; j++)