feat: add feather brush tool with adjustable settings and blending functionality
- Implemented feather brush tool in the brushRaster module, allowing for feathered edges in brush strokes. - Added new FeatherControls component for UI adjustments of feather settings including size, radius, strength, and smoothing. - Updated brush preview logic to accommodate feather tool alongside existing brush and eraser tools. - Enhanced layer rendering to support feather mask previews and interactions. - Introduced blending logic for feathered strokes to mix blurred mask values with original pixels. - Added unit tests for feather blending functionality and tool keybindings. - Updated cursor handling to reflect feather tool usage.
This commit is contained in:
@@ -78,9 +78,20 @@ describe("canvas render frame selection", () => {
|
||||
brushPreview: { position: { x: 10, y: 20 } },
|
||||
},
|
||||
};
|
||||
const changedFeather = {
|
||||
...state,
|
||||
editor: {
|
||||
...state.editor,
|
||||
tools: {
|
||||
...state.editor.tools,
|
||||
feather: { ...state.editor.tools.feather, size: state.editor.tools.feather.size + 1 },
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
expect(canvasRenderFramesEqual(selectCanvasRenderFrame(state), selectCanvasRenderFrame(sameSelectionValues))).toBe(true);
|
||||
expectFrameChanged(state, changedBrush);
|
||||
expectFrameChanged(state, changedFeather);
|
||||
expectFrameChanged(state, changedPreview);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user