Use better workaround ofr getting scene layer for Derivedmesh's mask
This replaces access to the first scene layer (which was wrong) with a linear lookup of scene layer by it's active index. This seems to be a better temporary solution to have things working for until we've got proper workspace, depsgraph and it's per-layer storage in place.
This commit is contained in:
parent
363ea3a1ce
commit
1129fd1c51
|
@ -58,7 +58,7 @@ struct SceneCollection;
|
|||
struct SceneLayer;
|
||||
|
||||
struct SceneLayer *BKE_scene_layer_render_active(const struct Scene *scene);
|
||||
struct SceneLayer *BKE_scene_layer_context_active(struct Scene *scene);
|
||||
struct SceneLayer *BKE_scene_layer_context_active(const struct Scene *scene);
|
||||
struct SceneLayer *BKE_scene_layer_add(struct Scene *scene, const char *name);
|
||||
|
||||
bool BKE_scene_layer_remove(struct Main *bmain, struct Scene *scene, struct SceneLayer *sl);
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_material.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
@ -2677,7 +2678,8 @@ static void editbmesh_build_data(Scene *scene, Object *obedit, BMEditMesh *em, C
|
|||
|
||||
static CustomDataMask object_get_datamask(const Scene *scene, Object *ob, bool *r_need_mapping)
|
||||
{
|
||||
SceneLayer *sl = scene->render_layers.first; /* XXX TODO pass SceneLayer to this function */
|
||||
/* TODO(sergey): Avoid this linear list lookup. */
|
||||
SceneLayer *sl = BKE_scene_layer_context_active(scene);
|
||||
Object *actob = sl->basact ? sl->basact->object : NULL;
|
||||
CustomDataMask mask = ob->customdata_mask;
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ SceneLayer *BKE_scene_layer_render_active(const Scene *scene)
|
|||
* Returns the SceneLayer to be used for drawing, outliner, and
|
||||
* other context related areas.
|
||||
*/
|
||||
SceneLayer *BKE_scene_layer_context_active(Scene *scene)
|
||||
SceneLayer *BKE_scene_layer_context_active(const Scene *scene)
|
||||
{
|
||||
/* waiting for workspace to get the layer from context*/
|
||||
TODO_LAYER_CONTEXT;
|
||||
|
|
Loading…
Reference in New Issue