From 18071f4e0eee407f9a05a0e56f3f46b715d82b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sun, 29 Apr 2018 19:28:43 +0200 Subject: Armature: Draw envelope on non MSAA buffer. Appart from the performance issue, the MSAA resolve pass is not compatible with additive passes. --- source/blender/draw/modes/edit_armature_mode.c | 3 ++- source/blender/draw/modes/object_mode.c | 3 ++- source/blender/draw/modes/pose_mode.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/blender/draw/modes/edit_armature_mode.c b/source/blender/draw/modes/edit_armature_mode.c index 35072afbb31..292e62f090c 100644 --- a/source/blender/draw/modes/edit_armature_mode.c +++ b/source/blender/draw/modes/edit_armature_mode.c @@ -131,9 +131,10 @@ static void EDIT_ARMATURE_draw_scene(void *vedata) DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); + DRW_draw_pass(psl->bone_envelope); + MULTISAMPLE_SYNC_ENABLE(dfbl, dtxl) - DRW_draw_pass(psl->bone_envelope); DRW_draw_pass(psl->bone_outline); DRW_draw_pass(psl->bone_solid); DRW_draw_pass(psl->bone_wire); diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index cae40c411a9..d48c1bbc0ba 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -2208,10 +2208,11 @@ static void OBJECT_draw_scene(void *vedata) float clearcol[4] = {0.0f, 0.0f, 0.0f, 0.0f}; +// DRW_draw_pass(psl->bone_envelope); /* Never drawn in Object mode currently. */ + MULTISAMPLE_SYNC_ENABLE(dfbl, dtxl) /* This needs to be drawn after the oultine */ -// DRW_draw_pass(psl->bone_envelope); /* Never drawn in Object mode currently. */ DRW_draw_pass(psl->bone_solid); DRW_draw_pass(psl->bone_wire); DRW_draw_pass(psl->bone_outline); diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c index d764ce93bae..5a3ed791b84 100644 --- a/source/blender/draw/modes/pose_mode.c +++ b/source/blender/draw/modes/pose_mode.c @@ -169,9 +169,10 @@ static void POSE_draw_scene(void *vedata) DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); + DRW_draw_pass(psl->bone_envelope); + MULTISAMPLE_SYNC_ENABLE(dfbl, dtxl) - DRW_draw_pass(psl->bone_envelope); DRW_draw_pass(psl->bone_outline); DRW_draw_pass(psl->bone_wire); DRW_draw_pass(psl->bone_solid); -- cgit v1.2.3