Browse Source

speedtree

David Rose 15 years ago
parent
commit
910e71660e

+ 29 - 0
dtool/Config.pp

@@ -755,6 +755,9 @@
 #define DX9_LIBS d3d9.lib d3dx9.lib dxerr9.lib
 #defer HAVE_DX9 $[libtest $[DX9_LPATH],$[DX9_LIBS]]
 
+// Set this nonempty to use <dxerr.h> instead of <dxerr9.h>.
+#define USE_GENERIC_DXERR_LIBRARY
+
 // Is OpenCV installed, and where?
 #define OPENCV_IPATH /usr/local/include/opencv
 #define OPENCV_LPATH /usr/local/lib
@@ -935,6 +938,32 @@
 #define PHYSX_LIBS $[if $[WINDOWS_PLATFORM],PhysXLoader.lib NxCharacter.lib NxCooking.lib NxExtensions.lib,PhysXLoader NxCharacter NxCooking]
 #defer HAVE_PHYSX $[libtest $[PHYSX_LPATH],$[PHYSX_LIBS]]
 
+// Info for the SpeedTree tree and terrain rendering library.  This is
+// a commercial library that specializes in rendering trees and other
+// foliage.
+
+// This may be either "OpenGL" or "DirectX9".  Case is important, due
+// to the naming of the SpeedTree libraries.
+#define SPEEDTREE_API OpenGL
+// The local directory in which the SpeedTree SDK has been installed.
+#define SPEEDTREE_SDK_DIR
+// The default directory in which to find the SpeedTree installation at runtime.
+#defer SPEEDTREE_BIN_DIR $[SPEEDTREE_SDK_DIR]/Bin
+
+#defer SPEEDTREE_IPATH $[SPEEDTREE_SDK_DIR]/Include
+#defer SPEEDTREE_LPATH $[SPEEDTREE_SDK_DIR]/Lib/Windows/VC9
+#defer SPEEDTREE_DEBUG $[if $[< $[OPTIMIZE], 3],_d]
+
+// These names are used to build up the names of the SpeedTree libraries.
+#defer SPEEDTREE_VERSION 5.1
+#defer SPEEDTREE_LIB_SUFFIX _v$[SPEEDTREE_VERSION]_VC90MT_Static$[SPEEDTREE_DEBUG].lib
+#if $[WINDOWS_PLATFORM]
+#defer SPEEDTREE_LIBS SpeedTreeCore$[SPEEDTREE_LIB_SUFFIX] SpeedTreeForest$[SPEEDTREE_LIB_SUFFIX] SpeedTreeOpenGLRenderer$[SPEEDTREE_LIB_SUFFIX] SpeedTreeRenderInterface$[SPEEDTREE_LIB_SUFFIX] $[if $[eq $[SPEEDTREE_API],OpenGL],glew32.lib]
+#else
+#defer SPEEDTREE_LIBS
+#endif
+#defer HAVE_SPEEDTREE $[isdir $[SPEEDTREE_SDK_DIR]]
+
 // Info for http://www.sourceforge.net/projects/chromium
 #define CHROMIUM_IPATH /usr/include/chromium/include
 #define CHROMIUM_LPATH /usr/lib/chromium/bin/WINT_NT

+ 8 - 0
dtool/LocalSetup.pp

@@ -101,6 +101,11 @@
 #else
 #print - Did not find Ageia PhysX
 #endif
+#if $[HAVE_SPEEDTREE]
+#print + SpeedTree
+#else
+#print - Did not find SpeedTree
+#endif
 #if $[HAVE_GTK]
 #print + gtk+-2
 #else
@@ -328,6 +333,9 @@ $[cdefine HAVE_CGDX9]
 /* Define if we have CGDX10 installed.  */
 $[cdefine HAVE_CGDX10]
 
+/* Define for dxerr.h instead of dxerr9.h. */
+$[cdefine USE_GENERIC_DXERR_LIBRARY]
+
 /* Define if we have zlib installed.  */
 $[cdefine HAVE_ZLIB]
 

+ 9 - 0
dtool/Package.pp

@@ -309,6 +309,11 @@
 #set PHYSX_LIBS $[PHYSX_LIBS]
 #set HAVE_PHYSX $[HAVE_PHYSX]
 
+#set SPEEDTREE_IPATH $[unixfilename $[SPEEDTREE_IPATH]]
+#set SPEEDTREE_LPATH $[unixfilename $[SPEEDTREE_LPATH]]
+#set SPEEDTREE_LIBS $[SPEEDTREE_LIBS]
+#set HAVE_SPEEDTREE $[HAVE_SPEEDTREE]
+
 #set CHROMIUM_IPATH $[unixfilename $[CHROMIUM_IPATH]]
 #set CHROMIUM_LPATH $[unixfilename $[CHROMIUM_LPATH]]
 #set CHROMIUM_LIBS $[CHROMIUM_LIBS]
@@ -384,6 +389,10 @@
   #define GENPYCODE_LIBS $[GENPYCODE_LIBS] libpandaphysx
 #endif
 
+#if $[HAVE_SPEEDTREE]
+  #define GENPYCODE_LIBS $[GENPYCODE_LIBS] libpandaspeedtree
+#endif
+
 #if $[HAVE_AWESOMIUM]
   #define GENPYCODE_LIBS $[GENPYCODE_LIBS] libpandaawesomium
 #endif

+ 6 - 0
dtool/pptempl/Global.pp

@@ -452,6 +452,12 @@
   #define physx_libs $[PHYSX_LIBS]
 #endif
 
+#if $[HAVE_SPEEDTREE]
+  #define speedtree_ipath $[wildcard $[SPEEDTREE_IPATH]]
+  #define speedtree_lpath $[wildcard $[SPEEDTREE_LPATH]]
+  #define speedtree_libs $[SPEEDTREE_LIBS]
+#endif
+
 #if $[HAVE_CHROMIUM]
   #define chromium_ipath $[wildcard $[CHROMIUM_IPATH]]
   #define chromium_lpath $[wildcard $[CHROMIUM_LPATH]]

+ 6 - 0
dtool/src/parser-inc/Core.h

@@ -0,0 +1,6 @@
+// SpeedTree.
+
+namespace SpeedTree {
+  class CCore;
+  class SGeometry;
+};

+ 6 - 0
dtool/src/parser-inc/Forest.h

@@ -0,0 +1,6 @@
+// SpeedTree.
+
+namespace SpeedTree {
+  class CTree;
+  class CForest;
+};

+ 6 - 0
dtool/src/parser-inc/OpenGLRenderer.h

@@ -0,0 +1,6 @@
+// SpeedTree.
+
+namespace SpeedTree {
+  class CTreeRender;
+  class CForestRender;
+};

+ 2 - 2
dtool/src/parser-inc/Sources.pp

@@ -22,6 +22,6 @@
     libavutil/avutil.h libavformat/avformat.h \
     libavcodec/avcodec.h libswscale/swscale.h \
     libavformat/avio.h AR/ar.h \
-    WebCore.h WebView.h WebViewListener.h
-
+    WebCore.h WebView.h WebViewListener.h \
+    Core/Core.h Forest/Forest.h Renderers/OpenGL/OpenGLRenderer.h