Page MenuHome

"Show Texture in texture tab" button: full support for Sculpt / Paint
ClosedPublic

Authored by Philipp Oeser (lichtwerk) on Mar 5 2021, 2:37 PM.

Details

Summary

In rBb279fef85d1a: Geometry Nodes: show "Show Texture in texture tab" button the button that displays a texture in a Properties
Editor texture tab was added for geometry nodes.
Same commit will actually show them for Brush textures as well (but
disabled -- because the Texture users dont match).
This task is for finanlizing proper support for Brush textures as well.
There was originally a separate patch for this (see D9813: Sculpt / Paint: show "Show Texture in texture tab" button) but most of
it was already implemented by above commit.

what this solves
from the default startup file:

  • go to any sculpt or paint mode and add a texture to your brush
  • observe the button to edit this texture in the Properties editor is

greyed out

There are two possible solutions:

  • [1] call the texture template for the brush texture_slot texture

(instead of the brush 'texture') from the python UI code, this is then
working in harmony how ButsTextureUser works for brushes

  • [2] tweak the way ButsTextureUser works (dont rely on

RNA_BrushTextureSlot there)

This patch implements the first solution.
Since brush.texture_slot is br->mtex RNA wrapped and brush.texture
is br->mtex.tex RNA wrapped, this really comes down to doing the same
thing. I checked that creating a new texture and unlinking/deleting will
have the same results even though they take slightly different code
paths: assignment and NULLing the pointers are working on the same (see
above) and RNA update callbacks also do the same [even though in
different functions]:

  • brush.texture will do rna_Brush_main_tex_update
  • brush.texture_slot.texture will do rna_TextureSlotTexture_update /

rna_TextureSlot_update
(only difference here is an additional DEG relations update in the case
of texture_slot which should not do harm)

Diff Detail

Repository
rB Blender