Revision: 26418
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26418
Author:   blendix
Date:     2010-01-30 10:14:12 +0100 (Sat, 30 Jan 2010)

Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp
    trunk/blender/source/blender/imbuf/intern/dynlibtiff.c
    trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py

Modified: trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp   2010-01-30 
08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/dds/dds_api.cpp   2010-01-30 
09:14:12 UTC (rev 26418)
@@ -80,6 +80,10 @@
 
        /* 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);

Modified: trunk/blender/source/blender/imbuf/intern/dynlibtiff.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/dynlibtiff.c      2010-01-30 
08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/dynlibtiff.c      2010-01-30 
09:14:12 UTC (rev 26418)
@@ -85,40 +85,58 @@
        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;

Modified: trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py
===================================================================
--- trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py 2010-01-30 
08:45:31 UTC (rev 26417)
+++ trunk/blender/source/blender/imbuf/intern/gen_dynlibtiff.py 2010-01-30 
09:14:12 UTC (rev 26418)
@@ -117,25 +117,71 @@
        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 @@
        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;


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

Reply via email to