[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61487] trunk/lib/win64_vc12/ openexr/include/OpenEXR: Bump OpenEXR to 2.2 (forgot to add some files)

Martijn Berger martijn.berger at gmail.com
Mon Feb 2 21:01:01 CET 2015


Revision: 61487
          https://developer.blender.org/rBL61487
Author:   juicyfruit
Date:     2015-02-02 20:01:01 +0000 (Mon, 02 Feb 2015)
Log Message:
-----------
Bump OpenEXR to 2.2 (forgot to add some files)

Added Paths:
-----------
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImage.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageChannel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageIO.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageLevel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfFlatImage.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfFlatImageChannel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfFlatImageIO.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfFlatImageLevel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfFloatVectorAttribute.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImage.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImageChannel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImageChannelRenaming.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImageDataWindow.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImageIO.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfImageLevel.h
    trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfSampleCountChannel.h

Added: trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImage.h
===================================================================
--- trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImage.h	                        (rev 0)
+++ trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImage.h	2015-02-02 20:01:01 UTC (rev 61487)
@@ -0,0 +1,93 @@
+///////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2014, 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_DEEP_IMAGE_H
+#define INCLUDED_IMF_DEEP_IMAGE_H
+
+//----------------------------------------------------------------------------
+//
+//      class DeepImage
+//
+//      For an explanation of images, levels and channels,
+//      see the comments in header file Image.h.
+//
+//----------------------------------------------------------------------------
+
+#include "ImfDeepImageLevel.h"
+#include <ImfImage.h>
+#include <ImfTileDescription.h>
+#include "ImfExport.h"
+
+OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
+
+
+class IMF_EXPORT DeepImage : public Image
+{
+  public:
+
+    //
+    // Constructors and destructor.
+    // The default constructor constructs an image with an empty data
+    // window level mode ONE_LEVEL and level rounding mode ROUND_DOWN.
+    //
+
+	DeepImage();
+
+	DeepImage(const IMATH_NAMESPACE::Box2i &dataWindow,
+               LevelMode levelMode = ONE_LEVEL,
+               LevelRoundingMode levelRoundingMode = ROUND_DOWN);
+
+	virtual ~DeepImage();
+
+
+    //
+    // Accessing image levels by level number
+    //
+
+	virtual DeepImageLevel &        level(int l = 0);
+	virtual const DeepImageLevel &  level(int l = 0) const;
+
+	virtual DeepImageLevel &        level(int lx, int ly);
+	virtual const DeepImageLevel &  level(int lx, int ly) const;
+
+   protected:
+
+	virtual DeepImageLevel *
+        newLevel (int lx, int ly, const IMATH_NAMESPACE::Box2i &dataWindow);
+};
+
+
+OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
+
+#endif

Added: trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageChannel.h
===================================================================
--- trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageChannel.h	                        (rev 0)
+++ trunk/lib/win64_vc12/openexr/include/OpenEXR/ImfDeepImageChannel.h	2015-02-02 20:01:01 UTC (rev 61487)
@@ -0,0 +1,533 @@
+///////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2014, 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_DEEP_IMAGE_CHANNEL_H
+#define INCLUDED_IMF_DEEP_IMAGE_CHANNEL_H
+
+//----------------------------------------------------------------------------
+//
+//      class DeepImageChannel,
+//      template class TypedDeepImageChannel<T>
+//
+//      For an explanation of images, levels and channels,
+//      see the comments in header file Image.h.
+//
+//----------------------------------------------------------------------------
+
+#include "ImfImageChannel.h"
+#include <ImfDeepFrameBuffer.h>
+#include "ImfExport.h"
+
+OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
+
+class DeepImageLevel;
+class SampleCountChannel;
+
+//
+// Image channels:
+//
+// A TypedDeepImageChannel<T> holds the pixel data for a single channel
+// of one level of a deep image.  Each pixel in the channel contains an
+// array of n samples of type T, where T is either half, float or
+// unsigned int, and n is stored in a separate sample count channel.
+// Sample storage is allocated only for pixels within the data window
+// of the level.
+//
+
+class DeepImageChannel: public ImageChannel
+{
+  public:
+
+    //
+    // Construct an OpenEXR frame buffer slice for this channel.
+    // This function is needed reading an image from an OpenEXR
+    // file and for saving an image in an OpenEXR file.
+    // 
+
+    virtual DeepSlice           slice () const = 0;
+
+    //
+    // Access to the image level to which this channel belongs.
+    //
+
+	IMF_EXPORT DeepImageLevel &            deepLevel();
+	IMF_EXPORT const DeepImageLevel &      deepLevel() const;
+
+
+    //
+    // Access to the sample count channel for this deep channel.
+    //
+
+	IMF_EXPORT SampleCountChannel &        sampleCounts();
+	IMF_EXPORT const SampleCountChannel &  sampleCounts() const;
+
+
+  protected:
+
+    friend class DeepImageLevel;
+
+    DeepImageChannel (DeepImageLevel &level, bool pLinear);
+    virtual ~DeepImageChannel();
+
+    virtual void setSamplesToZero
+                        (size_t i,
+                         unsigned int oldNumSamples,
+                         unsigned int newNumSamples) = 0;
+
+    virtual void moveSampleList
+                        (size_t i,
+                         unsigned int oldNumSamples,
+                         unsigned int newNumSamples,
+                         size_t newSampleListPosition) = 0;
+
+    virtual void moveSamplesToNewBuffer
+                        (const unsigned int * oldNumSamples,
+                         const unsigned int * newNumSamples,
+                         const size_t * newSampleListPositions) = 0;
+
+    virtual void initializeSampleLists () = 0;
+
+    virtual void resize ();
+
+    virtual void resetBasePointer () = 0;
+};
+
+
+template <class T>
+class TypedDeepImageChannel: public DeepImageChannel
+{
+  public:
+    
+    //
+    // The OpenEXR pixel type of this channel (HALF, FLOAT or UINT).
+    //
+
+    virtual PixelType   pixelType () const;
+
+    
+    //
+    // Construct an OpenEXR frame buffer slice for this channel.
+    // This function is needed reading an image from an OpenEXR
+    // file and for saving an image in an OpenEXR file.
+    // 
+
+    virtual DeepSlice   slice () const;
+
+
+    //
+    // Access to the pixel at pixel space location (x, y), without bounds
+    // checking.  Accessing a location outside the data window of the image
+    // level results in undefined behavior.
+    //
+    // The pixel contains a pointer to an array of samples to type T.  The
+    // number of samples in this array is sampleCounts().at(x,y).
+    //
+
+    T *                 operator () (int x, int y);
+    const T *           operator () (int x, int y) const;
+
+
+    //
+    // Access to the pixel at pixel space location (x, y), with bounds
+    // checking.  Accessing a location outside the data window of the
+    // image level throws an Iex::ArgExc exception.
+    //
+
+    T *                 at (int x, int y);
+    const T *           at (int x, int y) const;
+
+    //
+    // Faster access to all pixels in a single horizontal row of the
+    // channel.  Access is not bounds checked; accessing out of bounds
+    // rows or pixels results in undefined behavior.
+    //
+    // Rows are numbered from 0 to pixelsPerColumn()-1, and each row
+    // contains pixelsPerRow() values.  The number of samples in
+    // row(r)[i] is sampleCounts().row(r)[i].
+    //
+
+    T * const *         row (int r);
+    const T * const *   row (int r) const;
+
+  private:
+    
+    friend class DeepImageLevel;
+
+    TypedDeepImageChannel (DeepImageLevel &level, bool pLinear);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list