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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to