I Research of usability functions for cursors and outlines: 1. Indicate the position of the brush. 2. Indicate the center of the brush. Important when using size or rotation dynamics. 3. Indicate the rotation of the brush. Important when using rotation dynamics. 4. Indicate the shape of the brush a) Indicate size of the brush b) Indicate aspect ratio of the brush c) Indicate detailed outline of the brush 5. Indicate angle stylus/tablet 6. When above functions are needed a) When editing the brush. For example, when changing the size on canvas b) When user prepares to make a stroke. This is initial data for the user, how stroke will behave when he will touch the canvas c) While stroke is created. When user is touching and moving on the canvas 7. Special usability function of outline and cursor a) they should be visible on any background b) they should not distract the user c) they should tell the user what they can do and what not II How currently Krita handles cursors and outlines: 1. Cursors can be used for positions, I - 1, 2, 6 (a - using temp outline, b, c), 7 (a, b - not for everybody, but quite well) 2. Outlines can be used for positions, I - 1, 2 (only when outline is very small), 3, 4 (a, b, c) , 6 (a, c), 7 (a, b - not for everybody) 3. 3D Model Cursor can be used for positions, I - 1, 2, 3, 5, 6 (a - using temp outline, b, c) 4. Krita can't use both cursors and outlines at the same time 5. Krita doesn't show that user can't use brush, for example when layer is locked, or it is layer that can't be painted on. III Using lists above, we can see few problems: 1. The biggest problem. There is no way to have all the functionality or most important ones - size, aspect ratio/shape , center, rotation - at the same time. 2. 3D model, cursor and outline could have better functionality, the existing one is not bad, but there is room for small improvements 3. User doesn't know when and what he can't or can do. 4. Additional problem with outline is when dab of a brush is very detailed and contrast is high. When that is a case, a lot of outline is drawn in center of the brush outline filling it with noise. IV Example materials, my personal experience, opinions and preferences: 1. Gimp is good example, it has most important functions like, cursor and outline at the same time, cursor dynamics working even when not touching the canvas and so on. Additionally I found new way of displaying for outline (black and white dashed line) much more comfortable for my eyes, the old xor one was deleted because performance regression, but some users probably will prefer xor. I think both ways of display could be present in Krita. 2. Bad example Photoshop. In Photoshop rotation is never displayed by outline. My friends don't use rotation because of that. The biggest issue is before the stroke starts, user doesn't know where exactly brush will start and what the rotation will be. That's why rotation dynamics before touching the canvas is important. 3. Corel Painter, next good example. It has many useful options for display. Some are for cursors, outlines but there is even something similar for 3D model cursor + the simplified outline. V Reports relevant to this one: - https://bugs.kde.org/show_bug.cgi?id=287073 - https://bugs.kde.org/show_bug.cgi?id=268974 - https://bugs.kde.org/show_bug.cgi?id=258421 - https://bugs.kde.org/show_bug.cgi?id=299555 VI How to solve the problems. I think detailed design documentation should be made first. I volunteer to help with that, any developer willing to work on this. I can help by writing the basic design document, testing the implementation and as one of possible feedback crew members. I hope You will find this proposal useful. Regards n-pigeon Reproducible: Always
Let;s make this a focus for 2.6, so we can do it properly :-). Thanks for all the work!
Rotation, tilt and center are available now: we have multiple cursor options now.