Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-30 12:14:12 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-30 12:14:12 +0300
commit7d0885915b1b7724ab08a3542ba2faf5e90be705 (patch)
treeabd767cc95ca647381e5400169fc309d810c30e6 /source
parentc005d19c420e51764cc3dafac26f329e9144bb88 (diff)
Fix #20146:
* .tif not loading on newer linux distributions, wasn't looking for libtiff version 4. * fix dds being too verbose when testing if it can open an image file.
Diffstat (limited to 'source')
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.cpp4
-rw-r--r--source/blender/imbuf/intern/dynlibtiff.c18
-rwxr-xr-xsource/blender/imbuf/intern/gen_dynlibtiff.py55
3 files changed, 74 insertions, 3 deletions
diff --git a/source/blender/imbuf/intern/dds/dds_api.cpp b/source/blender/imbuf/intern/dds/dds_api.cpp
index d7ff4761605..20b77c75841 100644
--- a/source/blender/imbuf/intern/dds/dds_api.cpp
+++ b/source/blender/imbuf/intern/dds/dds_api.cpp
@@ -80,6 +80,10 @@ struct ImBuf *imb_load_dds(unsigned char *mem, int size, int flags)
/* check if DDS is valid and supported */
if (!dds.isValid()) {
+ /* no need to print error here, just testing if it is a DDS */
+ if(flags & IB_test)
+ return (0);
+
printf("DDS: not valid; header follows\n");
dds.printInfo();
return(0);
diff --git a/source/blender/imbuf/intern/dynlibtiff.c b/source/blender/imbuf/intern/dynlibtiff.c
index 6db83b37c05..18d508b6db4 100644
--- a/source/blender/imbuf/intern/dynlibtiff.c
+++ b/source/blender/imbuf/intern/dynlibtiff.c
@@ -85,40 +85,58 @@ void libtiff_loadlibtiff(void)
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/resources
libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/frameworks
libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.4.dylib");
+ if (libtiff != NULL) return;
//along side the blender app package
libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.4.dylib");
+ if (libtiff != NULL) return;
//inside the blender app package contents/MacOS
libtiff = PIL_dynlib_open("@executable_path/libtiff.dylib");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("@executable_path/libtiff.3.dylib");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.4.dylib");
+ if (libtiff != NULL) return;
#else
libtiff = PIL_dynlib_open("libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("libtiff.so.4");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.dll");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.4");
+ if (libtiff != NULL) return;
#ifdef __x86_64__
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.4");
+ if (libtiff != NULL) return;
#endif
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.so");
if (libtiff != NULL) return;
diff --git a/source/blender/imbuf/intern/gen_dynlibtiff.py b/source/blender/imbuf/intern/gen_dynlibtiff.py
index 4dba5b13aa0..a81ef981357 100755
--- a/source/blender/imbuf/intern/gen_dynlibtiff.py
+++ b/source/blender/imbuf/intern/gen_dynlibtiff.py
@@ -117,25 +117,71 @@ void libtiff_loadlibtiff(void)
if (libtiff != NULL) return;
/* Try to find libtiff in a couple of standard places */
+#ifdef __APPLE__
+ /* OSX has version specific library */
+ //standard install location
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/resources
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../resources/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/frameworks
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../frameworks/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //along side the blender app package
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/../../../libtiff.4.dylib");
+ if (libtiff != NULL) return;
+ //inside the blender app package contents/MacOS
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.3.dylib");
+ if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("@executable_path/libtiff.4.dylib");
+ if (libtiff != NULL) return;
+#else
libtiff = PIL_dynlib_open("libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("libtiff.so.4");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("libtiff.dll");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so");
if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.3");
if (libtiff != NULL) return;
- /* OSX has version specific library */
+ libtiff = PIL_dynlib_open("/usr/lib/libtiff.so.4");
+ if (libtiff != NULL) return;
#ifdef __x86_64__
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so");
+ if (libtiff != NULL) return;
libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.3");
if (libtiff != NULL) return;
+ libtiff = PIL_dynlib_open("/usr/lib64/libtiff.so.4");
+ if (libtiff != NULL) return;
#endif
libtiff = PIL_dynlib_open("/usr/local/lib/libtiff.so");
if (libtiff != NULL) return;
/* For solaris */
libtiff = PIL_dynlib_open("/usr/openwin/lib/libtiff.so");
+#endif
}
@@ -145,8 +191,11 @@ void *libtiff_findsymbol(char *name)
assert(libtiff != NULL);
symbol = PIL_dynlib_find_symbol(libtiff, name);
if (symbol == NULL) {
- printf("libtiff_findsymbol: error %s\\n",
- PIL_dynlib_get_error_as_string(libtiff));
+ char *err = PIL_dynlib_get_error_as_string(libtiff);
+
+ if (err) printf("libtiff_findsymbol: error %s\\n",err);
+ else printf("libtiff_findsymbol: error Unknown.\\n");
+
libtiff = NULL;
G.have_libtiff = (0);
return NULL;