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:
authorRichard Antalik <richardantalik@gmail.com>2020-11-17 06:10:51 +0300
committerRichard Antalik <richardantalik@gmail.com>2020-11-17 06:10:51 +0300
commit797dfa6a0a7d5d2bf62bdc03cf619addbc9e1064 (patch)
tree5a1e0f0a6b2439ceee4a8e0bae82b243e3831156 /source/blender
parent09045ff64d1f0948489354bd097f2930f45bacb9 (diff)
parent75bd286813eb5e3c227696b4cfd5616b17166641 (diff)
Merge branch 'blender-v2.91-release'
Conflicts: source/blender/editors/render/render_opengl.c source/blender/sequencer/intern/effects.c
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/render/render_opengl.c14
-rw-r--r--source/blender/gpu/intern/gpu_immediate.cc9
-rw-r--r--source/blender/gpu/shaders/gpu_shader_3D_polyline_frag.glsl5
-rw-r--r--source/blender/gpu/shaders/gpu_shader_3D_polyline_geom.glsl7
-rw-r--r--source/blender/sequencer/intern/effects.c2
5 files changed, 25 insertions, 12 deletions
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 79eaf007fcb..696c18d17c5 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -490,13 +490,13 @@ static void screen_opengl_render_apply(const bContext *C, OGLRender *oglrender)
int chanshown = sseq ? sseq->chanshown : 0;
SEQ_render_new_render_data(oglrender->bmain,
- oglrender->depsgraph,
- scene,
- oglrender->sizex,
- oglrender->sizey,
- 100,
- false,
- &context);
+ oglrender->depsgraph,
+ scene,
+ oglrender->sizex,
+ oglrender->sizey,
+ SEQ_RENDER_SIZE_SCENE,
+ false,
+ &context);
for (view_id = 0; view_id < oglrender->views_len; view_id++) {
context.view_id = view_id;
diff --git a/source/blender/gpu/intern/gpu_immediate.cc b/source/blender/gpu/intern/gpu_immediate.cc
index 110774640f1..95718391165 100644
--- a/source/blender/gpu/intern/gpu_immediate.cc
+++ b/source/blender/gpu/intern/gpu_immediate.cc
@@ -180,6 +180,11 @@ static void wide_line_workaround_start(GPUPrimType prim_type)
immUniform2fv("viewportSize", &viewport[2]);
immUniform1f("lineWidth", line_width);
+ if (GPU_blend_get() == GPU_BLEND_NONE) {
+ /* Disable line smoothing when blending is disabled (see T81827). */
+ immUniform1i("lineSmooth", 0);
+ }
+
if (ELEM(polyline_sh,
GPU_SHADER_3D_POLYLINE_CLIPPED_UNIFORM_COLOR,
GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR)) {
@@ -190,6 +195,10 @@ static void wide_line_workaround_start(GPUPrimType prim_type)
static void wide_line_workaround_end()
{
if (imm->prev_shader) {
+ if (GPU_blend_get() == GPU_BLEND_NONE) {
+ /* Restore default. */
+ immUniform1i("lineSmooth", 1);
+ }
immUnbindProgram();
immBindShader(imm->prev_shader);
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_polyline_frag.glsl b/source/blender/gpu/shaders/gpu_shader_3D_polyline_frag.glsl
index 9c6b109d659..3ea8f7dbfbe 100644
--- a/source/blender/gpu/shaders/gpu_shader_3D_polyline_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_3D_polyline_frag.glsl
@@ -1,5 +1,6 @@
uniform float lineWidth;
+uniform bool lineSmooth = true;
in vec4 finalColor;
noperspective in float smoothline;
@@ -19,6 +20,8 @@ void main()
}
#endif
fragColor = finalColor;
- fragColor.a *= clamp((lineWidth + SMOOTH_WIDTH) * 0.5 - abs(smoothline), 0.0, 1.0);
+ if (lineSmooth) {
+ fragColor.a *= clamp((lineWidth + SMOOTH_WIDTH) * 0.5 - abs(smoothline), 0.0, 1.0);
+ }
fragColor = blender_srgb_to_framebuffer_space(fragColor);
}
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_polyline_geom.glsl b/source/blender/gpu/shaders/gpu_shader_3D_polyline_geom.glsl
index fd9b7e221e6..70026398937 100644
--- a/source/blender/gpu/shaders/gpu_shader_3D_polyline_geom.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_3D_polyline_geom.glsl
@@ -5,6 +5,7 @@ layout(triangle_strip, max_vertices = 4) out;
uniform vec4 color;
uniform vec2 viewportSize;
uniform float lineWidth;
+uniform bool lineSmooth = true;
#if !defined(UNIFORM)
in vec4 finalColor_g[];
@@ -53,12 +54,12 @@ void do_vertex(const int i, vec4 pos, vec2 ofs)
clip = clip_g[i];
#endif
- smoothline = (lineWidth + SMOOTH_WIDTH) * 0.5;
+ smoothline = (lineWidth + SMOOTH_WIDTH * float(lineSmooth)) * 0.5;
gl_Position = pos;
gl_Position.xy += ofs * pos.w;
EmitVertex();
- smoothline = -(lineWidth + SMOOTH_WIDTH) * 0.5;
+ smoothline = -(lineWidth + SMOOTH_WIDTH * float(lineSmooth)) * 0.5;
gl_Position = pos;
gl_Position.xy -= ofs * pos.w;
EmitVertex();
@@ -77,7 +78,7 @@ void main(void)
vec2 ofs = vec2(-e.y, e.x);
#endif
ofs /= viewportSize.xy;
- ofs *= lineWidth + SMOOTH_WIDTH;
+ ofs *= lineWidth + SMOOTH_WIDTH * float(lineSmooth);
do_vertex(0, p0, ofs);
do_vertex(1, p1, ofs);
diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c
index 1d323426cc3..ba16206ce97 100644
--- a/source/blender/sequencer/intern/effects.c
+++ b/source/blender/sequencer/intern/effects.c
@@ -3915,7 +3915,7 @@ static ImBuf *do_text_effect(const SeqRenderData *context,
/* Compensate text size for preview render size. */
proxy_size_comp = context->scene->r.size / 100.0;
if (context->preview_render_size != SEQ_RENDER_SIZE_SCENE) {
- proxy_size_comp *= SEQ_rendersize_to_scale_factor(context->preview_render_size);
+ proxy_size_comp = SEQ_rendersize_to_scale_factor(context->preview_render_size);
}
/* set before return */