Page MenuHome

Texture Paint with stroke method = curve, doesn't work
Closed, DuplicatePublic

Description

System Information
Operating system: Windows 7
Graphics card: Quadro FX 4800

Blender Version
Broken: (example: 2.80 Release candidate)
Worked: 2.79b

Short description of error
Make some curve in stroke method in the texture painting mode. Then click Draw Curve button without a result.

Exact steps for others to reproduce the error
Some screen shot

Event Timeline

johan tri handoyo (johantri) renamed this task from Texture Paint stroke method curve doesn't work to Texture Paint with stroke method = curve, doesn't work.Jul 19 2019, 11:44 AM

@johan tri handoyo (johantri)
I can't reproduce this with RC1, see the gif animation below.
The Quadro FX 4800 has less than 2GB RAM? Maybe that is the issue. You can find the requirements here: https://www.blender.org/download/requirements/

My System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 960/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.36
Blender Version
version: 2.80 (sub 74), branch: master, commit date: 2019-07-11 13:50, hash: rB06312c6d2db8

Germano Cavalcante (mano-wii) lowered the priority of this task from 90 to 30.Jul 19 2019, 3:49 PM

We require a .blend file and simple steps to reproduce the problem.

Here's the .blend file. I also try it on my Ubuntu 18.04.2 LTS machine with GTX 1080 graphic card, create a new file, still the same result. No stroke appears on the surface. The steps are exactly like the .gif file Christina posted, except that i use ctrl-left click to create the curve. Thanks!

Germano Cavalcante (mano-wii) raised the priority of this task from 30 to 50.Jul 22 2019, 2:43 PM

The problem only occurs when you try to activate the operator by the property editor.
The image_paint_poll returns false because the context is not a 3Dview (and makes sense, which 3D view to choose?).

The problem could be mitigated if the operator was normally called in when clicking on the 3D view (as already works with any other Stroke Method).
Here a solution to run the operator when clicking:

diff --git a/source/blender/editors/sculpt_paint/paint_curve.c b/source/blender/editors/sculpt_paint/paint_curve.c
index d9fd194e96f..893aa20238f 100644
--- a/source/blender/editors/sculpt_paint/paint_curve.c
+++ b/source/blender/editors/sculpt_paint/paint_curve.c
@@ -752,7 +752,7 @@ static int paintcurve_cursor_invoke(bContext *C, wmOperator *UNUSED(op), const w
       break;
   }
 
-  return OPERATOR_FINISHED;
+  return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
 }
 
 void PAINTCURVE_OT_cursor(wmOperatorType *ot)

@Brecht Van Lommel (brecht), can you take a look?

I don't think clicking should draw the curve, much too easy to misclick when editing the curve. Enter key can already be used for drawing.