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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to