[Bf-blender-cvs] [744f26b612] clay-engine: Change in DNA/RNA. Still missing freeing and read/write.
Clément Foucault
noreply at git.blender.org
Sun Jan 29 21:36:56 CET 2017
Commit: 744f26b6129fc3723f9934d358060a3cb931474c
Author: Clément Foucault
Date: Sun Jan 29 00:55:46 2017 +0100
Branches: clay-engine
https://developer.blender.org/rB744f26b6129fc3723f9934d358060a3cb931474c
Change in DNA/RNA. Still missing freeing and read/write.
===================================================================
M release/scripts/startup/bl_ui/properties_material.py
M release/scripts/startup/bl_ui/properties_render.py
M source/blender/blenkernel/intern/material.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/blenloader/intern/writefile.c
M source/blender/draw/DRW_engine.h
M source/blender/draw/engines/clay/clay.c
M source/blender/draw/engines/clay/clay.h
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_cache.c
M source/blender/draw/intern/draw_cache.h
M source/blender/draw/intern/draw_manager.c
M source/blender/makesdna/DNA_material_types.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/CMakeLists.txt
M source/blender/makesrna/intern/rna_material.c
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 04662095a0..e8ba7cc803 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -1060,16 +1060,16 @@ class MATERIAL_PT_clay_settings(MaterialButtonsPanel, Panel):
def draw(self, context):
layout = self.layout;
settings = context.material.clay_settings
- layout.template_icon_view(settings, "matcap_icon")
- layout.prop(settings, "type")
- layout.prop(settings, "matcap_rotation")
- layout.prop(settings, "matcap_hue")
- layout.prop(settings, "matcap_saturation")
- layout.prop(settings, "matcap_value")
- layout.prop(settings, "ssao_factor_cavity")
- layout.prop(settings, "ssao_factor_edge")
- layout.prop(settings, "ssao_distance")
- layout.prop(settings, "ssao_attenuation")
+ # layout.template_icon_view(settings, "matcap_icon")
+ # layout.prop(settings, "type")
+ # layout.prop(settings, "matcap_rotation")
+ # layout.prop(settings, "matcap_hue")
+ # layout.prop(settings, "matcap_saturation")
+ # layout.prop(settings, "matcap_value")
+ # layout.prop(settings, "ssao_factor_cavity")
+ # layout.prop(settings, "ssao_factor_edge")
+ # layout.prop(settings, "ssao_distance")
+ # layout.prop(settings, "ssao_attenuation")
if __name__ == "__main__": # only for live edit.
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 0d473d79ed..593072992f 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -590,17 +590,16 @@ class RENDER_PT_clay(RenderButtonsPanel, Panel):
def draw(self, context):
layout = self.layout;
- settings = context.scene.clay_settings
- matsettings = context.scene.clay_settings.mat_settings
- layout.template_icon_view(matsettings, "matcap_icon")
- layout.prop(matsettings, "matcap_rotation")
- layout.prop(matsettings, "matcap_hue")
- layout.prop(matsettings, "matcap_saturation")
- layout.prop(matsettings, "matcap_value")
- layout.prop(matsettings, "ssao_factor_cavity")
- layout.prop(matsettings, "ssao_factor_edge")
- layout.prop(matsettings, "ssao_distance")
- layout.prop(matsettings, "ssao_attenuation")
+ settings = context.scene.render_engine
+ layout.template_icon_view(settings, "matcap_icon")
+ layout.prop(settings, "matcap_rotation")
+ layout.prop(settings, "matcap_hue")
+ layout.prop(settings, "matcap_saturation")
+ layout.prop(settings, "matcap_value")
+ layout.prop(settings, "ssao_factor_cavity")
+ layout.prop(settings, "ssao_factor_edge")
+ layout.prop(settings, "ssao_distance")
+ layout.prop(settings, "ssao_attenuation")
layout.prop(settings, "ssao_samples")
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index ad53d03f43..3fb7ee89ae 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -112,10 +112,7 @@ void BKE_material_free(Material *ma)
BKE_icon_id_delete((ID *)ma);
BKE_previewimg_free(&ma->preview);
- if (ma->clay.runtime) {
- MEM_freeN(ma->clay.runtime);
- ma->clay.runtime = NULL;
- }
+ /* TODO Free Engine Settings */
}
void BKE_material_init(Material *ma)
@@ -211,17 +208,6 @@ void BKE_material_init(Material *ma)
ma->mode2 = MA_CASTSHADOW;
ma->shade_flag = MA_APPROX_OCCLUSION;
ma->preview = NULL;
-
- /* New engines */
- ma->clay.matcap_rot = 0.0f;
- ma->clay.matcap_hue = 0.5f;
- ma->clay.matcap_sat = 0.5f;
- ma->clay.matcap_val = 0.5f;
- ma->clay.ssao_distance = 0.2;
- ma->clay.ssao_attenuation = 1.0f;
- ma->clay.ssao_factor_cavity = 1.0f;
- ma->clay.ssao_factor_edge = 1.0f;
- ma->clay.runtime = NULL;
}
Material *BKE_material_add(Main *bmain, const char *name)
@@ -263,7 +249,8 @@ Material *BKE_material_copy(Main *bmain, Material *ma)
BKE_previewimg_id_copy(&man->id, &ma->id);
BLI_listbase_clear(&man->gpumaterial);
- man->clay.runtime = NULL;
+
+ /* TODO Duplicate Engine Settings and set runtime to NULL */
BKE_id_copy_ensure_local(bmain, &ma->id, &man->id);
@@ -296,7 +283,8 @@ Material *localize_material(Material *ma)
man->nodetree = ntreeLocalize(ma->nodetree);
BLI_listbase_clear(&man->gpumaterial);
- man->clay.runtime = NULL;
+
+ /* TODO Duplicate Engine Settings and set runtime to NULL */
return man;
}
@@ -1716,7 +1704,7 @@ void copy_matcopybuf(Material *ma)
matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, G.main, false);
matcopybuf.preview = NULL;
BLI_listbase_clear(&matcopybuf.gpumaterial);
- matcopybuf.clay.runtime = NULL;
+ /* TODO Duplicate Engine Settings and set runtime to NULL */
matcopied = 1;
}
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 2d92e03f76..b4aa47bf9d 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -569,10 +569,7 @@ void BKE_scene_free(Scene *sce)
sce->collection = NULL;
/* Runtime Engine Data */
- if (sce->claydata.defsettings.runtime) {
- MEM_freeN(sce->claydata.defsettings.runtime);
- sce->claydata.defsettings.runtime = NULL;
- }
+ BLI_freelistN(&sce->engines_settings);
}
void BKE_scene_init(Scene *sce)
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index be5f16bef4..a8dc9d0ed8 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -3988,8 +3988,6 @@ static void direct_link_material(FileData *fd, Material *ma)
ma->preview = direct_link_preview_image(fd, ma->preview);
BLI_listbase_clear(&ma->gpumaterial);
-
- ma->clay.runtime = NULL;
}
/* ************ READ PARTICLE SETTINGS ***************** */
@@ -5949,6 +5947,7 @@ static void direct_link_scene(FileData *fd, Scene *sce)
RigidBodyWorld *rbw;
SceneLayer *sl;
SceneRenderLayer *srl;
+ RenderEngineSettings *res;
sce->theDag = NULL;
sce->depsgraph = NULL;
@@ -6211,8 +6210,12 @@ static void direct_link_scene(FileData *fd, Scene *sce)
sl->basact = newdataadr(fd, sl->basact);
direct_link_layer_collections(fd, &sl->layer_collections);
}
-
- sce->claydata.defsettings.runtime = NULL;
+#if 0
+ link_list(fd, &sce->engines_settings);
+ for (res = sce->engines_settings.first; res; res = res->next) {
+ res->runtime = NULL;
+ }
+#endif
}
/* ************ READ WM ***************** */
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 954d5aeb10..92592e9fc6 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -178,37 +178,5 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
BLI_strncpy(scene->collection->name, "Master Collection", sizeof(scene->collection->name));
}
}
-
- /* Clay engine defaults */
- if (!DNA_struct_elem_find(fd->filesdna, "Scene", "EngineDataClay", "claydata")) {
- for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
- EngineDataClay *settings = &scene->claydata;
-
- settings->defsettings.matcap_rot = 0.0f;
- settings->defsettings.matcap_hue = 0.5f;
- settings->defsettings.matcap_sat = 0.5f;
- settings->defsettings.matcap_val = 0.5f;
- settings->defsettings.ssao_distance = 0.2;
- settings->defsettings.ssao_attenuation = 1.0f;
- settings->defsettings.ssao_factor_cavity = 1.0f;
- settings->defsettings.ssao_factor_edge = 1.0f;
- settings->ssao_samples = 32;
- }
- }
-
- if (!DNA_struct_elem_find(fd->filesdna, "Material", "MaterialSettingsClay", "clay")) {
- for (Material *mat = main->mat.first; mat; mat = mat->id.next) {
- MaterialSettingsClay *clay = &mat->clay;
-
- clay->matcap_rot = 0.0f;
- clay->matcap_hue = 0.5f;
- clay->matcap_sat = 0.5f;
- clay->matcap_val = 0.5f;
- clay->ssao_distance = 0.2;
- clay->ssao_attenuation = 1.0f;
- clay->ssao_factor_cavity = 1.0f;
- clay->ssao_factor_edge = 1.0f;
- }
- }
}
}
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 1621bb7843..4032dbe9d2 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2666,6 +2666,7 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
FreestyleModuleConfig *fmc;
FreestyleLineSet *fls;
SceneLayer *sl;
+ RenderEngineSettings *res;
sce = scebase->first;
while (sce) {
@@ -2878,7 +2879,11 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
writelist(wd, DATA, ObjectBase, &sl->object_bases);
write_layer_collections(wd, &sl->layer_collections);
}
-
+#if 0
+ for (res = sce->engines_settings.first; res; res = res->next) {
+ /* How to write if struct type is not known? */
+ }
+#endif
sce = sce->id.next;
}
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index d58e2406fa..4f86e3fcd9 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -29,6 +29,8 @@
//#define WITH_VIEWPORT_CACHE_TEST
struct DRWPass;
+struct Material;
+struct Scene;
void DRW_engines_init(void);
void DRW_engines_free(void);
@@ -36,4 +38,8 @@ void DRW_engines_free(void);
/* 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);
+
#endif /* __DRW_ENGINE_H__ */
\ No newline at end of file
diff --git a/source/blender/draw/engines/clay/clay.c b/source/blender/draw/engines/clay/clay.c
index cf5720b911..6e155776bb 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -235,6 +235,
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list