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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-17 14:35:05 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-18 17:35:38 +0300
commitf9cf2e2f6cc779764f46dae7ceadc4bb2e9ddcb5 (patch)
tree0f409fce181813cab818bfb83a33779e38774684 /source/blender/makesrna
parent15850a8740ed95afdc5779e224bf40f7540a7d62 (diff)
Workspaces: remove workspace engine, use 3D viewport draw mode instead.
ViewRender was removed, which means we can't get the render engine for files saved in 2.8. We assume that any files saved in 2.8 were intended to use Eevee and set the engine to that. A fix included with this is that .blend thumbails now draw with Clay mode, and never Eevee or Cycles. These were drawn with solid mode in 2.7, and should be very fast and not e.g. load heavy image textures. Differential Revision: https://developer.blender.org/D3156
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/RNA_access.h1
-rw-r--r--source/blender/makesrna/intern/rna_context.c11
-rw-r--r--source/blender/makesrna/intern/rna_layer.c113
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c2
-rw-r--r--source/blender/makesrna/intern/rna_scene.c102
-rw-r--r--source/blender/makesrna/intern/rna_space.c4
-rw-r--r--source/blender/makesrna/intern/rna_workspace.c6
7 files changed, 99 insertions, 140 deletions
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 5947324826e..ec4dca98387 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -704,7 +704,6 @@ extern StructRNA RNA_VertexWeightEditModifier;
extern StructRNA RNA_VertexWeightMixModifier;
extern StructRNA RNA_VertexWeightProximityModifier;
extern StructRNA RNA_ViewLayer;
-extern StructRNA RNA_ViewRenderSettings;
extern StructRNA RNA_Window;
extern StructRNA RNA_WindowManager;
extern StructRNA RNA_WipeSequence;
diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c
index bcd805b0f3a..fd128548ed1 100644
--- a/source/blender/makesrna/intern/rna_context.c
+++ b/source/blender/makesrna/intern/rna_context.c
@@ -139,12 +139,6 @@ static PointerRNA rna_Context_view_layer_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(&scene_ptr, &RNA_ViewLayer, CTX_data_view_layer(C));
}
-static PointerRNA rna_Context_view_render_get(PointerRNA *ptr)
-{
- bContext *C = (bContext *)ptr->data;
- return rna_pointer_inherit_refine(ptr, &RNA_ViewRenderSettings, CTX_data_view_render(C));
-}
-
static void rna_Context_engine_get(PointerRNA *ptr, char *value)
{
bContext *C = (bContext *)ptr->data;
@@ -289,11 +283,6 @@ void RNA_def_context(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "ViewLayer");
RNA_def_property_pointer_funcs(prop, "rna_Context_view_layer_get", NULL, NULL, NULL);
- prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_struct_type(prop, "ViewRenderSettings");
- RNA_def_property_pointer_funcs(prop, "rna_Context_view_render_get", NULL, NULL, NULL);
-
prop = RNA_def_property(srna, "engine", PROP_STRING, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_string_funcs(prop, "rna_Context_engine_get", "rna_Context_engine_length", NULL);
diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c
index e6fa7bb26dd..dce85f0e91c 100644
--- a/source/blender/makesrna/intern/rna_layer.c
+++ b/source/blender/makesrna/intern/rna_layer.c
@@ -928,78 +928,6 @@ static void rna_ObjectBase_select_update(Main *UNUSED(bmain), Scene *UNUSED(scen
ED_object_base_select(base, mode);
}
-static char *rna_ViewRenderSettings_path(PointerRNA *UNUSED(ptr))
-{
- return BLI_sprintfN("view_render");
-}
-
-static void rna_ViewRenderSettings_engine_set(PointerRNA *ptr, int value)
-{
- ViewRender *view_render = (ViewRender *)ptr->data;
- RenderEngineType *type = BLI_findlink(&R_engines, value);
-
- if (type) {
- BLI_strncpy_utf8(view_render->engine_id, type->idname, sizeof(view_render->engine_id));
- DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE);
- }
-}
-
-static const EnumPropertyItem *rna_ViewRenderSettings_engine_itemf(
- bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
-{
- RenderEngineType *type;
- EnumPropertyItem *item = NULL;
- EnumPropertyItem tmp = {0, "", 0, "", ""};
- int a = 0, totitem = 0;
-
- for (type = R_engines.first; type; type = type->next, a++) {
- tmp.value = a;
- tmp.identifier = type->idname;
- tmp.name = type->name;
- RNA_enum_item_add(&item, &totitem, &tmp);
- }
-
- RNA_enum_item_end(&item, &totitem);
- *r_free = true;
-
- return item;
-}
-
-static int rna_ViewRenderSettings_engine_get(PointerRNA *ptr)
-{
- ViewRender *view_render = (ViewRender *)ptr->data;
- RenderEngineType *type;
- int a = 0;
-
- for (type = R_engines.first; type; type = type->next, a++)
- if (STREQ(type->idname, view_render->engine_id))
- return a;
-
- return 0;
-}
-
-static void rna_ViewRenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr))
-{
- ED_render_engine_changed(bmain);
-}
-
-static int rna_ViewRenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr))
-{
- return (BLI_listbase_count(&R_engines) > 1);
-}
-
-static int rna_ViewRenderSettings_use_shading_nodes_get(PointerRNA *ptr)
-{
- ViewRender *view_render = (ViewRender *)ptr->data;
- return BKE_viewrender_use_new_shading_nodes(view_render);
-}
-
-static int rna_ViewRenderSettings_use_spherical_stereo_get(PointerRNA *ptr)
-{
- ViewRender *view_render = (ViewRender *)ptr->data;
- return BKE_viewrender_use_spherical_stereo(view_render);
-}
-
#else
static void rna_def_scene_collections(BlenderRNA *brna, PropertyRNA *cprop)
@@ -2183,46 +2111,6 @@ static void rna_def_object_base(BlenderRNA *brna)
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_ObjectBase_select_update");
}
-static void rna_def_scene_view_render(BlenderRNA *brna)
-{
- StructRNA *srna;
- PropertyRNA *prop;
-
- static const EnumPropertyItem engine_items[] = {
- {0, "BLENDER_RENDER", 0, "Blender Render", "Use the Blender internal rendering engine for rendering"},
- {0, NULL, 0, NULL, NULL}
- };
-
- srna = RNA_def_struct(brna, "ViewRenderSettings", NULL);
- RNA_def_struct_sdna(srna, "ViewRender");
- RNA_def_struct_path_func(srna, "rna_ViewRenderSettings_path");
- RNA_def_struct_ui_text(srna, "View Render", "Rendering settings related to viewport drawing/rendering");
-
- /* engine */
- prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, engine_items);
- RNA_def_property_enum_funcs(prop, "rna_ViewRenderSettings_engine_get", "rna_ViewRenderSettings_engine_set",
- "rna_ViewRenderSettings_engine_itemf");
- RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
- RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering");
- RNA_def_property_update(prop, NC_WINDOW, "rna_ViewRenderSettings_engine_update");
-
- prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_multiple_engines_get", NULL);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available");
-
- prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_shading_nodes_get", NULL);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system");
-
- prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_spherical_stereo_get", NULL);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering");
-}
-
void RNA_def_view_layer(BlenderRNA *brna)
{
FunctionRNA *func;
@@ -2302,7 +2190,6 @@ void RNA_def_view_layer(BlenderRNA *brna)
/* *** Animated *** */
rna_def_view_layer_settings(brna);
rna_def_layer_collection_settings(brna);
- rna_def_scene_view_render(brna);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 0caffb4867c..40c36b9bd44 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -3035,7 +3035,7 @@ static void rna_ShaderNodeScript_update(Main *bmain, Scene *scene, PointerRNA *p
{
bNodeTree *ntree = (bNodeTree *)ptr->id.data;
bNode *node = (bNode *)ptr->data;
- RenderEngineType *engine_type = RE_engines_find(scene->view_render.engine_id);
+ RenderEngineType *engine_type = RE_engines_find(scene->r.engine);
if (engine_type && engine_type->update_script_node) {
/* auto update node */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 6f9b1ccebf5..339465d1ac0 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1393,6 +1393,73 @@ static void rna_RenderSettings_views_format_set(PointerRNA *ptr, int value)
rd->views_format = value;
}
+static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value)
+{
+ RenderData *rd = (RenderData *)ptr->data;
+ RenderEngineType *type = BLI_findlink(&R_engines, value);
+
+ if (type) {
+ BLI_strncpy_utf8(rd->engine, type->idname, sizeof(rd->engine));
+ DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE);
+ }
+}
+
+static const EnumPropertyItem *rna_RenderSettings_engine_itemf(
+ bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
+{
+ RenderEngineType *type;
+ EnumPropertyItem *item = NULL;
+ EnumPropertyItem tmp = {0, "", 0, "", ""};
+ int a = 0, totitem = 0;
+
+ for (type = R_engines.first; type; type = type->next, a++) {
+ tmp.value = a;
+ tmp.identifier = type->idname;
+ tmp.name = type->name;
+ RNA_enum_item_add(&item, &totitem, &tmp);
+ }
+
+ RNA_enum_item_end(&item, &totitem);
+ *r_free = true;
+
+ return item;
+}
+
+static int rna_RenderSettings_engine_get(PointerRNA *ptr)
+{
+ RenderData *rd = (RenderData *)ptr->data;
+ RenderEngineType *type;
+ int a = 0;
+
+ for (type = R_engines.first; type; type = type->next, a++)
+ if (STREQ(type->idname, rd->engine))
+ return a;
+
+ return 0;
+}
+
+static void rna_RenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr))
+{
+ ED_render_engine_changed(bmain);
+}
+
+static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr))
+{
+ return (BLI_listbase_count(&R_engines) > 1);
+}
+
+static int rna_RenderSettings_use_shading_nodes_get(PointerRNA *ptr)
+{
+ Scene *scene = (Scene *)ptr->id.data;
+ return BKE_scene_use_new_shading_nodes(scene);
+}
+
+static int rna_RenderSettings_use_spherical_stereo_get(PointerRNA *ptr)
+{
+ Scene *scene = (Scene *)ptr->id.data;
+ return BKE_scene_use_spherical_stereo(scene);
+}
+
void rna_Scene_glsl_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->id.data;
@@ -5031,6 +5098,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}
};
+ static const EnumPropertyItem engine_items[] = {
+ {0, "BLENDER_EEVEE", 0, "Eevee", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
static const EnumPropertyItem freestyle_thickness_items[] = {
{R_LINE_THICKNESS_ABSOLUTE, "ABSOLUTE", 0, "Absolute", "Specify unit line thickness in pixels"},
{R_LINE_THICKNESS_RELATIVE, "RELATIVE", 0, "Relative",
@@ -5772,6 +5844,30 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_enum_funcs(prop, NULL, "rna_RenderSettings_views_format_set", NULL);
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+ /* engine */
+ prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, engine_items);
+ RNA_def_property_enum_funcs(prop, "rna_RenderSettings_engine_get", "rna_RenderSettings_engine_set",
+ "rna_RenderSettings_engine_itemf");
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update");
+
+ prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_multiple_engines_get", NULL);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available");
+
+ prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_shading_nodes_get", NULL);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system");
+
+ prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_spherical_stereo_get", NULL);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering");
+
/* simplify */
prop = RNA_def_property(srna, "use_simplify", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SIMPLIFY);
@@ -6345,12 +6441,6 @@ void RNA_def_scene(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "RenderSettings");
RNA_def_property_ui_text(prop, "Render Data", "");
- /* View Render */
- prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE);
- RNA_def_property_flag(prop, PROP_NEVER_NULL);
- RNA_def_property_struct_type(prop, "ViewRenderSettings");
- RNA_def_property_ui_text(prop, "View Render", "");
-
/* Render Engine Data */
prop = RNA_def_property(srna, "layer_properties", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "layer_properties->data.group", NULL);
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 2d7dc477fe3..47ae2cb8951 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -670,7 +670,7 @@ static int rna_SpaceView3D_viewport_shade_get(PointerRNA *ptr)
{
bScreen *screen = ptr->id.data;
Scene *scene = WM_windows_scene_get_from_screen(G.main->wm.first, screen);
- RenderEngineType *type = RE_engines_find(scene->view_render.engine_id);
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
View3D *v3d = (View3D *)ptr->data;
if (BKE_scene_uses_blender_eevee(scene)) {
@@ -702,7 +702,7 @@ static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
- RenderEngineType *type = RE_engines_find(scene->view_render.engine_id);
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
EnumPropertyItem *item = NULL;
int totitem = 0;
diff --git a/source/blender/makesrna/intern/rna_workspace.c b/source/blender/makesrna/intern/rna_workspace.c
index 92c45998913..c48e80ad349 100644
--- a/source/blender/makesrna/intern/rna_workspace.c
+++ b/source/blender/makesrna/intern/rna_workspace.c
@@ -203,12 +203,6 @@ static void rna_def_workspace(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Mode", "Object interaction mode used in this window");
#endif
- /* View Render */
- prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE);
- RNA_def_property_flag(prop, PROP_NEVER_NULL);
- RNA_def_property_struct_type(prop, "ViewRenderSettings");
- RNA_def_property_ui_text(prop, "View Render", "");
-
/* Flags */
prop = RNA_def_property(srna, "use_scene_settings", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);