MyPaint version pre-alpha preview

Thank you very much to take time to explain me. I didn’t noticed the camera was zoomed out. Apply reset size and rotating on camera layer effectively fixed what I didn’t understand. Sorry to have misunderstand this, I didn’t think I was done such a change.

The camera layer is not the most intuitive thing in Pencil2D, but it is in fact really powerful :). At first time I searched a lot around to find information about the video size too. I seen video tutorial about camera movement from the site, but didn’t think about it at all.

Perhaps have digital information about camera parameters somewhere in interface could help. Adding zoom factor, shift and rotation in camera properties, like what is done for camera size for example, this could allow to choose more precisely parameters if needed too. having such information in help yellow popup could help too.

Another option could be, as drawing tools can’t be used when camera layer is selected, to replace them by camera information or parameters. But anyway I’m offtopic of MyPaint extension. Thank you again for your help.

I had a strange bug with colorpicker, on one particular tone of light yellow~brown color, the color picked was green light, there was no problems with other colors. I restarted Pencil2D, same bug, after third restart, now, that’s ok :). Sometimes system mouse cursor don’t display the tool, but different inrelated cursors too, like doublearrows.

Color_picker_bug

Fix eyedropper would sometimes pick up wrong color

Not exactly sure why but I assume it’s because the color might have been multiplied already, making the result become undefined or something…

  • Eyedropper will now determine the color from anywhere within the pixel instead of only from the center of the pixel.
  • Preview rectangle can now be seen on all backgrounds
  • Preview color is now premultiplied, meaning the color represents the inspected pixel rather than the color multiplied with the background.

I didn’t drawn too much those 2 days, and as colorpicker bug 2 times, so I need to test it a lot to see if it still happen, but thank you for your work. I tried to configure buttons of my tablet to accelerate workflow on drawing today, that was not so easy, I will give some tricks in How to section. When I try to choose what was the best buttons, I noticed that I didn’t used the smudge tool that could help me in different cases. I tried it a little, and today, it is not really usable, when draw it smudge nicely, but when I stop to draw and move off the pen, rectangular parts of smudges disappear.

I tried to use, yesterday Pencil2d on very low end ARM (2013, 2 very low-power cores@1Ghz, 1G RAM, that still have a not complete GL driver, this have impact on the overall desktop :

  • mypaint branch is very slow on it, a little faster if compositor is disable in XFCE, and very faster with Weston (Wayland test compositor), qt taking full benefits of it.
  • 0.6.4 (I need to test0.6.5), is a little bit slow but usable, didn’t tested it on Weston So in very low end computers, it can still be interesting to have access to standard drawing engine.

Another bug found, when training a little with the shortcuts:

  • Draw a doodle
  • Select the whole screen (ctrl+a, or make a selection of a part of the drawing with selector tool (shortcut: V)), cut/delete it (ctrl-x or suppr)
  • Now when you draw on the deleted surface, the previous image appear.

Today, I finished by background, and noticed that in case of the color of the roof (clear front part (defined at the end of the colors in palette of previous file), the color picker give me a darker color

A bug with onionskin in MyPaint version only:

  • draw a doodle
  • draw another doodle on other frame
  • activate onion skin of previous frame(s)
  • select (v) the doodle
  • use move (M) to move it => the previous frames are no more displayed by onion skin. It is displayed again when the move is fixed (by clicking outside of the frame).

Edit: I just noticed that only the rectangle that was selected (and then moved) hide its own part of the previous frame.

As an example case, this is annoying, in animations like walk cycles.

Thanks for testing

As for the performance, did you compare against the mypaint application, how is the performance there?

For sure it will require a faster computer in most cases because of the brush engine alone. Mypaint brush engine can do a lot of advance stuff and some of it is quite taxing on the cpu. Keeping the old drawing engine will both add more complexity to the code and to the user-interface, so that’s not something I’m planning to do.

I will look into the other bugs you mentioned.

MyPaint is about the same speed, this is a really low end and old hardware, I just would like to test it for pencil2D.

I believe I found another bug, in MyPaint brush, at a lower size threeshold, brush are no more drawn, but it lools like that’s at a greater size, that the minimum visible size.

If the performance is about the same, then there’s likely not much I can do to improve it further.

A new build will appear in 15 min or so… The mentioned bugs should be fixed now

  • Onion skin would not render correctly while transforming
  • Smudgetool would create artifacts after smudging and moving the cursor over the same area.
  • Deleting selections wouldn’t notify mypaint backend thus only temporarily deleting the painted content.

I believe I found another bug, in MyPaint brush, at a lower size threeshold, brush are no more drawn, but it lools like that’s at a greater size, that the minimum visible size.

I’m not quite sure I understand the issue here, is this after modifying the brush parameters and if so, what would you expect to happen given the parameters set?

Very nice, it looks like all the bugs are fixed. I believe the bug for the brush at little scale was linked to buffers too, that was with the Radius parameter on the left (in options box). At least, I tried to reproduce it, and don’t see this bug anymore. Thank you so much.

Just after validating, I tried to re-open the previous project (I made some animation with 0.6.5 during this week, to be more proficient with Pencil2d, and animation, I didn’t practiced a lot until now).

And I see a new bug, when I open the project, the background picture is in black and shifted right bottom. This in not the case when I open it with 0.6.5. I joined the project file, that’s perhaps due to new layer added above.

Vaux-le-Vicomte.pclx (2.8 MB)

There is an issue opened, about shift in selection, in mainline git mypaint too, don’t know if it’s related.

Ah… that’s a regression it seems. It applies onion skin to all layers instead of only the selected one, which is why we see a huge black blob, plus I forgot to disable the world transform.

Should be fixed now.

Fix confirmed ! :smiley: :ok_hand: I believe everything is fixed now, will work few hours to see if I can found any other hidden :hatching_chick: bug :) . Thanks again. :+1:

Oops, i added a reply, but delete it, what i take for a bug is just normal bahavior (i didn’t draw on background frame, so a new frame was created, and the current background was the displayed by onion skin, sorry).

1 Like

On the exempel attached, go to frame 12, (the project should be opened at this frame). Draw on the litle drawing like a > at left of the round, the > will disappear This was hard to reproduce, but happily kept in this file. If you draw elsewhere, it will not disappear

if drawn are added, elsewhere, draw on it will not delete it. But if after that all additional strokes are removed by ctrll-z, drawing on the litttle stroke will made it disappear again.

bug-ctrl-z.pclx (17.3 KB)

I also seen that if there are place in the column where brushes selector is, and we resize it’s own area upper, the brush area is kept small, and there is still need to scroll, even if there is anough place to display all brushes.

@Popolon Thanks for your continuous participation :slight_smile:

I have tweaked the layout now so that the brush list will expand, leaving no empty space. Additionally the brush selector will also now only be shown when using a tool that’s relevant, except if the tool is temporary, then the widget will stay but be shown as empty. This is to make sure the canvas doesn’t bounce around whenever you simply want to move point of interest a bit.

Other notable fixes:

  • Right-clicking to activate temporary hand tool would switch back to previous tool

I will look into that bug you mentioned… I can reproduce it too though I can’t quite figure out why it would delete the drawing simply because it’s small… fun stuff :smiley:

Do you have more info about how you got around producing that?

Thanks so much perfectly :slight_smile:

I don’t remember exactly, only draw few frames, do some do/undo/redo, i had a little bigger drawing with the same bug first, but trying to figure out in which i drawn deleted/undo/redrawn several time, before having the idea to save it to have an example to test. I didn’t used so much the mypaint version, still working on basis (and training with mypaint itself too) these weeks.

I will try to make another animation with this branch, now most things seems perfect. and as soon I seen a similar bug, I will try to note the last actions.

I added informations about this branch into MyPaint Discuss forum, some MyPaint users could also like it.

1 Like

A rounding error is all it takes… :stuck_out_tongue: because of the stroke placement and a rounding error when calculating which tile should be used, the paint ended up on a wrong tile… that’s why it disappeared.

Try to compile the latest changes, I believe the tile bug should be fixed now.

1 Like

Compiled new version, I didn’t had time to test enough to found this bug today.

I found a crash with hand tool. Just need to use hand tool and move the canvas. Here is the backtrace of gdb (sorry debug informations are missing in libs):

Thread 1 "pencil2d" received signal SIGSEGV, Segmentation fault.
0x00005555556e38bc in ?? ()
(gdb) bt
#0  0x00005555556e38bc in  ()
#1  0x00007ffff6cce036 in  () at /usr/lib/libQt5Core.so.5
#2  0x000055555573fd42 in  ()
#3  0x0000555555723167 in  ()
#4  0x00005555556e3465 in  ()
#5  0x00005555556e37f0 in  ()
#6  0x00007ffff7a70b0e in QWidget::event(QEvent*) ()
    at /usr/lib/libQt5Widgets.so.5
#7  0x00007ffff7a2f752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () at /usr/lib/libQt5Widgets.so.5
#8  0x00007ffff7a3687b in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff6c96cda in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () at /usr/lib/libQt5Core.so.5
#10 0x00007ffff7a3587e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool, bool) ()
    at /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff7a89249 in  () at /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff7a8c63f in  () at /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff7a2f752 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () at /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff6c96cda in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () at /usr/lib/libQt5Core.so.5
--Type  for more, q to quit, c to continue without paging--
#15 0x00007ffff72334ac in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#16 0x00007ffff7208bac in QWindowSystemInterface::sendWindowSystemEvents(QFlags) () at /usr/lib/libQt5Gui.so.5
#17 0x00007ffff22ccf9c in  () at /usr/lib/libQt5XcbQpa.so.5
#18 0x00007ffff56e9914 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff573d7d1 in  () at /usr/lib/libglib-2.0.so.0
#20 0x00007ffff56e8121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#21 0x00007ffff6cef941 in QEventDispatcherGlib::processEvents(QFlags) ()
    at /usr/lib/libQt5Core.so.5
#22 0x00007ffff6c9565c in QEventLoop::exec(QFlags) ()
    at /usr/lib/libQt5Core.so.5
#23 0x00007ffff6c9daf4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#24 0x000055555563fe33 in  ()
#25 0x00005555555afc4f in main ()