Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--release/datafiles/userdef/userdef_default_theme.c3
m---------release/scripts/addons0
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py18
-rw-r--r--source/blender/blenloader/intern/versioning_userdef.c3
-rw-r--r--source/blender/draw/engines/overlay/shaders/background_frag.glsl4
-rw-r--r--source/blender/draw/intern/draw_common.c5
-rw-r--r--source/blender/draw/intern/draw_common.h7
-rw-r--r--source/blender/draw/intern/shaders/common_globals_lib.glsl5
-rw-r--r--source/blender/editors/include/UI_resources.h4
-rw-r--r--source/blender/editors/interface/resources.c12
-rw-r--r--source/blender/gpu/intern/gpu_immediate_util.c14
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h6
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c22
13 files changed, 90 insertions, 13 deletions
diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 099b20ced8d..b35d060d884 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -240,6 +240,9 @@ const bTheme U_theme_default = {
.editor_outline = RGBA(0x1f1f1fff),
.icon_alpha = 1.0f,
.icon_saturation = 0.5f,
+ .transparent_checker_primary = RGBA(0x333333ff),
+ .transparent_checker_secondary = RGBA(0x262626ff),
+ .transparent_checker_size = 8,
.widget_text_cursor = RGBA(0x3399e6ff),
.xaxis = RGBA(0xff3352ff),
.yaxis = RGBA(0x8bdc00ff),
diff --git a/release/scripts/addons b/release/scripts/addons
-Subproject 47a32a5370d36942674621e5a03e57e8dd4986d
+Subproject c6d8243636123f5babc443614cb7ed90ad15b6f
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index afea9b8bdbf..e6ee779d89b 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -897,6 +897,23 @@ class USERPREF_PT_theme_interface_styles(ThemePanel, CenterAlignMixIn, Panel):
flow.prop(ui, "widget_emboss")
+class USERPREF_PT_theme_interface_transparent_checker(ThemePanel, CenterAlignMixIn, Panel):
+ bl_label = "Transparent Checkerboard"
+ bl_options = {'DEFAULT_CLOSED'}
+ bl_parent_id = "USERPREF_PT_theme_user_interface"
+
+ def draw_centered(self, context, layout):
+ theme = context.preferences.themes[0]
+ ui = theme.user_interface
+
+ flow = layout.grid_flow(
+ row_major=False, columns=0, even_columns=True, even_rows=False, align=False)
+
+ flow.prop(ui, "transparent_checker_primary")
+ flow.prop(ui, "transparent_checker_secondary")
+ flow.prop(ui, "transparent_checker_size")
+
+
class USERPREF_PT_theme_interface_gizmos(ThemePanel, CenterAlignMixIn, Panel):
bl_label = "Axis & Gizmo Colors"
bl_options = {'DEFAULT_CLOSED'}
@@ -2219,6 +2236,7 @@ classes = (
USERPREF_PT_theme_interface_state,
USERPREF_PT_theme_interface_styles,
USERPREF_PT_theme_interface_gizmos,
+ USERPREF_PT_theme_interface_transparent_checker,
USERPREF_PT_theme_interface_icons,
USERPREF_PT_theme_text_style,
USERPREF_PT_theme_bone_color_sets,
diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c
index 1e8f7a22b66..2d2641aca8b 100644
--- a/source/blender/blenloader/intern/versioning_userdef.c
+++ b/source/blender/blenloader/intern/versioning_userdef.c
@@ -216,6 +216,9 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme)
*/
{
/* Keep this block, even when empty. */
+ FROM_DEFAULT_V4_UCHAR(tui.transparent_checker_primary);
+ FROM_DEFAULT_V4_UCHAR(tui.transparent_checker_secondary);
+ btheme->tui.transparent_checker_size = U_theme_default.tui.transparent_checker_size;
}
#undef FROM_DEFAULT_V4_UCHAR
diff --git a/source/blender/draw/engines/overlay/shaders/background_frag.glsl b/source/blender/draw/engines/overlay/shaders/background_frag.glsl
index 60fa83e1695..d5aaaf75b79 100644
--- a/source/blender/draw/engines/overlay/shaders/background_frag.glsl
+++ b/source/blender/draw/engines/overlay/shaders/background_frag.glsl
@@ -71,10 +71,10 @@ void main()
bg_col += dither();
break;
case BG_CHECKER:
- float size = 8.0 * sizePixel;
+ float size = sizeChecker * sizePixel;
ivec2 p = ivec2(floor(gl_FragCoord.xy / size));
bool check = mod(p.x, 2) == mod(p.y, 2);
- bg_col = (check) ? colorCheckerLow.rgb : colorCheckerHigh.rgb;
+ bg_col = (check) ? colorCheckerPrimary.rgb : colorCheckerSecondary.rgb;
break;
}
diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c
index 0a193f20739..2be0249a2cd 100644
--- a/source/blender/draw/intern/draw_common.c
+++ b/source/blender/draw/intern/draw_common.c
@@ -91,8 +91,9 @@ void DRW_globals_update(void)
UI_GetThemeColor4fv(TH_SKIN_ROOT, gb->colorSkinRoot);
UI_GetThemeColor4fv(TH_BACK, gb->colorBackground);
UI_GetThemeColor4fv(TH_BACK_GRAD, gb->colorBackgroundGradient);
- UI_COLOR_RGBA_FROM_U8(0x26, 0x26, 0x26, 0xFF, gb->colorCheckerLow);
- UI_COLOR_RGBA_FROM_U8(0x33, 0x33, 0x33, 0xFF, gb->colorCheckerHigh);
+ UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_PRIMARY, gb->colorCheckerPrimary);
+ UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_SECONDARY, gb->colorCheckerSecondary);
+ gb->sizeChecker = UI_GetThemeValuef(TH_TRANSPARENT_CHECKER_SIZE);
UI_GetThemeColor4fv(TH_V3D_CLIPPING_BORDER, gb->colorClippingBorder);
/* Custom median color to slightly affect the edit mesh colors. */
diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h
index 5818d84a7af..f14cdc0dbde 100644
--- a/source/blender/draw/intern/draw_common.h
+++ b/source/blender/draw/intern/draw_common.h
@@ -82,8 +82,8 @@ typedef struct GlobalsUboStorage {
float colorBackground[4];
float colorBackgroundGradient[4];
- float colorCheckerLow[4];
- float colorCheckerHigh[4];
+ float colorCheckerPrimary[4];
+ float colorCheckerSecondary[4];
float colorClippingBorder[4];
float colorEditMeshMiddle[4];
@@ -148,8 +148,9 @@ typedef struct GlobalsUboStorage {
float sizePixel, pixelFac;
float sizeObjectCenter, sizeLightCenter, sizeLightCircle, sizeLightCircleShadow;
float sizeVertex, sizeEdge, sizeEdgeFix, sizeFaceDot;
+ float sizeChecker;
- float pad_globalsBlock[2];
+ float pad_globalsBlock;
} GlobalsUboStorage;
/* Keep in sync with globalsBlock in shaders */
BLI_STATIC_ASSERT_ALIGN(GlobalsUboStorage, 16)
diff --git a/source/blender/draw/intern/shaders/common_globals_lib.glsl b/source/blender/draw/intern/shaders/common_globals_lib.glsl
index cfadb87819c..9dfd48cc21a 100644
--- a/source/blender/draw/intern/shaders/common_globals_lib.glsl
+++ b/source/blender/draw/intern/shaders/common_globals_lib.glsl
@@ -45,8 +45,8 @@ layout(std140) uniform globalsBlock
vec4 colorBackground;
vec4 colorBackgroundGradient;
- vec4 colorCheckerLow;
- vec4 colorCheckerHigh;
+ vec4 colorCheckerPrimary;
+ vec4 colorCheckerSecondary;
vec4 colorClippingBorder;
vec4 colorEditMeshMiddle;
@@ -116,6 +116,7 @@ layout(std140) uniform globalsBlock
float sizeEdge;
float sizeEdgeFix;
float sizeFaceDot;
+ float sizeChecker;
float pad_globalsBlock;
};
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index c7300f298c0..b0995250979 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -308,6 +308,10 @@ typedef enum ThemeColorID {
TH_WIDGET_TEXT_CURSOR,
TH_EDITOR_OUTLINE,
+ TH_TRANSPARENT_CHECKER_PRIMARY,
+ TH_TRANSPARENT_CHECKER_SECONDARY,
+ TH_TRANSPARENT_CHECKER_SIZE,
+
TH_AXIS_X, /* X/Y/Z Axis */
TH_AXIS_Y,
TH_AXIS_Z,
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 63cf2f19737..648bbd269b7 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -899,6 +899,18 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
case TH_WIDGET_TEXT_CURSOR:
cp = btheme->tui.widget_text_cursor;
break;
+
+ case TH_TRANSPARENT_CHECKER_PRIMARY:
+ cp = btheme->tui.transparent_checker_primary;
+ break;
+ case TH_TRANSPARENT_CHECKER_SECONDARY:
+ cp = btheme->tui.transparent_checker_secondary;
+ break;
+ case TH_TRANSPARENT_CHECKER_SIZE:
+ cp = &btheme->tui.transparent_checker_size;
+ break;
+
+
case TH_AXIS_X:
cp = btheme->tui.xaxis;
break;
diff --git a/source/blender/gpu/intern/gpu_immediate_util.c b/source/blender/gpu/intern/gpu_immediate_util.c
index 28544d50ba1..7266f595447 100644
--- a/source/blender/gpu/intern/gpu_immediate_util.c
+++ b/source/blender/gpu/intern/gpu_immediate_util.c
@@ -29,6 +29,8 @@
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
+#include "UI_resources.h"
+
static const float cube_coords[8][3] = {
{-1, -1, -1},
{-1, -1, +1},
@@ -362,11 +364,17 @@ void imm_draw_box_wire_3d(uint pos, float x1, float y1, float x2, float y2)
void imm_draw_box_checker_2d(float x1, float y1, float x2, float y2)
{
uint pos = GPU_vertformat_attr_add(immVertexFormat(), "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
+ float checker_primary[4];
+ float checker_secondary[4];
+ int checker_size = UI_GetThemeValue(TH_TRANSPARENT_CHECKER_SIZE);
+
immBindBuiltinProgram(GPU_SHADER_2D_CHECKER);
+ UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_PRIMARY, checker_primary);
+ UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_SECONDARY, checker_secondary);
- immUniform4f("color1", 0.15f, 0.15f, 0.15f, 1.0f);
- immUniform4f("color2", 0.2f, 0.2f, 0.2f, 1.0f);
- immUniform1i("size", 8);
+ immUniform4fv("color1", checker_primary);
+ immUniform4fv("color2", checker_secondary);
+ immUniform1i("size", checker_size);
immRectf(pos, x1, y1, x2, y2);
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index ccd93fb9b06..30b4098c2bb 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -169,7 +169,11 @@ typedef struct ThemeUI {
short menu_shadow_width;
unsigned char editor_outline[4];
- char _pad0[2];
+
+ /* Transparent Grid */
+ unsigned char transparent_checker_primary[4], transparent_checker_secondary[4];
+ unsigned char transparent_checker_size;
+ char _pad1[1];
float icon_alpha;
float icon_saturation;
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 34cc75396de..f68c3c3bceb 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -1533,6 +1533,28 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna)
prop, "Text Cursor", "Color of the interface widgets text insertion cursor (caret)");
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+ /* Transparent Grid */
+ prop = RNA_def_property(srna, "transparent_checker_primary", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_float_sdna(prop, NULL, "transparent_checker_primary");
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(
+ prop, "Primary Color", "Primary color of checkerboard pattern indicating transparent areas");
+ RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+
+ prop = RNA_def_property(srna, "transparent_checker_secondary", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_float_sdna(prop, NULL, "transparent_checker_secondary");
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop,
+ "Secondary Color",
+ "Secondary color of checkerboard pattern indicating transparent areas");
+ RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+
+ prop = RNA_def_property(srna, "transparent_checker_size", PROP_INT, PROP_PIXEL);
+ RNA_def_property_ui_text(
+ prop, "Checkerboard Size", "Size of checkerboard pattern indicating transparent areas");
+ RNA_def_property_range(prop, 2, 48);
+ RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+
/* axis */
prop = RNA_def_property(srna, "axis_x", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "xaxis");