From cb1c390fdf91239a554a5c736e6b9f1dd38827ed Mon Sep 17 00:00:00 2001 From: Variable Date: Sat, 30 Nov 2024 00:49:04 +0500 Subject: [PATCH] revert an optimization (croping indices image before display) --- src/Classes/ImageExtended.gd | 3 ++- src/UI/Canvas/color_index.gd | 15 +++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Classes/ImageExtended.gd b/src/Classes/ImageExtended.gd index b9456fb76..fe79414ee 100644 --- a/src/Classes/ImageExtended.gd +++ b/src/Classes/ImageExtended.gd @@ -164,7 +164,8 @@ func set_pixelv_custom(point: Vector2i, color: Color, index_image_only := false) if dist < smaller_distance: smaller_distance = dist color_index = i - indices_image.set_pixelv(point, Color((color_index + 1) / 255.0, 0, 0, 0)) + if not indices_image.get_pixelv(point).r8 == color_index + 1: + indices_image.set_pixelv(point, Color((color_index + 1) / 255.0, 0, 0, 0)) color_to_fill = palette[color_index] new_color = color_to_fill else: diff --git a/src/UI/Canvas/color_index.gd b/src/UI/Canvas/color_index.gd index a7804ab71..098c72ce0 100644 --- a/src/UI/Canvas/color_index.gd +++ b/src/UI/Canvas/color_index.gd @@ -23,23 +23,18 @@ func _draw() -> void: if zoom_percentage < Global.pixel_grid_show_at_zoom: return var project = ExtensionsApi.project.current_project + var size: Vector2i = project.size var cel: BaseCel = project.frames[project.current_frame].cels[project.current_layer] if not cel is PixelCel: return var index_image: Image = cel.image.indices_image - if index_image.get_size() != project.size or not cel.image.is_indexed: + if index_image.get_size() != size or not cel.image.is_indexed: return - var used_rect: Rect2i = cel.image.get_used_rect() - if used_rect.size != Vector2i.ZERO: - # use smaller image for optimization - index_image = index_image.get_region(used_rect) - var font: Font = ExtensionsApi.theme.get_theme().default_font - var offset = position + Vector2(used_rect.position) - draw_set_transform(offset, rotation, Vector2(0.05, 0.05)) - for x in range(index_image.get_size().x): - for y in range(index_image.get_size().y): + draw_set_transform(position, rotation, Vector2(0.05, 0.05)) + for x in range(size.x): + for y in range(size.y): var index := index_image.get_pixel(x, y).r8 if index == 0: continue