Commit: 5dbc69caad5e441aade6ce6ed9ea90c8c2d7f0d5
Author: Sergey Sharybin
Date: Fri Jul 17 10:32:17 2015 +0200
Branches: opensubdiv-modifier
https://developer.blender.org/rB5dbc69caad5e441aade6ce6ed9ea90c8c2d7f0d5
OpenSubdiv: Can't really avoid passing subdiv level to GL mesh construction
Topology is not refined at that point yet and does not contain any information
about subdivision level.
===================================================================
M intern/opensubdiv/opensubdiv_capi.cc
M intern/opensubdiv/opensubdiv_capi.h
M source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c
===================================================================
diff --git a/intern/opensubdiv/opensubdiv_capi.cc
b/intern/opensubdiv/opensubdiv_capi.cc
index 1d50d32..717af4f 100644
--- a/intern/opensubdiv/opensubdiv_capi.cc
+++ b/intern/opensubdiv/opensubdiv_capi.cc
@@ -145,6 +145,7 @@ typedef PartitionedMesh<GLVertexBuffer,
struct OpenSubdiv_GLMesh *openSubdiv_createOsdGLMeshFromTopologyRefiner(
OpenSubdiv_TopologyRefinerDescr *topology_refiner,
int evaluator_type,
+ int level,
int /*subdivide_uvs*/)
{
using OpenSubdiv::Far::TopologyRefiner;
@@ -173,7 +174,7 @@ struct OpenSubdiv_GLMesh
*openSubdiv_createOsdGLMeshFromTopologyRefiner(
mesh = new class(refiner, \
num_vertex_elements, \
num_varying_elements, \
- refiner->GetMaxLevel(), \
+ level, \
bits); \
break;
diff --git a/intern/opensubdiv/opensubdiv_capi.h
b/intern/opensubdiv/opensubdiv_capi.h
index 770bd58..c86e739 100644
--- a/intern/opensubdiv/opensubdiv_capi.h
+++ b/intern/opensubdiv/opensubdiv_capi.h
@@ -64,9 +64,10 @@ enum {
/* TODO(sergey): Re-name and avoid bad level data access. */
OpenSubdiv_GLMesh *openSubdiv_createOsdGLMeshFromTopologyRefiner(
- struct OpenSubdiv_TopologyRefinerDescr *topology_refiner,
- int evaluator_type,
- int subdivide_uvs);
+ struct OpenSubdiv_TopologyRefinerDescr *topology_refiner,
+ int evaluator_type,
+ int level,
+ int subdivide_uvs);
void openSubdiv_deleteOsdGLMesh(OpenSubdiv_GLMesh *gl_mesh);
unsigned int openSubdiv_getOsdGLMeshPatchIndexBuffer(
diff --git a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c
b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c
index 5a93279..65053df 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c
@@ -243,6 +243,7 @@ bool ccgSubSurf_prepareGLMesh(CCGSubSurf *ss, bool
use_osd_glsl)
ss->osd_mesh = openSubdiv_createOsdGLMeshFromTopologyRefiner(
ss->osd_topology_refiner,
compute_type,
+ ss->subdivLevels,
ss->osd_subsurf_uv);
ss->osd_topology_refiner = NULL;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs