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>2020-08-30 10:39:12 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-08-30 11:53:19 +0300
commit12bc34b0b81b11186e3814f8a255f1226f0588c3 (patch)
tree3d18bb58c9f0973753e70931a73ebf7a270fbf02 /source/blender/editors/render/render_shading.c
parent1a623c183f32fb913f4cadd63d2a667087df7637 (diff)
Object: add ED_object_array_in_mode_or_selected
Use this utility function for render-shading & weight paint modes. This adds support for edit-mode & pose-mode where all objects in the mode are used in this case instead of the selected objects.
Diffstat (limited to 'source/blender/editors/render/render_shading.c')
-rw-r--r--source/blender/editors/render/render_shading.c49
1 files changed, 2 insertions, 47 deletions
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 078817e091a..2b52ae117fc 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -102,51 +102,6 @@ static bool object_materials_supported_poll_ex(bContext *C, const Object *ob);
/** \name Local Utilities
* \{ */
-static Object **object_array_for_shading_impl(bContext *C,
- bool (*filter_fn)(struct Object *ob,
- void *user_data),
- void *filter_user_data,
- uint *r_objects_len)
-{
- Object **objects;
-
- Object *ob = NULL;
- bool use_ob = true;
- if (CTX_wm_space_properties(C)) {
- /* May return pinned object. */
- ob = ED_object_context(C);
- }
- else {
- /* Otherwise use full selection. */
- use_ob = false;
- }
-
- if (use_ob) {
- if (!filter_fn(ob, filter_user_data)) {
- ob = NULL;
- }
- *r_objects_len = (ob != NULL) ? 1 : 0;
- objects = MEM_mallocN(sizeof(*objects) * *r_objects_len, __func__);
- if (ob != NULL) {
- objects[0] = ob;
- }
- }
- else {
- ViewLayer *view_layer = CTX_data_view_layer(C);
- const View3D *v3d = CTX_wm_view3d(C); /* may be NULL. */
- objects = BKE_view_layer_array_selected_objects_params(
- view_layer,
- v3d,
- r_objects_len,
- &((const struct ObjectsInViewLayerParams){
- .no_dup_data = true,
- .filter_fn = filter_fn,
- .filter_userdata = filter_user_data,
- }));
- }
- return objects;
-}
-
static bool object_array_for_shading_edit_mode_enabled_filter(Object *ob, void *user_data)
{
bContext *C = user_data;
@@ -160,7 +115,7 @@ static bool object_array_for_shading_edit_mode_enabled_filter(Object *ob, void *
static Object **object_array_for_shading_edit_mode_enabled(bContext *C, uint *r_objects_len)
{
- return object_array_for_shading_impl(
+ return ED_object_array_in_mode_or_selected(
C, object_array_for_shading_edit_mode_enabled_filter, C, r_objects_len);
}
@@ -177,7 +132,7 @@ static bool object_array_for_shading_edit_mode_disabled_filter(Object *ob, void
static Object **object_array_for_shading_edit_mode_disabled(bContext *C, uint *r_objects_len)
{
- return object_array_for_shading_impl(
+ return ED_object_array_in_mode_or_selected(
C, object_array_for_shading_edit_mode_disabled_filter, C, r_objects_len);
}