From 8df968d69f07d961097f646a405aa455e6a743f3 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Tue, 2 Mar 2021 14:57:51 +0100 Subject: "Show Texture in texture tab" button: full support for Sculpt / Paint In {rBb279fef85d1a} 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}) 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 {F9860470} 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) Differential Revision: https://developer.blender.org/D10626 --- release/scripts/startup/bl_ui/space_view3d_toolbar.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'release/scripts/startup/bl_ui/space_view3d_toolbar.py') diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index 83ab5bf3100..ee8fc1f3531 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -631,10 +631,10 @@ class VIEW3D_PT_tools_brush_texture(Panel, View3DPaintPanel): settings = self.paint_settings(context) brush = settings.brush + tex_slot = brush.texture_slot col = layout.column() - - col.template_ID_preview(brush, "texture", new="texture.new", rows=3, cols=8) + col.template_ID_preview(tex_slot, "texture", new="texture.new", rows=3, cols=8) brush_texture_settings(col, brush, context.sculpt_object) @@ -658,8 +658,9 @@ class VIEW3D_PT_tools_mask_texture(Panel, View3DPaintPanel, TextureMaskPanel): brush = context.tool_settings.image_paint.brush col = layout.column() + mask_tex_slot = brush.mask_texture_slot - col.template_ID_preview(brush, "mask_texture", new="texture.new", rows=3, cols=8) + col.template_ID_preview(mask_tex_slot, "texture", new="texture.new", rows=3, cols=8) brush_mask_texture_settings(col, brush) -- cgit v1.2.3