[Bf-blender-cvs] [858c714] cycles-ptex-49: Move some of the Ptex code behind a WITH_PTEX ifdef

Nicholas Bishop noreply at git.blender.org
Sun Feb 8 02:05:46 CET 2015


Commit: 858c714d3fe9756e0cc587068a45bbe8ba9068ee
Author: Nicholas Bishop
Date:   Sun Feb 8 02:04:08 2015 +0100
Branches: cycles-ptex-49
https://developer.blender.org/rB858c714d3fe9756e0cc587068a45bbe8ba9068ee

Move some of the Ptex code behind a WITH_PTEX ifdef

Can be set via WITH_PTEX in CMake or WITH_BF_PTEX in SCons.

Not well tested yet.

===================================================================

M	CMakeLists.txt
M	build_files/cmake/config/blender_lite.cmake
M	build_files/scons/config/darwin-config.py
M	build_files/scons/config/linux-config.py
M	build_files/scons/config/win32-mingw-config.py
M	build_files/scons/config/win32-vc-config.py
M	build_files/scons/config/win64-mingw-config.py
M	build_files/scons/config/win64-vc-config.py
M	build_files/scons/tools/btools.py
M	extern/CMakeLists.txt
M	extern/SConscript
M	extern/ptex/SConscript
M	intern/cycles/CMakeLists.txt
M	intern/cycles/SConscript
M	intern/cycles/render/image.cpp
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/SConscript
M	source/blender/blenkernel/intern/bke_ptex.c
M	source/blender/imbuf/CMakeLists.txt
M	source/blender/imbuf/SConscript
M	source/blender/imbuf/intern/filetype.c

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15356e3..0264cf3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -279,6 +279,7 @@ option(WITH_IMAGE_DDS           "Enable DDS Image Support" ON)
 option(WITH_IMAGE_CINEON        "Enable CINEON and DPX Image Support" ON)
 option(WITH_IMAGE_HDR           "Enable HDR Image Support" ON)
 option(WITH_IMAGE_REDCODE       "Enable RedCode Image Support" ${_init_IMAGE_REDCODE})
+option(WITH_PTEX				"Enable Ptex Support (http://ptex.us)" ON)
 option(WITH_IMAGE_FRAMESERVER   "Enable image FrameServer Support for rendering" ON)
 
 # Audio/Video format support
@@ -2811,6 +2812,7 @@ if(FIRST_RUN)
 	info_cfg_option(WITH_IMAGE_OPENJPEG)
 	info_cfg_option(WITH_IMAGE_REDCODE)
 	info_cfg_option(WITH_IMAGE_TIFF)
+	info_cfg_option(WITH_PTEX)
 
 	info_cfg_text("Audio:")
 	info_cfg_option(WITH_OPENAL)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index 3a70201..f8d4628 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -30,6 +30,7 @@ set(WITH_IMAGE_OPENEXR       OFF CACHE BOOL "" FORCE)
 set(WITH_IMAGE_OPENJPEG      OFF CACHE BOOL "" FORCE)
 set(WITH_IMAGE_REDCODE       OFF CACHE BOOL "" FORCE)
 set(WITH_IMAGE_TIFF          OFF CACHE BOOL "" FORCE)
+set(WITH_PTEX                OFF CACHE BOOL "" FORCE)
 set(WITH_INPUT_NDOF          OFF CACHE BOOL "" FORCE)
 set(WITH_INTERNATIONAL       OFF CACHE BOOL "" FORCE)
 set(WITH_JACK                OFF CACHE BOOL "" FORCE)
diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py
index 1fb6d64..f8909a0 100644
--- a/build_files/scons/config/darwin-config.py
+++ b/build_files/scons/config/darwin-config.py
@@ -82,6 +82,8 @@ BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = LIBDIR + '/jpeg'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/config/linux-config.py b/build_files/scons/config/linux-config.py
index 455dd23..70c795c 100644
--- a/build_files/scons/config/linux-config.py
+++ b/build_files/scons/config/linux-config.py
@@ -59,6 +59,8 @@ BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = '/usr'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/config/win32-mingw-config.py b/build_files/scons/config/win32-mingw-config.py
index 0fb84bf..32b21e1 100644
--- a/build_files/scons/config/win32-mingw-config.py
+++ b/build_files/scons/config/win32-mingw-config.py
@@ -57,6 +57,8 @@ BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = LIBDIR + '/jpeg'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py
index 8e66e93..9b01429 100644
--- a/build_files/scons/config/win32-vc-config.py
+++ b/build_files/scons/config/win32-vc-config.py
@@ -75,6 +75,8 @@ BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = LIBDIR + '/jpeg'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/config/win64-mingw-config.py b/build_files/scons/config/win64-mingw-config.py
index ab39568..267df9b 100644
--- a/build_files/scons/config/win64-mingw-config.py
+++ b/build_files/scons/config/win64-mingw-config.py
@@ -54,6 +54,8 @@ BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = LIBDIR + '/jpeg'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py
index 19e9667..d52731f 100644
--- a/build_files/scons/config/win64-vc-config.py
+++ b/build_files/scons/config/win64-vc-config.py
@@ -72,6 +72,8 @@ BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf
 
 WITH_BF_DDS = True
 
+WITH_BF_PTEX = True
+
 WITH_BF_JPEG = True
 BF_JPEG = LIBDIR + '/jpeg'
 BF_JPEG_INC = '${BF_JPEG}/include'
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
index eb5036f..3d54014 100644
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@ -113,7 +113,7 @@ def validate_arguments(args, bc):
             'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH', 'WITH_BF_STATICSNDFILE', 'BF_SNDFILE_LIB_STATIC',
             'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
             'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
-            'WITH_BF_DDS', 'WITH_BF_CINEON', 'WITH_BF_HDR',
+            'WITH_BF_DDS', 'WITH_BF_CINEON', 'WITH_BF_HDR', 'WITH_BF_PTEX',
             'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG',  'BF_FFMPEG_INC', 'BF_FFMPEG_DLL',
             'WITH_BF_STATICFFMPEG', 'BF_FFMPEG_LIB_STATIC',
             'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
@@ -337,6 +337,8 @@ def read_opts(env, cfg, args):
 
         (BoolVariable('WITH_BF_HDR', 'Support HDR image formats if true', True)),
 
+        (BoolVariable('WITH_BF_PTEX', 'Support Ptex files if true', True)),
+
         (BoolVariable('WITH_BF_FRAMESERVER', 'Support export to a frameserver', True)),
 
         (BoolVariable('WITH_BF_FFMPEG', 'Use FFMPEG if true', False)),
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index 7284f76..efe0554 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -95,6 +95,6 @@ if(WITH_SDL AND WITH_SDL_DYNLOAD)
 	add_subdirectory(sdlew)
 endif()
 
-# if(WITH_PTEX)
+if(WITH_PTEX)
 	add_subdirectory(ptex)
-# endif()
\ No newline at end of file
+endif()
diff --git a/extern/SConscript b/extern/SConscript
index 7796732..c16b3a4 100644
--- a/extern/SConscript
+++ b/extern/SConscript
@@ -12,8 +12,6 @@ SConscript(['rangetree/SConscript'])
 SConscript(['wcwidth/SConscript'])
 SConscript(['libmv/SConscript'])
 
-SConscript(['ptex/SConscript'])
-
 if env['WITH_BF_GAMEENGINE']:
     SConscript(['recastnavigation/SConscript'])
 
@@ -55,3 +53,6 @@ if env['WITH_GHOST_XDND']:
 
 if env['WITH_BF_SDL'] and env['WITH_BF_SDL_DYNLOAD']:
     SConscript(['sdlew/SConscript'])
+
+if env['WITH_BF_PTEX']:
+    SConscript(['ptex/SConscript'])
diff --git a/extern/ptex/SConscript b/extern/ptex/SConscript
index 1ae168d..b765a7a 100644
--- a/extern/ptex/SConscript
+++ b/extern/ptex/SConscript
@@ -2,7 +2,10 @@ Import ('env')
 
 sources = env.Glob('*.cpp')
 
-incs = '.'
+incs = ['.']
 defs = ''
 
-env.BlenderLib ('extern_ptex', sources, Split(incs), Split(defs), libtype=['extern'], priority=[100] )
+incs += Split(env['BF_OIIO_INC'])
+
+env.BlenderLib ('extern_ptex', sources, Split(incs), Split(defs),
+                libtype=['extern', 'player'], priority=[80, 200] )
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 34a5195..e790012 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -129,10 +129,10 @@ if(WITH_CYCLES_STANDALONE_GUI)
 	add_definitions(-DWITH_CYCLES_STANDALONE_GUI)
 endif()
 
-#if(WITH_CYCLES_PTEX)
+if(WITH_CYCLES_PTEX)
 	add_definitions(-DWITH_PTEX)
 	include_directories("../../extern/ptex")
-#endif()
+endif()
 
 if(WITH_CYCLES_OPENSUBDIV)
 	add_definitions(-DWITH_OPENSUBDIV)
diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript
index f3a6a72..33f1ac8 100644
--- a/intern/cycles/SConscript
+++ b/intern/cycles/SConscript
@@ -81,9 +81,12 @@ incs.append(env['BF_GLEW_INC'])
 incs.append('#/intern/glew-mx')
 incs.append('#/intern/atomic')
 incs.append('#intern/mikktspace')
-incs.extend('#extern/glew/include #extern/clew/include #extern/cuew/include #intern/mikktspace #extern/ptex'.split())
+if env['WITH_BF_PTEX']:
+    incs.append('#/extern/ptex')
+incs.extend('#extern/glew/include #extern/clew/include #extern/cuew/include #intern/mikktspace'.split())
 
-defs.append('WITH_PTEX')
+if env['WITH_BF_PTEX']:
+    defs.append('WITH_PTEX')
 
 incs.append(cycles['BF_OIIO_INC'])
 incs.append(cycles['BF_BOOST_INC'])
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index 3eb6bd5..25ed364 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -353,6 +353,7 @@ void ImageManager::tag_reload_image(const string& filename, void *builtin_data,
 	}
 }
 
+#ifdef WITH_PTEX
 // TODO
 static PtexRegions ptex_table_reserve(DeviceScene *dscene,
 									  const int texture_slot,
@@ -421,6 +422,16 @@ static BPXImageBuf *ptex_pack_uchar_cb(const struct PtexPackedLayout *layout,
 	return BPX_image_buf_wrap(width, height, 4, BPX_TYPE_DESC_UINT8,
 							  *context.pixels);
 }
+#else
+static PtexRegions ptex_table_reserve(DeviceScene *dscene,
+									  const int texture_slot,
+									  const int texture_width,
+									  const int texture_height,
+									  const int num_ptex_regions)
+{
+	return NULL;
+}
+#endif
 
 bool ImageManager::file_load_image(Image *img, device_vector<uchar4>& tex_img,
 								   DeviceScene *dscene, int slot)
@@ -486,6 +497,7 @@ bool ImageManager::file_load_image(Image *img, device_vector<uchar4>& tex_img,
 	bool cmyk = false;
 
 	if (use_ptex_file) {
+#ifdef WITH_PTEX
 		BPXImageBuf *packed_buf;
 		BPXImageInput *bpx_in = reinterpret_cast<BPXImageInput*>(in);
 		// TODO, subtraction
@@ -500,6 +512,10 @@ bool ImageManager::file_load_image(Image *img, device_vector<uchar4>& tex_img,
 
 		BPX_image_buf_free(packed_buf);
 		in = NULL;
+#else
+		delete in;
+		in = NULL;
+#endif
 	} else {
 		pixels = (uchar*)tex_img.resize(width, height, depth);
 	}
@@ -526,6 +542,7 @@ bool ImageManager::file_load_image(Image *img, device_vector<uchar4>& tex_img,
 	else if (!use_ptex_file) {
 		PtexRegions ptex_regions;
 		thread_scoped_lock device_lock(device_mutex);
+
 		ptex_regions = ptex_table_reserve(dscene, slot - 1024, width,
 										  height, num_ptex_regions);
 
diff --git a/source/blender/blenkernel/CMakeLists

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list