[Bf-blender-cvs] [d5552a6d4ba] blender2.8: T55570: Moved Texture drawtype as to shading popover

Jeroen Bakker noreply at git.blender.org
Thu Jun 21 14:59:18 CEST 2018


Commit: d5552a6d4ba5bb4ac34fe149c2ac9d7ff3f723fe
Author: Jeroen Bakker
Date:   Thu Jun 21 14:56:00 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBd5552a6d4ba5bb4ac34fe149c2ac9d7ff3f723fe

T55570: Moved Texture drawtype as to shading popover

the use of the texture drawtype is limited. so who should we have it
this prominent on the screen. By adding it as a shading.color_type
option we should save some screenspace.

===================================================================

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
M	source/blender/draw/engines/workbench/workbench_data.c
M	source/blender/draw/engines/workbench/workbench_deferred.c
M	source/blender/draw/engines/workbench/workbench_forward.c
M	source/blender/draw/engines/workbench/workbench_materials.c
M	source/blender/draw/engines/workbench/workbench_private.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_space.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 0dbbf3ab927..804da7ede78 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3646,7 +3646,7 @@ class VIEW3D_PT_shading_lighting(Panel):
         view = context.space_data
         shading = view.shading
 
-        if shading.type in ('SOLID', 'TEXTURED'):
+        if shading.type == 'SOLID':
             layout.row().prop(shading, "light", expand=True)
             if shading.light == 'STUDIO':
                 row = layout.row()
@@ -3663,7 +3663,7 @@ class VIEW3D_PT_shading_lighting(Panel):
                 sub.operator('VIEW3D_OT_toggle_matcap_flip', emboss=False, text="", icon='ARROW_LEFTRIGHT')
                 sub.operator('wm.studiolight_userpref_show', emboss=False, text="", icon='PREFERENCES')
 
-        elif shading.type in ('MATERIAL'):
+        elif shading.type == 'MATERIAL':
             row = layout.row()
             row.template_icon_view(shading, "studio_light", show_labels=True)
             sub = row.column()
@@ -3708,7 +3708,7 @@ class VIEW3D_PT_shading_options(Panel):
     def poll(cls, context):
         view = context.space_data
         shading = view.shading
-        return shading.type in ['SOLID', 'TEXTURED']
+        return shading.type == 'SOLID'
 
     def draw(self, context):
         layout = self.layout
@@ -3720,35 +3720,34 @@ class VIEW3D_PT_shading_options(Panel):
             row = layout.row()
             row.prop(shading, "show_specular_highlight")
 
-        if shading.type in ('SOLID', 'TEXTURED'):
-            row = layout.split(0.4)
-            row.prop(shading, "show_xray")
-            sub = row.row()
-            sub.active = shading.show_xray
-            sub.prop(shading, "xray_alpha", text="")
-
-            row = layout.split(0.4)
-            row.active = not shading.show_xray
-            row.prop(shading, "show_shadows")
-            sub = row.row()
-            sub.active = shading.show_shadows and not shading.show_xray
-            sub.prop(shading, "shadow_intensity", text="")
-
-            row = layout.split(0.4)
-            row.active = not shading.show_xray
-            row.prop(shading, "show_cavity")
-            sub = row.column(align=True)
-            sub.active = not shading.show_xray and shading.show_cavity
-            sub.prop(shading, "cavity_ridge_factor")
-            sub.prop(shading, "cavity_valley_factor")
-
-            row = layout.split(0.4)
-            row.prop(shading, "show_object_outline")
-            sub = row.row()
-            sub.active = shading.show_object_outline
-            sub.prop(shading, "object_outline_color", text="")
-
-            layout.prop(view, "show_world")
+        row = layout.split(0.4)
+        row.prop(shading, "show_xray")
+        sub = row.row()
+        sub.active = shading.show_xray
+        sub.prop(shading, "xray_alpha", text="")
+
+        row = layout.split(0.4)
+        row.active = not shading.show_xray
+        row.prop(shading, "show_shadows")
+        sub = row.row()
+        sub.active = shading.show_shadows and not shading.show_xray
+        sub.prop(shading, "shadow_intensity", text="")
+
+        row = layout.split(0.4)
+        row.active = not shading.show_xray
+        row.prop(shading, "show_cavity")
+        sub = row.column(align=True)
+        sub.active = not shading.show_xray and shading.show_cavity
+        sub.prop(shading, "cavity_ridge_factor")
+        sub.prop(shading, "cavity_valley_factor")
+
+        row = layout.split(0.4)
+        row.prop(shading, "show_object_outline")
+        sub = row.row()
+        sub.active = shading.show_object_outline
+        sub.prop(shading, "object_outline_color", text="")
+
+        layout.prop(view, "show_world")
 
 
 class VIEW3D_PT_overlay(Panel):
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 39be7dda054..dd5deb0fb89 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1490,5 +1490,22 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
 				}
 			}
 		}
+
+		for (bScreen *screen = bmain->screen.first; screen; screen = screen->id.next) {
+			for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
+				for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
+					if (sl->spacetype == SPACE_VIEW3D) {
+						View3D *v3d = (View3D *)sl;
+						if (v3d->drawtype == OB_TEXTURE)
+						{
+							v3d->drawtype = OB_SOLID;
+							v3d->shading.light = V3D_LIGHTING_STUDIO;
+							v3d->shading.color_type = V3D_SHADING_TEXTURE_COLOR;
+						}
+					}
+				}
+			}
+		}
+
 	}
 }
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
index 4a7d195a56a..1b3737193b0 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
@@ -1,4 +1,4 @@
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 uniform sampler2D image;
 #endif
 uniform mat4 ProjectionMatrix;
@@ -10,7 +10,7 @@ uniform vec4 viewvecs[3];
 #ifdef NORMAL_VIEWPORT_PASS_ENABLED
 in vec3 normal_viewport;
 #endif /* NORMAL_VIEWPORT_PASS_ENABLED */
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 in vec2 uv_interp;
 #endif
 #ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL
@@ -32,12 +32,12 @@ void main()
 {
 	vec4 diffuse_color;
 	vec3 diffuse_light = vec3(1.0);
-#ifdef OB_SOLID
-	diffuse_color = material_data.diffuse_color;
-#endif /* OB_SOLID */
-#ifdef OB_TEXTURE
+
+#ifdef V3D_SHADING_TEXTURE_COLOR
 	diffuse_color = texture(image, uv_interp);
-#endif /* OB_TEXTURE */
+#else
+	diffuse_color = material_data.diffuse_color;
+#endif /* V3D_SHADING_TEXTURE_COLOR */
 
 	vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
 	vec3 I_vs = view_vector_from_screen_uv(uv_viewport, viewvecs, ProjectionMatrix);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
index 200850e3036..6aeb912377c 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
@@ -4,7 +4,7 @@ layout(std140) uniform material_block {
 	MaterialData material_data;
 };
 
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 uniform sampler2D image;
 #endif
 
@@ -12,9 +12,9 @@ uniform sampler2D image;
 in vec3 normal_viewport;
 #endif /* NORMAL_VIEWPORT_PASS_ENABLED */
 
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 in vec2 uv_interp;
-#endif /* OB_TEXTURE */
+#endif /* V3D_SHADING_TEXTURE_COLOR */
 
 #ifdef HAIR_SHADER
 flat in float hair_rand;
@@ -40,17 +40,16 @@ void main()
 	n = normalize(n);
 #endif
 
-#ifdef OB_SOLID
+#ifdef V3D_SHADING_TEXTURE_COLOR
+	diffuseColor = texture(image, uv_interp);
+#else
 	diffuseColor = vec4(material_data.diffuse_color.rgb, 0.0);
 #  ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL
-
 	specularColor = vec4(material_data.diffuse_color.rgb, 0.0);
+
 #  endif
-#endif /* OB_SOLID */
+#endif /* V3D_SHADING_TEXTURE_COLOR */
 
-#ifdef OB_TEXTURE
-	diffuseColor = texture(image, uv_interp);
-#endif /* OB_TEXTURE */
 #ifdef HAIR_SHADER
 	float hair_color_variation = hair_rand * 0.1;
 	diffuseColor.rgb = clamp(diffuseColor.rgb - hair_color_variation, 0.0, 1.0);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
index 82443e7336b..66b529fcf5e 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
@@ -9,7 +9,7 @@ in vec3 pos;
 in vec3 nor;
 in vec2 uv;
 #else /* HAIR_SHADER */
-#  ifdef OB_TEXTURE
+#  ifdef V3D_SHADING_TEXTURE_COLOR
 uniform samplerBuffer u; /* active texture layer */
 #  endif
 flat out float hair_rand;
@@ -19,7 +19,7 @@ flat out float hair_rand;
 out vec3 normal_viewport;
 #endif
 
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 out vec2 uv_interp;
 #endif
 
@@ -34,7 +34,7 @@ float integer_noise(int n)
 void main()
 {
 #ifdef HAIR_SHADER
-#  ifdef OB_TEXTURE
+#  ifdef V3D_SHADING_TEXTURE_COLOR
 	vec2 uv = hair_get_customdata_vec2(u);
 #  endif
 	float time, thick_time, thickness;
@@ -55,7 +55,7 @@ void main()
 #else
 	gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
 #endif
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
 	uv_interp = uv;
 #endif
 
diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c
index efadf969830..d544e7614ab 100644
--- a/source/blender/draw/engines/workbench/workbench_data.c
+++ b/source/blender/draw/engines/workbench/workbench_data.c
@@ -15,7 +15,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
 	View3D *v3d = draw_ctx->v3d;
 	if (v3d) {
 		wpd->shading = v3d->shading;
-		wpd->drawtype = v3d->drawtype;
 		if (wpd->shading.light == V3D_LIGHTING_MATCAP) {
 			wpd->studio_light = BKE_studiolight_find(
 			        wpd->shading.matcap, STUDIOLIGHT_ORIENTATION_VIEWNORMAL);
@@ -30,7 +29,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
 		wpd->shading.light = V3D_LIGHTING_STUDIO;
 		wpd->shading.shadow_intensity = 0.5;
 		copy_v3_fl(wpd->shading.single_color, 0.8f);
-		wpd->drawtype = OB_SOLID;
 		wpd->studio_light = BKE_studiolight_find_first(STUDIOLIGHT_INTERNAL);
 	}
 	wpd->shadow_multiplier = 1.0 - wpd->shading.shadow_intensity;
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 9b1a17a372a..39a4197bdf3 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -175,17 +175,17 @@ static char *workbench_build_cavity_frag(void)
 	return str;
 }

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list