[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26418] trunk/blender/source/blender/imbuf /intern: Fix #20146:

Brecht Van Lommel brecht at blender.org
Sat Jan 30 10:14:12 CET 2010


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;





More information about the Bf-blender-cvs mailing list