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:
authorDalai Felinto <dfelinto@gmail.com>2017-03-30 18:01:23 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-03-30 18:01:23 +0300
commitce3c7e8ff515e5bfbf70d0f4f60557e26c9d98a1 (patch)
tree1062bd45d22a2a0aff4e4a227079154b78c42263 /source/blender/draw
parent98e69631b0cf31b5b73c1d9afb9bd9fc81fc42be (diff)
Layers: use IDProperty and override collection properties system
First this replace a custom data struct with IDProperty, and use IDProperty group merge and copying functions. Which means that a collection property setting is only created if necessary. This implements the "Layer Collection settings" override system, as suggested in the "Override Manifesto" document. The core is working, with Scene, LayerCollection and Object using a single IDProperty to store all the render settings data. Next step is to migrate this to depsgraph. Note: Clay engine "ssao_samples" was hardcoded to 32 for now. It will come back as part of "Workspace Settings" later. Many thanks for Bastien Montagne for the help with the UI template nightmare ;) Differential Revision: https://developer.blender.org/D2563
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/DRW_engine.h11
-rw-r--r--source/blender/draw/engines/clay/clay.c125
-rw-r--r--source/blender/draw/engines/clay/clay.h5
-rw-r--r--source/blender/draw/engines/eevee/eevee.c10
-rw-r--r--source/blender/draw/intern/DRW_render.h4
-rw-r--r--source/blender/draw/intern/draw_manager.c81
-rw-r--r--source/blender/draw/modes/edit_mesh_mode.c20
-rw-r--r--source/blender/draw/modes/object_mode.c10
8 files changed, 70 insertions, 196 deletions
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index e8dc47245e3..669f7a24908 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -31,6 +31,7 @@ struct DRWPass;
struct Material;
struct Scene;
struct DrawEngineType;
+struct IDProperty;
struct bContext;
struct Object;
@@ -54,13 +55,9 @@ void DRW_draw_view(const struct bContext *C);
/* This is here because GPUViewport needs it */
void DRW_pass_free(struct DRWPass *pass);
-/* Settings */
-void *DRW_material_settings_get(struct Material *ma, const char *engine_name);
-void *DRW_render_settings_get(struct Scene *scene, const char *engine_name);
-
/* Mode engines initialization */
-void OBJECT_collection_settings_create(struct CollectionEngineSettings *ces);
-void EDIT_MESH_collection_settings_create(struct CollectionEngineSettings *ces);
-void EDIT_ARMATURE_collection_settings_create(struct CollectionEngineSettings *ces);
+void OBJECT_collection_settings_create(struct IDProperty *properties);
+void EDIT_MESH_collection_settings_create(struct IDProperty *properties);
+void EDIT_ARMATURE_collection_settings_create(struct IDProperty *properties);
#endif /* __DRW_ENGINE_H__ */
diff --git a/source/blender/draw/engines/clay/clay.c b/source/blender/draw/engines/clay/clay.c
index 9f46556b7c2..6294715e01c 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -22,6 +22,7 @@
#include "DRW_render.h"
#include "BKE_icons.h"
+#include "BKE_idprop.h"
#include "BKE_main.h"
#include "BLI_dynstr.h"
@@ -252,30 +253,6 @@ static struct GPUTexture *create_jitter_texture(void)
return DRW_texture_create_2D(64, 64, DRW_TEX_RG_16, DRW_TEX_FILTER | DRW_TEX_WRAP, &jitter[0][0]);
}
-static void clay_material_settings_init(MaterialEngineSettingsClay *ma)
-{
- ma->matcap_icon = ICON_MATCAP_01;
- ma->matcap_rot = 0.0f;
- ma->matcap_hue = 0.5f;
- ma->matcap_sat = 0.5f;
- ma->matcap_val = 0.5f;
- ma->ssao_distance = 0.2;
- ma->ssao_attenuation = 1.0f;
- ma->ssao_factor_cavity = 1.0f;
- ma->ssao_factor_edge = 1.0f;
-}
-
-RenderEngineSettings *CLAY_render_settings_create(void)
-{
- RenderEngineSettingsClay *settings = MEM_callocN(sizeof(RenderEngineSettingsClay), "RenderEngineSettingsClay");
-
- clay_material_settings_init((MaterialEngineSettingsClay *)settings);
-
- settings->ssao_samples = 32;
-
- return (RenderEngineSettings *)settings;
-}
-
static void CLAY_engine_init(void *vedata)
{
CLAY_StorageList *stl = ((CLAY_Data *)vedata)->stl;
@@ -372,6 +349,7 @@ static void CLAY_engine_init(void *vedata)
/* SSAO setup */
{
+ int ssao_samples = 32; /* XXX get from render settings */
float invproj[4][4];
float dfdyfacs[2];
bool is_persp = DRW_viewport_is_persp_get();
@@ -383,11 +361,10 @@ static void CLAY_engine_init(void *vedata)
};
int i;
float *size = DRW_viewport_size_get();
- RenderEngineSettingsClay *settings = DRW_render_settings_get(NULL, RE_engine_id_BLENDER_CLAY);
DRW_get_dfdy_factors(dfdyfacs);
- e_data.ssao_params[0] = settings->ssao_samples;
+ e_data.ssao_params[0] = ssao_samples;
e_data.ssao_params[1] = size[0] / 64.0;
e_data.ssao_params[2] = size[1] / 64.0;
e_data.ssao_params[3] = dfdyfacs[1]; /* dfdy sign for offscreen */
@@ -421,14 +398,14 @@ static void CLAY_engine_init(void *vedata)
}
/* AO Samples Tex */
- if (e_data.sampling_tx && (e_data.cached_sample_num != settings->ssao_samples)) {
+ if (e_data.sampling_tx && (e_data.cached_sample_num != ssao_samples)) {
DRW_texture_free(e_data.sampling_tx);
e_data.sampling_tx = NULL;
}
if (!e_data.sampling_tx) {
- e_data.sampling_tx = create_spiral_sample_texture(settings->ssao_samples);
- e_data.cached_sample_num = settings->ssao_samples;
+ e_data.sampling_tx = create_spiral_sample_texture(ssao_samples);
+ e_data.cached_sample_num = ssao_samples;
}
}
}
@@ -528,62 +505,21 @@ static int mat_in_ubo(CLAY_Storage *storage, float matcap_rot, float matcap_hue,
return id;
}
-/* Safe way to get override values */
-static void override_setting(CollectionEngineSettings *ces, const char *name, void *ret)
-{
- CollectionEngineProperty *cep = BKE_collection_engine_property_get(ces, name);
-
- if (cep == NULL) {
- return;
- }
-
- if ((cep->flag & COLLECTION_PROP_USE) == 0) {
- return;
- }
-
- if (cep->type == COLLECTION_PROP_TYPE_INT) {
- CollectionEnginePropertyInt *prop = (CollectionEnginePropertyInt *)cep;
- *((int *)ret) = prop->value;
- }
- else if (cep->type == COLLECTION_PROP_TYPE_FLOAT) {
- CollectionEnginePropertyFloat *prop = (CollectionEnginePropertyFloat *)cep;
- *((float *)ret) = prop->value;
- }
- else if (cep->type == COLLECTION_PROP_TYPE_BOOL) {
- CollectionEnginePropertyBool *prop = (CollectionEnginePropertyBool *)cep;
- *((bool *)ret) = prop->value;
- }
-}
-
static DRWShadingGroup *CLAY_object_shgrp_get(CLAY_Data *vedata, Object *ob, CLAY_StorageList *stl, CLAY_PassList *psl)
{
DRWShadingGroup **shgrps = stl->storage->shgrps;
- MaterialEngineSettingsClay *settings = DRW_render_settings_get(NULL, RE_engine_id_BLENDER_CLAY);
- CollectionEngineSettings *ces = BKE_object_collection_engine_get(ob, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_CLAY);
+ IDProperty *props = BKE_object_collection_engine_get(ob, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_CLAY);
/* Default Settings */
- float matcap_rot = settings->matcap_rot;
- float matcap_hue = settings->matcap_hue;
- float matcap_sat = settings->matcap_sat;
- float matcap_val = settings->matcap_val;
- float ssao_distance = settings->ssao_distance;
- float ssao_factor_cavity = settings->ssao_factor_cavity;
- float ssao_factor_edge = settings->ssao_factor_edge;
- float ssao_attenuation = settings->ssao_attenuation;
- int matcap_icon = settings->matcap_icon;
-
- /* Override settings */
- if (ces) {
- override_setting(ces, "matcap_rotation", &matcap_rot);
- override_setting(ces, "matcap_hue", &matcap_hue);
- override_setting(ces, "matcap_saturation", &matcap_sat);
- override_setting(ces, "matcap_value", &matcap_val);
- override_setting(ces, "ssao_distance", &ssao_distance);
- override_setting(ces, "ssao_factor_cavity", &ssao_factor_cavity);
- override_setting(ces, "ssao_factor_edge", &ssao_factor_edge);
- override_setting(ces, "ssao_attenuation", &ssao_attenuation);
- override_setting(ces, "matcap_icon", &matcap_icon);
- }
+ float matcap_rot = BKE_collection_engine_property_value_get_float(props, "matcap_rotation");
+ float matcap_hue = BKE_collection_engine_property_value_get_float(props, "matcap_hue");
+ float matcap_sat = BKE_collection_engine_property_value_get_float(props, "matcap_saturation");
+ float matcap_val = BKE_collection_engine_property_value_get_float(props, "matcap_value");
+ float ssao_distance = BKE_collection_engine_property_value_get_float(props, "ssao_distance");
+ float ssao_factor_cavity = BKE_collection_engine_property_value_get_float(props, "ssao_factor_cavity");
+ float ssao_factor_edge = BKE_collection_engine_property_value_get_float(props, "ssao_factor_edge");
+ float ssao_attenuation = BKE_collection_engine_property_value_get_float(props, "ssao_attenuation");
+ int matcap_icon = BKE_collection_engine_property_value_get_int(props, "matcap_icon");
int id = mat_in_ubo(stl->storage, matcap_rot, matcap_hue, matcap_sat, matcap_val,
ssao_distance, ssao_factor_cavity, ssao_factor_edge,
@@ -638,7 +574,7 @@ static void CLAY_cache_populate(void *vedata, Object *ob)
if (!DRW_is_object_renderable(ob))
return;
- CollectionEngineSettings *ces_mode_ob = BKE_object_collection_engine_get(ob, COLLECTION_MODE_OBJECT, "");
+ IDProperty *ces_mode_ob = BKE_object_collection_engine_get(ob, COLLECTION_MODE_OBJECT, "");
bool do_cull = BKE_collection_engine_property_value_get_bool(ces_mode_ob, "show_backface_culling");
/* TODO all renderable */
@@ -680,19 +616,22 @@ static void CLAY_draw_scene(void *vedata)
DRW_draw_pass(psl->clay_pass);
}
-static void CLAY_collection_settings_create(RenderEngine *UNUSED(engine), CollectionEngineSettings *ces)
+static void CLAY_collection_settings_create(RenderEngine *UNUSED(engine), IDProperty *props)
{
- BLI_assert(ces);
- BKE_collection_engine_property_add_int(ces, "matcap_icon", ICON_MATCAP_01);
- BKE_collection_engine_property_add_int(ces, "type", CLAY_MATCAP_NONE);
- BKE_collection_engine_property_add_float(ces, "matcap_rotation", 0.0f);
- BKE_collection_engine_property_add_float(ces, "matcap_hue", 0.5f);
- BKE_collection_engine_property_add_float(ces, "matcap_saturation", 0.5f);
- BKE_collection_engine_property_add_float(ces, "matcap_value", 0.5f);
- BKE_collection_engine_property_add_float(ces, "ssao_distance", 0.2f);
- BKE_collection_engine_property_add_float(ces, "ssao_attenuation", 1.0f);
- BKE_collection_engine_property_add_float(ces, "ssao_factor_cavity", 1.0f);
- BKE_collection_engine_property_add_float(ces, "ssao_factor_edge", 1.0f);
+ BLI_assert(props &&
+ props->type == IDP_GROUP &&
+ props->subtype == IDP_GROUP_SUB_ENGINE_RENDER);
+
+ BKE_collection_engine_property_add_int(props, "matcap_icon", ICON_MATCAP_01);
+ BKE_collection_engine_property_add_int(props, "type", CLAY_MATCAP_NONE);
+ BKE_collection_engine_property_add_float(props, "matcap_rotation", 0.0f);
+ BKE_collection_engine_property_add_float(props, "matcap_hue", 0.5f);
+ BKE_collection_engine_property_add_float(props, "matcap_saturation", 0.5f);
+ BKE_collection_engine_property_add_float(props, "matcap_value", 0.5f);
+ BKE_collection_engine_property_add_float(props, "ssao_distance", 0.2f);
+ BKE_collection_engine_property_add_float(props, "ssao_attenuation", 1.0f);
+ BKE_collection_engine_property_add_float(props, "ssao_factor_cavity", 1.0f);
+ BKE_collection_engine_property_add_float(props, "ssao_factor_edge", 1.0f);
}
static void CLAY_engine_free(void)
diff --git a/source/blender/draw/engines/clay/clay.h b/source/blender/draw/engines/clay/clay.h
index 1afe1ac5ea8..660ad70ab48 100644
--- a/source/blender/draw/engines/clay/clay.h
+++ b/source/blender/draw/engines/clay/clay.h
@@ -28,7 +28,8 @@
extern RenderEngineType viewport_clay_type;
-struct RenderEngineSettings *CLAY_render_settings_create(void);
-struct MaterialEngineSettings *CLAY_material_settings_create(void);
+struct IDProperty;
+
+struct IDProperty *CLAY_render_settings_create(void);
#endif /* __CLAY_H__ */
diff --git a/source/blender/draw/engines/eevee/eevee.c b/source/blender/draw/engines/eevee/eevee.c
index f5c4f2385af..d40ce0baa38 100644
--- a/source/blender/draw/engines/eevee/eevee.c
+++ b/source/blender/draw/engines/eevee/eevee.c
@@ -156,7 +156,7 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl;
if (ob->type == OB_MESH) {
- CollectionEngineSettings *ces_mode_ob = BKE_object_collection_engine_get(ob, COLLECTION_MODE_OBJECT, "");
+ IDProperty *ces_mode_ob = BKE_object_collection_engine_get(ob, COLLECTION_MODE_OBJECT, "");
bool do_cull = BKE_collection_engine_property_value_get_bool(ces_mode_ob, "show_backface_culling");
struct Batch *geom = DRW_cache_surface_get(ob);
@@ -222,10 +222,12 @@ static void EEVEE_engine_free(void)
DRW_shader_free(e_data.tonemap);
}
-static void EEVEE_collection_settings_create(RenderEngine *UNUSED(engine), CollectionEngineSettings *ces)
+static void EEVEE_collection_settings_create(RenderEngine *UNUSED(engine), IDProperty *props)
{
- BLI_assert(ces);
- // BKE_collection_engine_property_add_int(ces, "high_quality_sphere_lamps", false);
+ BLI_assert(props &&
+ props->type == IDP_GROUP &&
+ props->subtype == IDP_GROUP_SUB_ENGINE_RENDER);
+ // BKE_collection_engine_property_add_int(props, "high_quality_sphere_lamps", false);
}
DrawEngineType draw_engine_eevee_type = {
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 1f74ca5981a..13b10011dec 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -249,10 +249,6 @@ struct DefaultTextureList *DRW_viewport_texture_list_get(void);
/* Settings */
bool DRW_is_object_renderable(struct Object *ob);
-#ifndef __DRW_ENGINE_H__
-void *DRW_material_settings_get(Material *ma, const char *engine_name);
-void *DRW_render_settings_get(Scene *scene, const char *engine_name);
-#endif /* __DRW_ENGINE_H__ */
/* Draw commands */
void DRW_draw_pass(DRWPass *pass);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index efa677240dd..65fd77a5155 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -923,7 +923,7 @@ static void draw_geometry(DRWShadingGroup *shgroup, Batch *geom, const float (*o
{
RegionView3D *rv3d = CTX_wm_region_view3d(DST.context);
DRWInterface *interface = shgroup->interface;
-
+
float mvp[4][4], mv[4][4], n[3][3], wn[3][3];
float eye[3] = { 0.0f, 0.0f, 1.0f }; /* looking into the screen */
@@ -1050,7 +1050,7 @@ static void draw_shgroup(DRWShadingGroup *shgroup)
GPU_texture_bind(tex, uni->bindloc);
GPU_texture_compare_mode(tex, false);
GPU_texture_filter_mode(tex, false);
-
+
bound_tex = MEM_callocN(sizeof(DRWBoundTexture), "DRWBoundTexture");
bound_tex->tex = tex;
BLI_addtail(&DST.bound_texs, bound_tex);
@@ -1186,8 +1186,8 @@ bool DRW_is_object_renderable(Object *ob)
if (ob->type == OB_MESH) {
if (ob == obedit) {
- CollectionEngineSettings *ces_mode_ed = BKE_object_collection_engine_get(ob, COLLECTION_MODE_EDIT, "");
- bool do_occlude_wire = BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_occlude_wire");
+ IDProperty *props = BKE_object_collection_engine_get(ob, COLLECTION_MODE_EDIT, "");
+ bool do_occlude_wire = BKE_collection_engine_property_value_get_bool(props, "show_occlude_wire");
if (do_occlude_wire)
return false;
@@ -1197,72 +1197,6 @@ bool DRW_is_object_renderable(Object *ob)
return true;
}
-void *DRW_material_settings_get(Material *ma, const char *engine_name)
-{
- MaterialEngineSettings *ms = NULL;
-
- ms = BLI_findstring(&ma->engines_settings, engine_name, offsetof(MaterialEngineSettings, name));
-
-#ifdef WITH_CLAY_ENGINE
- /* If the settings does not exists yet, create it */
- if (ms == NULL) {
- ms = MEM_callocN(sizeof(RenderEngineSettings), "RenderEngineSettings");
-
- BLI_strncpy(ms->name, engine_name, 32);
-
- /* TODO make render_settings_create a polymorphic function */
- if (STREQ(engine_name, RE_engine_id_BLENDER_CLAY)) {
- /* No material support */
- BLI_assert(false);
- }
- else {
- /* No engine matched */
- BLI_assert(false);
- }
-
- BLI_addtail(&ma->engines_settings, ms);
- }
-#else
- return NULL;
-#endif
-
- return ms->data;
-}
-
-/* If scene is NULL, use context scene */
-void *DRW_render_settings_get(Scene *scene, const char *engine_name)
-{
- RenderEngineSettings *rs = NULL;
-
- if (scene == NULL)
- scene = CTX_data_scene(DST.context);
-
- rs = BLI_findstring(&scene->engines_settings, engine_name, offsetof(RenderEngineSettings, name));
-
-#ifdef WITH_CLAY_ENGINE
- /* If the settings does not exists yet, create it */
- if (rs == NULL) {
- rs = MEM_callocN(sizeof(RenderEngineSettings), "RenderEngineSettings");
-
- BLI_strncpy(rs->name, engine_name, 32);
-
- /* TODO make render_settings_create a polymorphic function */
- if (STREQ(engine_name, RE_engine_id_BLENDER_CLAY)) {
- rs->data = CLAY_render_settings_create();
- }
- else {
- /* No engine matched */
- BLI_assert(false);
- }
-
- BLI_addtail(&scene->engines_settings, rs);
- }
-#else
- return NULL;
-#endif
-
- return rs->data;
-}
/* ****************************************** Framebuffers ******************************************/
static GPUTextureFormat convert_tex_format(int fbo_format, int *channels)
@@ -1289,7 +1223,7 @@ void DRW_framebuffer_init(struct GPUFrameBuffer **fb, int width, int height, DRW
for (int i = 0; i < texnbr; ++i) {
DRWFboTexture fbotex = textures[i];
-
+
if (!*fbotex.tex) {
int channels;
GPUTextureFormat gpu_format = convert_tex_format(fbotex.format, &channels);
@@ -1307,7 +1241,7 @@ void DRW_framebuffer_init(struct GPUFrameBuffer **fb, int width, int height, DRW
++color_attachment;
}
}
-
+
GPU_framebuffer_texture_attach(*fb, *fbotex.tex, color_attachment);
}
@@ -1787,10 +1721,11 @@ void DRW_draw_view(const bContext *C)
/* ideally only refresh when objects are added/removed */
/* or render properties / materials change */
if (cache_is_dirty) {
+ Scene *scene = CTX_data_scene(C);
SceneLayer *sl = CTX_data_scene_layer(C);
DRW_engines_cache_init();
- DEG_OBJECT_ITER(sl, ob);
+ DEG_OBJECT_ITER(scene, sl, ob);
{
DRW_engines_cache_populate(ob);
}
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 084e0eb89b7..713ae607ef4 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -367,7 +367,7 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob)
if (ob->type == OB_MESH) {
if (ob == obedit) {
- CollectionEngineSettings *ces_mode_ed = BKE_object_collection_engine_get(ob, COLLECTION_MODE_EDIT, "");
+ IDProperty *ces_mode_ed = BKE_object_collection_engine_get(ob, COLLECTION_MODE_EDIT, "");
bool do_occlude_wire = BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_occlude_wire");
backwire_opacity = BKE_collection_engine_property_value_get_float(ces_mode_ed, "backwire_opacity"); /* Updating uniform */
@@ -446,15 +446,17 @@ static void EDIT_MESH_draw_scene(void *vedata)
}
}
-void EDIT_MESH_collection_settings_create(CollectionEngineSettings *ces)
+void EDIT_MESH_collection_settings_create(IDProperty *properties)
{
- BLI_assert(ces);
- BKE_collection_engine_property_add_int(ces, "show_occlude_wire", false);
- BKE_collection_engine_property_add_int(ces, "face_normals_show", false);
- BKE_collection_engine_property_add_int(ces, "vert_normals_show", false);
- BKE_collection_engine_property_add_int(ces, "loop_normals_show", false);
- BKE_collection_engine_property_add_float(ces, "normals_length", 0.1);
- BKE_collection_engine_property_add_float(ces, "backwire_opacity", 0.5);
+ BLI_assert(properties &&
+ properties->type == IDP_GROUP &&
+ properties->subtype == IDP_GROUP_SUB_MODE_EDIT);
+ BKE_collection_engine_property_add_int(properties, "show_occlude_wire", false);
+ BKE_collection_engine_property_add_int(properties, "face_normals_show", false);
+ BKE_collection_engine_property_add_int(properties, "vert_normals_show", false);
+ BKE_collection_engine_property_add_int(properties, "loop_normals_show", false);
+ BKE_collection_engine_property_add_float(properties, "normals_length", 0.1);
+ BKE_collection_engine_property_add_float(properties, "backwire_opacity", 0.5);
}
static void EDIT_MESH_engine_free(void)
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 046fcc0a837..e301c3e4e8a 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1028,11 +1028,13 @@ static void OBJECT_draw_scene(void *vedata)
DRW_draw_pass(psl->outlines_resolve);
}
-void OBJECT_collection_settings_create(CollectionEngineSettings *ces)
+void OBJECT_collection_settings_create(IDProperty *props)
{
- BLI_assert(ces);
- BKE_collection_engine_property_add_int(ces, "show_wire", false);
- BKE_collection_engine_property_add_int(ces, "show_backface_culling", false);
+ BLI_assert(props &&
+ props->type == IDP_GROUP &&
+ props->subtype == IDP_GROUP_SUB_MODE_OBJECT);
+ BKE_collection_engine_property_add_int(props, "show_wire", false);
+ BKE_collection_engine_property_add_int(props, "show_backface_culling", false);
}
DrawEngineType draw_engine_object_type = {