MyPaint Brush Engine
Open, NormalPublic

Description

Synopsis

MyPaint has made available their brush engine in the form of libmypaint library for integration in other painting applications.
This aims to integrate MyPaint brush engine in Krita so that artists would be able to use MyPaint brushes from within Krita itself.

Goals

  • The first objective is to integrate MyPaint brush engine in Krita so as to facilitate using and creating of MyPaint brushes.
  • The second objective is to expose the MyPaint brush options in Krita's brush editor and allow modification of MyPaint brushes.

Timeline

June 1 - June 29:

  • Add libmypaint to the cmake build system.
  • Draw a basic skeleton of KisMyPaintBrush, KisMyPaintSurface, KisMyPaintOp and MyPaintPlugin classes.
  • Implement the paintAt and other important methods of the KisMyPaintOp class.
  • Implement the draw_dab and get_color method for KisMyPaintSurface class, overriding the same of the MyPaintSurface.
  • Implement other necessary methods of the KisMyPaintSurface class.
  • Implement the stroke_to method of the KisMyPaintBrush class using the mypaint_brush_stroke_to method at the backend.
  • Complete the draft of MyPaintPlugin class and integrate the resulting paintop in Krita .
  • Write a unittest to check the rendering of the paintop on a paintdevice.
  • Profiling the rendering of MyPaint paintop.
  • Start working on documentation about the MyPaint brush engine on Krita Manual’s brush engine section.

July 4 - July 27:

  • Alter the load and save methods of the KisPaintOpPreset class to facilitate loading and saving of the MyPaintBrushes.
  • Implement the load method using mypaint_brush_from_string and using the resulting brush (which is a structure) itself as a setting for KisMyPaintOp.
  • Enabling the KisMyPaintOp class to use the resulting settings for rendering.
  • Implement the save method for saving MyPaint Brushes.
  • Convert the MyPaint preset in the form of a json array and save the same for later use.
  • Write a unittest for loading and saving MyPaint Brushes.
  • Add more information about the MyPaint brush engine in the Krita Manual.

Aug 1- Aug 24:

  • Draw the GUI for MyPaint Brush engine settings widget.
  • Implementation of KisMyPaintOpSettingsWidget, KisMyPaintOpOption classes.
  • Connecting UI with the backend classes
  • Implement saving and editing of MyPaint brushes according to given settings.
  • Finish the Krita Manual’s documentation.
ashwind created this task.May 7 2020, 12:05 PM
ashwind triaged this task as Normal priority.
ashwind updated the task description. (Show Details)May 7 2020, 12:08 PM