diff --git a/IlmBase/AUTHORS b/IlmBase/AUTHORS deleted file mode 100644 index 51c1f9cea5..0000000000 --- a/IlmBase/AUTHORS +++ /dev/null @@ -1,21 +0,0 @@ -Developers: ------------ - -Florian Kainz -Rod Bogart -Drew Hess -Bill Anderson -Wojciech Jarosz - -Contributors: -------------- - -Rito Trevino -Josh Pines -Christian Rouet - -Win32 build system: -------------------- - -Nick Porcino -Kimball Thurston diff --git a/IlmBase/ChangeLog b/IlmBase/ChangeLog deleted file mode 100644 index 2e79c0f44f..0000000000 --- a/IlmBase/ChangeLog +++ /dev/null @@ -1,136 +0,0 @@ -Version 2.x.x - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.1 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.0 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - * Numerous minor fixes, missing includes etc - -Version 1.1.0.beta.1 - * Added new module PyIlmBase : python bindings for IlmBase - (Nick Rasmussen) - * Added git specific files - (Piotr Stanczyk) - * Minor fixes for newer gcc versions and OS X. - (misc) - * Preparation for OpenEXR v2 release { remove message for final release } - (Piotr Stanczyk) - * Updated the so verison to 10 - (Piotr Stanczyk) - * Initial use of the CMake build system - (Nicholas Yue) - -Version 1.0.3 - * Added support for enabling/disabling large stack optimisations, used in - halfFunction.h. - (Piotr Stanczyk) - * Added ImathNoise.(h/cpp) files. Initializes Perlin noise to match the - Renderman implmenetation. - (Pixar Contribution) - * Fixed a number of missing includes to comply with stricter - enforcement by gnu compilers. - (Piotr Stanczyk) - * Depracated compiler flag: -Wno-long-double since it is no longer - supported under OS X. - (Piotr Stanczyk) - * A minor API change to Imath::Frustum has been made: the functions - 'near' and 'far' have been renamed to 'nearPlane' and 'farPlane' due - to conflicts with certain windows headers. The former alternate - accessor names for these values on windows ('hither' and 'yon') - remain, though should be considered deprecated. - (David Lenihan) - * Added SVD, eigenvalue solver, and procrustes fit calculations - to ImathMatrixAlgo. - (Chris Twigg, Ji Hun Yu) - * Added Imath::FrustumTest for frustum visibility testing. - (Eric Johnston) - * Fixed a stack corruption in the matrix minorOf functions. - (Nick Rasmussen) - * Visual studio 2008 project files have been added to the vc/vc9 - directory, and several minor visual studio compile fixes have - been applied. - (Nick Rasmussen) - * Updated the so verison to 7. - (Piotr Stanczyk) - * Depracated the MacCode_Warrior and Shake submodules. - (Piotr Stanczyk) - -Version 1.0.2 - * Added support for targetting builds on 64bit Windows and minimising - number of compiler warnings on Windows. Thanks to Ger Hobbelt for his - contributions to CreateDLL. - (Ji Hun Yu) - * Removed a spurious restrict qualifier in the matrix manipulation code - that was causing the 64-bit MS compiler to generate code in release - mode that caused incorrect results. - (Ji Hun Yu) - * Added patches for improving universal binaries on OS X. Thanks to - Paul Schneider for the contribution - (Piotr Stanczyk) - * Imath::Box optimization: remove loops from methods by partially - specializing the class, for boxes of two and three dimensions. - (Piotr Stanczyk) - * Added explicit copy constructors to Imath::Matrix33 and - ImathMatrix44 to make conversions between float and double - matrices more convenient. - (Florian Kainz) - * Added slerpShortestArc() and euclideanInnerProduct() functions - to Imath::Quat. - (Nick Porcino) - * Added 4D vector class template Imath::Vec4. - (Nick Porcino) - * Copy constructors and assignment operators for Matrix33 - and Matrix44 are up to 25% faster. Added matrix constructors - that do not initialize the matrix (this is faster in cases where - the initial value of the matrix is immediately overwritten anyway). - (Nick Porcino) - * Rewrote function closestPointOnBox(point,box). Shortened - the code, improved numerical accuracy, fixed a bug where - closestPointOnBox(box.center(),box) would return the center - of the +Z side of the box, even if the +/-X or +/-Y sides - were closer. - (Florian Kainz) - * Rewrote function findEntryAndExitPoints() in ImathBoxAlgo.h. - Results are now consistent with those from intersect(), also - in ImathBoxAlgo.h. - (Florian Kainz) - * Made Vec2::length() and Vec3::length() more accurate for - vectors whose length is less than sqrt(limits::smallest()); - (Florian Kainz) - * Made Quat::angle() more accurate for small angles. - (Don Hatch) - -Version 1.0.1: - * Removed Windows .suo files from distribution. - (Eric Wimmer) - -Version 1.0.0: - * Bumped DSO version number to 6.0 - (Florian Kainz) - * Rounding during float-to-half conversion now implements - "round to nearest even" mode: if the original float value - is exactly in the middle between the two closest half values - then rounding chooses the half value whose least significant - bit is zero. - (Florian Kainz) - * Installation Tuning: - - Corrected version number on dso's (libtool) - now 5.0 - - Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs - in configure scripts of packages dependent on IlmBase can link - with static libraries properly - - eliminated some warning messages during install - (Andrew Kunz) - -Version 0.9.0: - * Initial release of this code as a separate library. - Previously the libraries contained were part of - version 1.4.0 of OpenEXR - * New build scripts for Linux/Unix - (Andrew Kunz) - * New Windows project files and build scripts - (Kimball Thurston) diff --git a/IlmBase/LICENSE b/IlmBase/LICENSE deleted file mode 100644 index 6372750d3c..0000000000 --- a/IlmBase/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. 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 - any other contributors to this software 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. - diff --git a/IlmBase/NEWS b/IlmBase/NEWS deleted file mode 100644 index 0f49920528..0000000000 --- a/IlmBase/NEWS +++ /dev/null @@ -1,3 +0,0 @@ -Version 0.9.0: - - Initial release - diff --git a/IlmBase/README.md b/IlmBase/README.md index e0e2e79b3b..181c4eee89 100644 --- a/IlmBase/README.md +++ b/IlmBase/README.md @@ -1,14 +1,10 @@ -The IlmBase Libraries -===================== +# The IlmBase Libraries -The IlmBase libraries include the following: +The IlmBase libraries are a part of the OpenEXR project and include +the following: * **Half** - a class that encapsulates our 16-bit floating-point format. -* **IlmThread** - a thread abstraction library for use with OpenEXR and -other software packages. It currently supports pthreads and Windows -threads. - * **Imath** - 2D and 3D vectors, 3x3 and 4x4 matrices, quaternions and other useful 2D and 3D math functions. @@ -16,274 +12,24 @@ and other useful 2D and 3D math functions. * **IexMath** - math exception types. -In addition, the distribution also includes confidence test libaries: -**HalfTest**, **IexTest**, and **ImathTest**. - -If you have questions about using the IlmBase libraries, you may want -to join our developer mailing list. See http://www.openexr.com for -details. - -License -------- - -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. - -Building and Installation -------------------------- - -IlmBase includes support to build and install using either autoconf -"configure" scripts, or by using cmake, which tends to be safer to use -in multiple platform scenarios. - -#### Building using autoconf - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, the ``--prefix=`` option specifies a -directory into which to install the headers and libraries. By default, -headers and libraries are installed into ``/usr/local``. - -To build the libraries after running ``configure``: - - make - make install - -#### Building from Git - -If building directly from a cloned git repo, first generate the -configuration scripts by running ``bootstrap``, then ``configure`` and -``make``: - - cd /IlmBase - ./bootstrap - ./configure - make - make install - -Optionally, compiling from git using cmake, one can use the top level -CMakeLists.txt file to build all the libraries at once. - -#### Building on Windows using **cmake** - -To generate Visual Studio solution files and build the libraries: - -1. Launch a command window, navigate to the ``IlmBase`` folder containing - ``CMakeLists.txt``, and type the command: - - setlocal - del /f CMakeCache.txt - cmake -DCMAKE_INSTALL_PREFIX= - -G "Visual Studio 15 2017 Win64" - ..\ilmbase - - Note: The "15 2017" indicates the specific Visual Studio version; - if compiling for a different version, replace this with the proper - target version string. - -2. Navigate to ``IlmBase`` folder in Windows Explorer, open ``ILMBase.sln`` - and build the solution. When it builds successfully, right click - ``INSTALL project`` and build. It will install the output to the path - you set up at the previous step. - -3. Go to http://www.zlib.net and download zlib. - -4. Launch a command window, navigate to the ``OpenEXR`` folder containing - ``CMakeLists.txt``, and type the command: - - setlocal - del /f CMakeCache.txt - cmake - -DZLIB_ROOT= - -DILMBASE_PACKAGE_PREFIX= - -DCMAKE_INSTALL_PREFIX= - -G "Visual Studio 10 Win64" ^ - ..\openexr - -5. Navigate to ``OpenEXR`` folder in Windows Explorer, open - ``OpenEXR.sln`` and build the solution. When it builds - successfully, right click ``INSTALL project`` and build. It will - install the output to the path you set up at the previous step. - -#### Building on **macOS** - -**macOS** supports multiple architectures. By default, IlmBase will be -built for the system doing the building. For example, if you build -IlmBase on an Intel system, the libraries will be built for Intel. - -You can specify building for a different architecture, or multiple -architectures, by passing the ``--enable-osx-arch`` flag to -``configure``. Building for multiple architectures requires that -``--disable-dependency-tracking`` be passed as well. - -For example, to build for Intel and PowerPC: - - ./configure --enable-osx-arch="i386 ppc" --disable-dependency-tracking. - -To build "4-way universal" for 32-bit and 64-bit Intel and PowerPC: - - ./configure --enable-osx-arch="i386 ppc x86_64 ppc64" --disable-dependency-tracking. - -For more information on universal builds, see: - - http://developer.apple.com/documentation/Porting/Conceptual/PortingUNIX/compiling/chapter_4_section_3.html - -Earlier releases of **IlmBase** included an -``--enable-osx-universal-binaries`` switch, which specifies a two-way -universal build: Intel and PowerPC, 32-bit only. This is still -available, but deprecated in favor of the more flexible -``--enable-osx-arch`` and ``--enable-osx-sdk`` switches. - - -#### Choosing an SDK on macOS - -**macOS** allows you to specify one of several SDKs, or sysroots. This -allows you to target systems other than the system that your build -machine runs. - -For example, if you are building on Mac OS X 10.4, but you need access -to features that were introduced in Mac OS X 10.5, you can build -against the Mac OS X 10.5 versions of system libraries and headers. - -You can choose to build **IlmBase** with a specific SDK using the -``--enable-osx-sdk`` switch. For example: - - ./configure --enable-osx-sdk=MacOSX10.5.sdk - -If you are building on Mac OS X 10.4 and want to build universal, you -will need to specify the universal version of the 10.4 SDK: -MacOSX10.4u.sdk. Otherwise, you probably don't need to specify an SDK. - -For more information on sysroots, see: - - http://developer.apple.com/documentation/DeveloperTools/gcc-4.2.1/gcc/Directory-Options.html - -#### Header Installation Directory - -All include files needed to use the OpenEXR libraries are installed in the -``OpenEXR`` subdirectory of the install prefix, e.g. ``/usr/local/include/OpenEXR``. - -Namespaces ----------- - -The IlmBase libraries implement user-configurable namespaces, which -makes it possible to deal with multiple versions of these libraries -loaded at runtime. - -This is helpful when, say, a base application is built with OpenEXR -v1.7, but you need to write a plugin that requires functionality from -OpenEXR v2.0. By injecting the version number into the (mangled) -symbols, via the namespacing mechanism, and changing the soname, via -the build system, you can link the plugin against the v2.0 library. At -run time, the dynamic linker can load both the 1.7 and 2.0 versions of -the library since the library soname are different and the symbols are -different. - -When building IlmBase or OpenEXR the following configure script options -are available: - - ./configure --enable-namespaceversioning - -and - - ./configure --enable-customusernamespace - -#### Internal Library Namespace - -The ``--enable-namespaceversioning`` option controls the namespace -that is used in the library. Without an argument (see below) the -library will be built with a suffix made up of the major and minor -versions. For example, for version 2.0.0, the internal library -namespaces will be ``Imath_2_0``, ``Iex_2_0``, ``IlmThread_2_0`` etc - -For additional flexibility and control, this option can take an -additional argument in which case the internal library namespace will -be suffixed accordingly. - -For example: - - ./configure --enable-namespaceversioning=ILM - -will result in the namespaces of the type ``Imath_ILM``, ``Iex_ILM`` etc. - -This can be useful for completely isolating your local build. - -Code using the library should continue to use the namespace ``Imath``, -or for greater portability ``IMATH_NAMESPACE``, to refer to objects in -``libImath``. In particular, the explicit use of the internal -namespace is discouraged. This ensures that code will continue to -compile with customised or future versions of the library, which may -have a different internal namespace. - -Similarily, for other namespaces in the libraries: **Iex**, -**IlmThread** and **IlmImf**. - -Note that this scheme allows existing code to compile without -modifications, since the 'old' namespaces ``Imath``, ``Iex``, -``IlmThread`` and ``IlmImf`` continue to be available, albeit in a -slightly different form. - -This is achieved via the following, in the Imath case: - - namespace IMATH_INTERNAL_NAMESPACE {} - namespace IMATH_NAMESPACE - { - using namespace IMATH_INTERNAL_NAMESPACE; - } - -This is included in all header files in the **Imath** library and similar ones -are present for the libraries **Iex**, **IlmThread** and **IlmImf**. - -The only exception to this is where user code has forward declarations -of objects in the ``Imf`` namespace, as these will forward declare -symbols in an incorrect namespace - -These forward declarations should be removed, and replaced with: - - #include - -which forward-declares all types correctly. - -#### Public/User Library Namespace - -The ``--enable-customusernamespace`` option can override the namespace -into which will the internal namespace will be exported. This takes an -argument that sets the name of the custom user namespace. In the -example above, ``IMATH_NAMESPACE`` could be resolved into something -other than Imath, say ``Imath_MySpecialNamespace``. - -In nearly all cases, this will not be used as per the above discussion -regarding code compatibility. Its presence is to provide a mechanism -for not prohibiting the case when the application must pass objects -from two different versions of the library. - -Tests ------ +* **IlmThread** - a thread abstraction library for use with OpenEXR and +other software packages. It currently supports pthreads and Windows +threads. -Type: +In addition, the distribution also includes confidence test libaries: - make check +* **HalfTest** +* **IexTest** +* **ImathTest**. -to run the IlmBase confidence tests (HalfTest, IexTest, and -ImathTest). They should all pass; if you find a test that does not -pass on your system, please let us know. +## License -All include files needed to use the IlmBase libraries are installed in -the ``OpenEXR`` subdirectory of the install prefix, -e.g. ``/usr/local/include/OpenEXR``. +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. +## Building and Installation -Using IlmBase in Your Applications ----------------------------------- +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries. -On systems with support for **pkg-config**, use ``pkg-config --cflags -IlmBase`` for the C++ flags required to compile against IlmBase -headers; and ``pkg-config --libs IlmBase`` for the linker flags -required to link against IlmBase libraries. diff --git a/OpenEXR/AUTHORS b/OpenEXR/AUTHORS deleted file mode 100644 index 57299bc391..0000000000 --- a/OpenEXR/AUTHORS +++ /dev/null @@ -1,49 +0,0 @@ -Developers: ------------ - -Florian Kainz -Rod Bogart -Drew Hess -Paul Schneider -Bill Anderson -Wojciech Jarosz -Andrew Kunz -Piotr Stanczyk -Peter Hillman -Nick Porcino -Kimball Thurston - -Contributors: -------------- - -Simon Green -Rito Trevino -Josh Pines -Christian Rouet -Rodrigo Damazio -Greg Ward -Joseph Goldstone -Loren Carpenter, Pixar Animation Studios -Nicholas Yue -Yunfeng Bai (ILM) -Pascal Jette (Autodesk) -Karl Rasche, DreamWorks Animation - -Win32 build system: -------------------- - -Nick Porcino -Kimball Thurston - -Win32 port contributors: ------------------------- - -Dustin Graves -Jukka Liimatta -Baumann Konstantin -Daniel Koch -E. Scott Larsen -stephan mantler -Andreas Kahler -Frank Jargstorff -Lutz Latta diff --git a/OpenEXR/ChangeLog b/OpenEXR/ChangeLog deleted file mode 100644 index 32a2cae774..0000000000 --- a/OpenEXR/ChangeLog +++ /dev/null @@ -1,704 +0,0 @@ -Version 2.0.1 - * Temporarily turning off optimisation code path - (Piotr Stanczyk) - * Added additional tests for future optimisation refactoring - (Piotr Stanczyk / Peter Hillman) - * Fixes for StringVectors - (Peter Hillman) - * Additional checks for type mismatches - (Peter Hillman) - * Fix for Composite Deep Scanline - (Brendan Bolles) - -Version 2.0.0 - * Updated Documentation - (Peter Hillman) - * Updated Namespacing mechanism - (Piotr Stanczyk) - * Fixes for succd & predd - (Peter Hillman) - * Fixes for FPE control registers - (Piotr Stanczyk) - * Additional checks and tests on DeepImages, scanlines and tiles - (Peter Hillman) - * Folded in Autodesk read optimisations for RGB(A) files - (Pascal Jette, Peter Hillman) - * Updated the bootstrap scripts to use libtoolize if glibtoolize isn't available on darwin. - (Nick Rasmussen) - * Numerous minor fixes, missing includes etc - -Version 2.0.0.beta.1: -* Please read the separate file for v2 additions and changes. - * Added git specific files - (Piotr Stanczyk) - * Updated the so verison to 20 - (Piotr Stanczyk) - * Initial use of the CMake build system - (Nicholas Yue) - -Version 1.7.1: - * Updated the .so verison to 7. - (Piotr Stanczyk) - -Version 1.7.0: - * Added support for targetting builds on 64bit Windows and minimising - number of compiler warnings on Windows. Thanks to Ger Hobbelt for his - contributions to CreateDLL. - (Ji Hun Yu) - * Added new atttribute types: - M33dAttribute 3x3 double-precision matrix - M44dAttribute 4x4 double-precision matrix - V2d 2D double-precision vector - V3d 3D double-precision vector - (Florian Kainz) - * Bug fix: crash when reading a damaged image file (found - by Apple). An exception thrown inside the PIZ Huffman - decoder bypasses initialization of an array of pointers. - The uninitialized pointers are later passed to operator - delete. - (Florian Kainz) - * Bug fix: crash when reading a damaged image file (found by - Apple). Computing the size of input certain buffers may - overflow and wrap around to a small number, later causing - writes beyond the end of the buffer. - (Florian Kainz) - * In the "Technical Introduction" document, added - Premultiplied vs. Un-Premulitiplied Color section: - states explicitly that pixels with zero alpha and non-zero - RGB are allowed, points out that preserving such a pixel can - be a problem in application programs with un-premultiplied - internal image representations. - (Florian Kainz) - * exrenvmap improvements: - - New command line flags set the type of the input image to - latitude-longitude map or cube-face map, overriding the - envmap attribute in the input file header. - - Cube-face maps can now be assembled from or split into six - square sub-images. - - Converting a cube-face map into a new cube-face map with - the same face size copies the image instead of resampling - it. This avoids blurring when a cube-face map is assembled - from or split into sub-images. - (Florian Kainz) - * Updated standard chromaticities in ImfAcesFile.cpp to match - final ACES (Academy Color Encoding Specification) document. - (Florian Kainz) - * Added worldToCamera and worldToNDC matrices to - ImfStandardAttributes.h (Florian Kainz) - * Increased the maximum length of attribute and channel names - from 31 to 255 characters. For files that do contain names - longer than 31 characters, a new LONG_NAMES_FLAG in the fil - version number is set. This flag causes older versions of - the IlmImf library (1.6.1 and earlier) to reject files with - long names. Without the flag, older library versions would - mis-interpret files with long names as broken. - (Florian Kainz) - * Reading luminance/chroma-encoded files via the RGBA - interface is faster: buffer padding avoids cache thrashing - for certain image sizes, redundant calls to saturation() - have been eliminated. - (Mike Wall) - * Added "hemispherical blur" option to exrenvmap. - (Florian Kainz) - * Added experimental version of I/O classes for ACES file - format (restricted OpenEXR format with special primaries - and white point); added exr2aces file converter. - (Florian Kainz) - * Added new constructors to classes Imf::RgbaInputFile and - Imf::TiledRgbaInputFile. The new constructors have a - layerName parameter, which allows the caller to specify - which layer of a multi-layer or multi-view image will - be read. - (Florian Kainz) - * A number of member functions in classes Imf::Header, - Imf::ChannelList and Imf::FrameBuffer have parameters - of type "const char *". Added equivalent functions that - take "const std::string &" parameters. - (Florian Kainz) - * Added library support for Weta Digital multi-view images: - StringVector attribute type, multiView standard attribute - of type StringVector, utility functions related to grouping - channels into separate views. - (Peter Hillman, Florian Kainz) - -Version 1.6.1: - * Removed Windows .suo files from distribution. - (Eric Wimmer) - * Bug fix: crashes, memory leaks and file descriptor leaks - when reading damaged image files (some reported by Apple, - others found by running IlmImfFuzzTest). - (Florian Kainz) - * Added new IlmImfFuzzTest program to test how resilient the - IlmImf library is with respect broken input files: the program - first damages OpenEXR files by partially overwriting them with - random data; then it tries to read the damaged files. If all - goes well, the program doesn't crash. - (Florian Kainz) - -Version 1.6.0: - * Bumped DSO version number to 6.0 - (Florian Kainz) - * Added new standard attributes related to color rendering with - CTL (Color Transformation Language): renderingTransform, - lookModTransform and adoptedNeutral. - (Florian Kainz) - * Bug fix: for pixels with luminance near HALF_MIN, conversion - from RGB to luminance/chroma produces NaNs and infinities - (Florian Kainz) - * Bug fix: excessive desaturation of small details with certain - colors after repeatedly loading and saving luminance/chroma - encoded images with B44 compression. - (Florian Kainz) - * Added B44A compression, a minor variation of B44: in most cases, - the compression ratio is 2.28:1, the same as with B44, but in - uniform image areas where all pixels have the same value, the - compression ratio increases to 10.66:1. Uniform areas occur, for - example, in an image's alpha channel, which typically contains - large patches that are solid black or white, or in computer- - generated images with a black background. - (Florian Kainz) - * Added flag to configure.ac to enable or disable use of large - auto arrays in the IlmImf library. Default is "enable" for - Linux, "disable" for everything else. - (Darby Johnston, Florian Kainz) - * corrected version number on dso's (libtool) - now 5.0 - * Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs - can link with static libraries properly - * eliminated some warning messages during install - (Andrew Kunz) - -Version 1.5.0: - * reorganized packaging of OpenEXR libraries to facilitate - integration with CTL. Now this library depends on the library - IlmBase. Some functionality has been moved into OpenEXR_Viewers, - which depends on two other libraries, CTL and OpenEXR_CTL. - Note: previously there were separate releases of - OpenEXR-related plugins for Renderman, Shake and Photoshop. - OpenEXR is supported natively by Rendermand and Photoshop, so - these plugins will not be supported for this or future - versions of OpenEXR. - (Andrew Kunz) - * New build scripts for Linux/Unix - (Andrew Kunz) - * New Windows project files and build scripts - (Kimball Thurston) - * float-to-half conversion now preserves the sign of float zeroes - and of floats that are so small that they become half zeroes. - (Florian Kainz) - * Bug fix: Imath::Frustum::planes() returns incorrect planes - if the frustum is orthogonal. - (Philip Hubbard) - * added new framesPerSecond optional standard attribute - (Florian Kainz) - * Imath cleanup: - - Rewrote function Imath::Quat::setRotation() to make it - numerically more accurate, added confidence tests - - Rewrote function Imath::Quat::slerp() using Don Hatch's - method, which is numerically more accurate, added confidence - tests. - - Rewrote functions Imath::closestPoints(), Imath::intersect(), - added confidence tests. - - Removed broken function Imath::nearestPointOnTriangle(). - - Rewrote Imath::drand48(), Imath::lrand48(), etc. to make - them functionally identical with the Unix/Linux versions - of drand48(), lrand48() and friends. - - Replaced redundant definitions of Int64 in Imath and IlmImf - with a single definition in ImathInt64.h. - (Florian Kainz) - * exrdisplay: if the file's and the display's RGB chromaticities - differ, the pixels RGB values are transformed from the file's - to the display's RGB space. - (Florian Kainz) - * Added new lossy B44 compression method. HALF channels are - compressed with a fixed ratio of 2.28:1. UINT and FLOAT - channels are stored verbatim, without compression. - (Florian Kainz) - -Version 1.4.0a: - * Fixed the ReleaseDLL targets for Visual Studio 2003. - (Barnaby Robson) - -Version 1.4.0: - * Production release. - * Bug Fix: calling setFrameBuffer() for every scan line - while reading a tiled file through the scan line API - returns bad pixel data. (Paul Schneider, Florian Kainz) - -Version 1.3.1: - * Fixed the ReleaseDLL targets for Visual Studio 2005. - (Nick Porcino, Drew Hess) - * Fixes/enhancements for createDLL. - (Nick Porcino) - -Version 1.3.0: - * Removed openexr.spec file, it's out of date and broken to - boot. - (Drew Hess) - * Support for Visual Studio 2005. - (Drew Hess, Nick Porcino) - * When compiling against OpenEXR headers on Windows, you - no longer need to define any HAVE_* or PLATFORM_* - macros in your projects. If you are using any OpenEXR - DLLs, however, you must define OPENEXR_DLL in your - project's preprocessor directives. - (Drew Hess) - * Many fixes to the Windows VC7 build system. - (Drew Hess, Nick Porcino) - * Support for building universal binaries on OS X 10.4. - (Drew Hess, Paul Schneider) - * Minor configure.ac fix to accomodate OS X's automake. - (Drew Hess) - * Removed CPU-specific optimizations from configure.ac, - autoconf's guess at the CPU type isn't very useful, - anyway. Closes #13429. - (Drew Hess) - * Fixed quoting for tests in configure.ac. Closes #13428. - (Drew Hess) - * Use host specification instead of target in configure.ac. - Closes #13427. - (Drew Hess) - * Fix use of AC_ARG_ENABLE in configure.ac. Closes - #13426. - (Drew Hess) - * Removed workaround for OS X istream::read bug. - (Drew Hess) - * Added pthread support to OpenEXR pkg-config file. - (Drew Hess) - * Added -no-undefined to LDFLAGS and required libs to LIBADD - for library projects with other library dependencies, per - Rex Dieter's patch. - (Drew Hess) - * HAVE_* macros are now defined in the OpenEXRConfig.h header - file instead of via compiler flags. There are a handful of - public headers which rely on the value of these macros, - and projects including these headers have previously needed - to define the same macros and values as used by OpenEXR's - 'configure', which is bad form. Now 'configure' writes these - values to the OpenEXRConfig.h header file, which is included - by any OpenEXR source files that need these macros. This - method of specifying HAVE_* macros guarantees that projects - will get the proper settings without needing to add compile- - time flags to accomodate OpenEXR. Note that this isn't - implemented properly for Windows yet. - (Drew Hess) - * Platform cleanups: - - No more support for IRIX or OSF1. - - No more explicit support for SunOS, because we have no way to - verify that it's working. I suspect that newish versions of - SunOS will just work out of the box, but let me know if not. - - No more PLATFORM_* macros (vestiges of the ILM internal build - system). PLATFORM_DARWIN_PPC is replaced by HAVE_DARWIN. - PLATFORM_REDHAT_IA32 (which was only used in IlmImfTest) is - replaced by HAVE_LINUX_PROCFS. - - OS X 10.4, which is the minimum version we're going to support - with this version, appears to have support for nrand48 and friends, - so no need to use the Imath-supplied version of them anymore. - (Drew Hess) - * No more PLATFORM_WINDOWS or PLATFORM_WIN32, replace with - proper standard Windows macros. (Drew Hess) - * Remove support for gcc 2.95, no longer supported. (Drew Hess) - * Eliminate HAVE_IOS_BASE macro, OpenEXR now requires support for - ios_base. (Drew Hess) - * Eliminate HAVE_STL_LIMITS macro, OpenEXR now requires the ISO C++ - header. (Drew Hess) - * Use double quote-style include dirctives for OpenEXR - includes. (Drew Hess) - * Added a document that gives an overview of the on-disk - layout of OpenEXR files (Florian Kainz) - * Added sections on layers and on memory-mapped file input - to the documentation. (Florian Kainz) - * Bug fix: reading an incomplete file causes a deadlock while - waiting on a semaphore. (Florian Kainz) - * Updated documentation (ReadingAndWritingImageFiles.sxw) and - sample code (IlmImfExamples): - Added a section about multi-threading, updated section on - thread-safety, changed documentation and sample code to use - readTiles()/writeTiles() instead of readTile()/writeTile() - where possible, mentioned that environment maps contain - redundant pixels, updated section on testing if a file is - an OpenEXR file. - (Florian Kainz) - * Multi-threading bug fixes (exceptions could be thrown - multiple times, some operations were not thread safe), - updated some comments, added comments, more multithreaded - testing. - (Florian Kainz) - * Added multi-threading support: multiple threads - cooperate to read or write a single OpenEXR file. - (Wojciech Jarosz) - * Added operator== and operator!= to Imath::Frustum. - (Andre Mazzone) - * Bug fix: Reading a PIZ-compressed file with an invalid - Huffman code table caused crashes by indexing off the - end of an array. - (Florian Kainz) - -Version 1.2.2: - * Updated README to remove option for building with Visual C++ 6.0. - (Drew Hess) - * Some older versions of gcc don't support a full iomanip - implemenation; check for this during configuration. - (Drew Hess) - * Install PDF versions of documentation, remove old/out-of-date - HTML documentation. (Florian Kainz) - * Removed vc/vc6 directory; Visual C++ 6.0 is no longer - supported. (Drew Hess) - * Updated README.win32 with details of new build system. - (Florian Kainz, Drew Hess) - * New build system for Windows / Visual C++ 7 builds both - static libraries and DLLs. - (Nick Porcino) - * Removed Imath::TMatrix and related classes, which are not - used anywhere in OpenEXR. - (Florian Kainz) - * Added minimal support for "image layers" to class Imf::ChannelList - (Florian Kainz) - * Added new isComplete() method to InputFile, TiledInputFile - etc., that checks if a file is complete or if any pixels - are missing (for example, because writing the file was - aborted prematurely). - (Florian Kainz) - * Exposed staticInitialize() function in ImfHeader.h in order - to allow thread-safe library initialization in multithreaded - programs. - (Florian Kainz) - * Added a new "time code" attribute - (Florian Kainz) - * exrmaketiled: when a MIPMAP_LEVELS or RIPMAP_LEVELS image - is produced, low-pass filtering takes samples outside the - image's data window. This requires extrapolating the image. - The user can now specify how the image is extrapolated - horizontally and vertically (image is surrounded by black / - outermost row of pixels repeats / entire image repeats / - entire image repeats, every other copy is a mirror image). - exrdisplay: added option to swap the top and botton half, - and the left and right half of an image, so that the image's - four corners end up in the center. This is useful for checking - the seams of wrap-around texture map images. - IlmImf library: Added new "wrapmodes" standard attribute - to indicate the extrapolation mode for MIPMAP_LEVELS and - RIPMAP_LEVELS images. - (Florian Kainz) - * Added a new "key code" attribute to identify motion picture - film frames. - (Florian Kainz) - * Removed #include from ImfAttribute.h, ImfHeader.h - and ImfXdr.h so that including header files such as - ImfInputFile.h no longer defines ASSERT and THROW macros, - which may conflict with similar macros defined by - application programs. - (Florian Kainz) - * Converted HTML documentation to OpenOffice format to - make maintaining the documents easier: - api.html -> ReadingAndWritingImageFiles.sxw - details.html -> TechnicalIntroduction.sxw - (Florian Kainz) - -Version 1.2.1: - * exrenvmap and exrmaketiled use slightly less memory - (Florian Kainz) - * Added functions to IlmImf for quickly testing if a file - is an OpenEXR file, and whether the file is scan-line - based or tiled. (Florian Kainz) - * Added preview image examples to IlmImfExamples. Added - description of preview images and environment maps to - docs/api.html (Florian Kainz) - * Bug fix: PXR24 compression did not work properly for channels - with ySampling != 1. - (Florian Kainz) - * Made template become template for - the transform(ObjectS, ObjectT) methods. This was done to allow - for differing templated objects to be passed in e.g. say a - Box> and a Matrix44, where S=float and T=double. - (Jeff Yost, Arkell Rasiah) - * New method Matrix44::setTheMatrix(). Used for assigning a - M44f to a M44d. (Jeff Yost, Arkell Rasiah) - * Added convenience Color typedefs for half versions of Color3 - and Color4. Note the Makefile.am for both Imath and ImathTest - have been updated with -I and/or -L pathing to Half. - (Max Chen, Arkell Rasiah) - * Methods equalWithAbsError() and equalWithRelError() are now - declared as const. (Colette Mullenhoff, Arkell Rasiah) - * Fixes for gcc34. Mainly typename/template/using/this syntax - correctness changes. (Nick Ramussen, Arkell Rasiah) - * Added Custom low-level file I/O examples to IlmImfExamples - and to the docs/api.html document. (Florian Kainz) - * Eliminated most warnings messages when OpenEXR is compiled - with Visual C++. The OpenEXR code uses lots of (intentional - and unintended) implicit type conversions. By default, Visual - C++ warns about almost all of them. Most implicit conversions - have been removed from the .h files, so that including them - should not generate warnings even at warning level 3. Most - .cpp files are now compiled with warning level 1. - (Florian Kainz) - -Version 1.2.0: - * Production-ready release. - * Disable long double warnings on OS X. (Drew Hess) - * Add new source files to VC7 IlmImfDll target. (Drew Hess) - * Iex: change the way that APPEND_EXC and REPLACE_EXC modify - their what() string to work around an issue with Visual C++ - 7.1. (Florian Kainz, Nick Porcino) - * Bumped OpenEXR version to 1.2 and .so versions to 2.0.0 in - preparation for the release. (Drew Hess) - * Imath: fixed ImathTMatrix.h to work with gcc 3.4. (Drew Hess) - * Another quoting fix in openexr.m4. (Drew Hess) - * Quoting fix in acinclude.m4 for automake 1.8. (Brad Hards) - * Imath: put inline at beginning of declaration in ImathMatrix.h - to fix a warning. (Ken McGaugh) - * Imath: made Vec equalWith*Error () methods const. - * Cleaned up compile-time Win32 support. (Florian Kainz) - * Bug fix: Reading a particular broken PIZ-compressed file - caused crashes by indexing off the end of an array. - (Florian Kainz) - -Version 1.1.1: - * Half: operator= and variants now return by reference rather - than by value. This brings half into conformance with - built-in types. (Drew Hess) - * Half: remove copy constructor, let compiler supply its - own. This improves performance up to 25% on some - expressions using half. (Drew Hess) - * configure: don't try to be fancy with CXXFLAGS, just use - what the user supplies or let configure choose a sensible - default if CXXFLAGS is not defined. - * IlmImf: fixed a bug in reading scanline files on big-endian - architectures. (Drew Hess) - * exrmaketiled: Added an option to select compression type. - (Florian Kainz) - * exrenvmap: Added an option to select compression type. - (Florian Kainz) - * exrdisplay: Added some new command-line options. (Florian Kainz) - * IlmImf: Added Pixar's new "slightly lossy" image compression - method. The new method, named PXR24, preserves HALF and - UINT data without loss, but FLOAT pixels are converted to - a 24-bit representation. PXR24 appears to compress - FLOAT depth buffers very well without losing much accuracy. - (Loren Carpenter, Florian Kainz) - * Changed top-level LICENSE file to allow for other copyright - holders for individual files. - * IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was - incorrectly interleaving channels and scanlines before - passing pixel data to a compressor. The lossless compressors - still work, but lossy compressors do not. Fix the bug by - interleaving channels and scanlines in tiled files in the - same way as ScanLineOutputFile does. Programs compiled with - the new version of IlmImf cannot read tiled images produced - with version 1.1.0. (Florian Kainz) - * IlmImf: ImfXdr.h fix for 64-bit architectures. (Florian Kainz) - * IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha) - images with subsampled chroma channels. When an image - is written with the RGBA convenience interface, selecting - WRITE_YCA instead of WRITE_RGBA causes the library to - convert the pixels to YCA format. If WRITE_Y is selected, - only luminance is stored in the file (for black and white - images). When an image file is read with the RGBA convenience - interface, YCA data are automatically converted back to RGBA. - (Florian Kainz) - * IlmImf: speed up reading tiled files as scan lines. - (Florian Kainz) - * Half: Fixed subtle bug in Half where signaling float NaNs - were being converted to inf in half. (Florian Kainz) - * gcc 3.3 compiler warning cleanups. (various) - * Imath: ImathEuler.h fixes for gcc 3.4. (Garrick Meeker) - -Version 1.1.0: - * Added new targets to Visual C++ .NET 2003 project - for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr. - (Drew Hess) - * A few assorted Win32 fixes for Imath. (Drew Hess) - * GNU autoconf builds now produce versioned libraries. - This release is 1:0:0. (Drew Hess) - * Fixes for Visual C++ .NET 2003. (Paul Schneider) - * Updated Visual C++ zlib project file to zlib 1.2.1. - (Drew Hess) - * exrdisplay: Fixed fragment shader version. (Drew Hess) - * *Test: Fixed some compiler issues. (Drew Hess) - * Imath: Handle "restrict" keyword properly. (Drew Hess) - * IlmImfExamples: Updated to latest versions of example - source code, includes tiling and multi-res images. - (Florian Kainz) - * exrmakepreview: A new utility to create preview images. - (Florian Kainz) - * exrenvmap: A new utility to create OpenEXR environment - maps. (Florian Kainz) - * exrstdattr: A new utility to modify standard - attributes. (Florian Kainz) - * Updated exrheader to print level rounding mode and - preview image size. (Florian Kainz) - * Updated exrmaketiled to use level rounding mode. - (Florian Kainz) - * IlmImf: Changed the orientation of lat-long envmaps to - match typical panoramic camera setups. (Florian Kainz) - * IlmImf: Fixed a bug where partially-completed files with - DECREASING_Y could not be read. (Florian Kainz) - * IlmImf: Added support for selectable rounding mode (up/down) - when generating multiresolution files. (Florian Kainz) - * exrdisplay: Support for tiled images, mip/ripmaps, preview - images, and display windows. (Florian Kainz, Drew Hess) - * exrmaketiled: A new utility which generates tiled - versions of OpenEXR images. (Florian Kainz) - * IlmImf: Changed Imf::VERSION to Imf::EXR_VERSION to - work around problems with autoconf VERSION macro - conflict. (Drew Hess) - * exrheader: Support for tiles, mipmaps, environment - maps. (Florian Kainz) - * IlmImf: Environment map support. (Florian Kainz) - * IlmImf: Abstracted stream I/O support. (Florian Kainz) - * IlmImf: Support for tiled and mip/ripmapped files; - requires new file format. (Wojciech Jarosz, Florian Kainz) - * Imath: TMatrix*, generic 2D matricies and algorithms. - (Francesco Callari) - * Imath: major quaternions cleanup. (Cary Phillips) - * Imath: added GLBegin, GLPushAttrib, GLPushMatrix objects - for automatic cleanup on exceptions. (Cary Phillips) - * Imath: removed implicit scalar->vector promotions and vector - comparisons. (Nick Rasmussen) - -Version 1.0.7: - * Fixed a typo in one of the IlmImfTest tests. (Paul Schneider) - * Fixed a bug in exrdisplay that causes the image to display - as all black if there's a NaN or infinity in an OpenEXR - image. (Florian Kainz) - * Updated exrheader per recent changes to IlmImf library. - (Florian Kainz) - * Changed an errant float to a T in ImathFrame.h nextFrame(). - (Cary Phillips) - * Support for new "optional standard" attributes - (chromaticities, luminance, comments, etc.). - (Florian Kainz, Greg Ward, Joseph Goldstone) - * Fixed a buffer overrun in ImfOpaqueAttribute. (Paul Schneider) - * Added new function, isImfMagic (). (Florian Kainz) - -Version 1.0.6: - * Added README.win32 to disted files. - * Fixed OpenEXR.pc.in pkg-config file, OpenEXR now works - with pkg-config. - * Random fixes to readme files for new release. - * Fixed openexr.m4, now looks in /usr by default. - * Added Visual Studio .NET 2003 "solution." - * Fixes for Visual Studio .NET 2003 w/ Microsoft C++ compiler. - (Various) - * Random Imath fixes and enhancements. Note that - extractSHRT now takes an additional optional - argument, see ImathMatrixAlgo.h for details. (Various) - * Added Wojciech Jarosz to AUTHORS file. - * Added test cases for uncompressed case, preview images, - frame buffer type conversion. (Wojciech Jarosz, - Florian Kainz) - * Fix a bug in IlmImf where uncompressed data doesn't get - read/written correctly. (Wojciech Jarosz) - * Added support for preview images and preview image - attributes (thumbnail images) in IlmImf. (Florian Kainz) - * Added support for automatic frame buffer type conversion - in IlmImf. (Florian Kainz) - * Cleaned up some compile-time checks. - * Added HalfTest unit tests. - * [exrdisplay] Download half framebuffer to texture memory - instead of converting to float first. Requires latest - Nvidia drivers. - -Version 1.0.5: - * Fixed IlmImf.dll to use static runtime libs (Andreas). - * Added exrheader project to Visual Studio 6.0 workspace. - * Added some example code showing how to use the IlmImf library. - (Florian) - * Use DLL runtime libs for Win32 libraries rather than static - runtime libs. - * Add an exrdisplay_fragshader project to the Visual Studio 6.0 - workspace to enable fragment shaders in Win32. - * Add an IlmImfDll project to the Visual Studio 6.0 workspace. - * In Win32, export the ImfCRgbaFile C interface via a DLL so - that Visual C++ 6.0 users can link against an Intel-compiled - IlmImf. (Andreas Kahler) - * Use auto_ptr in ImfAutoArray on Win32, it doesn't like large - automatic stacks. - * Performance improvements in PIZ decoding, between - 20 and 60% speedup on Athlon and Pentium 4 systems. - (Florian) - * Updated the README with various information, made - some cosmetic changes for readability. - * Added fragment shader support to exrdisplay. - * Bumped the version to 1.0.5 in prep for release. - * Updated README and README.OSX to talk about CodeWarrior - project files. - * Incorporated Rodrigo Damazio's patch for an openexr.m4 - macro file and an openexr.spec file for building RPMs. - * Small change in ImfAttribute.h to make IlmImf compile with gcc 2.95. - * Updated ImfDoubleAttribute.h for Codewarrior on MacOS. - * Added exrheader utility. - * Update to AUTHORS file. - * Added a README.win32 file. - * Added project files for Visual Studio 6.0. - * Initial Win32 port. Requires Visual Studio 6.0 and Intel C++ - compiler version 7.0. - * Added new intersectT method in ImathSphere.h - * Fixed some bugs in ImathQuat.h - * Proper use of fltk-config to get platform-specific FLTK - compile- and link-time flags. - * exrdisplay uses Imath::Math::pow instead of powf now. - powf is not availble on all platforms. - * Roll OS X "hack" into the source until Apple fixes their - istream implementation. - -Version 1.0.4: - * OpenEXR is now covered by a modified BSD license. See LICENSE - for the new terms. - -Version 1.0.3: - - * OpenEXR is now in sf.net CVS. - * Imf::Xdr namespace cleanups. - * Some IlmImfTest cleanups for OS X. - * Use .cpp extension in exrdisplay sources. - * Iex cleanups. - * Make IlmImf compile with Metrowerks Codewarrior. - * Change large automatic stacks in ImfHuf.C to auto_ptrs allocated - off the heap. MacOS X default stack size isn't large enough. - * std::ios fix for MacOS X in ImfInputFile.C. - * Added new FP predecessor/successor functions to Imath, added - tests to ImathTest - * Fixed a bug in Imath::extractSHRT for 3x3 matricies when - exactly one of the original scaling factors is negative, updated - ImathTest to check this case. - * Install include files when 'make install' is run. - * exrdisplay requires fltk 1.1+ now in an effort to support - a MacOS X display program (fltk 1.1 runs on OS X), though this - is untested. - * renamed configure.in to configure.ac - * Removed some tests from IexTest that are no longer used. - * Removed ImfHalfXdr.h, it's not used anymore. - * Revamped the autoconf system, added some compile-time - optimizations, a pkgconfig target, and some maintainer-specific - stuff. - -Version 1.0.2: - - * More OS X fixes in Imath, IlmImf and IlmImfTest. - * Imath updates. - * Fixed a rotation bug in Imath - -Version 1.0.1: - - * Used autoconf 2.53 and automake 1.6 to generate build environment. - * Makefile.am cleanups. - * OS X fixes. - * removed images directory (now distributed separately). - -Version 1.0: - - * first official release. - * added some high-level documentation, removed the old OpenEXR.html - documentation. - * fixed a few nagging build problems. - * bumped IMV_VERSION_NUMBER to 2 - -Version 0.9: - - * added exrdisplay viewer application. - * cleanup _data in Imf::InputFile and Imf::OutputFile constructors. - * removed old ILM copyright notices. - -Version 0.8: - - * Initial release. diff --git a/OpenEXR/LICENSE b/OpenEXR/LICENSE deleted file mode 100644 index 6372750d3c..0000000000 --- a/OpenEXR/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. 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 - any other contributors to this software 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. - diff --git a/OpenEXR/NEWS b/OpenEXR/NEWS deleted file mode 100644 index e8dde6c494..0000000000 --- a/OpenEXR/NEWS +++ /dev/null @@ -1,184 +0,0 @@ -Version 1.5.0: - - Separated some of the code into other libraries - IlmBase and - OpenEXR_Viewers - for easier integration with CTL. - -Version 1.4.0a: - - Fix for Visual Studio .NET 2003 ReleaseDLL builds. - -Version 1.4.0: - - Production release. - - Bug fix for setFrameBuffer() on a tiled file. - -Version 1.3.1: - - Fixed the ReleaseDLL targets on Visual Studio 2005. - -Version 1.3.0: - - The 1.3.x series is a developer-only release for testing - OpenEXR's new multithreaded I/O support. - - Multithread support for reading and writing an OpenEXR - file. - - Support for Intel-based OS X systems. - - Support for Visual Studio 2005. - - When compiling against OpenEXR headers, there's no longer any - need to define any PLATFORM_* or HAVE_* macros; OpenEXR now - supplies an OpenEXRConfig.h header file which is included by - the OpenEXR headers that need these special macros. However, - on Windows platforms, when using OpenEXR DLLs, you must still - define the OPENEXR_DLL preprocessor directive in your project. - - New documentation for multithread support, plus some - updates and additions. - - Bug fixes releated to better handling of incomplete/damaged - files. - - Numerous bug fixes and cleanups to the autoconf-based - build system. - - Removed support for the following configurations that were - previously supported. Some of these configurations may happen - to continue to function, but we can't help you if they don't, - largely because we don't have any way to test OpenEXR on these - configurations. - - IRIX - - OSF1 - - SunOS - - OS X versions prior to 10.3. - - gcc on any platform prior to version 3.3 - -Version 1.2.2: - - New build system for Windows; support for DLLs. - - Imath: Removed TMatrix classes; these classes are still - under development and are too difficult to keep in sync - with OpenEXR CVS. - - IlmImf: support for image layers in ChannelList. - - IlmImf: added isComplete() method to file classes to check - whether a file is complete. - - IlmImf: exposed staticInitialize() in ImfHeader.h in - order to allow thread-safe library initialization in - multithreaded applications. - - IlmImf: New "time code" standard attribute. - - exrdisplay: support for displaying wrap-around texture map - images. - - exrmaketiled: can now specify wrap mode. - - IlmImf: New "wrapmodes" standard attribute to indicate - extrapolation mode for mipmaps and ripmaps. - - IlmImf: New "key code" standard attribute to identify motion - picture film frames. - -Version 1.2.1: - - reduced memory footprint of exrenvmap and exrmaketiled - utilities. - - IlmImf: new helper functions to determine whether a - file is an OpenEXR file, and whether it's scanline- or - tile-based. - - IlmImf: bug fix for PXR24 compression with ySampling != 1. - - Imath: a few new enhancements - - Better support for gcc 3.4. - - Warning cleanups in Visual C++. - -Version 1.2: - - Production-ready release. - - Support for gcc 3.4. - - Supports gcc 2.95 again. - - IlmImf: bug fix for handling broken OpenEXR files without - crashing. - -Version 1.1.1: - - Added Pixar's new "slightly lossy" image compression method - for FLOAT channels, called PXR24. HALF and UINT channels - are compressed without loss. - - Changed top-level LICENSE file to allow for other copyright - holders for individual files. - - Reading tiled files with the scanline interface is faster. - - OpenEXR now supports YCA (luminance/chroma/alpha) images with - subsampled chroma channels. - - IlmImf: various bug fixes. - - The half class is now faster in some expressions. - - New tiled file format. The new format is incompatible with - the format used by 1.1.0. - -Version 1.1.0: - - IlmImfExamples: Updated to include examples of how to use - the tiling and mip/ripmapping interfaces. - - exrmakepreview: A new utility for embedding preview images - in OpenEXR files. - - exrenvmap: A new utility for creating OpenEXR environment maps. - - exrstdattr: A new utility for manipulating standard attributes. - - exrdisplay: Support for tiled, mip/ripmapped images, display - windows, and preview images. - - exrmaketiled: A new utility which generates tiled versions - of OpenEXR images. - - exrheader: Support for tiles, mipmaps, environment maps. - - IlmImf: Support for environment maps. - - IlmImf: Support for abstracted stream I/O. You can - wrap the IStream and OStream classes around your API - of choice (FILE *, fd, even an HTTP 1.1 stream) as long - as it supports seeking. - - IlmImf: Support for tiled and mip/ripmapped files. This - requires a new file format. Scanline files generated by - the 1.1.0 version of the library can be read by older - versions, but tiled files can only be read by 1.1.0 or - greater. - - Imath: added TMatrix*, generic 2D matricies and algorithms. - - Imath: various updates and bug fixes. - -Version 1.0.7: - - Support for "optional standard" attributes: - Primary and white point chromaticities. - Absolute luminance. - Content owner - Comments - Image acquisition time and place - Focus distance - Lens aperture - Film sensitivity - If you want to use these new attributes in your application, see - ImfStandardAttributes.h for documentation on what they are and how - to use them. - - Bug fix in OpaqueAttributes. - -Version 1.0.6: - - Support for embedded preview images (thumbnails). - - Automatic frame buffer type conversion. - - Support for Visual Studio .NET 2003 w/ Microsoft's C++ compiler. - - Minor bug fixes. - -Version 1.0.5: - - PIZ decoding should be 20-60% faster on Athlon and Pentium 4 - systems. - - exrdisplay supports hardware rendering with vp30 profile fragment - shaders. - - Support for Win32 with Visual Studio 6.0 and Intel C++ compiler - version 7.0. - - Support for gcc 2.95. - - New exrheader utility. - - exrdisplay works on Win32 and OS X now. - - Minor bug fixes. - -Version 1.0.4: - - Released under the new modified BSD license. - -Version 1.0.3: - - Even more OS X fixes. - - Support for Metrowerks Codewarrior compiler. Enables OpenEXR code - to be used in a MacOS Photoshop plugin, if someone wants to write - one. ;) - - Fixed a bug in Imath, added some new confidence tests to ImathTest. - - Other minor fixes. - - Install include files. - - exrdisplay requires fltk 1.1+ now. - -Version 1.0.2: - - More OS X fixes. - - Fixed a rotation bug in Imath. - -Version 1.0.1: - - OS X fixes. - - Removed the example images; these are now distributed separately. - -Version 1.0: - - official release. - -Version 0.9: - - another limited release. - - included exrdisplay viewer and sample EXR images. - -Version 0.8: - - initial limited release. diff --git a/OpenEXR/README.md b/OpenEXR/README.md index b7969a2d88..1e401b4fa0 100644 --- a/OpenEXR/README.md +++ b/OpenEXR/README.md @@ -1,7 +1,6 @@ -The OpenEXR Libraries -===================== +# The OpenEXR Libraries -The OpenEXR module contains the following: +The OpenEXR module is a part of the OpenEXR project and contains the following: * **IlmImf** - the core library that implements the "EXR" file format. * **IlmImfUtil** - related utilities. @@ -24,115 +23,16 @@ In addition, the distribution also includes confidence tests: * **IlmImfUtilTest** - huge input resilience test. * **IlmImfFuzzTest** - damaged input resilience test. -If you have questions about using the OpenEXR libraries, you may want -to join our developer mailing list. See http://www.openexr.com for -details. +## License -License -------- +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. +## Building and Installation -Dependencies ------------- - -Building OpenEXR requires IlmBase and the [zlib](https://zlib.net) library. - -Building and Installation -------------------------- - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, arguments of note include: - -* ``--prefix=`` - a directory into which - to install the headers and libraries. By default, headers and - libraries are installed into ``/usr/local``. - -* ``--with-ilmbase-prefix=`` - the direction - into which the IlmBase headers and libraries have been installed, if - not ``/usr/local``. - -* ``--enable-imfexamples`` - build IlmImf example program. - -See the Test section below for options to enable time-consuming -confidence tests. - -#### Building from Git - -If building directly from a cloned git repo, first generate the -configuration scripts by running ``bootstrap``, then ``configure`` and -``make``: - - cd /IlmBase - ./bootstrap - ./configure - make - make install - -Optionally, compiling from git using cmake, one can use the top level -CMakeLists.txt file to build all the libraries at once. - -#### Building on Windows using **cmake** - -See the ``README`` file in the IlmBase library for a guide to building -on Windows. - -#### Building on **macOS** - -**macOS** supports multiple architectures. By default, IlmBase will be -built for the system doing the building. For example, if you build -IlmBase on an Intel system, the libraries will be built for Intel. - -See the ``README`` file in the IlmBase library for details. - -#### Header Installation Directory - -All include files needed to use the OpenEXR libraries are installed in the -``OpenEXR`` subdirectory of the install prefix, e.g. ``/usr/local/include/OpenEXR``. - -Namespaces ----------- - -The IlmBase and OpenEXR libraries implement user-configurable -namespaces, which makes it possible to deal with multiple versions of -these libraries loaded at runtime. - -See the ``README`` file in the IlmBase library for details. - -Tests ------ - -Type: - - make check - -to run the IlmBase confidence tests (HalfTest, IexTest, and -ImathTest). They should all pass; if you find a test that does not -pass on your system, please let us know. - -Two of the confidence tests are not configured by default, because -they can take hours to run, but can be enabled via options to the -``configure`` script: - -* ``--enable-imffuzztest`` - build damaged input resilience test -* ``--enable-imfhugetest`` - build huge input resilience test - -Using IlmBase in Your Applications ----------------------------------- - -On systems with support for **pkg-config**, use ``pkg-config --cflags -OpenEXR`` for the C++ flags required to compile against OpenEXR -headers; and ``pkg-config --libs OpenEXR`` for the linker flags -required to link against OpenEXR libraries. +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries. diff --git a/OpenEXR_Viewers/ChangeLog b/OpenEXR_Viewers/ChangeLog deleted file mode 100644 index ffa6de178e..0000000000 --- a/OpenEXR_Viewers/ChangeLog +++ /dev/null @@ -1,37 +0,0 @@ -Version 2.0.1 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 1.0.2: - * Added a new -L command-line flag to exrdisplay. The flag - specifies which layer in a multi-layer or multi-view image - should be displayed on the screen. - (Florian Kainz) - -Version 1.0.1: - * Removed Windows .suo files from distribution. - (Eric Wimmer) - -Version 1.0.0: - * Moved some .ctl files from the OpenEXR_Viewers to the - OpenEXR_CTL package, changed naming conventions for - image channels to match upcoming paper. - (Florian Kainz) - * Added "look modification transform" support to playexr, exrdisplay. - (Florian Kainz) - * Installation Tuning: - - corrected version number on dso's (libtool) - now 5.0 - - Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs - can link with static libraries properly - - eliminated some warning messages during install - (Andrew Kunz) - -Version 0.9.0: - * Initial release of this code as a separate package. - Previously the exrdisplay contained in this package - was part of version 1.4.0 of OpenEXR. The playexr - program is new. - * New build scripts for Linux/Unix - (Andrew Kunz) - * New Windows project files and build scripts - (Kimball Thurston) diff --git a/OpenEXR_Viewers/LICENSE b/OpenEXR_Viewers/LICENSE deleted file mode 100644 index 6372750d3c..0000000000 --- a/OpenEXR_Viewers/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. 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 - any other contributors to this software 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. - diff --git a/OpenEXR_Viewers/README.md b/OpenEXR_Viewers/README.md index 3a4cff7070..65be377479 100644 --- a/OpenEXR_Viewers/README.md +++ b/OpenEXR_Viewers/README.md @@ -1,5 +1,4 @@ -The OpenEXR_Viewers Library -=========================== +# The OpenEXR_Viewers Programs The OpenEXR_Viewers library provides code for simple programs that view EXR images. @@ -10,28 +9,14 @@ explained in this document: doc/OpenEXRViewers.pdf - * **playexr** - playexr is a program that plays back OpenEXR image sequences, optionally with CTL support. The playexr directory contains the source code for the playback program, and two sample CTL transforms (one rendering and one display transform). -If you have questions about using the OpenEXR_Viewers package, you -may want to join our developer mailing list. See http://www.openexr.com -for details. - -License -------- - -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. +## Dependencies -Dependencies ------------- - -Building OpenEXR_Viewers requires the OpenEXR library. CTL support in -OpenEXR_Viewers requires the OpenEXR_CTL library. +Building OpenEXR_Viewers requires the OpenEXR library. **exrdisplay** requires [FLTK 1.1](http://www.fltk.org/index.php) or greater and OpenGL. @@ -40,239 +25,14 @@ OpenEXR_Viewers requires the OpenEXR_CTL library. [Cg](https://developer.nvidia.com/cg-toolkit) hardware shading language. -If you have installed the OpenEXR_CTL package, exrdisplay and playexr -will automatically be built with CTL support. If you don't have -OpenEXR_CTL, the programs will still work, but CTL support will be -disabled. - -Building and Installation -------------------------- - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, arguments of note include: - -* ``--prefix=`` - a directory into which - to install the headers and libraries. By default, headers and - libraries are installed into ``/usr/local``. - -* ``--with-openexr-prefix=`` - the directory - into which the OpenEXR headers and libraries have been installed, if - not ``/usr/local``. - -* ``--with-fltk-config=`` - the pkg-config for fltk. - -* ``--with-cg-prefix=`` - the Cg installation directory. - -If you're building OpenEXR_VIEWERS on a Windows platform, see README.win32 -for instructions. The remainder of this file applies only to GNU/Linux or -other UNIX-like systems. - -Building on Windows -------------------- - -A couple of notes before getting started: - -- This is not the only way to do this. This document describes a path - that doesn't involve installing libraries into default system paths, - but rather, creates a standalone universe. - -- Some of these steps may be a bit redundant, and will be optimized in - the future. - -- The Debug versions of the libraries and tools are not required if - you are not going to be doing any debugging, and can be optionally - built. - -The source will build under both Visual Studio versions 7 and 8, and -there are separate directories for the corresponding build files. The -tag is used in this document to describe the appropriate folder -in the path that corresponds to your the version of Visual Studio. - -The Visual Studio project files assume, and help build out, a directory -called "Deploy". In the end, this directory will contain the objects -that might then be moved away from the source for general running of the -compiled programs. The directory structure at the end of compiling all -the related tools looks like this: - - Deploy - include - lib - Debug - Release - bin - Debug - Release - openexr-cvs (name as desired) - IlmBase - OpenEXR - OpenEXR_Viewers - ctl-cvs (name as desired) - CTL - OpenEXR_CTL - fltk - FL - GL - lib - nvidia - include - GL - glh - lib - -If OpenEXR_Viewers is not being compiled, then fltk and nvidia will -not be needed, but that will be covered later. - -* **1.** Compile IlmBase - - * **a.** Point Visual Studio at the .sln file in vc\\IlmBase in the - IlmBase subdirectory - - * **b.** Select the Release configuration and hit Build Solution. This - will create the Deploy directory, and copy the relevant parts to it. - - * **c.** If the debug versions are desired, select the Debug configuration - and hit Build Solution. This will add the Debug directories to Deploy. - -* **2.** Compile OpenEXR support - - * **a.** Retrieve the zlib binaries. The project files are set up to link - against the dll version of zlib, but can easily be changed to link - against a static version, or a self-built version if desired. - - * **1.** Go to http://www.zlib.net and download the precompiled DLL - version of zlib (as of writing, zlib123-dll.zip) - - * **2.** If you don't wish to put the files into your MS visual studio - directories and install the dll into windows\system32: - - * **a.** Put a copy of zlib1.dll into Deploy\bin\Release and - Deploy\bin\Debug - - * **b.** Copy the header files into Deploy\include - - * **c.** Copy zdll.lib and zdll.exp into Deploy\lib\Release and - Deploy\lib\Debug - - * **b.** Open the Visual Studio project in OpenEXR\vc\\OpenEXR. - - * **c.** Select the Release configuration and build. The IlmImfTest - program runs a confidence test of your build to make sure - it is able to work, and may take some time to complete. - - * **d.** Optionally select the Debug configuration and build. - -* **3.** Compile CTL support - - * **a.** Open the Visual Studio project in CTL\vc\\CTL. - - * **b.** Select the Release configuration and build. The IlmCtlTest - program runs a confidence test of your build to make sure it is - able to work, and may take some time to complete. - - * **c.** Optionally select the Debug configuration and build. - -* **4.** Compile OpenEXR_CTL support - - * **a.** Open the Visual Studio project in OpenEXR_CTL\vc\\OpenEXR_CTL. - - * **b.** Select the Release configuration and build. - - * **c.** Optionally select the Debug configuration and build. - -* **5.** Compile OpenEXR_Viewers - - * **a.** Open the appropriate Visual Studio project in - OpenEXR_Viewers\vc\\OpenEXR_Viewers depending on whether or not - you want CTL support. - - * **b.** exrdisplay requires fltk to work. - - * **1.** Go to http://www.fltk.org and download fltk 1.1.7 - - * **2.** Open its project files and compile using the instructions they - provide. - - * **3.** Create the fltk directory at the top level of your directory - structure as presented above and copy the FL, GL, and lib folders - into the fltk directory - - * **4.** exrdisplay links fltk statically, so no dll is needed. - - * **c.** playexr requires the nvidia cg library as well as glut and glew. - - * **1.** Setup the cg toolkit - - * **a.** Go to http://developer.nvidia.com, the developer - section and download the cg toolkit, version 1.5, and - install it. The path where you choose to install Cg is - referred to by the tag in the - steps below. - - * **b.** During the installation, if the integrate with visual - studio option is selected, the header files will be - automatically found. Otherwise, copy the directory \Cg\include\Cg to Deploy\include\Cg - - * **c.** Copy the cg.dll and cgGL.dll from the \Cg\bin into Deploy\bin\Release and - Deploy\bin\Debug, or otherwise make them available (put - them in system32, add to path, etc.) - - * **d.** Copy the cg.lib and cgGL.lib from \Cg\lib into Deploy\lib\Release and - Deploy\lib\Debug - - * **2.** Make glut available. This can be done via several - mechanisms. See step 4 below. - - * **3.** Make glew available. This can be done via several - mechanisms. http://glew.sourceforge.net is the master site - for this library. See step 4 below. - - * **4.** nVidia makes both glut and glew available in their SDK - package, which is a fairly large download, but provides a - wealth of other information on programming for the GPU, and - is generally a useful package, so that is the path chosen - for this set up. - - * **a.** Go to http://developer.nvidia.com and download - version 10 of the SDK and install it. It will prompt - you to install the Cg toolkit, but this is not necessary - as it was handled in step **1.** The path where you choose - to install the SDK is referred to by the tag in the steps below. - - * **b.** Make an nvidia folder at the top level, with an - include and lib folder inside it. Inside the lib - folder, make Debug and Release folders. - - * **c.** Copy the \external\include\GL - directory into nvidia\include the GL and glh folders - into nvidia\include. - - * **d.** Copy the glew headers in \common\GLEW\include\GL into nvidia\include\GL. - - * **e.** Copy \common\GLEW\lib\glew32.lib and \external\lib\glut32.lib into Deploy\bin\Release. - - * **f.** Copy bin\glut32.dll and bin\glew32.dll into - Deploy\bin\Release. +## License - * **d.** Build the Release configuration of the OpenEXR_Viewers. +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. - * **e.** Build the Debug configuration if desired. +## Building and Installation -At this point, the Deploy folder should be fully built out and ready -to be used. Both exrdisplay and playexr are meant to be launched from -the command line, as they originated as unix commands, so open a -command prompt, cd to the Deploy\bin\Release folder and enjoy. +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries. diff --git a/PyIlmBase/ChangeLog b/PyIlmBase/ChangeLog deleted file mode 100644 index 1dd4facca3..0000000000 --- a/PyIlmBase/ChangeLog +++ /dev/null @@ -1,10 +0,0 @@ -Version 2.0.1 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 2.0.0 - * Bumped version to track OpenEXR - (Piotr Stanczyk) - -Version 1.0: - * first official release. diff --git a/PyIlmBase/LICENSE b/PyIlmBase/LICENSE deleted file mode 100644 index 4494aa5a64..0000000000 --- a/PyIlmBase/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2006-2011, Industrial Light & Magic, a division of Lucasfilm -Entertainment Company Ltd. Portions contributed and copyright held by -others as indicated. 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 - any other contributors to this software 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. - diff --git a/PyIlmBase/README.md b/PyIlmBase/README.md index 8804cd51ae..d88c4512aa 100644 --- a/PyIlmBase/README.md +++ b/PyIlmBase/README.md @@ -1,5 +1,4 @@ -The PyIlmBase Libraries -======================= +# The PyIlmBase Libraries The PyIlmBase libraries provides python bindings for the IlmBase libraries: @@ -8,21 +7,13 @@ libraries: * **PyImath** - bindings for Imath * **PyImathNumpy** - bindings that convert between numpy and Imath arrays +In addition, the distribution also includes confidence tests: -If you have questions about using the PyIlmBase libraries, you may want -to join our developer mailing list. See http://www.openexr.com for -details. +* **PyIexTest** +* **PyImathTest** +* **PyImathNumpyTest** - -License -------- - -IlmBase, including all contributions, is released under a modified BSD -license. Please see the ``LICENSE`` file accompanying the distribution -for the legal fine print. - -Dependencies ------------- +## Dependencies PyIlmBase requires **numpy** to be available to the builder. Install with your favorite package manager or use a Python virtualenv: @@ -31,69 +22,15 @@ your favorite package manager or use a Python virtualenv: source numpy/bin/activate pip install numpy -PyIlmBase also requires [boost-python](https://github.com/boostorg/python). - -Building and Installation -------------------------- - -To configure the Makefiles, run the ``configure`` script: - - ./configure - -For help with useful build options: - - ./configure --help - -In particular, arguments of note include: - -* ``--prefix=`` - a directory into which - to install the headers and libraries. By default, headers and - libraries are installed into ``/usr/local``. - -* ``--with-ilmbase-prefix=`` - the direction - into which the IlmBase headers and libraries have been installed, if - not ``/usr/local``. - -* ``--with-boost-include-dir``, ``--with-boost-lib-dir`` - location of - the boost installation. - -With recent versions of macOS, System Integrity Protection (SIP) is enabled by -default. This restricts where third party libraries can be loaded from and inhibits -the use of DYLD_LIBRRARY_PATH to include other directories in the search path. -If you are encountering an issue where boost_python is not being found during the -configure process even after specifying the correct --with-boost-\* directories and -boost is installed to a directory other than /usr/local, reinstall boost and IlmBase -to /usr/local and use them from that location. install_name_tool -change may also -be used to rewrite library references to use absolute paths if installation in a -different directory is required, however this is not currently performed by the -build system and must be done manually to all the libraries and python modules. - -To build the libraries after running ``configure``: - - make - make install - -#### Building from Git - -If building directly from a cloned git repo, first generate the -configuration scripts by running ``bootstrap``, then ``configure`` and -``make``: - - cd /IlmBase - ./bootstrap - ./configure - make - make install - -Tests ------ +## License -Type: +These libraries are covered under the +[BSD-3-Clause](https://www.openexr.com/license.html) license of the +OpenEXR project. - make check +## Building and Installation -to run the PyIlmBase confidence tests (PyIexTest, PyImathTest, -PyImathNumpyTest). They should all pass; if you find a test that does -not pass on your system, please let us know. +See the top-level [INSTALL](../INSTALL.md) file for information about +building and installing the OpenEXR libraries. diff --git a/README.md b/README.md index 2770423267..9e10b967f8 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,17 @@ [![License](https://img.shields.io/badge/License-BSD%203%20Clause-blue.svg)](LICENSE.md) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2799/badge)](https://bestpractices.coreinfrastructure.org/projects/2799) -**OpenEXR** is a high dynamic-range (HDR) image file format developed -by Industrial Light & Magic (ILM) for use in computer imaging -applications. It supports stereoscopic and deep images. Weta Digital, -Walt Disney Animation Studios, Sony Pictures Imageworks, Pixar -Animation Studios, DreamWorks, and other studios, companies, and -individuals have made contributions to the code base. The file format -has seen wide adoption in a number of industries. +![openexr](/OpenEXR/doc/source_images/openexr.png) + +**OpenEXR** is a high dynamic-range (HDR) image file format originally +developed by Industrial Light & Magic (ILM) in 2003 for use in +computer imaging applications. It supports stereoscopic and deep +images. Weta Digital, Walt Disney Animation Studios, Sony Pictures +Imageworks, Pixar Animation Studios, DreamWorks, and other studios, +companies, and individuals have made contributions to the code +base. OpenEXR is now maintained by the [Academy Software +Foundation](https://www.aswf.io). The file format has seen wide +adoption in a number of industries. OpenEXR's features include: @@ -48,11 +52,9 @@ The OpenEXR distribution consists of the following sub-modules: * **IlmBase** - Utility libraries from Industrial Light & Magic: Half, Imath, Iex, IlmThread. * **PyIlmBase** - Python bindings for the IlmBase libraries. * **OpenEXR** - The core image library. -* **OpenEXR_Viewers** - Standard image viewing programs +* **OpenEXR_Viewers** - Example code for image viewing programs. * **Contrib** - Various plugins and utilities, contributed by the community. -Please see the README.md files of each of the individual directories for more information. - A collection of OpenEXR images is available from the adjacent repository [openexr-images](https://github.com/openexr/openexr-images). @@ -60,24 +62,25 @@ A collection of OpenEXR images is available from the adjacent repository The OpenEXR codebase can be built with any of the following: -* Linux: GCC 4.8 or newer +* Linux +* macOS * Microsoft Visual Studio 2015 or newer -* Mac OS -The Python bindings in PyIlmBase support Python 2.6 and 2.7; they have -not been tested for Python 3. +The Python bindings in PyIlmBase support Python 2 and Python 3. ## Dependencies -OpenEXR depends on [zlib](https://zlib.net). +* OpenEXR depends on [zlib](https://zlib.net). -PyIlmBase depends on [boost-python](https://github.com/boostorg/python) and +* PyIlmBase depends on [boost-python](https://github.com/boostorg/python) and optionally on [numpy](http://www.numpy.org). -In OpenEXR_Viewers: +* In OpenEXR_Viewers: + + * **exrdisplay** depends on [fltk](http://www.fltk.org/index.php) + * **playexr** depends on [Cg](https://developer.nvidia.com/cg-toolkit) -* **exrdisplay** depends on [fltk](http://www.fltk.org/index.php) -* **playexr** depends on [Cg](https://developer.nvidia.com/cg-toolkit) +See [INSTALL](INSTALL.md) for more details. ## Web Resources @@ -91,48 +94,62 @@ In OpenEXR_Viewers: ## Developer Quick Start -Download the latest release of OpenEXR from the GitHub Releases page: -https://github.com/openexr/openexr/releases. - -For the basic installation on Linux: - - cd /IlmBase - ./configure - make - make install - - cd /OpenEXR - ./configure - make - make install +See [INSTALL](INSTALL.md) for instructions on downloading and building OpenEXR +from source. -See the module README files for options to ``configure``. +## License -See the [build documentation](INSTALL.md) documentation for help with -installation on other platforms. +OpenEXR is released under the [BSD-3-Clause](LICENSE) license. + +Developers who wish to contribute code to be considered for inclusion +in the OpenEXR distribution must first complete the Contributor +License Agreement and submit it to info@openexr.com. Commits must +include a “Signed-off-by” line indicating that the committer wrote the +code and has the right to release it under the BSD-3-Clause +license. See http://developercertificate.org/ for more information. ## Contributing -Developers who wish to contribute code to be considered for inclusion -in the OpenEXR distribution must first complete the Contributor -License Agreement and submit it to info@openexr.com. We prefer code -submissions in the form of pull requests to this repository. Every -commit must be signed off. That is, every commit log message must -include a “Signed-off-by” line (generated, for example, with “git -commit --signoff”), indicating that the committer wrote the code and -has the right to release it under the BSD-3-Clause license. See -http://developercertificate.org/ for more information on this -requirement. - -See [CONTRIBUTING.md](CONTRIBUTING.md) for more information about +See [CONTRIBUTING](CONTRIBUTING.md) for more information about contributing to OpenEXR. ## Project Goverance OpenEXR is governed by the Academy Software Foundation. See -[GOVERNANCE.md](GOVERNANCE.md) for more infomation. +[GOVERNANCE](GOVERNANCE.md) for more infomation. ## Documentation -Documentation is available at http://www.openexr.com/documentation.html. +Technical documentation is available at +http://www.openexr.com/documentation.html, or: + +* [Technical Introduction](/OpenEXR/doc/TechnicalIntroduction.pdf) + +* [Reading and Writing Image Files](/OpenEXR/doc/ReadingAndWritingImageFiles.pdf) + +* [OpenEXR File Layout](/OpenEXR/doc/OpenEXRFileLayout.pdf) + +* [Multi-View OpenEXR](/OpenEXR/doc/MultiViewOpenEXR.pdf) + +* [Interpreting OpenEXR Deep Pixels](/OpenEXR/doc/InterpretingDeepPixels.pdf) + +* [The Theory Of OpenEXR Deep Samples](/OpenEXR/doc/InterpretingDeepPixels.pdf) + +## Frequently Asked Questions + +## "``pip install openexr`` doesn't work." + +The OpenEXR project provides python bindings for the Imath +vector/matrix classes, but it does *not* provide python bindings for +reading, writing, or editing .exr files. The +[openexrpython](https://github.com/jamesbowman/openexrpython) module +is not affiliated with the OpenEXR project or the ASWF. Please direct +questions there. + +Alternatively, +[OpenImageIO](https://sites.google.com/site/openimageio/home) also +includes python bindings for OpenEXR. + +--- +![aswf](/OpenEXR/doc/source_images/aswf.png)