[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32289] trunk/lib/win64/openexr: Update OpenEXR to 1.6.1 and IlmBase to 1.0.1 for MSVC9 (VS2008)-

Nathan Letwory nathan at letworyinteractive.com
Mon Oct 4 00:30:28 CEST 2010


Revision: 32289
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32289
Author:   jesterking
Date:     2010-10-04 00:30:28 +0200 (Mon, 04 Oct 2010)

Log Message:
-----------
Update OpenEXR to 1.6.1 and IlmBase to 1.0.1 for MSVC9 (VS2008)-
This adds also the debug libraries for this dependency, so now building
with CMake works.

Modified Paths:
--------------
    trunk/lib/win64/openexr/include/IlmImf/ImfAutoArray.h
    trunk/lib/win64/openexr/include/IlmImf/ImfCRgbaFile.h
    trunk/lib/win64/openexr/include/IlmImf/ImfChannelList.h
    trunk/lib/win64/openexr/include/IlmImf/ImfChromaticities.h
    trunk/lib/win64/openexr/include/IlmImf/ImfCompression.h
    trunk/lib/win64/openexr/include/IlmImf/ImfEnvmap.h
    trunk/lib/win64/openexr/include/IlmImf/ImfHeader.h
    trunk/lib/win64/openexr/include/IlmImf/ImfInt64.h
    trunk/lib/win64/openexr/include/IlmImf/ImfMisc.h
    trunk/lib/win64/openexr/include/IlmImf/ImfStandardAttributes.h
    trunk/lib/win64/openexr/include/Imath/ImathBoxAlgo.h
    trunk/lib/win64/openexr/include/Imath/ImathFrustum.h
    trunk/lib/win64/openexr/include/Imath/ImathFun.h
    trunk/lib/win64/openexr/include/Imath/ImathLineAlgo.h
    trunk/lib/win64/openexr/include/Imath/ImathMath.h
    trunk/lib/win64/openexr/include/Imath/ImathMatrix.h
    trunk/lib/win64/openexr/include/Imath/ImathQuat.h
    trunk/lib/win64/openexr/include/Imath/ImathRandom.h
    trunk/lib/win64/openexr/include/Imath/ImathRoots.h
    trunk/lib/win64/openexr/include/half.h
    trunk/lib/win64/openexr/lib_vs2008/Half.lib
    trunk/lib/win64/openexr/lib_vs2008/Iex.lib
    trunk/lib/win64/openexr/lib_vs2008/IlmImf.lib
    trunk/lib/win64/openexr/lib_vs2008/IlmThread.lib
    trunk/lib/win64/openexr/lib_vs2008/Imath.lib

Added Paths:
-----------
    trunk/lib/win64/openexr/README.txt
    trunk/lib/win64/openexr/include/IlmBaseConfig.h
    trunk/lib/win64/openexr/include/IlmImf/ImfB44Compressor.h
    trunk/lib/win64/openexr/include/IlmImf/ImfFramesPerSecond.h
    trunk/lib/win64/openexr/include/IlmImf/ImfRational.h
    trunk/lib/win64/openexr/include/IlmImf/ImfRationalAttribute.h
    trunk/lib/win64/openexr/include/IlmThread/
    trunk/lib/win64/openexr/include/IlmThread/IlmThread.h
    trunk/lib/win64/openexr/include/IlmThread/IlmThreadMutex.h
    trunk/lib/win64/openexr/include/IlmThread/IlmThreadPool.h
    trunk/lib/win64/openexr/include/IlmThread/IlmThreadSemaphore.h
    trunk/lib/win64/openexr/include/Imath/ImathInt64.h
    trunk/lib/win64/openexr/lib_vs2008/Half_d.lib
    trunk/lib/win64/openexr/lib_vs2008/Iex_d.lib
    trunk/lib/win64/openexr/lib_vs2008/IlmImf_d.lib
    trunk/lib/win64/openexr/lib_vs2008/IlmThread_d.lib
    trunk/lib/win64/openexr/lib_vs2008/Imath_d.lib

Removed Paths:
-------------
    trunk/lib/win64/openexr/include/zconf.h
    trunk/lib/win64/openexr/include/zlib.h

Added: trunk/lib/win64/openexr/README.txt
===================================================================
--- trunk/lib/win64/openexr/README.txt	                        (rev 0)
+++ trunk/lib/win64/openexr/README.txt	2010-10-03 22:30:28 UTC (rev 32289)
@@ -0,0 +1,5 @@
+IlmBase 1.0.1 and OpenEXR 1.6.1
+
+lib_vs2008 built from source. Note: Set all concerning projects to build as /MT for release and /MTd for debug
+Also, remove the _USR_DLL and _DLL and *_EXPORT defines from the preprocessor. That way you
+get libs to which blender links fine.

Added: trunk/lib/win64/openexr/include/IlmBaseConfig.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmBaseConfig.h	                        (rev 0)
+++ trunk/lib/win64/openexr/include/IlmBaseConfig.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -0,0 +1,16 @@
+// Hand-crafted version of config/IlmBaseConfig.h for Windows
+//
+// Define and set to 1 if the target system has POSIX thread support
+// and you want IlmBase to use it for multithreaded file I/O.
+//
+
+#undef HAVE_PTHREAD
+
+//
+// Define and set to 1 if the target system supports POSIX semaphores
+// and you want OpenEXR to use them; otherwise, OpenEXR will use its
+// own semaphore implementation.
+//
+
+#undef HAVE_POSIX_SEMAPHORES
+

Modified: trunk/lib/win64/openexr/include/IlmImf/ImfAutoArray.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmImf/ImfAutoArray.h	2010-10-03 22:26:47 UTC (rev 32288)
+++ trunk/lib/win64/openexr/include/IlmImf/ImfAutoArray.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -39,9 +39,8 @@
 
 //-----------------------------------------------------------------------------
 //
-//	class AutoArray -- a workaround for the
-//	lack of large auto arrays on Mac OS X and
-//      Win32.
+//	class AutoArray -- a workaround for systems with
+//	insufficient stack space for large auto arrays.
 //
 //-----------------------------------------------------------------------------
 
@@ -50,7 +49,7 @@
 namespace Imf {
 
 
-#if defined (HAVE_DARWIN) || defined (_WIN32) || defined (_WIN64)
+#if !defined (HAVE_LARGE_STACK)
 
 
     template <class T, int size>

Added: trunk/lib/win64/openexr/include/IlmImf/ImfB44Compressor.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmImf/ImfB44Compressor.h	                        (rev 0)
+++ trunk/lib/win64/openexr/include/IlmImf/ImfB44Compressor.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -0,0 +1,117 @@
+///////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2006, Industrial Light & Magic, a division of Lucas
+// Digital Ltd. LLC
+// 
+// All rights reserved.
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+// *       Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// *       Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// *       Neither the name of Industrial Light & Magic nor the names of
+// its contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission. 
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////
+
+
+#ifndef INCLUDED_IMF_B44_COMPRESSOR_H
+#define INCLUDED_IMF_B44_COMPRESSOR_H
+
+//-----------------------------------------------------------------------------
+//
+//	class B44Compressor -- lossy compression of 4x4 pixel blocks
+//
+//-----------------------------------------------------------------------------
+
+#include <ImfCompressor.h>
+
+namespace Imf {
+
+class ChannelList;
+
+
+class B44Compressor: public Compressor
+{
+  public:
+
+    B44Compressor (const Header &hdr,
+                   int maxScanLineSize,
+		   int numScanLines,
+		   bool optFlatFields);
+
+    virtual ~B44Compressor ();
+
+    virtual int		numScanLines () const;
+
+    virtual Format	format () const;
+
+    virtual int		compress (const char *inPtr,
+				  int inSize,
+				  int minY,
+				  const char *&outPtr);                  
+                  
+    virtual int		compressTile (const char *inPtr,
+				      int inSize,
+				      Imath::Box2i range,
+				      const char *&outPtr);
+
+    virtual int		uncompress (const char *inPtr,
+				    int inSize,
+				    int minY,
+				    const char *&outPtr);
+                    
+    virtual int		uncompressTile (const char *inPtr,
+					int inSize,
+					Imath::Box2i range,
+					const char *&outPtr);
+  private:
+
+    struct ChannelData;
+    
+    int			compress (const char *inPtr,
+				  int inSize,
+				  Imath::Box2i range,
+				  const char *&outPtr);
+ 
+    int			uncompress (const char *inPtr,
+				    int inSize,
+				    Imath::Box2i range,
+				    const char *&outPtr);
+
+    int			_maxScanLineSize;
+    bool		_optFlatFields;
+    Format		_format;
+    int			_numScanLines;
+    unsigned short *	_tmpBuffer;
+    char *		_outBuffer;
+    int			_numChans;
+    const ChannelList &	_channels;
+    ChannelData *	_channelData;
+    int			_minX;
+    int			_maxX;
+    int			_maxY;
+};
+
+
+} // namespace Imf
+
+#endif

Modified: trunk/lib/win64/openexr/include/IlmImf/ImfCRgbaFile.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmImf/ImfCRgbaFile.h	2010-10-03 22:26:47 UTC (rev 32288)
+++ trunk/lib/win64/openexr/include/IlmImf/ImfCRgbaFile.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -106,6 +106,8 @@
 #define IMF_ZIP_COMPRESSION	3
 #define IMF_PIZ_COMPRESSION	4
 #define IMF_PXR24_COMPRESSION	5
+#define IMF_B44_COMPRESSION	6
+#define IMF_B44A_COMPRESSION	7
 
 
 /*

Modified: trunk/lib/win64/openexr/include/IlmImf/ImfChannelList.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmImf/ImfChannelList.h	2010-10-03 22:26:47 UTC (rev 32288)
+++ trunk/lib/win64/openexr/include/IlmImf/ImfChannelList.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -75,13 +75,32 @@
     int			ySampling;
 
 
+    //--------------------------------------------------------------
+    // Hint to lossy compression methods that indicates whether
+    // human perception of the quantity represented by this channel
+    // is closer to linear or closer to logarithmic.  Compression
+    // methods may optimize image quality by adjusting pixel data
+    // quantization acording to this hint.
+    // For example, perception of red, green, blue and luminance is
+    // approximately logarithmic; the difference between 0.1 and 0.2
+    // is perceived to be roughly the same as the difference between
+    // 1.0 and 2.0.  Perception of chroma coordinates tends to be
+    // closer to linear than logarithmic; the difference between 0.1
+    // and 0.2 is perceived to be roughly the same as the difference
+    // between 1.0 and 1.1.
+    //--------------------------------------------------------------
+
+    bool		pLinear;
+
+
     //------------
     // Constructor
     //------------
     
     Channel (PixelType type = HALF,
 	     int xSampling = 1,
-	     int ySampling = 1);
+	     int ySampling = 1,
+	     bool pLinear = false);
 
 
     //------------

Modified: trunk/lib/win64/openexr/include/IlmImf/ImfChromaticities.h
===================================================================
--- trunk/lib/win64/openexr/include/IlmImf/ImfChromaticities.h	2010-10-03 22:26:47 UTC (rev 32288)
+++ trunk/lib/win64/openexr/include/IlmImf/ImfChromaticities.h	2010-10-03 22:30:28 UTC (rev 32289)
@@ -51,11 +51,21 @@
    
 struct Chromaticities
 {
+    //-----------------------------------------------
+    // The CIE x and y coordinates of the RGB triples
+    // (1,0,0), (0,1,0), (0,0,1) and (1,1,1).
+    //-----------------------------------------------
+
     Imath::V2f	red;
     Imath::V2f	green;
     Imath::V2f	blue;
     Imath::V2f	white;
 
+    //--------------------------------------------
+    // Default constructor produces chromaticities
+    // according to Rec. ITU-R BT.709-3
+    //--------------------------------------------
+
     Chromaticities (const Imath::V2f &red   = Imath::V2f (0.6400f, 0.3300f),
 		    const Imath::V2f &green = Imath::V2f (0.3000f, 0.6000f),
 		    const Imath::V2f &blue  = Imath::V2f (0.1500f, 0.0600f),
@@ -100,23 +110,6 @@
 // 
 // 	YYZtoRGB(c,Y) returns RGBtoXYZ(c,Y).inverse().
 // 
-// Warning:
-// 
-// 	It would seem that RGBtoXYZ() and XYZtoRGB() are all you need
-// 	to convert RGB values with one set of primary and white point
-// 	chromaticities into perceptually equivalent RGB values with
-// 	different primary and white point chromaticities:
-// 
-// 	    M44f M = RGBtoXYZ (chromaticities1, Y1) *
-// 		     XYZtoRGB (chromaticities2, Y2);
-// 
-// 	However, this simple conversion does not account for white point
-// 	adaptation, and produces undesirable results.  The proper thing
-// 	to do is to perform a Bradford or a von Kries transform, which
-// 	moves the white point of the original color space to the white
-// 	point of the destination color space, dragging other colors with
-// 	it in a sensible fashion.  
-//
 
 Imath::M44f	RGBtoXYZ (const Chromaticities chroma, float Y);
 Imath::M44f	XYZtoRGB (const Chromaticities chroma, float Y);

Modified: trunk/lib/win64/openexr/include/IlmImf/ImfCompression.h
===================================================================

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list