[Bf-blender-cvs] [76bed92] opensubdiv-modifier: Fixed for SCons
Sergey Sharybin
noreply at git.blender.org
Wed May 14 12:14:58 CEST 2014
Commit: 76bed923f8c99ecbb67c5082e2445348827e5960
Author: Sergey Sharybin
Date: Wed May 14 12:13:13 2014 +0200
https://developer.blender.org/rB76bed923f8c99ecbb67c5082e2445348827e5960
Fixed for SCons
Makes blender compilable with scons on linux.
Also solves compilation error with OpenSubdiv disabled.
===================================================================
M SConstruct
M intern/opensubdiv/SConscript
M intern/opensubdiv/opensubdiv_capi.cc
M source/blender/blenkernel/intern/subsurf_ccg.c
M source/blender/makesrna/SConscript
===================================================================
diff --git a/SConstruct b/SConstruct
index 0258f77..e54a69a 100644
--- a/SConstruct
+++ b/SConstruct
@@ -686,6 +686,7 @@ if B.targets != ['cudakernels']:
data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl")
data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl")
data_to_c_simple("intern/opencolorio/gpu_shader_display_transform.glsl")
+ data_to_c_simple("intern/opensubdiv/gpu_shader_opensubd_display.glsl")
# --- blender ---
data_to_c_simple("release/datafiles/bfont.pfb")
diff --git a/intern/opensubdiv/SConscript b/intern/opensubdiv/SConscript
index fddc41b..73c188d 100644
--- a/intern/opensubdiv/SConscript
+++ b/intern/opensubdiv/SConscript
@@ -25,6 +25,8 @@
#
# ***** END GPL LICENSE BLOCK *****
+import os
+
Import('env')
sources = env.Glob('*.cc')
@@ -34,8 +36,29 @@ defs = []
incs = '. ../guardedalloc'
incs += ' ' + env['BF_OPENSUBDIV_INC']
+def checkOpenSubdivHeaderDefine(header, define):
+ include_path = Dir(env.subst(env['BF_OPENSUBDIV_INC'])).abspath
+ header_path = os.path.join(include_path, 'opensubdiv', 'osd', header)
+ if os.path.exists(header_path):
+ defs.append(define)
+ return True
+ return False
+
+checkOpenSubdivHeaderDefine("tbbComputeController.h", 'OPENSUBDIV_HAS_TBB')
+checkOpenSubdivHeaderDefine("gcdComputeController.h", 'OPENSUBDIV_HAS_GCD')
+
+# XXX: Ugly hack in order to link against cudart and opencl
+# Ideally it should be late-linking on runtime in order to make
+# portable builds.
+if checkOpenSubdivHeaderDefine("clComputeController.h", 'OPENSUBDIV_HAS_OPENCL'):
+ env['BF_OPENSUBDIV_LIB'] += ' OpenCL'
+if checkOpenSubdivHeaderDefine("cudaComputeController.h", 'OPENSUBDIV_HAS_CUDA'):
+ env['BF_OPENSUBDIV_LIB'] += ' cudart'
+
+checkOpenSubdivHeaderDefine("glslTransformFeedbackComputeController.h", 'OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK')
+checkOpenSubdivHeaderDefine("osd/glslComputeController.h", 'OPENSUBDIV_HAS_GLSL_COMPUTE')
+
# generated data files
-import os
sources.extend((
os.path.join(env['DATA_SOURCES'], "gpu_shader_opensubd_display.glsl.c"),
))
diff --git a/intern/opensubdiv/opensubdiv_capi.cc b/intern/opensubdiv/opensubdiv_capi.cc
index 1ba85bd..b11b936 100644
--- a/intern/opensubdiv/opensubdiv_capi.cc
+++ b/intern/opensubdiv/opensubdiv_capi.cc
@@ -88,7 +88,11 @@ using OpenSubdiv::OsdVertex;
typedef OpenSubdiv::HbrMesh<OsdVertex> OsdHbrMesh;
+#if defined(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK) || \
+ defined(OPENSUBDIV_HAS_GLSL_COMPUTE)
using OpenSubdiv::OsdGLVertexBuffer;
+#endif
+
using OpenSubdiv::OsdGLDrawContext;
// CPU backend
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 25b90c1..15287a4 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -3979,7 +3979,9 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
* only need this in cases when topology changes.
*/
ss = _getSubSurf(prevSS, levels, 3, ccg_flags);
+#ifdef WITH_OPENSUBDIV
ccgSubSurf_setSkipGrids(ss, use_gpu_backend);
+#endif
ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
result = getCCGDerivedMesh(ss, drawInteriorEdges, useSubsurfUv, dm, use_gpu_backend);
diff --git a/source/blender/makesrna/SConscript b/source/blender/makesrna/SConscript
index 7abda87..3d23be0 100644
--- a/source/blender/makesrna/SConscript
+++ b/source/blender/makesrna/SConscript
@@ -126,6 +126,10 @@ if env['WITH_BF_OPENAL']:
if env['WITH_BF_JACK']:
defs.append('WITH_JACK')
+if env['WITH_BF_OPENSUBDIV']:
+ incs += ' #/intern/opensubdiv'
+ defs.append('WITH_OPENSUBDIV')
+
if env['OURPLATFORM'] == 'linux':
cflags='-pthread'
More information about the Bf-blender-cvs
mailing list