Commit: 78ad9ebed3a55138c0a576c4200ab0fd6d8e3712
Author: Jeroen Bakker
Date:   Tue Aug 2 13:38:34 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rB78ad9ebed3a55138c0a576c4200ab0fd6d8e3712

Fix T99715: Only force optimal display during on cage editing.

This loosens the current implementation a bit to only force optimal
display when editing on cage. It used to be any editing mode.

Brings GPU based subdivision closer to the CPU version.

===================================================================

M       source/blender/draw/intern/draw_cache_impl_mesh.cc
M       source/blender/draw/intern/draw_cache_impl_subdivision.cc
M       source/blender/draw/intern/draw_subdivision.h

===================================================================

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.cc 
b/source/blender/draw/intern/draw_cache_impl_mesh.cc
index d3d9db13005..d1eb937d711 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.cc
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.cc
@@ -1893,6 +1893,7 @@ void DRW_mesh_batch_cache_create_requested(struct 
TaskGraph *task_graph,
                            ob->obmat,
                            true,
                            false,
+                           do_cage,
                            ts,
                            use_hide);
   }
diff --git a/source/blender/draw/intern/draw_cache_impl_subdivision.cc 
b/source/blender/draw/intern/draw_cache_impl_subdivision.cc
index cde2b59ea23..2f8a2540776 100644
--- a/source/blender/draw/intern/draw_cache_impl_subdivision.cc
+++ b/source/blender/draw/intern/draw_cache_impl_subdivision.cc
@@ -2019,6 +2019,7 @@ static bool draw_subdiv_create_requested_buffers(Object 
*ob,
                                                  const float obmat[4][4],
                                                  const bool do_final,
                                                  const bool do_uvedit,
+                                                 const bool do_cage,
                                                  const ToolSettings *ts,
                                                  const bool use_hide,
                                                  OpenSubdiv_EvaluatorCache 
*evaluator_cache)
@@ -2062,9 +2063,8 @@ static bool draw_subdiv_create_requested_buffers(Object 
*ob,
     return false;
   }
 
-  /* Edges which do not come from coarse edges should not be drawn in edit 
mode, only in object
-   * mode when optimal display in turned off. */
-  const bool optimal_display = runtime_data->use_optimal_display || 
is_editmode;
+  /* Edges which do not come from coarse edges should not be drawn in edit 
cage mode. */
+  const bool optimal_display = runtime_data->use_optimal_display || 
(is_editmode && !do_cage);
 
   draw_cache->bm = bm;
   draw_cache->mesh = mesh_eval;
@@ -2216,6 +2216,7 @@ void DRW_create_subdivision(Object *ob,
                             const float obmat[4][4],
                             const bool do_final,
                             const bool do_uvedit,
+                            const bool do_cage,
                             const ToolSettings *ts,
                             const bool use_hide)
 {
@@ -2239,6 +2240,7 @@ void DRW_create_subdivision(Object *ob,
                                             obmat,
                                             do_final,
                                             do_uvedit,
+                                            do_cage,
                                             ts,
                                             use_hide,
                                             g_evaluator_cache)) {
diff --git a/source/blender/draw/intern/draw_subdivision.h 
b/source/blender/draw/intern/draw_subdivision.h
index ef580fc116a..37b025e761d 100644
--- a/source/blender/draw/intern/draw_subdivision.h
+++ b/source/blender/draw/intern/draw_subdivision.h
@@ -199,6 +199,7 @@ void DRW_create_subdivision(struct Object *ob,
                             const float obmat[4][4],
                             const bool do_final,
                             const bool do_uvedit,
+                            const bool do_cage,
                             const ToolSettings *ts,
                             const bool use_hide);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to