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:
authorPhilipp Oeser <info@graphics-engineer.com>2020-05-18 11:41:02 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-05-19 15:42:19 +0300
commit30cbbccc6002e6cd992e4f1432bec06755d0b2e7 (patch)
tree73dadd9b961e270f8ec400af2a6493b6ce8a3137 /source/blender/editors/uvedit
parent675ba2073d2b378f7ab8dd679c97ff22b42e8cba (diff)
Fix (unreported) UV shadow not drawing smooth
When showing UV edges after modifiers [draw_uvs_shadow], these were never drawn anti-aliased [in contrast to the 'main' UVs]. Also: they did not respect the new 'UV Opacity' setting. Differential Revision: https://developer.blender.org/D7764
Diffstat (limited to 'source/blender/editors/uvedit')
-rw-r--r--source/blender/editors/uvedit/uvedit_draw.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c
index 6ea1bbbcc10..74f58589f11 100644
--- a/source/blender/editors/uvedit/uvedit_draw.c
+++ b/source/blender/editors/uvedit/uvedit_draw.c
@@ -216,13 +216,14 @@ static void uvedit_get_batches(Object *ob,
}
}
-static void draw_uvs_shadow(SpaceImage *UNUSED(sima),
+static void draw_uvs_shadow(SpaceImage *sima,
const Scene *scene,
Object *obedit,
Depsgraph *depsgraph)
{
Object *ob_eval = DEG_get_evaluated_object(depsgraph, obedit);
Mesh *me = ob_eval->data;
+ const float overlay_alpha = sima->uv_opacity;
float col[4];
UI_GetThemeColor4fv(TH_UV_SHADOW, col);
@@ -231,9 +232,26 @@ static void draw_uvs_shadow(SpaceImage *UNUSED(sima),
DRW_mesh_batch_cache_create_requested(ob_eval, me, scene, false, false);
if (edges) {
+ if (sima->flag & SI_SMOOTH_UV) {
+ GPU_line_smooth(true);
+ GPU_blend(true);
+ }
+ else if (overlay_alpha < 1.0f) {
+ GPU_blend(true);
+ }
+
+ col[3] = overlay_alpha;
GPU_batch_program_set_builtin(edges, GPU_SHADER_2D_UV_UNIFORM_COLOR);
GPU_batch_uniform_4fv(edges, "color", col);
GPU_batch_draw(edges);
+
+ if (sima->flag & SI_SMOOTH_UV) {
+ GPU_line_smooth(false);
+ GPU_blend(false);
+ }
+ else if (overlay_alpha < 1.0f) {
+ GPU_blend(false);
+ }
}
}