GrafX2 2.9.3227
The ultimate 256-color painting program
|
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include "gfx2mem.h"
#include "global.h"
#include "pages.h"
#include "errors.h"
#include "loadsave.h"
#include "misc.h"
#include "windows.h"
#include "tiles.h"
#include "graph.h"
#include "layers.h"
#include "unicode.h"
Functions | |
T_Page * | New_page (int nb_layers) |
Allocate and initialize a new page. More... | |
byte * | New_layer (long pixel_size) |
Allocate a new layer. More... | |
void | Free_layer (T_Page *page, int layer) |
Free a layer. More... | |
byte * | Dup_layer (byte *layer) |
Duplicate a layer (new reference) More... | |
T_Gradient_array * | Dup_gradient (T_Page *page) |
Adds a shared reference to the gradient data of another page. Pass NULL for new. More... | |
void | Download_infos_page_main (T_Page *page) |
INDIVIDUAL PAGES. More... | |
void | Redraw_layered_image (void) |
void | Update_depth_buffer (void) |
void | Redraw_spare_image (void) |
void | Redraw_current_layer (void) |
void | Upload_infos_page (T_Document *doc) |
void | Download_infos_page_spare (T_Page *page) |
void | Update_FX_feedback (byte with_feedback) |
Must be called after changing the head of Main_backups list, or Main_current_layer. More... | |
void | Clear_page (T_Page *page) |
void | Copy_S_page (T_Page *dest, T_Page *source) |
void | Init_list_of_pages (T_List_of_pages *list) |
GESTION DES LISTES DE PAGES. More... | |
int | Allocate_list_of_pages (T_List_of_pages *list) |
void | Backward_in_list_of_pages (T_List_of_pages *list) |
void | Advance_in_list_of_pages (T_List_of_pages *list) |
void | Free_last_page_of_list (T_List_of_pages *list) |
int | Create_new_page (T_Page *new_page, T_List_of_pages *list, int layer) |
void | Change_page_number_of_list (T_List_of_pages *list, int number) |
void | Free_page_of_a_list (T_List_of_pages *list) |
void | Update_screen_targets (void) |
int | Update_buffers (int width, int height) |
Update all the special image buffers, if necessary. More... | |
int | Update_spare_buffers (int width, int height) |
Update all the special image buffers of the spare page, if necessary. More... | |
int | Init_all_backup_lists (enum IMAGE_MODES image_mode, int width, int height) |
GESTION DES BACKUPS. More... | |
void | Set_number_of_backups (int nb_backups) |
int | Backup_new_image (int layers, int width, int height) |
int | Backup_with_new_dimensions (int width, int height) |
int | Backup_in_place (int width, int height) |
Resizes a backup step in-place (doesn't add a Undo/Redo step). More... | |
int | Backup_and_resize_the_spare (int width, int height) |
void | Backup (void) |
Backup with a new copy for the working layer, and references for all others. More... | |
void | Backup_layers (int layer) |
Backup with a new copy of some layers (the others are references). More... | |
int | Dup_layer_if_shared (T_Page *page, int layer) |
Backs up a layer, unless it's already different from previous history step. More... | |
void | Backup_the_spare (int layer) |
Backup the spare image, the one you don't see. More... | |
void | Check_layers_limits () |
void | Undo (void) |
void | Redo (void) |
void | Free_current_page (void) |
void | End_of_modification (void) |
byte | Add_layer (T_List_of_pages *list, int layer) |
Add a new layer to latest page of a list. Returns 0 on success. More... | |
byte | Delete_layer (T_List_of_pages *list, int layer) |
Delete a layer from the latest page of a list. Returns 0 on success. More... | |
byte | Merge_layer (void) |
Merges the current layer onto the one below it. More... | |
void | Switch_layer_mode (enum IMAGE_MODES new_mode) |
Variables | |
T_Bitmap | Main_visible_image_backup |
Array of two images, that contains the "flattened" version of the visible layers. More... | |
T_Bitmap | Main_visible_image_depth_buffer |
The index of visible pixels Main page T_Document.visible_image. More... | |
static dword | Last_backed_up_layers =0 |
GESTION DES PAGES. More... | |
long | Stats_pages_number =0 |
Total number of unique bitmaps (layers, animation frames, backups) More... | |
long long | Stats_pages_memory =0 |
Total memory used by bitmaps (layers, animation frames, backups) More... | |
byte * | FX_feedback_screen |
Pointer to the image to read, while drawing. More... | |
T_Page * New_page | ( | int | nb_layers | ) |
Allocate and initialize a new page.
References T_Page::Background_transparent, T_Page::Comment, DEFAULT_FILEFORMAT, T_Image::Duration, T_Page::File_directory, T_Page::File_format, T_Page::Filename, T_Page::Filename_unicode, GFX2_malloc, T_Page::Gradients, T_Page::Height, T_Page::Image, T_Page::Image_mode, IMAGE_MODE_LAYERED, T_Page::Nb_layers, T_Page::Next, NULL, T_Page::Palette, T_Image::Pixels, T_Page::Prev, T_Page::Transparent_color, and T_Page::Width.
Referenced by Allocate_list_of_pages(), Backup_and_resize_the_spare(), Backup_layers(), Backup_new_image(), Backup_the_spare(), and Backup_with_new_dimensions().
byte * New_layer | ( | long | pixel_size | ) |
Allocate a new layer.
References GFX2_malloc, NULL, Stats_pages_memory, and Stats_pages_number.
Referenced by Add_layer(), Backup_in_place(), Create_new_page(), Dup_layer_if_shared(), and Init_all_backup_lists().
void Free_layer | ( | T_Page * | page, |
int | layer | ||
) |
Free a layer.
References T_Page::Height, T_Page::Image, NULL, T_Image::Pixels, Stats_pages_memory, Stats_pages_number, and T_Page::Width.
Referenced by Backup_in_place(), Clear_page(), Delete_layer(), and Dup_layer_if_shared().
T_Gradient_array * Dup_gradient | ( | T_Page * | page | ) |
Adds a shared reference to the gradient data of another page. Pass NULL for new.
References T_Page::Gradients, NULL, and T_Gradient_array::Used.
Referenced by Allocate_list_of_pages(), Backup_new_image(), Backup_with_new_dimensions(), and Copy_S_page().
void Download_infos_page_main | ( | T_Page * | page | ) |
INDIVIDUAL PAGES.
References Compute_limits(), Compute_paintbrush_coordinates(), T_Page::File_format, T_Document::fileformat, T_Page::Height, T_Document::image_height, T_Document::image_width, T_Document::magnifier_mode, Main, NULL, T_Document::offset_X, T_Document::offset_Y, T_Page::Palette, T_Document::palette, Pixel_preview, Pixel_preview_normal, and T_Page::Width.
Referenced by Backup_in_place(), Backup_layers(), Backup_new_image(), Backup_with_new_dimensions(), Free_current_page(), Init_all_backup_lists(), Load_image(), Redo(), and Undo().
void Redraw_layered_image | ( | void | ) |
References T_Document::backups, Config, T_Document::current_layer, T_Config::FX_Feedback, T_Page::Image, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, IMAGE_MODE_MODE5, IMAGE_MODE_RASTER, T_Document::image_width, T_Document::layers_visible, Main, Main_visible_image_depth_buffer, T_Page::Nb_layers, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Transparent_color, Update_FX_feedback(), Update_screen_targets(), and T_Document::visible_image.
Referenced by Button_Clear(), Button_Clear_with_backcolor(), Button_Constraint_menu(), Button_Layer_down(), Button_Layer_menu(), Button_Layer_merge(), Button_Layer_remove(), Button_Layer_set_transparent(), Button_Layer_up(), Button_Reload(), Button_Transform_menu(), Free_current_page(), Init_program(), Layer_activate(), Load_picture(), Main_handler(), Process_backups(), Redo(), Resize_image(), Switch_layer_mode(), and Undo().
void Update_depth_buffer | ( | void | ) |
References T_Document::backups, Config, T_Document::current_layer, T_Config::FX_Feedback, T_Page::Image, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, T_Document::layers_visible, Main, Main_visible_image_depth_buffer, T_Page::Nb_layers, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Transparent_color, and Update_FX_feedback().
Referenced by Button_Layer_add(), Button_Layer_duplicate(), Button_Page(), Layer_activate(), and Scroll_0_5().
void Redraw_spare_image | ( | void | ) |
References T_Document::backups, T_Page::Image, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, T_Document::layers_visible, T_Page::Nb_layers, T_List_of_pages::Pages, T_Image::Pixels, Spare, T_Page::Transparent_color, and T_Document::visible_image.
Referenced by Button_Copy_page(), Button_Message_initial(), and Copy_image_only().
void Redraw_current_layer | ( | void | ) |
References T_Document::backups, T_Document::current_layer, T_Page::Image, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, Main, Main_visible_image_depth_buffer, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Transparent_color, and T_Document::visible_image.
Referenced by Scroll_12_5().
void Upload_infos_page | ( | T_Document * | doc | ) |
References T_Document::backups, T_Page::File_format, T_Document::fileformat, T_Page::Height, T_Document::image_height, T_Document::image_width, NULL, T_List_of_pages::Pages, T_Page::Palette, T_Document::palette, and T_Page::Width.
Referenced by Backup_layers(), Button_Load(), Button_Page(), Button_Reload(), Button_Transform_menu(), Init_all_backup_lists(), Main_handler(), Redo(), Resize_image(), and Undo().
void Download_infos_page_spare | ( | T_Page * | page | ) |
References T_Page::File_format, T_Document::fileformat, T_Page::Height, T_Document::image_height, T_Document::image_width, NULL, T_Page::Palette, T_Document::palette, Spare, and T_Page::Width.
Referenced by Backup_and_resize_the_spare(), and Init_all_backup_lists().
void Update_FX_feedback | ( | byte | with_feedback | ) |
Must be called after changing the head of Main_backups list, or Main_current_layer.
References T_Document::backups, T_Document::current_layer, FX_feedback_screen, T_Page::Image, Main, T_Page::Next, T_List_of_pages::Pages, and T_Image::Pixels.
Referenced by Backup_layers(), Backup_with_new_dimensions(), Button_Effects(), End_of_modification(), Fill_general(), Init_all_backup_lists(), Polyfill(), Redraw_layered_image(), and Update_depth_buffer().
void Clear_page | ( | T_Page * | page | ) |
References T_Image::Duration, Free_layer(), T_Page::Gradients, T_Page::Height, T_Page::Image, T_Page::Nb_layers, NULL, T_Image::Pixels, T_Gradient_array::Used, and T_Page::Width.
Referenced by Free_last_page_of_list().
References Dup_gradient(), T_Page::File_directory, T_Page::Filename, T_Page::Filename_unicode, T_Page::Gradients, NULL, and Unicode_strdup().
Referenced by Backup_and_resize_the_spare(), Backup_layers(), and Backup_the_spare().
void Init_list_of_pages | ( | T_List_of_pages * | list | ) |
GESTION DES LISTES DE PAGES.
LISTS OF PAGES.
References T_List_of_pages::List_size, NULL, and T_List_of_pages::Pages.
Referenced by Init_program().
int Allocate_list_of_pages | ( | T_List_of_pages * | list | ) |
References Dup_gradient(), T_Page::Gradients, T_List_of_pages::List_size, New_page(), T_Page::Next, NULL, T_List_of_pages::Pages, and T_Page::Prev.
Referenced by Init_all_backup_lists().
void Backward_in_list_of_pages | ( | T_List_of_pages * | list | ) |
References Last_backed_up_layers, T_Page::Next, T_List_of_pages::Pages, and T_Page::Prev.
Referenced by Free_page_of_a_list(), and Undo().
void Advance_in_list_of_pages | ( | T_List_of_pages * | list | ) |
References Last_backed_up_layers, T_Page::Next, T_List_of_pages::Pages, and T_Page::Prev.
Referenced by Redo().
void Free_last_page_of_list | ( | T_List_of_pages * | list | ) |
References Clear_page(), T_Page::File_directory, T_Page::Filename, T_Page::Filename_unicode, T_List_of_pages::List_size, T_Page::Next, NULL, T_List_of_pages::Pages, and T_Page::Prev.
Referenced by Change_page_number_of_list(), Create_new_page(), and Free_page_of_a_list().
int Create_new_page | ( | T_Page * | new_page, |
T_List_of_pages * | list, | ||
int | layer | ||
) |
References Config, Dup_layer(), T_Image::Duration, Free_last_page_of_list(), T_Page::Height, T_Page::Image, LAYER_ALL, T_List_of_pages::List_size, T_Config::Max_undo_pages, T_Page::Nb_layers, New_layer(), T_Page::Next, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Prev, and T_Page::Width.
Referenced by Backup_and_resize_the_spare(), Backup_layers(), Backup_new_image(), Backup_the_spare(), and Backup_with_new_dimensions().
void Change_page_number_of_list | ( | T_List_of_pages * | list, |
int | number | ||
) |
References Free_last_page_of_list(), and T_List_of_pages::List_size.
Referenced by Set_number_of_backups().
void Free_page_of_a_list | ( | T_List_of_pages * | list | ) |
References T_Document::backups, Backward_in_list_of_pages(), Free_last_page_of_list(), T_List_of_pages::List_size, and Main.
Referenced by Free_current_page(), Redo(), and Undo().
void Update_screen_targets | ( | void | ) |
References T_Document::backups, T_Document::current_layer, T_Page::Height, T_Page::Image, T_Bitmap::Image, T_Page::Image_mode, IMAGE_MODE_ANIMATION, Main, Main_screen, Main_visible_image_backup, T_Page::Nb_layers, T_Page::Next, T_List_of_pages::Pages, T_Image::Pixels, Screen_backup, Update_pixel_renderer(), T_Document::visible_image, and T_Page::Width.
Referenced by Backup_in_place(), Backup_with_new_dimensions(), Button_Layer_down(), Button_Layer_merge(), Button_Layer_remove(), Button_Layer_up(), Button_Page(), End_of_modification(), Layer_activate(), Redraw_layered_image(), Scroll_12_0(), Set_image_mode(), and Update_buffers().
int Update_buffers | ( | int | width, |
int | height | ||
) |
Update all the special image buffers, if necessary.
References T_Document::backups, GFX2_malloc, T_Bitmap::Height, T_Bitmap::Image, T_Page::Image_mode, IMAGE_MODE_ANIMATION, Main, Main_visible_image_backup, Main_visible_image_depth_buffer, NULL, T_List_of_pages::Pages, Update_screen_targets(), T_Document::visible_image, and T_Bitmap::Width.
Referenced by Backup_new_image(), Backup_with_new_dimensions(), Button_Page(), End_of_modification(), Free_current_page(), Init_all_backup_lists(), Redo(), Switch_layer_mode(), and Undo().
int Update_spare_buffers | ( | int | width, |
int | height | ||
) |
Update all the special image buffers of the spare page, if necessary.
References T_Document::backups, GFX2_malloc, T_Bitmap::Height, T_Bitmap::Image, T_Page::Image_mode, IMAGE_MODE_ANIMATION, NULL, T_List_of_pages::Pages, Spare, T_Document::visible_image, and T_Bitmap::Width.
Referenced by Button_Copy_page(), Button_Message_initial(), Copy_image_only(), and Init_all_backup_lists().
int Init_all_backup_lists | ( | enum IMAGE_MODES | image_mode, |
int | width, | ||
int | height | ||
) |
GESTION DES BACKUPS.
References Allocate_list_of_pages(), T_Document::backups, T_Page::Comment, Config, DEFAULT_FILEFORMAT, T_Selector_settings::Directory, Download_infos_page_main(), Download_infos_page_spare(), End_of_modification(), T_Page::File_directory, T_Page::File_format, T_Page::Filename, T_Page::Filename_unicode, T_Config::FX_Feedback, T_Page::Height, T_Bitmap::Height, T_Page::Image, T_Bitmap::Image, T_Page::Image_mode, Main, Main_visible_image_backup, Main_visible_image_depth_buffer, NB_LAYERS, T_Page::Nb_layers, New_layer(), NULL, T_List_of_pages::Pages, T_Page::Palette, T_Document::palette, T_Image::Pixels, T_Document::selector, Spare, Update_buffers(), Update_FX_feedback(), Update_spare_buffers(), Upload_infos_page(), T_Document::visible_image, T_Page::Width, and T_Bitmap::Width.
Referenced by Init_program().
void Set_number_of_backups | ( | int | nb_backups | ) |
References T_Document::backups, Change_page_number_of_list(), Main, and Spare.
Referenced by Button_Settings(), and Program_shutdown().
int Backup_new_image | ( | int | layers, |
int | width, | ||
int | height | ||
) |
References T_Document::backups, Create_new_page(), Download_infos_page_main(), Dup_gradient(), Error, T_Page::Gradients, T_Page::Height, T_Bitmap::Image, LAYER_ALL, Main, Main_visible_image_depth_buffer, New_page(), NULL, T_List_of_pages::Pages, T_Page::Transparent_color, Update_buffers(), and T_Page::Width.
Referenced by Pre_load().
int Backup_with_new_dimensions | ( | int | width, |
int | height | ||
) |
References T_Page::Background_transparent, T_Document::backups, T_Page::Comment, Config, Create_new_page(), Download_infos_page_main(), Dup_gradient(), Error, T_Page::File_directory, T_Page::File_format, T_Page::Filename, T_Page::Filename_unicode, T_Config::FX_Feedback, T_Page::Gradients, T_Page::Height, T_Page::Image, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, LAYER_ALL, Main, Main_visible_image_backup, T_Page::Nb_layers, New_page(), T_Page::Next, T_List_of_pages::Pages, T_Page::Palette, T_Image::Pixels, T_Page::Transparent_color, Unicode_strdup(), Update_buffers(), Update_FX_feedback(), Update_screen_targets(), T_Document::visible_image, and T_Page::Width.
Referenced by Button_Transform_menu(), and Resize_image().
int Backup_in_place | ( | int | width, |
int | height | ||
) |
Resizes a backup step in-place (doesn't add a Undo/Redo step).
Should only be called after an actual backup, because it loses the current. pixels. This function is meant to be used from within Lua scripts.
References T_Document::backups, Download_infos_page_main(), Free_layer(), GFX2_malloc, T_Page::Height, T_Bitmap::Height, T_Page::Image, T_Bitmap::Image, T_Page::Image_mode, IMAGE_MODE_ANIMATION, Main, Main_visible_image_depth_buffer, T_Page::Nb_layers, New_layer(), NULL, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Transparent_color, Update_screen_targets(), T_Document::visible_image, T_Page::Width, and T_Bitmap::Width.
int Backup_and_resize_the_spare | ( | int | width, |
int | height | ||
) |
References T_Document::backups, Copy_S_page(), Create_new_page(), Download_infos_page_spare(), Error, T_Page::Height, T_Page::Image, T_Document::image_is_modified, LAYER_ALL, T_Page::Nb_layers, New_page(), T_List_of_pages::Pages, T_Image::Pixels, Spare, T_Page::Transparent_color, and T_Page::Width.
Referenced by Copy_image_only().
void Backup | ( | void | ) |
Backup with a new copy for the working layer, and references for all others.
References Backup_layers(), T_Document::current_layer, and Main.
Referenced by Airbrush_1_0(), Airbrush_2_0(), Brush_12_0(), Button_Clear(), Button_Clear_with_backcolor(), Centered_lines_12_0(), Circle_12_0(), Curve_34_points_1_0(), Curve_34_points_2_0(), Ellipse_12_0(), Empty_rectangle_0_5(), Fill_general(), Filled_polyform_12_0(), Filled_rectangle_0_5(), Freehand_mode1_1_0(), Freehand_mode1_2_0(), Freehand_mode2_1_0(), Freehand_mode2_2_0(), Freehand_mode3_1_0(), Freehand_Mode3_2_0(), Grad_circle_12_0(), Grad_ellipse_12_0(), Grad_rectangle_12_0(), K_line_12_0(), Line_12_0(), Polyfill_12_0(), Polyform_12_0(), Polygon_12_0(), Replace_1_0(), Replace_2_0(), and Scroll_12_0().
void Backup_layers | ( | int | layer | ) |
Backup with a new copy of some layers (the others are references).
References T_Document::backups, Config, Copy_S_page(), Create_new_page(), Download_infos_page_main(), Error, T_Config::FX_Feedback, T_Page::Image, T_Document::image_height, T_Document::image_is_modified, T_Document::image_width, LAYER_ALL, LAYER_NONE, Main, T_Page::Nb_layers, New_page(), T_Page::Next, T_List_of_pages::Pages, T_Image::Pixels, Update_FX_feedback(), and Upload_infos_page().
Referenced by Backup(), Button_Anim_time(), Button_Layer_add(), Button_Layer_down(), Button_Layer_duplicate(), Button_Layer_menu(), Button_Layer_merge(), Button_Layer_remove(), Button_Layer_set_transparent(), Button_Layer_up(), Button_Palette(), Get_colors_from_brush(), Load_image(), and Scroll_12_0().
int Dup_layer_if_shared | ( | T_Page * | page, |
int | layer | ||
) |
Backs up a layer, unless it's already different from previous history step.
References Free_layer(), T_Page::Height, T_Page::Image, New_layer(), T_Page::Next, T_Image::Pixels, and T_Page::Width.
void Backup_the_spare | ( | int | layer | ) |
Backup the spare image, the one you don't see.
References T_Document::backups, Copy_S_page(), Create_new_page(), Error, T_Page::Image, T_Document::image_height, T_Document::image_is_modified, T_Document::image_width, LAYER_ALL, LAYER_NONE, T_Page::Nb_layers, New_page(), T_Page::Next, T_List_of_pages::Pages, T_Image::Pixels, and Spare.
Referenced by Button_Copy_page(), and Copy_some_colors().
void Check_layers_limits | ( | ) |
References T_Document::backups, T_Document::current_layer, T_Document::layers_visible, Main, T_Page::Nb_layers, and T_List_of_pages::Pages.
Referenced by Free_current_page(), Redo(), and Undo().
void Undo | ( | void | ) |
References T_Document::backups, Backward_in_list_of_pages(), Check_layers_limits(), Download_infos_page_main(), End_of_modification(), Free_page_of_a_list(), T_Page::Height, T_Document::image_height, T_Document::image_width, Last_backed_up_layers, Main, T_List_of_pages::Pages, Redraw_layered_image(), Tilemap_update(), Update_buffers(), Upload_infos_page(), and T_Page::Width.
Referenced by Button_Undo().
void Redo | ( | void | ) |
References Advance_in_list_of_pages(), T_Document::backups, Check_layers_limits(), Download_infos_page_main(), End_of_modification(), Free_page_of_a_list(), T_Page::Height, T_Document::image_height, T_Document::image_width, Last_backed_up_layers, Main, T_List_of_pages::Pages, Redraw_layered_image(), Tilemap_update(), Update_buffers(), Upload_infos_page(), and T_Page::Width.
Referenced by Button_Redo().
void Free_current_page | ( | void | ) |
void End_of_modification | ( | void | ) |
References T_Document::backups, Config, T_Document::edits_since_safety_backup, T_Config::FX_Feedback, T_Bitmap::Image, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, Main, Main_visible_image_backup, T_List_of_pages::Pages, Rotate_safety_backups(), Update_buffers(), Update_FX_feedback(), Update_screen_targets(), and T_Document::visible_image.
Referenced by Airbrush_0_2(), Brush_0_5(), Button_Anim_time(), Button_Clear(), Button_Clear_with_backcolor(), Button_Constraint_menu(), Button_Layer_add(), Button_Layer_down(), Button_Layer_duplicate(), Button_Layer_menu(), Button_Layer_merge(), Button_Layer_remove(), Button_Layer_set_transparent(), Button_Layer_up(), Button_Page(), Button_Palette(), Button_Reload(), Button_Resolution(), Button_Transform_menu(), Centered_lines_12_7(), Curve_4_points_2_9(), Curve_finalize(), Empty_circle_0_5(), Empty_ellipse_0_5(), Empty_rectangle_0_5(), Fill_1_0(), Fill_2_0(), Fill_general(), Filled_circle_0_5(), Filled_contour_0_8(), Filled_ellipse_0_5(), Filled_polyform_12_8(), Filled_rectangle_0_5(), Free_current_page(), Freehand_mode12_0_2(), Freehand_mode3_0_1(), Get_colors_from_brush(), Grad_circle_0_6(), Grad_circle_12_8(), Grad_ellipse_0_6(), Grad_ellipse_12_8(), Grad_rectangle_0_9(), Init_all_backup_lists(), Init_program(), K_line_12_7(), Line_0_5(), Load_picture(), Main_handler(), Polybrush_12_8(), Polyfill_12_9(), Polyform_12_8(), Polygon_12_9(), Redo(), Replace_1_0(), Replace_2_0(), Scroll_0_5(), and Undo().
byte Add_layer | ( | T_List_of_pages * | list, |
int | layer | ||
) |
Add a new layer to latest page of a list. Returns 0 on success.
References T_Document::backups, T_Document::current_layer, T_Image::Duration, Error, T_Page::Height, T_Page::Image, T_Page::Image_mode, Layers_max(), T_Document::layers_visible, Main, T_Page::Nb_layers, New_layer(), T_Page::Next, T_List_of_pages::Pages, T_Image::Pixels, T_Page::Prev, Spare, T_Page::Transparent_color, and T_Page::Width.
Referenced by Button_Constraint_mode(), Button_Layer_add(), Button_Layer_duplicate(), Check_block_constraints(), and Set_loading_layer().
byte Delete_layer | ( | T_List_of_pages * | list, |
int | layer | ||
) |
Delete a layer from the latest page of a list. Returns 0 on success.
References T_Document::backups, T_Document::current_layer, Free_layer(), T_Page::Image, T_Document::layers_visible, Main, T_Page::Nb_layers, T_List_of_pages::Pages, and Spare.
Referenced by Button_Layer_remove(), and Merge_layer().
byte Merge_layer | ( | void | ) |
Merges the current layer onto the one below it.
References T_Document::backups, T_Document::current_layer, Delete_layer(), T_Page::Image, T_Document::image_height, T_Document::image_width, Main, T_List_of_pages::Pages, T_Image::Pixels, and T_Page::Transparent_color.
Referenced by Button_Layer_merge().
void Switch_layer_mode | ( | enum IMAGE_MODES | new_mode | ) |
References T_Document::backups, T_Document::image_height, T_Page::Image_mode, IMAGE_MODE_ANIMATION, T_Document::image_width, Main, T_List_of_pages::Pages, Redraw_layered_image(), Update_buffers(), and Update_pixel_renderer().
Referenced by Button_Constraint_mode(), Button_Message_initial(), and Button_Toggle_toolbar().
T_Bitmap Main_visible_image_backup |
Array of two images, that contains the "flattened" version of the visible layers.
The pixels of visible layers, flattened copy, used for no-feedback effects.
Referenced by Backup_with_new_dimensions(), End_of_modification(), Init_all_backup_lists(), Program_shutdown(), Scroll_12_0(), Update_buffers(), and Update_screen_targets().
T_Bitmap Main_visible_image_depth_buffer |
The index of visible pixels Main page T_Document.visible_image.
Points to the right layer.
Referenced by Backup_in_place(), Backup_new_image(), Init_all_backup_lists(), Pixel_in_layer_with_opt_preview(), Pixel_in_screen_c64fli_underlay_with_opt_preview(), Pixel_in_screen_layered_with_opt_preview(), Pixel_in_screen_overlay_with_opt_preview(), Program_shutdown(), Read_pixel_from_current_screen(), Redraw_current_layer(), Redraw_layered_image(), Update_buffers(), and Update_depth_buffer().
|
static |
GESTION DES PAGES.
Bitfield which records which layers are backed up in Page 0.
Referenced by Advance_in_list_of_pages(), Backward_in_list_of_pages(), Redo(), and Undo().
long Stats_pages_number =0 |
Total number of unique bitmaps (layers, animation frames, backups)
STATISTICS.
Referenced by Button_Stats(), Free_layer(), and New_layer().
long long Stats_pages_memory =0 |
Total memory used by bitmaps (layers, animation frames, backups)
Referenced by Button_Stats(), Free_layer(), and New_layer().
byte* FX_feedback_screen |
Pointer to the image to read, while drawing.
It's either the last history layer page when FX feedback is on, or the history page before it when FX feedback is off.
Referenced by Read_pixel_from_feedback_screen(), and Update_FX_feedback().