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:
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py4
-rw-r--r--source/blender/blenloader/intern/versioning_280.c6
-rw-r--r--source/blender/draw/intern/draw_manager.c5
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c6
-rw-r--r--source/blender/makesrna/intern/rna_space.c35
5 files changed, 48 insertions, 8 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 5e022aee0ed..af032a7e75d 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -46,10 +46,6 @@ class VIEW3D_HT_header(Header):
# Contains buttons like Mode, Pivot, Manipulator, Layer, Mesh Select Mode...
row = layout
layout.template_header_3D()
- row.prop(view, "viewport_shade", text="", icon_only=True)
-
- if view.viewport_shade == "SOLID":
- row.prop(view, "viewport_shade_solid", text="")
if obj:
mode = obj.mode
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index b3cd1a6a1b7..490344d30fa 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -934,6 +934,12 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
View3D *v3d = (View3D *)sl;
v3d->drawtype_solid = OB_LIGHTING_STUDIO;
v3d->drawtype_wireframe = OB_LIGHTING_STUDIO;
+
+ /* Assume (demo) files written with 2.8 want to show
+ * Eevee renders in the viewport. */
+ if (MAIN_VERSION_ATLEAST(main, 280, 0)) {
+ v3d->drawtype = OB_MATERIAL;
+ }
}
}
}
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index a147aed308c..2ab661aa5dd 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -915,6 +915,11 @@ static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int dr
case OB_TEXTURE:
break;
+ case OB_MATERIAL:
+ engine_type = RE_engines_find("BLENDER_EEVEE");
+ use_drw_engine(engine_type->draw_engine);
+ break;
+
default:
case OB_RENDER:
/* TODO layers */
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 1f47f44f2f6..563ff188f0d 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -303,6 +303,12 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
/* other buttons: */
UI_block_emboss_set(block, UI_EMBOSS);
+ /* Draw type */
+ uiItemR(layout, &v3dptr, "viewport_shade", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
+ if (v3d->drawtype == OB_SOLID) {
+ uiItemR(layout, &v3dptr, "viewport_shade_solid", 0, "", ICON_NONE);
+ }
+
row = uiLayoutRow(layout, true);
uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
if (!ob || ELEM(ob->mode, OB_MODE_OBJECT, OB_MODE_POSE, OB_MODE_WEIGHT_PAINT)) {
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 601a8bffcfa..2d7dc477fe3 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -668,9 +668,23 @@ static void rna_RegionView3D_view_matrix_set(PointerRNA *ptr, const float *value
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);
View3D *v3d = (View3D *)ptr->data;
- int drawtype = v3d->drawtype;
- return drawtype;
+
+ if (BKE_scene_uses_blender_eevee(scene)) {
+ if (v3d->drawtype == OB_MATERIAL) {
+ return OB_RENDER;
+ }
+ }
+ else if (v3d->drawtype == OB_RENDER) {
+ if (!(type && type->render_to_view)) {
+ return OB_MATERIAL;
+ }
+ }
+
+ return v3d->drawtype;
}
static void rna_SpaceView3D_viewport_shade_set(PointerRNA *ptr, int value)
@@ -683,14 +697,27 @@ static void rna_SpaceView3D_viewport_shade_set(PointerRNA *ptr, int value)
}
static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(
- bContext *UNUSED(C), PointerRNA *UNUSED(ptr),
+ bContext *C, PointerRNA *UNUSED(ptr),
PropertyRNA *UNUSED(prop), bool *r_free)
{
+ wmWindow *win = CTX_wm_window(C);
+ Scene *scene = WM_window_get_active_scene(win);
+ RenderEngineType *type = RE_engines_find(scene->view_render.engine_id);
+
EnumPropertyItem *item = NULL;
int totitem = 0;
RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_SOLID);
- RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_RENDER);
+
+ if (BKE_scene_uses_blender_eevee(scene)) {
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_RENDER);
+ }
+ else {
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_MATERIAL);
+ if (type && type->render_to_view) {
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_viewport_shade_items, OB_RENDER);
+ }
+ }
RNA_enum_item_end(&item, &totitem);
*r_free = true;