GSoC/2020/StatusReports/AshwinDhakaita
Appearance
Integrating the MyPaint Brush Engine with Krita
Summary
MyPaint developers have separated out their brush engine in the form of a library, libmypaint. Artists like MyPaint brushes a lot and it would be good to integrate the same as a new brush engine within Krita brush engine subsystem.
The project has two objectives:
- To integrate the MyPaint brush engine in the form of a new brush engine in Krita, enable it to load the MyPaint brushes from system and use them for painting in Krita.
- To implement a preset editor to edit existing brushes and also create new ones.
By the end of the project, Krita will have a new brush engine that can be used for painting with MyPaint brushes and also create and edit them.
Project Goals
- Implement a new brush engine in Krita that can be used for painting.
- Enable Krita to load installed MyPaint brushes from the system.
- Implement a preset editor for editing and creating MyPaint brushes.
Work Report
Implement a new brush engine in Krita
- Status - Complete
- Duration - 25 May - 29 June
Enable Krita to load MyPaint Brushes
- Status - Complete
- Duration - 20 June - 29 June
Milestone 3: Implement Preset Editor
- Status - Complete
- Duration - 30 June- 23 July
List of Commits
- Added Libmypaint to Cmake
- Added MyPaint Brush engine to PaintOp Registry
- Added KisMyPaintBrush and KisMyPaintSurface classes
- Added cursor for MyPaintOp
- Implemented Load Methods for KisMyPaintBrush
- Refactored MyPaintOpPlugin to use KisMyPaintOpFactory
- Added Tests for MyPaintOp plugin
- Optimized draw_dab and get_color methods
- Unlinked Libmypaint from libs/image
- Fixed Eraser not working
- Fixed broken build when libmypaint is not installed
- Fix for splatter-04 preset
- Added Classic mypaint brush presets in the default install
- Enable brush Resizing
- Converted Properties to QScopedPointers
- Slight Change in dabrect
- Refactor to make methods non global
- Fix for 1Pixel preset
- Removed unused code from draw_dab
- Rectified Tests for QScopedPointers
- Remove moc include from kis_mypaintop_test
- Added Basic Settings in Preset Editor
- Added Test for Loading MyPaint Brushes
- Added Preset Editor with Advanced Settings
- Synchronised base settings and advanced settings
- Fixed Crash and base option sync issue
- Added Use of EraserMode
- Range Changing Behaviour
- Added Custom Brush Option Type
- Code Review Changes
- Use image projection instead of m_node
- Added antialiasing setting
- Fixed custom input not working
- Change sensor when checkbox is clicked
- Use a separate variable for storing previous time
- use mypaint apis for marking start of the stroke
- added airbrush option
- Added range checking
- Add missing licenses
- Code Cleanup
- Change cursor outline in proportion to offset by random
- Refactored mypaint brush option as KisDynamicSensors
- Remove warning in libmypaint not found
- Fixed crash on smudging on scratchpad
- Fixed broken reloading of MyPaint Brushes
Project Links
- Phabricator Task
- MyPaint Brush Engine Merge Request
- MyPaint Brush Engine Merge Request [Master Branch]