[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45111] trunk/lib/win64/openimageio: OpenImageIO 1.0.2 for Windows x64 (64 bit)
Thomas Dinges
blender at dingto.org
Fri Mar 23 21:09:21 CET 2012
Revision: 45111
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45111
Author: dingto
Date: 2012-03-23 20:09:14 +0000 (Fri, 23 Mar 2012)
Log Message:
-----------
OpenImageIO 1.0.2 for Windows x64 (64 bit)
* Built without OCIO support.
Tested on Windows 7.
Modified Paths:
--------------
trunk/lib/win64/openimageio/CHANGES
trunk/lib/win64/openimageio/bin/OpenImageIO.dll
trunk/lib/win64/openimageio/include/OpenImageIO/dassert.h
trunk/lib/win64/openimageio/include/OpenImageIO/filesystem.h
trunk/lib/win64/openimageio/include/OpenImageIO/imagebuf.h
trunk/lib/win64/openimageio/include/OpenImageIO/imagebufalgo.h
trunk/lib/win64/openimageio/include/OpenImageIO/strutil.h
trunk/lib/win64/openimageio/include/OpenImageIO/ustring.h
trunk/lib/win64/openimageio/include/OpenImageIO/version.h
trunk/lib/win64/openimageio/lib/OpenImageIO.lib
Modified: trunk/lib/win64/openimageio/CHANGES
===================================================================
--- trunk/lib/win64/openimageio/CHANGES 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/CHANGES 2012-03-23 20:09:14 UTC (rev 45111)
@@ -1,7 +1,44 @@
Changes:
-Release 1.0 (20 Feb 2012, compared to 0.10.5)
+Release 1.0.2 (19 Mar 2012)
+----------------------------
+* Fixed TARGA reader bug where for 16-bpp, 4-channel images, we weren't
+ reading the alpha properly.
+* Fix ill-formed default output names for maketx (and in the process,
+ add Filesystem::replace_extension utility).
+* Threading performance improvement in the texture system as a result of
+ wrapping various internal "iequals" calls to pass a static locale
+ rather than relying on their default behavior that would use a mutex
+ underneath to access a global locale.
+
+
+Release 1.0.1 (13 Mar 2012, compared to 1.0.0)
+----------------------------------------------
+Fixes, minor enhancements, and performance improvements:
+ * Improvements in anisotropic texture filtering quality.
+ * oiiotool --hash prints the SHA-1 hash of each input image.
+ * oiiotool: properly print error message and exit when an input file
+ cannot be opened.
+ * Changed the default behavior of idiff and "oiiotool --diff" to print
+ the pixel difference report only for failures (not for successful
+ matches), unless in verbose (-v) mode.
+Developer goodies:
+ * dassert.h: New ASSERTMSG and DASSERTMSG allow even more flexible
+ assertion messages with full printf argument generality.
+ * Windows compilation fixes.
+ * Major testsuite overhaul: All tests are copied and run in the
+ build/ARCH/testsuite directory, no longer leaving any clutter in the
+ "source" testsuite area. The testing scripts have been cleaned up
+ and greatly simplified. An individual test can be run using "make
+ test TEST=name" (also works with regular expressions). The usual
+ "make test" will exclude tests that are expected to be broken (such
+ as tests for portions of the system that were not built because their
+ required libraries were not found), but "make testall" will run all
+ tests including nominally "broken" ones.
+
+
+Release 1.0 (25 Feb 2012, compared to 0.10.5)
---------------------------------------------
Major new features and improvements:
@@ -41,16 +78,17 @@
separate from the "searchpath" for images.
Fixes, minor enhancements, and performance improvements:
- * ImageBufAlgo new algorithms: compare, compare_Yee, isConstantChannel.
+ * ImageBufAlgo new algorithms: compare, compare_Yee, isConstantChannel,
+ fixNonFinite.
* TextureOpt: add ustring-aware versions of the decode_wrapmode utility.
* TypeDesc: allow stream << output.
* iv: raised maximum ImageCache size from 2 GB to 8 GB.
* PNM: fix bug where file exceptions could go uncaught.
* Properly create coefficients for Kodak color transform.
* iprocess: Fix bug calling read.
- * maketx: new option --opaque-detect omits alpha from texture whose input
- images had alpha=1 everywhere.
- * maketx: --mipimage option allows custom MIP levels to be assembled.
+ * maketx new options: --opaque-detect omits alpha from texture whose input
+ images had alpha=1 everywhere; --mipimage option allows custom MIP
+ levels to be assembled; --fixnan repairs NaN & Inf values in the inputs.
* Fixed bugs in sinc and Blackman-Harris filters.
* ImageCache/TextureSystem -- new reset_stats() method resets all the
statistics back to zero.
Modified: trunk/lib/win64/openimageio/bin/OpenImageIO.dll
===================================================================
(Binary files differ)
Modified: trunk/lib/win64/openimageio/include/OpenImageIO/dassert.h
===================================================================
--- trunk/lib/win64/openimageio/include/OpenImageIO/dassert.h 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/include/OpenImageIO/dassert.h 2012-03-23 20:09:14 UTC (rev 45111)
@@ -70,6 +70,7 @@
/// ASSERT(condition) checks if the condition is met, and if not, prints
/// an error message indicating the module and line where the error
/// occurred and then aborts.
+
#ifndef ASSERT
# define ASSERT(x) \
((x) ? ((void)0) \
@@ -77,7 +78,16 @@
__FILE__, __LINE__, #x), abort()))
#endif
+/// ASSERTMSG(condition,msg,...) is like ASSERT, but lets you add
+/// formatted output (a la printf) to the failure message.
+#ifndef ASSERTMSG
+# define ASSERTMSG(x,msg,...) \
+ ((x) ? ((void)0) \
+ : (fprintf (stderr, "%s:%u: Failed assertion '" #x "': " msg "\n", \
+ __FILE__, __LINE__, __VA_ARGS__), abort()))
+#endif
+
/// DASSERT(condition) is just like ASSERT, except that it only is
/// functional in DEBUG mode, but does nothing when in a non-DEBUG
/// (optimized, shipping) build.
@@ -87,5 +97,14 @@
# define DASSERT(x) ((void)0) /* DASSERT does nothing when not debugging */
#endif
+/// DASSERTMSG(condition,msg,...) is just like ASSERTMSG, except that it
+/// only is functional in DEBUG mode, but does nothing when in a
+/// non-DEBUG (optimized, shipping) build.
+#ifdef DEBUG
+# define DASSERTMSG ASSERTMSG
+#else
+# define DASSERTMSG(...) ((void)0) /* does nothing when not debugging */
+#endif
+
#endif // OPENIMAGEIO_DASSERT_H
Modified: trunk/lib/win64/openimageio/include/OpenImageIO/filesystem.h
===================================================================
--- trunk/lib/win64/openimageio/include/OpenImageIO/filesystem.h 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/include/OpenImageIO/filesystem.h 2012-03-23 20:09:14 UTC (rev 45111)
@@ -72,6 +72,11 @@
/// filename or filepath. DEPRECATED.
DLLPUBLIC std::string file_extension (const std::string &filepath);
+/// Replace the file extension of a filename or filepath. Does not
+/// alter filepath, just returns a new string
+DLLPUBLIC std::string replace_extension (const std::string &filepath,
+ const std::string &new_extension);
+
/// Turn a searchpath (multiple directory paths separated by ':' or ';')
/// into a vector<string> containing each individual directory. If
/// validonly is true, only existing and readable directories will end
Modified: trunk/lib/win64/openimageio/include/OpenImageIO/imagebuf.h
===================================================================
--- trunk/lib/win64/openimageio/include/OpenImageIO/imagebuf.h 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/include/OpenImageIO/imagebuf.h 2012-03-23 20:09:14 UTC (rev 45111)
@@ -70,10 +70,18 @@
/// the pixels of the image (whose values will be undefined).
ImageBuf (const std::string &name, const ImageSpec &spec);
+ /// Construct a copy of an ImageBuf.
+ ///
+ ImageBuf (const ImageBuf &src);
+
/// Destructor for an ImageBuf.
///
virtual ~ImageBuf ();
+ /// Copy an ImageBuf.
+ ///
+ const ImageBuf& operator= (const ImageBuf &src);
+
/// Restore the ImageBuf to an uninitialized state.
///
virtual void clear ();
Modified: trunk/lib/win64/openimageio/include/OpenImageIO/imagebufalgo.h
===================================================================
--- trunk/lib/win64/openimageio/include/OpenImageIO/imagebufalgo.h 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/include/OpenImageIO/imagebufalgo.h 2012-03-23 20:09:14 UTC (rev 45111)
@@ -259,6 +259,19 @@
Filter2D *filter=NULL);
+enum DLLPUBLIC NonFiniteFixMode
+{
+ NONFINITE_NONE = 0, ///< Do nothing
+ NONFINITE_BLACK = 1, ///< Replace nonfinite pixels with black
+ NONFINITE_BOX3 = 2, ///< Replace nonfinite pixels with 3x3 finite average
+};
+
+/// Fix all non-finite pixels (nan/inf) using the specified approach
+bool DLLPUBLIC fixNonFinite(ImageBuf &dst, const ImageBuf &src,
+ NonFiniteFixMode mode=NONFINITE_BOX3,
+ int * pixelsFixed=NULL);
+
+
}; // end namespace ImageBufAlgo
Modified: trunk/lib/win64/openimageio/include/OpenImageIO/strutil.h
===================================================================
--- trunk/lib/win64/openimageio/include/OpenImageIO/strutil.h 2012-03-23 16:59:23 UTC (rev 45110)
+++ trunk/lib/win64/openimageio/include/OpenImageIO/strutil.h 2012-03-23 20:09:14 UTC (rev 45111)
@@ -119,12 +119,12 @@
/// and collapse them into the 'real' characters.
std::string DLLPUBLIC unescape_chars (const std::string &escaped);
-// Word-wrap string 'src' to no more than columns width, splitting at
-// space characters. It assumes that 'prefix' characters are already
-// printed, and furthermore, if it should need to wrap, it prefixes that
-// number of spaces in front of subsequent lines. By illustration,
-// wordwrap("0 1 2 3 4 5 6 7 8", 4, 10) should return:
-// "0 1 2\n 3 4 5\n 6 7 8"
+/// Word-wrap string 'src' to no more than columns width, splitting at
+/// space characters. It assumes that 'prefix' characters are already
+/// printed, and furthermore, if it should need to wrap, it prefixes that
+/// number of spaces in front of subsequent lines. By illustration,
+/// wordwrap("0 1 2 3 4 5 6 7 8", 4, 10) should return:
+/// "0 1 2\n 3 4 5\n 6 7 8"
std::string DLLPUBLIC wordwrap (std::string src, int columns=80, int prefix=0);
/// Hash a string without pre-known length. We use the Jenkins
@@ -149,6 +149,36 @@
+/// Case-insensitive comparison of strings. For speed, this always uses
+/// a static locale that doesn't require a mutex.
+bool DLLPUBLIC iequals (const std::string &a, const std::string &b);
+bool DLLPUBLIC iequals (const char *a, const char *b);
+
+/// Does 'a' start with the string 'b', with a case-insensitive comparison?
+/// For speed, this always uses a static locale that doesn't require a mutex.
+bool DLLPUBLIC istarts_with (const std::string &a, const std::string &b);
+bool DLLPUBLIC istarts_with (const char *a, const char *b);
+
+/// Does 'a' end with the string 'b', with a case-insensitive comparison?
+/// For speed, this always uses a static locale that doesn't require a mutex.
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list