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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-08-01 16:43:57 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-08-01 19:42:59 +0300
commit4fe14d6a26e101a32e6a0ec9722248d215287a9d (patch)
treef8ace27ca928a36f2e1fad8d2603324878772b0a /source/blender/blenkernel/intern/subdiv_eval.c
parent63058490a3da932d2c9224aa4555f23eebb77264 (diff)
Subsurf: Support subdivision of mesh with just loose elements
Diffstat (limited to 'source/blender/blenkernel/intern/subdiv_eval.c')
-rw-r--r--source/blender/blenkernel/intern/subdiv_eval.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/subdiv_eval.c b/source/blender/blenkernel/intern/subdiv_eval.c
index 7c90a2a25cd..0f928331724 100644
--- a/source/blender/blenkernel/intern/subdiv_eval.c
+++ b/source/blender/blenkernel/intern/subdiv_eval.c
@@ -48,7 +48,10 @@
void BKE_subdiv_eval_begin(Subdiv *subdiv)
{
#ifdef WITH_OPENSUBDIV
- if (subdiv->evaluator == NULL) {
+ if (subdiv->topology_refiner == NULL) {
+ /* Happens on input mesh with just loose geometry. */
+ }
+ else if (subdiv->evaluator == NULL) {
BKE_subdiv_stats_begin(&subdiv->stats, SUBDIV_STATS_EVALUATOR_CREATE);
subdiv->evaluator = openSubdiv_createEvaluatorFromTopologyRefiner(
subdiv->topology_refiner);
@@ -132,6 +135,9 @@ void BKE_subdiv_eval_update_from_mesh(Subdiv *subdiv, const Mesh *mesh)
{
#ifdef WITH_OPENSUBDIV
BKE_subdiv_eval_begin(subdiv);
+ if (subdiv->evaluator == NULL) {
+ return;
+ }
/* Set coordinates of base mesh vertices. */
set_coarse_positions(subdiv, mesh);
/* Set face-varyign data to UV maps. */