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
path: root/source
diff options
context:
space:
mode:
authorAntonioya <blendergit@gmail.com>2019-04-24 12:27:34 +0300
committerAntonioya <blendergit@gmail.com>2019-04-24 12:27:34 +0300
commit8ba4c38643efeda42391f23328a54f258adcc9cd (patch)
tree3e0f51ff4ffbcc44d7bcde002e8b2e214b904b46 /source
parent75919c9223431333d93b65f7dee4a39bc015832b (diff)
GPencil: Disable Stroke Textures in Solid mode
When solid mode is enabled, but Texture mode is disabled, the color of the stroke must not use the texture.
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_point_frag.glsl12
-rw-r--r--source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl14
2 files changed, 19 insertions, 7 deletions
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_point_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_point_frag.glsl
index b7206ac2e80..7054717b8d6 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_point_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_point_frag.glsl
@@ -7,6 +7,7 @@ uniform vec2 gradient_s;
uniform vec4 colormix;
uniform float mix_stroke_factor;
+uniform int shading_type[2];
in vec4 mColor;
in vec2 mTexCoord;
@@ -23,6 +24,11 @@ out vec4 fragColor;
#define GPENCIL_COLOR_TEXTURE 1
#define GPENCIL_COLOR_PATTERN 2
+#define OB_SOLID 3
+#define V3D_SHADING_TEXTURE_COLOR 3
+
+bool no_texture = (shading_type[0] == OB_SOLID) && (shading_type[1] != V3D_SHADING_TEXTURE_COLOR);
+
/* Function to check the point inside ellipse */
float check_ellipse_point(vec2 pt, vec2 radius)
{
@@ -62,11 +68,11 @@ void main()
vec4 tmp_color = texture2D(myTexture, mTexCoord);
/* Solid */
- if (color_type == GPENCIL_COLOR_SOLID) {
+ if ((color_type == GPENCIL_COLOR_SOLID) || (no_texture)) {
fragColor = mColor;
}
/* texture */
- if (color_type == GPENCIL_COLOR_TEXTURE) {
+ if ((color_type == GPENCIL_COLOR_TEXTURE) && (!no_texture)) {
vec4 text_color = texture2D(myTexture, mTexCoord);
if (mix_stroke_factor > 0.0) {
fragColor.rgb = mix(text_color.rgb, colormix.rgb, mix_stroke_factor);
@@ -80,7 +86,7 @@ void main()
fragColor.a = min(fragColor.a * mColor.a, fragColor.a);
}
/* pattern */
- if (color_type == GPENCIL_COLOR_PATTERN) {
+ if ((color_type == GPENCIL_COLOR_PATTERN) && (!no_texture)) {
vec4 text_color = texture2D(myTexture, mTexCoord);
fragColor = mColor;
/* mult both alpha factor to use strength factor with color alpha limit */
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl
index 8964bee69ff..3110f975cc6 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_frag.glsl
@@ -5,6 +5,7 @@ uniform float gradient_f;
uniform vec4 colormix;
uniform float mix_stroke_factor;
+uniform int shading_type[2];
in vec4 mColor;
in vec2 mTexCoord;
@@ -21,6 +22,11 @@ out vec4 fragColor;
#define ENDCAP 1.0
+#define OB_SOLID 3
+#define V3D_SHADING_TEXTURE_COLOR 3
+
+bool no_texture = (shading_type[0] == OB_SOLID) && (shading_type[1] != V3D_SHADING_TEXTURE_COLOR);
+
void main()
{
@@ -33,8 +39,8 @@ void main()
discard;
}
}
- /* Solid */
- if (color_type == GPENCIL_COLOR_SOLID) {
+
+ if ((color_type == GPENCIL_COLOR_SOLID) || (no_texture)) {
fragColor = tColor;
}
@@ -48,7 +54,7 @@ void main()
}
/* texture */
- if (color_type == GPENCIL_COLOR_TEXTURE) {
+ if ((color_type == GPENCIL_COLOR_TEXTURE) && (!no_texture)) {
if (mix_stroke_factor > 0.0) {
fragColor.rgb = mix(text_color.rgb, colormix.rgb, mix_stroke_factor);
fragColor.a = text_color.a;
@@ -61,7 +67,7 @@ void main()
fragColor.a = min(fragColor.a * tColor.a, fragColor.a);
}
/* pattern */
- if (color_type == GPENCIL_COLOR_PATTERN) {
+ if ((color_type == GPENCIL_COLOR_PATTERN) && (!no_texture)) {
fragColor = tColor;
/* mult both alpha factor to use strength factor with color alpha limit */
fragColor.a = min(text_color.a * tColor.a, tColor.a);