From 910e71660e9bf1a3731376fd7a70b23db74440f4 Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 7 Oct 2010 22:55:06 +0000 Subject: [PATCH] speedtree --- dtool/Config.pp | 29 +++++++++++++++++++++++++++ dtool/LocalSetup.pp | 8 ++++++++ dtool/Package.pp | 9 +++++++++ dtool/pptempl/Global.pp | 6 ++++++ dtool/src/parser-inc/Core.h | 6 ++++++ dtool/src/parser-inc/Forest.h | 6 ++++++ dtool/src/parser-inc/OpenGLRenderer.h | 6 ++++++ dtool/src/parser-inc/Sources.pp | 4 ++-- 8 files changed, 72 insertions(+), 2 deletions(-) create mode 100755 dtool/src/parser-inc/Core.h create mode 100755 dtool/src/parser-inc/Forest.h create mode 100755 dtool/src/parser-inc/OpenGLRenderer.h diff --git a/dtool/Config.pp b/dtool/Config.pp index 013cbb8dab..2f83212994 100644 --- a/dtool/Config.pp +++ b/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 instead of . +#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 diff --git a/dtool/LocalSetup.pp b/dtool/LocalSetup.pp index e2e70c3c05..eaabe5db13 100644 --- a/dtool/LocalSetup.pp +++ b/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] diff --git a/dtool/Package.pp b/dtool/Package.pp index 57247f37dc..d002a49047 100644 --- a/dtool/Package.pp +++ b/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 diff --git a/dtool/pptempl/Global.pp b/dtool/pptempl/Global.pp index 6f74269075..b55ce8f5b5 100644 --- a/dtool/pptempl/Global.pp +++ b/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]] diff --git a/dtool/src/parser-inc/Core.h b/dtool/src/parser-inc/Core.h new file mode 100755 index 0000000000..ec9547a73f --- /dev/null +++ b/dtool/src/parser-inc/Core.h @@ -0,0 +1,6 @@ +// SpeedTree. + +namespace SpeedTree { + class CCore; + class SGeometry; +}; diff --git a/dtool/src/parser-inc/Forest.h b/dtool/src/parser-inc/Forest.h new file mode 100755 index 0000000000..ccf182c7c8 --- /dev/null +++ b/dtool/src/parser-inc/Forest.h @@ -0,0 +1,6 @@ +// SpeedTree. + +namespace SpeedTree { + class CTree; + class CForest; +}; diff --git a/dtool/src/parser-inc/OpenGLRenderer.h b/dtool/src/parser-inc/OpenGLRenderer.h new file mode 100755 index 0000000000..50acf0a1a6 --- /dev/null +++ b/dtool/src/parser-inc/OpenGLRenderer.h @@ -0,0 +1,6 @@ +// SpeedTree. + +namespace SpeedTree { + class CTreeRender; + class CForestRender; +}; diff --git a/dtool/src/parser-inc/Sources.pp b/dtool/src/parser-inc/Sources.pp index e4350185ba..deca2102d8 100644 --- a/dtool/src/parser-inc/Sources.pp +++ b/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