Posts

Showing posts from June, 2020

Phase 1 Evaluation Status Report

Image
It has been over a month since the start of GSoC. Phase #1 evaluations will start today. This post is to summarise all the work done by me during phase #1

Implementing the MyPaint Brush engine This involved writing the core brush engine classes like KisMyPaintBrush, KisMyPaintSurface, MyPaintOpPlugin, KisMyPaintOp and KisMyPaintOpFactory. At a very high level, all I had to do was override the draw_dab and get_color methods of MyPaintBrushSurface with my own version to draw over a Krita Paintdevice (Krita Surface class). While working on this, I faced a problem related to lagging that I have discussed in the previous posts. With the help of my mentors, I was able to solve this and bring the lag under acceptable limits. Then, I went on to fix some bugs, which occurred in using some specific presets. The brush engine seems to work fine mostly =]



Loading MyPaint Brushes This was the second most important thing in my TODO. The mypaint brush engine would be of no use if it can load the insta…

Week #3 Status Report

This was the third week since the commencement of official coding period on 1st June. In the last three weeks a lot of work is done and a lot of work still remains. The phase 1 evaluation submissions shall begin from monday next week, so now just 7 days are remaining.

This week was mostly spent on accommodating review changes by my mentors and writing some unit tests.
Work Done: Tests: I started my week writing some unit tests for the draw_dab and get_color methods that I had implemented previous to previous week. Refactoring:  Boud suggested me to do some refactoring as the design decisions of my previous approach were not that good. I had linked libmypaint to other component responsible for preset management in the code which was not the right thing to do as a good design would be to have all the dependencies that belong to a plugin contained in the plugin itself. Ideally, a plugin should be removable from the entire system by deleting or commenting a single line. So, I had to impl…

The MyPaint Brush Engine is now working

Image
It has been more than 2 weeks since the coding period began and I didn't post much because the project was just begun and there was no big progress. Coming to the project, the MyPaint brush engine plugin has been integrated into Krita and is working. Though, it is very rudimentary as of now, we can't customize it, we can't load/save brushes and there is no settings widget. All we can do as of now is just use the default settings for painting. The rest of the things will be taken care of during this summer.
Work Done: Over the last two weeks, I worked on the KisMyPaintBrush, KisMyPaintSurface, MyPaintopPlugin classes.  Last week I solely worked on draw_dab and get_color methods which are responsible for painting the dabs over the canvas. Those methods occupied most of the week.



                        Bubble brush



                        AirBrush Stroke


                        Spray Brush

These were loaded from the system for testing purposes and are obviously not the defa…