diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-06-01 18:42:21 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-06-01 18:42:21 +0400 |
commit | 32fe2d71fc74b3931dc189590e8b1e4636f1af73 (patch) | |
tree | ac12286e9ff646672e6774eca652a509e63ba249 /source/blender/editors/space_node | |
parent | 1e17f0b1b2d1b143118fd29672582797597c3965 (diff) |
Theme color for frame nodes. The alpha value from this theme color is also used when drawing frames with a custom color (which is just RGB).
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/drawnode.c | 13 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_draw.c | 10 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_intern.h | 2 |
3 files changed, 15 insertions, 10 deletions
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 0c4cf783eba..086b52de105 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -82,7 +82,7 @@ #include "node_intern.h" // XXX interface.h -extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select); +extern void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int select); /* ****************** SOCKET BUTTON DRAW FUNCTIONS ***************** */ @@ -970,6 +970,11 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN { rctf *rct = &node->totr; int color_id = node_get_colorid(node); + unsigned char color[4]; + float alpha; + + UI_GetThemeColor4ubv(TH_NODE_FRAME, color); + alpha = (float)(color[3])/255.0f; /* skip if out of view */ if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax || @@ -981,13 +986,13 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN } /* shadow */ - node_draw_shadow(snode, node, BASIS_RAD); + node_draw_shadow(snode, node, BASIS_RAD, alpha); /* body */ if (node->flag & NODE_CUSTOM_COLOR) - glColor3fv(node->color); + glColor4f(node->color[0], node->color[1], node->color[2], alpha); else - UI_ThemeColor4(TH_NODE); + UI_ThemeColor4(TH_NODE_FRAME); glEnable(GL_BLEND); uiSetRoundBox(UI_CNR_ALL); uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index b623e21d9cd..921aceb7b2e 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -83,7 +83,7 @@ /* width of socket columns in group display */ #define NODE_GROUP_FRAME 120 // XXX interface.h -extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select); +extern void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int select); /* XXX update functions for node editor are a mess, needs a clear concept */ void ED_node_tree_update(SpaceNode *snode, Scene *scene) @@ -669,13 +669,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) +void node_draw_shadow(SpaceNode *snode, bNode *node, float radius, float alpha) { rctf *rct = &node->totr; uiSetRoundBox(UI_CNR_ALL); if (node->parent==NULL) - ui_dropshadow(rct, radius, snode->aspect, node->flag & SELECT); + ui_dropshadow(rct, radius, snode->aspect, alpha, node->flag & SELECT); else { const float margin = 3.0f; @@ -712,7 +712,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN } /* shadow */ - node_draw_shadow(snode, node, BASIS_RAD); + node_draw_shadow(snode, node, BASIS_RAD, 1.0f); /* header */ if (color_id==TH_NODE) @@ -872,7 +872,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); + node_draw_shadow(snode, node, hiddenrad, 1.0f); /* 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 87f2ac74672..35b1583b24e 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -72,7 +72,7 @@ void node_menus_register(void); int node_get_colorid(struct bNode *node); void node_socket_circle_draw(struct bNodeTree *ntree, 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); +void node_draw_shadow(struct SpaceNode *snode, struct bNode *node, float radius, float alpha); void node_draw_default(const struct bContext *C, struct ARegion *ar, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node); void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node); int node_select_area_default(struct bNode *node, int x, int y); |