MyPaint version pre-alpha preview

Before I forget, I recently and accidentally closed the brush selector window (where the MyPaint Brushes are) and realized that there is no easy way to get this window back without restarting or clicking on the reset windows button. At least none that I know of.

Ah… yes you’re right, I forgot to add it to the menu. it has been fixed now.

Check if you can do something about the pressure @CandyFace :smiley:

The 3. bug should be fixed now too. After I fixed it though, it let to another bug… The first is as you describe, it would slightly offset the image, but after that if you successfully moved the image and kept the selection, you could sometimes also make it crash…

While debugging, I got some time rethink how to re-apply the transformed image into the mypaint backend, which should result in a nice performance increase when transforming on a huge surface.

I just tried it out and yes it is working perfectly. I can’t thank you enough and I’m glad to hear about the added performance increase.

@CandyFace I tested MyPaint latest development build and had a similar issue as @kaiko with the pressure sensitivity (no pressure)

What I did to workaround was to change the Windows compatibility mode form Win 10 to Win 7, and it worked again.

That said the last build that was working without this workaround for my system was as the whole batch between April 13th and may 3rd has the original brush system for some reason, and it starts to lose pressure sensitivity from onwards.

I feel that whatever you merged into the MyPaint branch after the April 4th version from master, is the culprit for this behavior in both Pencil2D master and in this branch.

@JoseMoreno I wrote you something on Discord. It has to do with the version of Qt :+1:

Hello @CandyFace

I have another one for you. I’ve been experiencing a number of issues and sometimes crashes. These starts to occur when I have multiple layers and when copying and pasting drawings. They seem random and difficult to recreate but I think I got one of them.

To recreate:

  1. open pencil2d-mypaint version
  2. write the number 1 with the 2b pencil on key frame 1.
  3. go to frame five, add a key frame. write the number 5.
  4. create a new bitmap layer.
  5. go to new layer and draw the number 2 on key frame 1.
  6. go to frame 5, add a key frame and draw the number 6.
  7. Go back to layer one and frame one.
  8. with the select tool (v), select drawing 1 and ctrl-c (copy)
  9. go to frame five on the same layer and with the select tool still active click the canvas with your stylus at random locations.

you should observe the drawings from layer two switching on and off. If you keep playing with the selection tool (ie, clicking random parts of the canvas and maybe even switching frames), the app will probably crash.

After a crash I get the following message in the command prompt:

ASSERT: “!selection.isEmpty()” in file …/…/pencil-implement_mypaint_nobitmapsurface/core_lib/src/graphics/bitmap/bitmapimage.cpp, line 222 Aborted (core dumped)

note: I compile from source on Linux

Being that it’s an assert, you can run the app in release mode and the crash should be gone. asserts are debug only, to let the developer know that something unexpected has happened and thus crashes.

I am currently working on fixing some things regarding the selection tool, so I am aware that it can crash the app occasionally. Hopefully the next release will contain some nice improvements while also some bugfixes.

1 Like


Your last work from day 3th does not have mypaint brushes. Just to let you know.


it’s been a while since I last posted an update… unfortunately it’s not a particularly big one, as I’ve been working on other things the last few months…

Newest release is now up to date with master and contains a bunch of bugfixes.

These changes are still only related to bitmap, the vector backend is still broken but I’m working on that as my next priority.

Simplified changelog:

  • Quick sizing works now and shows correct size.
    • Only changing width is possible… this is intentional currently. Feather is not as simple as it once was, so I’m not sure that one is coming back but it could be tied to another brush property.
  • Improved performance when transforming huge chunks of an image.
  • Fix Polyline would render below previous stroke while drawing but would be be shown correctly after the action had been completed.
  • Various performance optimization regarding rendering bitmap tiles.

Test it out and see how it behaves.

Win64 :

Win32 :

Make sure you grab the latest version ( beware the timestamps! )


This will likely happen from time to time, as it builds to the same folder regardless of the branch i’m working on… I’ll look into making it separate my builds per branch, that should fix the problem. :slight_smile:

@CandyFace Awesome, thanks for updating! :smile:

Well, I just tested, and I’m afraid I have some feedback :sweat_smile: :

Basically it seems that as we feared there must be a certain patch or set of patches in the master branch that messes up with the drawing calculations, and whatever patch that was included in the merge you mentioned has affected MyPaint’s brushes stroke interpolation.

In today’s MyPaint version, the line drawing became broken when I drew even remotely fast, and i don’t have pressure sensitivity unless i enable Windows 7 compatibility on the .exe :weary:

I recorded a video to showcase this problem, but honestly it is worrying that something outside the library would affect the drawing this much… basically it makes it feel like there’s no improvement in the drawing calculation even though it’s a library specifically designed for that, and it bothers me specially because we know how much you’ve worked on this! :sweat:

Using the version from April 4th for comparison, while it still has related issues, the difference feels like night and day. The older version is somehow much more smooth and responsive, accepts faster input and doesn’t require me to enable the compatibility with Windows 7 :pensive:

Sorry for bringing these issues so soon, but I think it’s something we can’t allow to pass to the new brush engine no matter what. Please let us know what we can do to help you :muscle::slightly_smiling_face:

Not sure about the compatibility problem that has become a problem for a while now in master but yes it’s an existing problem that comes from an earlier commit and because of the merge with master, it now also affects this branch…

As for performance, it’s not quite measurable because there are lots of debug information which can heavily impact stroke performance, I for example had a message that would fire at each mouse move event, this would definitely have a huge impact on the stroke. The nightly builds are still debug builds so nothing is optimized :wink:

Try the latest release from today and tell me if the problem is gone, if not then i’ll look into it.

If you compile the build yourself using release config, then you should see a huge improvement in performance too.

@CandyFace I’m sorry! You’re right I should have tried testing a release build before anything :bowing_man: however I just didn’t want to miss the momentum as I had a bit of free time to test.

It didn’t cross my mind it was a debug build and that could affect the performance, but for some reason now I always expect a debug terminal in debug version, guess it’s a side effect of my current job :joy:

Anyway, if the performance issue is just a side effect of being debug that’d be nice… but even then I have to logically inquire about it, is it possible that the debug information you have is not that different from what you had during April’s version? I mean I’m assuming April’s version was also a debug build and it probably had similar events firing since you were testing the brushes and drawing feel very thoroughly back then as well.

Either way I’ll test the other version you mentioned and then i’ll compile the branch to test and provide you with more accurate feedback.

Thank you for always being helpful when it comes to these issues! I know everyone really appreciates all the hard work you’ve put in, I’m sure I do! :smile:

I usually do not keep debug logs where it hurts performance too much but I did this time around, so it really would make a huge difference.

I tested some of the earliest commits from April 4 and I did not see see any difference in performance, so whenever you have some time, do try to compare the April 4 build against the latest build again :slight_smile:

1 Like

I’m very happy of this mix, as an early MyPaint adopter. Thank you for this great work :).

I managed to compile it on Arch Linux, and made an AUR package, called pencil2d-mypaint-git, to allow other user to take benefits of it too, testing it and perhaps add some returns on problems.

It works really fine, there is only a bug, brushes disappear often, need to restart Pencil2D to see them again. (Edit: I understood, other tool was selected, I don’t know how)


Animation made with MyPaint brushes

1 Like

I Noticed today, that when I try to delete vector layer, the bitmap drawing is strangly moved bottom left, and reduced.

From a new project (from scratch), this can be viewed by, just after removing the vector layer, drawing at upper left top. the drawing will appear at bottom right.

Another problem. When draws are done on several bitmap layers, during play, the layer below the current selected one display only keyframes at keyframe time and no frame between them.

Thanks for reporting this, I’ll look into it.