diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 10394e5..54a08e9 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -753,30 +753,16 @@ class USERPREF_PT_theme(Panel): padding = subsplit.split(percentage=0.15) colsub = padding.column() colsub = padding.column() - colsub.row().prop(ui, "menu_shadow_fac") - - subsplit = row.split(percentage=0.85) - - padding = subsplit.split(percentage=0.15) - colsub = padding.column() - colsub = padding.column() + colsub.row().prop(ui, "menu_shadow") colsub.row().prop(ui, "menu_shadow_width") - row = col.row() - - subsplit = row.split(percentage=0.95) - - padding = subsplit.split(percentage=0.15) - colsub = padding.column() - colsub = padding.column() - colsub.row().prop(ui, "icon_alpha") - subsplit = row.split(percentage=0.85) padding = subsplit.split(percentage=0.15) colsub = padding.column() colsub = padding.column() colsub.row().prop(ui, "widget_emboss") + colsub.row().prop(ui, "icon_alpha") col.separator() col.separator() diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 0215bec..3053c99 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -42,7 +42,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 273 -#define BLENDER_SUBVERSION 2 +#define BLENDER_SUBVERSION 3 /* 262 was the last editmesh release but it has compatibility code for bmesh data */ #define BLENDER_MINVERSION 270 #define BLENDER_MINSUBVERSION 5 diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h index d289e90..a4be1e6 100644 --- a/source/blender/editors/include/UI_resources.h +++ b/source/blender/editors/include/UI_resources.h @@ -274,6 +274,8 @@ enum { TH_WIDGET_EMBOSS, + TH_MENU_SHADOW, + TH_AXIS_X, /* X/Y/Z Axis */ TH_AXIS_Y, TH_AXIS_Z, diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index bcd9b9a..db4d666 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -1736,13 +1736,13 @@ void UI_draw_box_shadow(unsigned char alpha, float minx, float miny, float maxx, } -void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int UNUSED(select)) +void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, int UNUSED(select)) { + bTheme *btheme = UI_GetTheme(); int i; float rad; float a; - float dalpha = alpha * 2.0f / 255.0f, calpha; - + float dalpha = (btheme->tui.menu_shadow[3] * 4.0f) / 255.0f, calpha; glEnable(GL_BLEND); if (radius > (BLI_rctf_size_y(rct) - 10.0f) / 2.0f) @@ -1763,8 +1763,7 @@ void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha calpha = dalpha; for (; i--; a -= aspect) { - /* alpha ranges from 2 to 20 or so */ - glColor4f(0.0f, 0.0f, 0.0f, calpha); + glColor4ub(UNPACK3(btheme->tui.menu_shadow), calpha); calpha += dalpha; UI_draw_roundbox_gl_mode(GL_POLYGON, rct->xmin - a, rct->ymin - a, rct->xmax + a, rct->ymax - 10.0f + a, rad + a); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 7a217e5..db5a528 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -591,7 +591,7 @@ extern int ui_handler_panel_region(struct bContext *C, const struct wmEvent *eve extern void ui_draw_aligned_panel(struct uiStyle *style, uiBlock *block, const rcti *rect, const bool show_pin); /* interface_draw.c */ -extern void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int select); +extern void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, int select); void ui_draw_gradient(const rcti *rect, const float hsv[3], const int type, const float alpha); diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 04a886b..312d1c0 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -2096,7 +2096,7 @@ static void widget_softshadow(const rcti *rect, int roundboxalign, const float r bTheme *btheme = UI_GetTheme(); uiWidgetBase wtb; rcti rect1 = *rect; - float alphastep; + char alpha; int step, totvert; float quad_strip[WIDGET_SIZE_MAX * 2 + 2][2]; const float radout = UI_ThemeMenuShadowWidth(); @@ -2115,7 +2115,7 @@ static void widget_softshadow(const rcti *rect, int roundboxalign, const float r totvert = round_box_shadow_edges(wtb.inner_v, &rect1, radin, roundboxalign & (UI_CNR_BOTTOM_RIGHT | UI_CNR_BOTTOM_LEFT), 0.0f); /* we draw a number of increasing size alpha quad strips */ - alphastep = 3.0f * btheme->tui.menu_shadow_fac / radout; + alpha = (3.0f * btheme->tui.menu_shadow[3] / radout); glEnableClientState(GL_VERTEX_ARRAY); @@ -2124,7 +2124,7 @@ static void widget_softshadow(const rcti *rect, int roundboxalign, const float r round_box_shadow_edges(wtb.outer_v, &rect1, radin, UI_CNR_ALL, (float)step); - glColor4f(0.0f, 0.0f, 0.0f, alphastep * (1.0f - expfac)); + glColor4ub(UNPACK3(btheme->tui.menu_shadow), (alpha * (1.0f - expfac))); widget_verts_to_quad_strip(&wtb, totvert, quad_strip); diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index aa5b257..7bab6f6 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -645,6 +645,9 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo case TH_WIDGET_EMBOSS: cp = btheme->tui.widget_emboss; break; + case TH_MENU_SHADOW: + cp = btheme->tui.menu_shadow; break; + case TH_AXIS_X: cp = btheme->tui.xaxis; break; case TH_AXIS_Y: @@ -845,11 +848,12 @@ void ui_theme_init_default(void) rgba_char_args_set_fl(btheme->tui.widget_emboss, 1.0f, 1.0f, 1.0f, 0.02f); + rgba_char_args_set(btheme->tui.menu_shadow, 0, 0, 0, 255); + rgba_char_args_set(btheme->tui.xaxis, 220, 0, 0, 255); rgba_char_args_set(btheme->tui.yaxis, 0, 220, 0, 255); rgba_char_args_set(btheme->tui.zaxis, 0, 0, 220, 255); - btheme->tui.menu_shadow_fac = 0.5f; btheme->tui.menu_shadow_width = 12; /* Bone Color Sets */ @@ -2326,9 +2330,7 @@ void init_userdef_do_versions(void) bTheme *btheme; for (btheme = U.themes.first; btheme; btheme = btheme->next) { - /* rna definition limits fac to 0.01 */ - if (btheme->tui.menu_shadow_fac == 0.0f) { - btheme->tui.menu_shadow_fac = 0.5f; + if (btheme->tui.menu_shadow_width == 0) { btheme->tui.menu_shadow_width = 12; } } @@ -2572,6 +2574,14 @@ void init_userdef_do_versions(void) } } + if (U.versionfile < 273 || (U.versionfile == 273 && U.subversionfile < 2)) { + bTheme *btheme; + for (btheme = U.themes.first; btheme; btheme = btheme->next) { + /* UI menu shadow color */ + rgba_char_args_set(btheme->tui.menu_shadow, 0, 0, 0, 255); + } + } + if (U.pixelsize == 0.0f) U.pixelsize = 1.0f; diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index d03f980..d96964e 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -418,7 +418,6 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, rctf *rct = &node->totr; int color_id = node_get_colorid(node); unsigned char color[4]; - float alpha; /* skip if out of view */ if (BLI_rctf_isect(&node->totr, &ar->v2d.cur, NULL) == false) { @@ -428,14 +427,13 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, } UI_GetThemeColor4ubv(TH_NODE_FRAME, color); - alpha = (float)(color[3]) / 255.0f; /* shadow */ - node_draw_shadow(snode, node, BASIS_RAD, alpha); + node_draw_shadow(snode, node, BASIS_RAD); /* body */ if (node->flag & NODE_CUSTOM_COLOR) - glColor4f(node->color[0], node->color[1], node->color[2], alpha); + glColor4f(node->color[0], node->color[1], node->color[2], (float)(color[3]) / 255.0f); else UI_ThemeColor4(TH_NODE_FRAME); glEnable(GL_BLEND); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 127e2d3..67eedd3 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -72,7 +72,7 @@ #endif /* XXX interface.h */ -extern void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int select); +extern void ui_draw_dropshadow(const rctf *rct, float radius, float aspect, int select); float ED_node_grid_size(void) { @@ -743,13 +743,13 @@ static void node_toggle_button_cb(struct bContext *C, void *node_argv, void *op_ WM_operator_name_call(C, opname, WM_OP_INVOKE_DEFAULT, NULL); } -void node_draw_shadow(SpaceNode *snode, bNode *node, float radius, float alpha) +void node_draw_shadow(SpaceNode *snode, bNode *node, float radius) { rctf *rct = &node->totr; UI_draw_roundbox_corner_set(UI_CNR_ALL); if (node->parent == NULL) - ui_draw_dropshadow(rct, radius, snode->aspect, alpha, node->flag & SELECT); + ui_draw_dropshadow(rct, radius, snode->aspect, node->flag & SELECT); else { const float margin = 3.0f; @@ -785,7 +785,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN } /* shadow */ - node_draw_shadow(snode, node, BASIS_RAD, 1.0f); + node_draw_shadow(snode, node, BASIS_RAD); /* header uses color from backdrop, but we make it opaqie */ if (color_id == TH_NODE) { @@ -960,7 +960,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b char showname[128]; /* 128 is used below */ /* shadow */ - node_draw_shadow(snode, node, hiddenrad, 1.0f); + node_draw_shadow(snode, node, hiddenrad); /* body */ UI_ThemeColor(color_id); diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index 27c3ab8..29e9973 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -73,7 +73,7 @@ int node_get_colorid(struct bNode *node); void node_socket_circle_draw(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock, float size, int highlight); int node_get_resize_cursor(int directions); -void node_draw_shadow(struct SpaceNode *snode, struct bNode *node, float radius, float alpha); +void node_draw_shadow(struct SpaceNode *snode, struct bNode *node, float radius); void node_draw_default(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node, bNodeInstanceKey key); void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 11807ba..dd76999 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -170,12 +170,12 @@ typedef struct ThemeUI { char widget_emboss[4]; - /* fac: 0 - 1 for blend factor, width in pixels */ - float menu_shadow_fac; + /* menu shadows: width: size of shadow in pixels, shadow: color of shadow */ + char menu_shadow[4]; short menu_shadow_width; - - short pad[3]; - + + short pad; + char iconfile[256]; // FILE_MAXFILE length float icon_alpha; @@ -362,6 +362,7 @@ typedef struct bTheme { char name[32]; ThemeUI tui; + int pad0; /* Individual Spacetypes */ /* note: ensure UI_THEMESPACE_END is updated when adding */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index fa0e1db..40a94ec 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1024,11 +1024,12 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna) RNA_def_property_ui_text(prop, "State Colors", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "menu_shadow_fac", PROP_FLOAT, PROP_FACTOR); - RNA_def_property_ui_text(prop, "Menu Shadow Strength", "Blending factor for menu shadows"); - RNA_def_property_range(prop, 0.01f, 1.0f); + prop = RNA_def_property(srna, "menu_shadow", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_float_sdna(prop, NULL, "menu_shadow"); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Shadow Color", "Color of menu shadows"); RNA_def_property_update(prop, 0, "rna_userdef_update"); - + prop = RNA_def_property(srna, "menu_shadow_width", PROP_INT, PROP_PIXEL); RNA_def_property_ui_text(prop, "Menu Shadow Width", "Width of menu shadows, set to zero to disable"); RNA_def_property_range(prop, 0.0f, 24.0f);