New drawing process concept

Hi guys!

I like your product and want to participate in development.

I have an idea how to make the drawing process in synfig more convenient. To make it like in Gimp and Photoshop.

At the moment there is an image which is constructed from separate primitive objects called layers.
I want to make it so that the user works in a container paradigm. (In other editors they are called layers). What does this mean?
I create simple objects within containers, and then work with the entire container, not individual primitives, in the process.

I’ve been figuring out synfig for a couple of weeks now to create a copy of the DrawTool primitive, and work on that copy. I want to successfully implement the new logic of this copy. Let’s call this copy PencilTool.
I’m having trouble creating a copy(

Can you please tell me exactly where I should implement the PencilTool?

1 Like

I properly understood that I should implement new duplicate PensilTool here in synfig-studio/src/gui/states.

But class object should be initialized in another place, and I have no any idea where :pensive:

So, my question is:
Where Tool objects are created?

Hi and Welcome!

Synfig has something similar to the conventional layer concept: the Group layer.

Anyway, the tools shown in Tools Panel are, as you could see, called ‘states’ in code, as they are states on a FSM for workarea editing.

Every workspace editor state defines a global instance of itself:

Currently, the Synfig Studio App class register manually them at construction:

Notice that the user confusion is completely understandable, and maybe a solution is to provide a simplified version of Layers Panel: instead of listing every scene element as they are internally stored (a layer tree).

This panel would show a list of layers, that are actually ‘group layers’ and voilà: each group layer is the normal/regular concept of layer (that every image/animation program uses).

As other software, inner group/layer elements (that synfig calls ‘layers’) are not accessible in this list, only by clicking on them on the workarea. Once a layer selected it can be moved up or down (z-depth) like they can with current Layer Panel buttons.

The ‘group elements/shapes’ concept of other software is the same of Synfig ‘group’ (again).

Anything missing here?

Thank you so much, especially for finite state machine mention)
I will take today some time to learn about it)
Very nice concept, but I have never used it before)

Your idea about simplified version of Layers Panel is generally clear for me. But again, I need to better understand how the current tools are implemented.

Thank you,
I keep moving.

You’re welcome. Glad to help.
You can read too, if you didn’t yet, to clarify some stuff.

About the ‘simple layer panel’, it wouldn’t even need changes on tools’ code.