1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 20:47:43 +00:00
serenity/Userland/Applications/PixelPaint/Tools
Timothy Slater 0d7d759095 PixelPaint: Limit editing tools to selection
This effectively creates a double-buffer for tools to use when modifying
the layer's bitmap (content or mask). Once the changes have been made
the tool reports to the layer that it has made changes along with a Rect
of the changed region. The layer will then merge the changes from the
scratch image to the real bitmap. This merge is done as follows: If a
given pixel is inside the selected region, the pixel from the scratch
bitmap is copied to the real bitmap. If the pixel is not inside the
selected region, the pixel from the real bitmap is copied to the scratch
bitmap.

As an optimization, when there is no selection active, the new method
for getting the scratch bitmap will return the real bitmap and no
merging will need to take place.
2022-10-24 23:46:22 +01:00
..
BrushTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
BrushTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
BucketTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
BucketTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
CloneTool.cpp PixelPaint: Inherit from AbstractZoomPanWidget 2022-01-14 01:02:34 +01:00
CloneTool.h PixelPaint: Make Alt-Clicking with all tool act like the PickerTool 2022-10-17 09:39:57 +02:00
EllipseTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
EllipseTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
EraseTool.cpp Applications: Use default constructors/destructors 2022-02-14 22:06:55 +00:00
EraseTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
GuideTool.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
GuideTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
LineTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
LineTool.h PixelPaint: Make Alt-Clicking with all tool act like the PickerTool 2022-10-17 09:39:57 +02:00
MoveTool.cpp PixelPaint: Scale layer and preserve aspect ratio 2022-09-16 22:53:07 +02:00
MoveTool.h PixelPaint: Scale layer and preserve aspect ratio 2022-09-16 22:53:07 +02:00
PenTool.cpp Applications: Use default constructors/destructors 2022-02-14 22:06:55 +00:00
PenTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
PickerTool.cpp PixelPaint: Make Alt-Clicking with all tool act like the PickerTool 2022-10-17 09:39:57 +02:00
PickerTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
PolygonalSelectTool.cpp PixelPaint: Add Polygonal Select Tool 2022-10-19 23:04:07 +02:00
PolygonalSelectTool.h PixelPaint: Add Polygonal Select Tool 2022-10-19 23:04:07 +02:00
RectangleSelectTool.cpp PixelPaint: Add point_position_to_preferred_cell to RectangleSelectTool 2022-08-31 12:20:55 +02:00
RectangleSelectTool.h PixelPaint: Add point_position_to_preferred_cell to RectangleSelectTool 2022-08-31 12:20:55 +02:00
RectangleTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
RectangleTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
SprayTool.cpp PixelPaint: Limit editing tools to selection 2022-10-24 23:46:22 +01:00
SprayTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00
Tool.cpp PixelPaint: Fix tool preview positions after moving a layer 2022-08-21 14:13:08 +02:00
Tool.h PixelPaint: Pass doubleclick events to tools 2022-10-19 23:04:07 +02:00
WandSelectTool.cpp PixelPaint: Make escape key clear selection for Wand Select Tool 2022-10-19 23:04:07 +02:00
WandSelectTool.h PixelPaint: Make escape key clear selection for Wand Select Tool 2022-10-19 23:04:07 +02:00
ZoomTool.cpp Applications: Use default constructors/destructors 2022-02-14 22:06:55 +00:00
ZoomTool.h PixelPaint: Add Tool::tool_name() as a single-point-of-truth 2022-08-21 20:33:01 +02:00