[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