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:
authorCampbell Barton <ideasman42@gmail.com>2014-01-17 01:37:45 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-01-17 01:39:17 +0400
commit5b1330e99d5a281efa448b64880dfa24be67d8f2 (patch)
treea56e13396d3f14f00b08ba63622a48f41c2276b9 /source/blender/editors/space_outliner
parente9227c76d480c5e7973b6bce03cce3ad414b0348 (diff)
Outliner: minor speedup for drawing, avoid 3 rna lookups per object
also for movie-clip dope-sheet
Diffstat (limited to 'source/blender/editors/space_outliner')
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index b5d4734ecf7..b4fdb1a5828 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -534,35 +534,44 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
Object *ob = NULL;
Group *gr = NULL;
+ PropertyRNA *object_prop_hide, *object_prop_hide_select, *object_prop_hide_render;
+
+ /* get RNA properties (once) */
+ object_prop_hide = RNA_struct_type_find_property(&RNA_Object, "hide");
+ object_prop_hide_select = RNA_struct_type_find_property(&RNA_Object, "hide_select");
+ object_prop_hide_render = RNA_struct_type_find_property(&RNA_Object, "hide_render");
+ BLI_assert(object_prop_hide && object_prop_hide_select && object_prop_hide_render);
+
+
for (te = lb->first; te; te = te->next) {
tselem = TREESTORE(te);
if (te->ys + 2 * UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
/* objects have toggle-able restriction flags */
if (tselem->type == 0 && te->idcode == ID_OB) {
PointerRNA ptr;
-
+
ob = (Object *)tselem->id;
RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr);
-
+
uiBlockSetEmboss(block, UI_EMBOSSN);
- bt = uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
- (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX), te->ys, UI_UNIT_X, UI_UNIT_Y,
- &ptr, "hide", -1, 0, 0, -1, -1,
- TIP_("Restrict viewport visibility (Ctrl - Recursive)"));
+ bt = uiDefIconButR_prop(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
+ (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX), te->ys, UI_UNIT_X, UI_UNIT_Y,
+ &ptr, object_prop_hide, -1, 0, 0, -1, -1,
+ TIP_("Restrict viewport visibility (Ctrl - Recursive)"));
uiButSetFunc(bt, restrictbutton_view_cb, scene, ob);
uiButSetFlag(bt, UI_BUT_DRAG_LOCK);
- bt = uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF,
- (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_SELECTX), te->ys, UI_UNIT_X, UI_UNIT_Y,
- &ptr, "hide_select", -1, 0, 0, -1, -1,
- TIP_("Restrict viewport selection (Ctrl - Recursive)"));
+ bt = uiDefIconButR_prop(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF,
+ (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_SELECTX), te->ys, UI_UNIT_X, UI_UNIT_Y,
+ &ptr, object_prop_hide_select, -1, 0, 0, -1, -1,
+ TIP_("Restrict viewport selection (Ctrl - Recursive)"));
uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob);
uiButSetFlag(bt, UI_BUT_DRAG_LOCK);
- bt = uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF,
- (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_RENDERX), te->ys, UI_UNIT_X, UI_UNIT_Y,
- &ptr, "hide_render", -1, 0, 0, -1, -1,
- TIP_("Restrict rendering (Ctrl - Recursive)"));
+ bt = uiDefIconButR_prop(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF,
+ (int)(ar->v2d.cur.xmax - OL_TOG_RESTRICT_RENDERX), te->ys, UI_UNIT_X, UI_UNIT_Y,
+ &ptr, object_prop_hide_render, -1, 0, 0, -1, -1,
+ TIP_("Restrict rendering (Ctrl - Recursive)"));
uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob);
uiButSetFlag(bt, UI_BUT_DRAG_LOCK);