diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_space.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 464 |
1 files changed, 141 insertions, 323 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index ebbebb32974..d28ebb5aadf 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -45,6 +45,7 @@ #include "DNA_sequence_types.h" #include "DNA_mask_types.h" #include "DNA_view3d_types.h" +#include "DNA_workspace_types.h" #include "RNA_access.h" #include "RNA_define.h" @@ -196,7 +197,7 @@ const EnumPropertyItem rna_enum_clip_editor_mode_items[] = { static const EnumPropertyItem buttons_context_items[] = { {BCONTEXT_SCENE, "SCENE", ICON_SCENE_DATA, "Scene", "Scene"}, {BCONTEXT_RENDER, "RENDER", ICON_SCENE, "Render", "Render"}, - {BCONTEXT_RENDER_LAYER, "RENDER_LAYER", ICON_RENDERLAYERS, "Render Layers", "Render layers"}, + {BCONTEXT_VIEW_LAYER, "VIEW_LAYER", ICON_RENDERLAYERS, "View Layers", "View layers"}, {BCONTEXT_WORLD, "WORLD", ICON_WORLD, "World", "World"}, {BCONTEXT_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Object"}, {BCONTEXT_CONSTRAINT, "CONSTRAINT", ICON_CONSTRAINT, "Constraints", "Object constraints"}, @@ -208,6 +209,8 @@ static const EnumPropertyItem buttons_context_items[] = { {BCONTEXT_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture"}, {BCONTEXT_PARTICLE, "PARTICLES", ICON_PARTICLES, "Particles", "Particle"}, {BCONTEXT_PHYSICS, "PHYSICS", ICON_PHYSICS, "Physics", "Physics"}, + {BCONTEXT_COLLECTION, "COLLECTION", ICON_COLLAPSEMENU, "Collection", "Collection"}, + {BCONTEXT_WORKSPACE, "WORKSPACE", ICON_RENDER_RESULT, "Workspace", "Workspace"}, {0, NULL, 0, NULL, NULL} }; @@ -222,6 +225,11 @@ static const EnumPropertyItem buttons_texture_context_items[] = { {0, NULL, 0, NULL, NULL} }; +static const EnumPropertyItem buttons_collection_context_items[] = { + {SB_COLLECTION_CTX_VIEW_LAYER, "VIEW_LAYER", ICON_RENDERLAYERS, "", "Show material textures"}, + {SB_COLLECTION_CTX_GROUP, "GROUP", ICON_GROUP, "", "Show world textures"}, + {0, NULL, 0, NULL, NULL} +}; static const EnumPropertyItem fileselectparams_recursion_level_items[] = { {0, "NONE", 0, "None", "Only list current directory's content, with no recursion"}, @@ -253,17 +261,23 @@ const EnumPropertyItem rna_enum_file_sort_items[] = { #include "BKE_brush.h" #include "BKE_colortools.h" #include "BKE_context.h" -#include "BKE_depsgraph.h" +#include "BKE_layer.h" +#include "BKE_global.h" #include "BKE_nla.h" #include "BKE_paint.h" #include "BKE_scene.h" #include "BKE_screen.h" #include "BKE_icons.h" +#include "BKE_workspace.h" + +#include "DEG_depsgraph.h" +#include "DEG_depsgraph_build.h" #include "ED_buttons.h" #include "ED_fileselect.h" #include "ED_image.h" #include "ED_node.h" +#include "ED_transform.h" #include "ED_screen.h" #include "ED_view3d.h" #include "ED_sequencer.h" @@ -403,44 +417,64 @@ static void rna_Space_view2d_sync_update(Main *UNUSED(bmain), Scene *UNUSED(scen } } -static PointerRNA rna_CurrentOrientation_get(PointerRNA *ptr) +static int rna_View3D_transform_orientation_get(PointerRNA *ptr) +{ + const View3D *v3d = (View3D *)ptr->data; + /* convert to enum value */ + return (v3d->twmode == V3D_MANIP_CUSTOM) ? (v3d->twmode + v3d->custom_orientation_index) : v3d->twmode; +} + +void rna_View3D_transform_orientation_set(PointerRNA *ptr, int value) { - Scene *scene = ((bScreen *)ptr->id.data)->scene; View3D *v3d = (View3D *)ptr->data; + BIF_selectTransformOrientationValue(v3d, value); +} - if (v3d->twmode < V3D_MANIP_CUSTOM) - return rna_pointer_inherit_refine(ptr, &RNA_TransformOrientation, NULL); - else - return rna_pointer_inherit_refine(ptr, &RNA_TransformOrientation, - BLI_findlink(&scene->transform_spaces, v3d->twmode - V3D_MANIP_CUSTOM)); +static PointerRNA rna_View3D_current_orientation_get(PointerRNA *ptr) +{ + View3D *v3d = (View3D *)ptr->data; + TransformOrientation *orientation; + + if (v3d->twmode < V3D_MANIP_CUSTOM) { + orientation = NULL; + } + else { + WorkSpace *workspace; + bScreen *screen = ptr->id.data; + + BKE_workspace_layout_find_global(G.main, screen, &workspace); + orientation = BKE_workspace_transform_orientation_find(workspace, v3d->custom_orientation_index); + } + + return rna_pointer_inherit_refine(ptr, &RNA_TransformOrientation, orientation); } const EnumPropertyItem *rna_TransformOrientation_itemf( bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free) { - Scene *scene = NULL; - ListBase *transform_spaces; - TransformOrientation *ts = NULL; + WorkSpace *workspace; + ListBase *transform_orientations; EnumPropertyItem tmp = {0, "", 0, "", ""}; EnumPropertyItem *item = NULL; int i = V3D_MANIP_CUSTOM, totitem = 0; RNA_enum_items_add(&item, &totitem, transform_orientation_items); - if (ptr->type == &RNA_SpaceView3D) - scene = ((bScreen *)ptr->id.data)->scene; - else - scene = CTX_data_scene(C); /* can't use scene from ptr->id.data because that enum is also used by operators */ - - if (scene) { - transform_spaces = &scene->transform_spaces; - ts = transform_spaces->first; + if (ptr->type == &RNA_SpaceView3D) { + bScreen *screen = ptr->id.data; + BKE_workspace_layout_find_global(G.main, screen, &workspace); + } + else { + /* can't use scene from ptr->id.data because that enum is also used by operators */ + workspace = C ? CTX_wm_workspace(C) : NULL; } - if (ts) { + transform_orientations = workspace ? BKE_workspace_transform_orientations_get(workspace) : NULL; + + if (transform_orientations && (BLI_listbase_is_empty(transform_orientations) == false)) { RNA_enum_item_add_separator(&item, &totitem); - for (; ts; ts = ts->next) { + for (TransformOrientation *ts = transform_orientations->first; ts; ts = ts->next) { tmp.identifier = ts->name; tmp.name = ts->name; tmp.value = i++; @@ -459,8 +493,10 @@ static void rna_SpaceView3D_camera_update(Main *bmain, Scene *scene, PointerRNA { View3D *v3d = (View3D *)(ptr->data); if (v3d->scenelock) { + wmWindowManager *wm = bmain->wm.first; + scene->camera = v3d->camera; - BKE_screen_view3d_main_sync(&bmain->screen, scene); + WM_windows_scene_data_sync(&wm->windows, scene); } } @@ -472,8 +508,10 @@ static void rna_SpaceView3D_lock_camera_and_layers_set(PointerRNA *ptr, int valu v3d->scenelock = value; if (value) { + Scene *scene = ED_screen_scene_find(sc, G.main->wm.first); int bit; - v3d->lay = sc->scene->lay; + + v3d->lay = scene->lay; /* seek for layact */ bit = 0; while (bit < 32) { @@ -483,15 +521,15 @@ static void rna_SpaceView3D_lock_camera_and_layers_set(PointerRNA *ptr, int valu } bit++; } - v3d->camera = sc->scene->camera; + v3d->camera = scene->camera; } } static void rna_View3D_CursorLocation_get(PointerRNA *ptr, float *values) { View3D *v3d = (View3D *)(ptr->data); - bScreen *sc = (bScreen *)ptr->id.data; - Scene *scene = (Scene *)sc->scene; + bScreen *screen = ptr->id.data; + Scene *scene = ED_screen_scene_find(screen, G.main->wm.first); const float *loc = ED_view3d_cursor3d_get(scene, v3d); copy_v3_v3(values, loc); @@ -500,8 +538,8 @@ static void rna_View3D_CursorLocation_get(PointerRNA *ptr, float *values) static void rna_View3D_CursorLocation_set(PointerRNA *ptr, const float *values) { View3D *v3d = (View3D *)(ptr->data); - bScreen *sc = (bScreen *)ptr->id.data; - Scene *scene = (Scene *)sc->scene; + bScreen *screen = ptr->id.data; + Scene *scene = ED_screen_scene_find(screen, G.main->wm.first); float *cursor = ED_view3d_cursor3d_get(scene, v3d); copy_v3_v3(cursor, values); @@ -510,8 +548,8 @@ static void rna_View3D_CursorLocation_set(PointerRNA *ptr, const float *values) static float rna_View3D_GridScaleUnit_get(PointerRNA *ptr) { View3D *v3d = (View3D *)(ptr->data); - bScreen *sc = (bScreen *)ptr->id.data; - Scene *scene = (Scene *)sc->scene; + bScreen *screen = ptr->id.data; + Scene *scene = ED_screen_scene_find(screen, G.main->wm.first); return ED_view3d_grid_scale(scene, v3d, NULL); } @@ -520,7 +558,7 @@ static void rna_SpaceView3D_layer_set(PointerRNA *ptr, const int *values) { View3D *v3d = (View3D *)(ptr->data); - v3d->lay = ED_view3d_scene_layer_set(v3d->lay, values, &v3d->layact); + v3d->lay = ED_view3d_view_layer_set(v3d->lay, values, &v3d->layact); } static int rna_SpaceView3D_active_layer_get(PointerRNA *ptr) @@ -532,7 +570,7 @@ static int rna_SpaceView3D_active_layer_get(PointerRNA *ptr) static void rna_SpaceView3D_layer_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr)) { - DAG_on_visible_update(bmain, false); + DEG_on_visible_update(bmain, false); } static void rna_SpaceView3D_viewport_shade_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -695,12 +733,18 @@ static void rna_RegionView3D_view_matrix_set(PointerRNA *ptr, const float *value static int rna_SpaceView3D_viewport_shade_get(PointerRNA *ptr) { - Scene *scene = ((bScreen *)ptr->id.data)->scene; - RenderEngineType *type = RE_engines_find(scene->r.engine); + bScreen *screen = ptr->id.data; + + Scene *scene = WM_windows_scene_get_from_screen(G.main->wm.first, screen); + WorkSpace *workspace = WM_windows_workspace_get_from_screen(G.main->wm.first, screen); + + ViewRender *view_render = BKE_viewrender_get(scene, workspace); + RenderEngineType *type = RE_engines_find(view_render->engine_id); + View3D *v3d = (View3D *)ptr->data; int drawtype = v3d->drawtype; - if (drawtype == OB_RENDER && !(type && type->view_draw)) + if (drawtype == OB_RENDER && !(type && type->render_to_view)) return OB_SOLID; return drawtype; @@ -715,11 +759,14 @@ static void rna_SpaceView3D_viewport_shade_set(PointerRNA *ptr, int value) v3d->drawtype = value; } -static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C), PointerRNA *ptr, +static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) { - Scene *scene = ((bScreen *)ptr->id.data)->scene; - RenderEngineType *type = RE_engines_find(scene->r.engine); + wmWindow *win = CTX_wm_window(C); + Scene *scene = WM_window_get_active_scene(win); + WorkSpace *workspace = WM_window_get_active_workspace(win); + ViewRender *view_render = BKE_viewrender_get(scene, workspace); + RenderEngineType *type = RE_engines_find(view_render->engine_id); EnumPropertyItem *item = NULL; int totitem = 0; @@ -730,7 +777,7 @@ static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UN RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_TEXTURE); RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_MATERIAL); - if (type && type->view_draw) + if (type && type->render_to_view) RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_RENDER); RNA_enum_item_end(&item, &totitem); @@ -739,10 +786,10 @@ static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UN return item; } -static const EnumPropertyItem *rna_SpaceView3D_stereo3d_camera_itemf(bContext *UNUSED(C), PointerRNA *ptr, +static const EnumPropertyItem *rna_SpaceView3D_stereo3d_camera_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *UNUSED(r_free)) { - Scene *scene = ((bScreen *)ptr->id.data)->scene; + Scene *scene = CTX_data_scene(C); if (scene->r.views_format == SCE_VIEWS_FORMAT_MULTIVIEW) return multiview_camera_items; @@ -810,22 +857,28 @@ static int rna_SpaceImageEditor_show_uvedit_get(PointerRNA *ptr) { SpaceImage *sima = (SpaceImage *)(ptr->data); bScreen *sc = (bScreen *)ptr->id.data; - return ED_space_image_show_uvedit(sima, sc->scene->obedit); + Scene *scene = ED_screen_scene_find(sc, G.main->wm.first); + + return ED_space_image_show_uvedit(sima, scene->obedit); } static int rna_SpaceImageEditor_show_maskedit_get(PointerRNA *ptr) { SpaceImage *sima = (SpaceImage *)(ptr->data); bScreen *sc = (bScreen *)ptr->id.data; - return ED_space_image_check_show_maskedit(sc->scene, sima); + Scene *scene = ED_screen_scene_find(sc, G.main->wm.first); + ViewLayer *view_layer = BKE_view_layer_context_active_PLACEHOLDER(scene); + + return ED_space_image_check_show_maskedit(view_layer, sima); } static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value) { SpaceImage *sima = (SpaceImage *)(ptr->data); bScreen *sc = (bScreen *)ptr->id.data; + Scene *scene = ED_screen_scene_find(sc, G.main->wm.first); - ED_space_image_set(sima, sc->scene, sc->scene->obedit, (Image *)value.data); + ED_space_image_set(sima, scene, scene->obedit, (Image *)value.data); } static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value) @@ -1071,8 +1124,8 @@ static const EnumPropertyItem *rna_SpaceProperties_context_itemf(bContext *UNUSE RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_RENDER); } - if (sbuts->pathflag & (1 << BCONTEXT_RENDER_LAYER)) { - RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_RENDER_LAYER); + if (sbuts->pathflag & (1 << BCONTEXT_VIEW_LAYER)) { + RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_VIEW_LAYER); } if (sbuts->pathflag & (1 << BCONTEXT_SCENE)) { @@ -1083,6 +1136,14 @@ static const EnumPropertyItem *rna_SpaceProperties_context_itemf(bContext *UNUSE RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_WORLD); } + if (sbuts->pathflag & (1 << BCONTEXT_WORKSPACE)) { + RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_WORKSPACE); + } + + if (sbuts->pathflag & (1 << BCONTEXT_COLLECTION)) { + RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_COLLECTION); + } + if (sbuts->pathflag & (1 << BCONTEXT_OBJECT)) { RNA_enum_items_add_value(&item, &totitem, buttons_context_items, BCONTEXT_OBJECT); } @@ -1264,10 +1325,12 @@ static void rna_SpaceDopeSheetEditor_action_set(PointerRNA *ptr, PointerRNA valu } } -static void rna_SpaceDopeSheetEditor_action_update(Main *bmain, Scene *scene, PointerRNA *ptr) +static void rna_SpaceDopeSheetEditor_action_update(bContext *C, PointerRNA *ptr) { SpaceAction *saction = (SpaceAction *)(ptr->data); - Object *obact = (scene->basact) ? scene->basact->object : NULL; + ViewLayer *view_layer = CTX_data_view_layer(C); + Main *bmain = CTX_data_main(C); + Object *obact = OBACT(view_layer); /* we must set this action to be the one used by active object (if not pinned) */ if (obact /* && saction->pin == 0*/) { @@ -1333,16 +1396,17 @@ static void rna_SpaceDopeSheetEditor_action_update(Main *bmain, Scene *scene, Po } /* force depsgraph flush too */ - DAG_id_tag_update(&obact->id, OB_RECALC_OB | OB_RECALC_DATA); + DEG_id_tag_update(&obact->id, OB_RECALC_OB | OB_RECALC_DATA); /* Update relations as well, so new time source dependency is added. */ - DAG_relations_tag_update(bmain); + DEG_relations_tag_update(bmain); } } -static void rna_SpaceDopeSheetEditor_mode_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr) +static void rna_SpaceDopeSheetEditor_mode_update(bContext *C, PointerRNA *ptr) { SpaceAction *saction = (SpaceAction *)(ptr->data); - Object *obact = (scene->basact) ? scene->basact->object : NULL; + ViewLayer *view_layer = CTX_data_view_layer(C); + Object *obact = OBACT(view_layer); /* special exceptions for ShapeKey Editor mode */ if (saction->mode == SACTCONT_SHAPEKEY) { @@ -1404,59 +1468,6 @@ static void rna_Sequencer_view_type_update(Main *UNUSED(bmain), Scene *UNUSED(sc ED_area_tag_refresh(sa); } -static float rna_BackgroundImage_opacity_get(PointerRNA *ptr) -{ - BGpic *bgpic = (BGpic *)ptr->data; - return 1.0f - bgpic->blend; -} - -static void rna_BackgroundImage_opacity_set(PointerRNA *ptr, float value) -{ - BGpic *bgpic = (BGpic *)ptr->data; - bgpic->blend = 1.0f - value; -} - -/* radius internally (expose as a distance value) */ -static float rna_BackgroundImage_size_get(PointerRNA *ptr) -{ - BGpic *bgpic = ptr->data; - return bgpic->size * 2.0f; -} - -static void rna_BackgroundImage_size_set(PointerRNA *ptr, float value) -{ - BGpic *bgpic = ptr->data; - bgpic->size = value * 0.5f; -} - -static BGpic *rna_BackgroundImage_new(View3D *v3d) -{ - BGpic *bgpic = ED_view3D_background_image_new(v3d); - - WM_main_add_notifier(NC_SPACE | ND_SPACE_VIEW3D, v3d); - - return bgpic; -} - -static void rna_BackgroundImage_remove(View3D *v3d, ReportList *reports, PointerRNA *bgpic_ptr) -{ - BGpic *bgpic = bgpic_ptr->data; - if (BLI_findindex(&v3d->bgpicbase, bgpic) == -1) { - BKE_report(reports, RPT_ERROR, "Background image cannot be removed"); - } - - ED_view3D_background_image_remove(v3d, bgpic); - RNA_POINTER_INVALIDATE(bgpic_ptr); - - WM_main_add_notifier(NC_SPACE | ND_SPACE_VIEW3D, v3d); -} - -static void rna_BackgroundImage_clear(View3D *v3d) -{ - ED_view3D_background_image_clear(v3d); - WM_main_add_notifier(NC_SPACE | ND_SPACE_VIEW3D, v3d); -} - /* Space Node Editor */ static void rna_SpaceNodeEditor_node_tree_set(PointerRNA *ptr, const PointerRNA value) @@ -2104,6 +2115,9 @@ static void rna_def_space_outliner(BlenderRNA *brna) {SO_USERDEF, "USER_PREFERENCES", 0, "User Preferences", "Display user preference data"}, {SO_ID_ORPHANS, "ORPHAN_DATA", 0, "Orphan Data", "Display data-blocks which are unused and/or will be lost when the file is reloaded"}, + {SO_ACT_LAYER, "ACT_LAYER", 0, "Active View Layer", "Display the collections of the active view layer"}, + {SO_COLLECTIONS, "COLLECTIONS", 0, "Collections", "Display all collections based on the " + "master collection hierarchy"}, {0, NULL, 0, NULL, NULL} }; @@ -2144,194 +2158,6 @@ static void rna_def_space_outliner(BlenderRNA *brna) RNA_def_property_update(prop, NC_SPACE | ND_SPACE_OUTLINER, NULL); } -static void rna_def_background_image(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - /* note: combinations work but don't flip so arnt that useful */ - static const EnumPropertyItem bgpic_axis_items[] = { - {0, "", 0, N_("X Axis"), ""}, - {(1 << RV3D_VIEW_LEFT), "LEFT", 0, "Left", "Show background image while looking to the left"}, - {(1 << RV3D_VIEW_RIGHT), "RIGHT", 0, "Right", "Show background image while looking to the right"}, - /*{(1<<RV3D_VIEW_LEFT)|(1<<RV3D_VIEW_RIGHT), "LEFT_RIGHT", 0, "Left/Right", ""},*/ - {0, "", 0, N_("Y Axis"), ""}, - {(1 << RV3D_VIEW_BACK), "BACK", 0, "Back", "Show background image in back view"}, - {(1 << RV3D_VIEW_FRONT), "FRONT", 0, "Front", "Show background image in front view"}, - /*{(1<<RV3D_VIEW_BACK)|(1<<RV3D_VIEW_FRONT), "BACK_FRONT", 0, "Back/Front", ""},*/ - {0, "", 0, N_("Z Axis"), ""}, - {(1 << RV3D_VIEW_BOTTOM), "BOTTOM", 0, "Bottom", "Show background image in bottom view"}, - {(1 << RV3D_VIEW_TOP), "TOP", 0, "Top", "Show background image in top view"}, - /*{(1<<RV3D_VIEW_BOTTOM)|(1<<RV3D_VIEW_TOP), "BOTTOM_TOP", 0, "Top/Bottom", ""},*/ - {0, "", 0, N_("Other"), ""}, - {0, "ALL", 0, "All Views", "Show background image in all views"}, - {(1 << RV3D_VIEW_CAMERA), "CAMERA", 0, "Camera", "Show background image in camera view"}, - {0, NULL, 0, NULL, NULL} - }; - - static const EnumPropertyItem bgpic_source_items[] = { - {V3D_BGPIC_IMAGE, "IMAGE", 0, "Image", ""}, - {V3D_BGPIC_MOVIE, "MOVIE_CLIP", 0, "Movie Clip", ""}, - {0, NULL, 0, NULL, NULL} - }; - - static const EnumPropertyItem bgpic_camera_frame_items[] = { - {0, "STRETCH", 0, "Stretch", ""}, - {V3D_BGPIC_CAMERA_ASPECT, "FIT", 0, "Fit", ""}, - {V3D_BGPIC_CAMERA_ASPECT | V3D_BGPIC_CAMERA_CROP, "CROP", 0, "Crop", ""}, - {0, NULL, 0, NULL, NULL} - }; - - static const EnumPropertyItem bgpic_draw_depth_items[] = { - {0, "BACK", 0, "Back", ""}, - {V3D_BGPIC_FOREGROUND, "FRONT", 0, "Front", ""}, - {0, NULL, 0, NULL, NULL} - }; - - srna = RNA_def_struct(brna, "BackgroundImage", NULL); - RNA_def_struct_sdna(srna, "BGpic"); - RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3D View background"); - - prop = RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "source"); - RNA_def_property_enum_items(prop, bgpic_source_items); - RNA_def_property_ui_text(prop, "Background Source", "Data source used for background"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "ima"); - RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "clip"); - RNA_def_property_ui_text(prop, "MovieClip", "Movie clip displayed and edited in this space"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_pointer_sdna(prop, NULL, "iuser"); - RNA_def_property_ui_text(prop, "Image User", - "Parameters defining which layer, pass and frame of the image is displayed"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "MovieClipUser"); - RNA_def_property_pointer_sdna(prop, NULL, "cuser"); - RNA_def_property_ui_text(prop, "Clip User", "Parameters defining which frame of the movie clip is displayed"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "xof"); - RNA_def_property_ui_text(prop, "X Offset", "Offset image horizontally from the world origin"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "offset_y", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "yof"); - RNA_def_property_ui_text(prop, "Y Offset", "Offset image vertically from the world origin"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_DISTANCE); - RNA_def_property_float_sdna(prop, NULL, "size"); - RNA_def_property_float_funcs(prop, "rna_BackgroundImage_size_get", "rna_BackgroundImage_size_set", NULL); - RNA_def_property_ui_text(prop, "Size", "Size of the background image (ortho view only)"); - RNA_def_property_range(prop, 0.0, FLT_MAX); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_EULER); - RNA_def_property_float_sdna(prop, NULL, "rotation"); - RNA_def_property_ui_text(prop, "Rotation", "Rotation for the background image (ortho view only)"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "use_flip_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_FLIP_X); - RNA_def_property_ui_text(prop, "Flip Horizontally", "Flip the background image horizontally"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "use_flip_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_FLIP_Y); - RNA_def_property_ui_text(prop, "Flip Vertically", "Flip the background image vertically"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "opacity", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "blend"); - RNA_def_property_float_funcs(prop, "rna_BackgroundImage_opacity_get", "rna_BackgroundImage_opacity_set", NULL); - RNA_def_property_ui_text(prop, "Opacity", "Image opacity to blend the image against the background color"); - RNA_def_property_range(prop, 0.0, 1.0); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "view_axis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "view"); - RNA_def_property_enum_items(prop, bgpic_axis_items); - RNA_def_property_ui_text(prop, "Image Axis", "The axis to display the image on"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_EXPANDED); - RNA_def_property_ui_text(prop, "Show Expanded", "Show the expanded in the user interface"); - RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); - - prop = RNA_def_property(srna, "use_camera_clip", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_CAMERACLIP); - RNA_def_property_ui_text(prop, "Camera Clip", "Use movie clip from active scene camera"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "show_background_image", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", V3D_BGPIC_DISABLED); - RNA_def_property_ui_text(prop, "Show Background Image", "Show this image as background"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - prop = RNA_def_property(srna, "show_on_foreground", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_FOREGROUND); - RNA_def_property_ui_text(prop, "Show On Foreground", "Show this image in front of objects in viewport"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - /* expose 1 flag as a enum of 2 items */ - prop = RNA_def_property(srna, "draw_depth", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); - RNA_def_property_enum_items(prop, bgpic_draw_depth_items); - RNA_def_property_ui_text(prop, "Depth", "Draw under or over everything"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - - /* expose 2 flags as a enum of 3 items */ - prop = RNA_def_property(srna, "frame_method", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); - RNA_def_property_enum_items(prop, bgpic_camera_frame_items); - RNA_def_property_ui_text(prop, "Frame Method", "How the image fits in the camera frame"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); -} - -static void rna_def_backgroundImages(BlenderRNA *brna, PropertyRNA *cprop) -{ - StructRNA *srna; - FunctionRNA *func; - PropertyRNA *parm; - - RNA_def_property_srna(cprop, "BackgroundImages"); - srna = RNA_def_struct(brna, "BackgroundImages", NULL); - RNA_def_struct_sdna(srna, "View3D"); - RNA_def_struct_ui_text(srna, "Background Images", "Collection of background images"); - - func = RNA_def_function(srna, "new", "rna_BackgroundImage_new"); - RNA_def_function_ui_description(func, "Add new background image"); - parm = RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background"); - RNA_def_function_return(func, parm); - - func = RNA_def_function(srna, "remove", "rna_BackgroundImage_remove"); - RNA_def_function_ui_description(func, "Remove background image"); - RNA_def_function_flag(func, FUNC_USE_REPORTS); - parm = RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background"); - RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR); - RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0); - - func = RNA_def_function(srna, "clear", "rna_BackgroundImage_clear"); - RNA_def_function_ui_description(func, "Remove all background images"); -} - - static void rna_def_space_view3d(BlenderRNA *brna) { StructRNA *srna; @@ -2576,9 +2402,9 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Backface Culling", "Use back face culling to hide the back side of faces"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - prop = RNA_def_property(srna, "show_textured_shadeless", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHADELESS_TEX); - RNA_def_property_ui_text(prop, "Shadeless", "Show shadeless texture without lighting in textured draw mode"); + prop = RNA_def_property(srna, "show_mode_shade_override", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_MODE_SHADE_OVERRIDE); + RNA_def_property_ui_text(prop, "Full Shading", "Use full shading for mode drawing (to view final result)"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); prop = RNA_def_property(srna, "show_occlude_wire", PROP_BOOLEAN, PROP_NONE); @@ -2607,19 +2433,6 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_ORTHO, 0); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - prop = RNA_def_property(srna, "background_images", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "bgpicbase", NULL); - RNA_def_property_struct_type(prop, "BackgroundImage"); - RNA_def_property_ui_text(prop, "Background Images", "List of background images"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - rna_def_backgroundImages(brna, prop); - - prop = RNA_def_property(srna, "show_background_images", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_DISPBGPICS); - RNA_def_property_ui_text(prop, "Display Background Images", - "Display reference images behind objects in the 3D View"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - prop = RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "around"); RNA_def_property_enum_items(prop, pivot_items_full); @@ -2633,7 +2446,7 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_SpaceView3D_pivot_update"); prop = RNA_def_property(srna, "show_manipulator", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "twflag", V3D_USE_MANIPULATOR); + RNA_def_property_boolean_sdna(prop, NULL, "twflag", V3D_MANIPULATOR_DRAW); RNA_def_property_ui_text(prop, "Manipulator", "Use a 3D manipulator widget for controlling transforms"); RNA_def_property_ui_icon(prop, ICON_MANIPUL, 0); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); @@ -2648,13 +2461,14 @@ static void rna_def_space_view3d(BlenderRNA *brna) prop = RNA_def_property(srna, "transform_orientation", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "twmode"); RNA_def_property_enum_items(prop, transform_orientation_items); - RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_TransformOrientation_itemf"); + RNA_def_property_enum_funcs(prop, "rna_View3D_transform_orientation_get", "rna_View3D_transform_orientation_set", + "rna_TransformOrientation_itemf"); RNA_def_property_ui_text(prop, "Transform Orientation", "Transformation orientation"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); prop = RNA_def_property(srna, "current_orientation", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "TransformOrientation"); - RNA_def_property_pointer_funcs(prop, "rna_CurrentOrientation_get", NULL, NULL, NULL); + RNA_def_property_pointer_funcs(prop, "rna_View3D_current_orientation_get", NULL, NULL, NULL); RNA_def_property_ui_text(prop, "Current Transform Orientation", "Current transformation orientation"); prop = RNA_def_property(srna, "lock_camera_and_layers", PROP_BOOLEAN, PROP_NONE); @@ -2934,6 +2748,11 @@ static void rna_def_space_buttons(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Limited Texture Context", "Use the limited version of texture user (for 'old shading' mode)"); + prop = RNA_def_property(srna, "collection_context", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, buttons_collection_context_items); + RNA_def_property_ui_text(prop, "Collection Context", "Which collection we want to show"); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_PROPERTIES, NULL); + /* pinned data */ prop = RNA_def_property(srna, "pin_id", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "pinid"); @@ -3398,7 +3217,7 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) PropertyRNA *prop; /* XXX: action-editor is currently for object-level only actions, so show that using object-icon hint */ - static const EnumPropertyItem mode_items[] = { + static EnumPropertyItem mode_items[] = { {SACTCONT_DOPESHEET, "DOPESHEET", ICON_OOPS, "Dope Sheet", "Edit all keyframes in scene"}, {SACTCONT_ACTION, "ACTION", ICON_OBJECT_DATA, "Action Editor", "Edit keyframes in active object's Object-level action"}, {SACTCONT_SHAPEKEY, "SHAPEKEY", ICON_SHAPEKEY_DATA, "Shape Key Editor", "Edit keyframes in active object's Shape Keys action"}, @@ -3419,6 +3238,7 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceDopeSheetEditor_action_set", NULL, "rna_Action_actedit_assign_poll"); RNA_def_property_ui_text(prop, "Action", "Action displayed and edited in this space"); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, "rna_SpaceDopeSheetEditor_action_update"); /* mode */ @@ -3426,6 +3246,7 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, mode_items); RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed"); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_DOPESHEET, "rna_SpaceDopeSheetEditor_mode_update"); /* display */ @@ -3869,6 +3690,7 @@ static void rna_def_fileselect_params(BlenderRNA *brna) "Particles Settings", "Show/hide Particle Settings data-blocks"}, {FILTER_ID_PAL, "PALETTE", ICON_COLOR, "Palettes", "Show/hide Palette data-blocks"}, {FILTER_ID_PC, "PAINT_CURVE", ICON_CURVE_BEZCURVE, "Paint Curves", "Show/hide Paint Curve data-blocks"}, + {FILTER_ID_LP, "LIGHT_PROBE", ICON_RADIO, "Light Probes", "Show/hide Light Probe data-blocks"}, {FILTER_ID_SCE, "SCENE", ICON_SCENE_DATA, "Scenes", "Show/hide Scene data-blocks"}, {FILTER_ID_SPK, "SPEAKER", ICON_SPEAKER, "Speakers", "Show/hide Speaker data-blocks"}, {FILTER_ID_SO, "SOUND", ICON_SOUND, "Sounds", "Show/hide Sound data-blocks"}, @@ -3876,6 +3698,7 @@ static void rna_def_fileselect_params(BlenderRNA *brna) {FILTER_ID_TXT, "TEXT", ICON_TEXT, "Texts", "Show/hide Text data-blocks"}, {FILTER_ID_VF, "FONT", ICON_FONT_DATA, "Fonts", "Show/hide Font data-blocks"}, {FILTER_ID_WO, "WORLD", ICON_WORLD_DATA, "Worlds", "Show/hide World data-blocks"}, + {FILTER_ID_WS, "WORK_SPACE", ICON_NONE, "Workspaces", "Show/hide workspace data-blocks"}, {0, NULL, 0, NULL, NULL} }; @@ -3893,7 +3716,7 @@ static void rna_def_fileselect_params(BlenderRNA *brna) "Show/hide materials, nodetrees, textures and Freestyle's linestyles"}, {FILTER_ID_IM | FILTER_ID_MC | FILTER_ID_MSK | FILTER_ID_SO, "IMAGE", ICON_IMAGE_DATA, "Images & Sounds", "Show/hide images, movie clips, sounds and masks"}, - {FILTER_ID_CA | FILTER_ID_LA | FILTER_ID_SPK | FILTER_ID_WO, + {FILTER_ID_CA | FILTER_ID_LA | FILTER_ID_SPK | FILTER_ID_WO | FILTER_ID_WS, "ENVIRONMENT", ICON_WORLD_DATA, "Environment", "Show/hide worlds, lamps, cameras and speakers"}, {FILTER_ID_BR | FILTER_ID_GD | FILTER_ID_PA | FILTER_ID_PAL | FILTER_ID_PC | FILTER_ID_TXT | FILTER_ID_VF | FILTER_ID_CF, "MISC", ICON_GREASEPENCIL, "Miscellaneous", "Show/hide other data types"}, @@ -4408,14 +4231,10 @@ static void rna_def_space_node(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Backdrop Zoom", "Backdrop zoom factor"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL); - prop = RNA_def_property(srna, "backdrop_x", PROP_FLOAT, PROP_NONE); + prop = RNA_def_property(srna, "backdrop_offset", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xof"); - RNA_def_property_ui_text(prop, "Backdrop X", "Backdrop X offset"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL); - - prop = RNA_def_property(srna, "backdrop_y", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "yof"); - RNA_def_property_ui_text(prop, "Backdrop Y", "Backdrop Y offset"); + RNA_def_property_array(prop, 2); + RNA_def_property_ui_text(prop, "Backdrop Offset", "Backdrop offset"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL); prop = RNA_def_property(srna, "backdrop_channels", PROP_ENUM, PROP_NONE); @@ -4789,7 +4608,6 @@ void RNA_def_space(BlenderRNA *brna) rna_def_filemenu_entry(brna); rna_def_space_filebrowser(brna); rna_def_space_outliner(brna); - rna_def_background_image(brna); rna_def_space_view3d(brna); rna_def_space_buttons(brna); rna_def_space_dopesheet(brna); |