2
* Removed Windows .suo files from distribution.
4
* Bug fix: crashes, memory leaks and file descriptor leaks
5
when reading damaged image files (some reported by Apple,
6
others found by running IlmImfFuzzTest).
8
* Added new IlmImfFuzzTest program to test how resilient the
9
IlmImf library is with respect broken input files: the program
10
first damages OpenEXR files by partially overwriting them with
11
random data; then it tries to read the damaged files. If all
12
goes well, the program doesn't crash.
16
* Bumped DSO version number to 6.0
18
* Added new standard attributes related to color rendering with
19
CTL (Color Transformation Language): renderingTransform,
20
lookModTransform and adoptedNeutral.
22
* Bug fix: for pixels with luminance near HALF_MIN, conversion
23
from RGB to luminance/chroma produces NaNs and infinities
25
* Bug fix: excessive desaturation of small details with certain
26
colors after repeatedly loading and saving luminance/chroma
27
encoded images with B44 compression.
29
* Added B44A compression, a minor variation of B44: in most cases,
30
the compression ratio is 2.28:1, the same as with B44, but in
31
uniform image areas where all pixels have the same value, the
32
compression ratio increases to 10.66:1. Uniform areas occur, for
33
example, in an image's alpha channel, which typically contains
34
large patches that are solid black or white, or in computer-
35
generated images with a black background.
37
* Added flag to configure.ac to enable or disable use of large
38
auto arrays in the IlmImf library. Default is "enable" for
39
Linux, "disable" for everything else.
40
(Darby Johnston, Florian Kainz)
41
* corrected version number on dso's (libtool) - now 5.0
42
* Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs
43
can link with static libraries properly
44
* eliminated some warning messages during install
48
* reorganized packaging of OpenEXR libraries to facilitate
49
integration with CTL. Now this library depends on the library
50
IlmBase. Some functionality has been moved into OpenEXR_Viewers,
51
which depends on two other libraries, CTL and OpenEXR_CTL.
52
Note: previously there were separate releases of
53
OpenEXR-related plugins for Renderman, Shake and Photoshop.
54
OpenEXR is supported natively by Rendermand and Photoshop, so
55
these plugins will not be supported for this or future
58
* New build scripts for Linux/Unix
60
* New Windows project files and build scripts
62
* float-to-half conversion now preserves the sign of float zeroes
63
and of floats that are so small that they become half zeroes.
65
* Bug fix: Imath::Frustum<T>::planes() returns incorrect planes
66
if the frustum is orthogonal.
68
* added new framesPerSecond optional standard attribute
71
- Rewrote function Imath::Quat<T>::setRotation() to make it
72
numerically more accurate, added confidence tests
73
- Rewrote function Imath::Quat<T>::slerp() using Don Hatch's
74
method, which is numerically more accurate, added confidence
76
- Rewrote functions Imath::closestPoints(), Imath::intersect(),
77
added confidence tests.
78
- Removed broken function Imath::nearestPointOnTriangle().
79
- Rewrote Imath::drand48(), Imath::lrand48(), etc. to make
80
them functionally identical with the Unix/Linux versions
81
of drand48(), lrand48() and friends.
82
- Replaced redundant definitions of Int64 in Imath and IlmImf
83
with a single definition in ImathInt64.h.
85
* exrdisplay: if the file's and the display's RGB chromaticities
86
differ, the pixels RGB values are transformed from the file's
87
to the display's RGB space.
89
* Added new lossy B44 compression method. HALF channels are
90
compressed with a fixed ratio of 2.28:1. UINT and FLOAT
91
channels are stored verbatim, without compression.
95
* Fixed the ReleaseDLL targets for Visual Studio 2003.
100
* Bug Fix: calling setFrameBuffer() for every scan line
101
while reading a tiled file through the scan line API
102
returns bad pixel data. (Paul Schneider, Florian Kainz)
105
* Fixed the ReleaseDLL targets for Visual Studio 2005.
106
(Nick Porcino, Drew Hess)
107
* Fixes/enhancements for createDLL.
111
* Removed openexr.spec file, it's out of date and broken to
114
* Support for Visual Studio 2005.
115
(Drew Hess, Nick Porcino)
116
* When compiling against OpenEXR headers on Windows, you
117
no longer need to define any HAVE_* or PLATFORM_*
118
macros in your projects. If you are using any OpenEXR
119
DLLs, however, you must define OPENEXR_DLL in your
120
project's preprocessor directives.
122
* Many fixes to the Windows VC7 build system.
123
(Drew Hess, Nick Porcino)
124
* Support for building universal binaries on OS X 10.4.
125
(Drew Hess, Paul Schneider)
126
* Minor configure.ac fix to accomodate OS X's automake.
128
* Removed CPU-specific optimizations from configure.ac,
129
autoconf's guess at the CPU type isn't very useful,
130
anyway. Closes #13429.
132
* Fixed quoting for tests in configure.ac. Closes #13428.
134
* Use host specification instead of target in configure.ac.
137
* Fix use of AC_ARG_ENABLE in configure.ac. Closes
140
* Removed workaround for OS X istream::read bug.
142
* Added pthread support to OpenEXR pkg-config file.
144
* Added -no-undefined to LDFLAGS and required libs to LIBADD
145
for library projects with other library dependencies, per
148
* HAVE_* macros are now defined in the OpenEXRConfig.h header
149
file instead of via compiler flags. There are a handful of
150
public headers which rely on the value of these macros,
151
and projects including these headers have previously needed
152
to define the same macros and values as used by OpenEXR's
153
'configure', which is bad form. Now 'configure' writes these
154
values to the OpenEXRConfig.h header file, which is included
155
by any OpenEXR source files that need these macros. This
156
method of specifying HAVE_* macros guarantees that projects
157
will get the proper settings without needing to add compile-
158
time flags to accomodate OpenEXR. Note that this isn't
159
implemented properly for Windows yet.
162
- No more support for IRIX or OSF1.
163
- No more explicit support for SunOS, because we have no way to
164
verify that it's working. I suspect that newish versions of
165
SunOS will just work out of the box, but let me know if not.
166
- No more PLATFORM_* macros (vestiges of the ILM internal build
167
system). PLATFORM_DARWIN_PPC is replaced by HAVE_DARWIN.
168
PLATFORM_REDHAT_IA32 (which was only used in IlmImfTest) is
169
replaced by HAVE_LINUX_PROCFS.
170
- OS X 10.4, which is the minimum version we're going to support
171
with this version, appears to have support for nrand48 and friends,
172
so no need to use the Imath-supplied version of them anymore.
174
* No more PLATFORM_WINDOWS or PLATFORM_WIN32, replace with
175
proper standard Windows macros. (Drew Hess)
176
* Remove support for gcc 2.95, no longer supported. (Drew Hess)
177
* Eliminate HAVE_IOS_BASE macro, OpenEXR now requires support for
178
ios_base. (Drew Hess)
179
* Eliminate HAVE_STL_LIMITS macro, OpenEXR now requires the ISO C++
180
<limits> header. (Drew Hess)
181
* Use double quote-style include dirctives for OpenEXR
182
includes. (Drew Hess)
183
* Added a document that gives an overview of the on-disk
184
layout of OpenEXR files (Florian Kainz)
185
* Added sections on layers and on memory-mapped file input
186
to the documentation. (Florian Kainz)
187
* Bug fix: reading an incomplete file causes a deadlock while
188
waiting on a semaphore. (Florian Kainz)
189
* Updated documentation (ReadingAndWritingImageFiles.sxw) and
190
sample code (IlmImfExamples):
191
Added a section about multi-threading, updated section on
192
thread-safety, changed documentation and sample code to use
193
readTiles()/writeTiles() instead of readTile()/writeTile()
194
where possible, mentioned that environment maps contain
195
redundant pixels, updated section on testing if a file is
198
* Multi-threading bug fixes (exceptions could be thrown
199
multiple times, some operations were not thread safe),
200
updated some comments, added comments, more multithreaded
203
* Added multi-threading support: multiple threads
204
cooperate to read or write a single OpenEXR file.
206
* Added operator== and operator!= to Imath::Frustum.
208
* Bug fix: Reading a PIZ-compressed file with an invalid
209
Huffman code table caused crashes by indexing off the
214
* Updated README to remove option for building with Visual C++ 6.0.
216
* Some older versions of gcc don't support a full iomanip
217
implemenation; check for this during configuration.
219
* Install PDF versions of documentation, remove old/out-of-date
220
HTML documentation. (Florian Kainz)
221
* Removed vc/vc6 directory; Visual C++ 6.0 is no longer
222
supported. (Drew Hess)
223
* Updated README.win32 with details of new build system.
224
(Florian Kainz, Drew Hess)
225
* New build system for Windows / Visual C++ 7 builds both
226
static libraries and DLLs.
228
* Removed Imath::TMatrix<T> and related classes, which are not
229
used anywhere in OpenEXR.
231
* Added minimal support for "image layers" to class Imf::ChannelList
233
* Added new isComplete() method to InputFile, TiledInputFile
234
etc., that checks if a file is complete or if any pixels
235
are missing (for example, because writing the file was
236
aborted prematurely).
238
* Exposed staticInitialize() function in ImfHeader.h in order
239
to allow thread-safe library initialization in multithreaded
242
* Added a new "time code" attribute
244
* exrmaketiled: when a MIPMAP_LEVELS or RIPMAP_LEVELS image
245
is produced, low-pass filtering takes samples outside the
246
image's data window. This requires extrapolating the image.
247
The user can now specify how the image is extrapolated
248
horizontally and vertically (image is surrounded by black /
249
outermost row of pixels repeats / entire image repeats /
250
entire image repeats, every other copy is a mirror image).
251
exrdisplay: added option to swap the top and botton half,
252
and the left and right half of an image, so that the image's
253
four corners end up in the center. This is useful for checking
254
the seams of wrap-around texture map images.
255
IlmImf library: Added new "wrapmodes" standard attribute
256
to indicate the extrapolation mode for MIPMAP_LEVELS and
257
RIPMAP_LEVELS images.
259
* Added a new "key code" attribute to identify motion picture
262
* Removed #include <Iex.h> from ImfAttribute.h, ImfHeader.h
263
and ImfXdr.h so that including header files such as
264
ImfInputFile.h no longer defines ASSERT and THROW macros,
265
which may conflict with similar macros defined by
266
application programs.
268
* Converted HTML documentation to OpenOffice format to
269
make maintaining the documents easier:
270
api.html -> ReadingAndWritingImageFiles.sxw
271
details.html -> TechnicalIntroduction.sxw
275
* exrenvmap and exrmaketiled use slightly less memory
277
* Added functions to IlmImf for quickly testing if a file
278
is an OpenEXR file, and whether the file is scan-line
279
based or tiled. (Florian Kainz)
280
* Added preview image examples to IlmImfExamples. Added
281
description of preview images and environment maps to
282
docs/api.html (Florian Kainz)
283
* Bug fix: PXR24 compression did not work properly for channels
286
* Made template <class T> become template <class S, class T> for
287
the transform(ObjectS, ObjectT) methods. This was done to allow
288
for differing templated objects to be passed in e.g. say a
289
Box<Vec3<S>> and a Matrix44<T>, where S=float and T=double.
290
(Jeff Yost, Arkell Rasiah)
291
* New method Matrix44::setTheMatrix(). Used for assigning a
292
M44f to a M44d. (Jeff Yost, Arkell Rasiah)
293
* Added convenience Color typedefs for half versions of Color3
294
and Color4. Note the Makefile.am for both Imath and ImathTest
295
have been updated with -I and/or -L pathing to Half.
296
(Max Chen, Arkell Rasiah)
297
* Methods equalWithAbsError() and equalWithRelError() are now
298
declared as const. (Colette Mullenhoff, Arkell Rasiah)
299
* Fixes for gcc34. Mainly typename/template/using/this syntax
300
correctness changes. (Nick Ramussen, Arkell Rasiah)
301
* Added Custom low-level file I/O examples to IlmImfExamples
302
and to the docs/api.html document. (Florian Kainz)
303
* Eliminated most warnings messages when OpenEXR is compiled
304
with Visual C++. The OpenEXR code uses lots of (intentional
305
and unintended) implicit type conversions. By default, Visual
306
C++ warns about almost all of them. Most implicit conversions
307
have been removed from the .h files, so that including them
308
should not generate warnings even at warning level 3. Most
309
.cpp files are now compiled with warning level 1.
313
* Production-ready release.
314
* Disable long double warnings on OS X. (Drew Hess)
315
* Add new source files to VC7 IlmImfDll target. (Drew Hess)
316
* Iex: change the way that APPEND_EXC and REPLACE_EXC modify
317
their what() string to work around an issue with Visual C++
318
7.1. (Florian Kainz, Nick Porcino)
319
* Bumped OpenEXR version to 1.2 and .so versions to 2.0.0 in
320
preparation for the release. (Drew Hess)
321
* Imath: fixed ImathTMatrix.h to work with gcc 3.4. (Drew Hess)
322
* Another quoting fix in openexr.m4. (Drew Hess)
323
* Quoting fix in acinclude.m4 for automake 1.8. (Brad Hards)
324
* Imath: put inline at beginning of declaration in ImathMatrix.h
325
to fix a warning. (Ken McGaugh)
326
* Imath: made Vec equalWith*Error () methods const.
327
* Cleaned up compile-time Win32 support. (Florian Kainz)
328
* Bug fix: Reading a particular broken PIZ-compressed file
329
caused crashes by indexing off the end of an array.
333
* Half: operator= and variants now return by reference rather
334
than by value. This brings half into conformance with
335
built-in types. (Drew Hess)
336
* Half: remove copy constructor, let compiler supply its
337
own. This improves performance up to 25% on some
338
expressions using half. (Drew Hess)
339
* configure: don't try to be fancy with CXXFLAGS, just use
340
what the user supplies or let configure choose a sensible
341
default if CXXFLAGS is not defined.
342
* IlmImf: fixed a bug in reading scanline files on big-endian
343
architectures. (Drew Hess)
344
* exrmaketiled: Added an option to select compression type.
346
* exrenvmap: Added an option to select compression type.
348
* exrdisplay: Added some new command-line options. (Florian Kainz)
349
* IlmImf: Added Pixar's new "slightly lossy" image compression
350
method. The new method, named PXR24, preserves HALF and
351
UINT data without loss, but FLOAT pixels are converted to
352
a 24-bit representation. PXR24 appears to compress
353
FLOAT depth buffers very well without losing much accuracy.
354
(Loren Carpenter, Florian Kainz)
355
* Changed top-level LICENSE file to allow for other copyright
356
holders for individual files.
357
* IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was
358
incorrectly interleaving channels and scanlines before
359
passing pixel data to a compressor. The lossless compressors
360
still work, but lossy compressors do not. Fix the bug by
361
interleaving channels and scanlines in tiled files in the
362
same way as ScanLineOutputFile does. Programs compiled with
363
the new version of IlmImf cannot read tiled images produced
364
with version 1.1.0. (Florian Kainz)
365
* IlmImf: ImfXdr.h fix for 64-bit architectures. (Florian Kainz)
366
* IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha)
367
images with subsampled chroma channels. When an image
368
is written with the RGBA convenience interface, selecting
369
WRITE_YCA instead of WRITE_RGBA causes the library to
370
convert the pixels to YCA format. If WRITE_Y is selected,
371
only luminance is stored in the file (for black and white
372
images). When an image file is read with the RGBA convenience
373
interface, YCA data are automatically converted back to RGBA.
375
* IlmImf: speed up reading tiled files as scan lines.
377
* Half: Fixed subtle bug in Half where signaling float NaNs
378
were being converted to inf in half. (Florian Kainz)
379
* gcc 3.3 compiler warning cleanups. (various)
380
* Imath: ImathEuler.h fixes for gcc 3.4. (Garrick Meeker)
383
* Added new targets to Visual C++ .NET 2003 project
384
for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr.
386
* A few assorted Win32 fixes for Imath. (Drew Hess)
387
* GNU autoconf builds now produce versioned libraries.
388
This release is 1:0:0. (Drew Hess)
389
* Fixes for Visual C++ .NET 2003. (Paul Schneider)
390
* Updated Visual C++ zlib project file to zlib 1.2.1.
392
* exrdisplay: Fixed fragment shader version. (Drew Hess)
393
* *Test: Fixed some compiler issues. (Drew Hess)
394
* Imath: Handle "restrict" keyword properly. (Drew Hess)
395
* IlmImfExamples: Updated to latest versions of example
396
source code, includes tiling and multi-res images.
398
* exrmakepreview: A new utility to create preview images.
400
* exrenvmap: A new utility to create OpenEXR environment
401
maps. (Florian Kainz)
402
* exrstdattr: A new utility to modify standard
403
attributes. (Florian Kainz)
404
* Updated exrheader to print level rounding mode and
405
preview image size. (Florian Kainz)
406
* Updated exrmaketiled to use level rounding mode.
408
* IlmImf: Changed the orientation of lat-long envmaps to
409
match typical panoramic camera setups. (Florian Kainz)
410
* IlmImf: Fixed a bug where partially-completed files with
411
DECREASING_Y could not be read. (Florian Kainz)
412
* IlmImf: Added support for selectable rounding mode (up/down)
413
when generating multiresolution files. (Florian Kainz)
414
* exrdisplay: Support for tiled images, mip/ripmaps, preview
415
images, and display windows. (Florian Kainz, Drew Hess)
416
* exrmaketiled: A new utility which generates tiled
417
versions of OpenEXR images. (Florian Kainz)
418
* IlmImf: Changed Imf::VERSION to Imf::EXR_VERSION to
419
work around problems with autoconf VERSION macro
420
conflict. (Drew Hess)
421
* exrheader: Support for tiles, mipmaps, environment
422
maps. (Florian Kainz)
423
* IlmImf: Environment map support. (Florian Kainz)
424
* IlmImf: Abstracted stream I/O support. (Florian Kainz)
425
* IlmImf: Support for tiled and mip/ripmapped files;
426
requires new file format. (Wojciech Jarosz, Florian Kainz)
427
* Imath: TMatrix*, generic 2D matricies and algorithms.
429
* Imath: major quaternions cleanup. (Cary Phillips)
430
* Imath: added GLBegin, GLPushAttrib, GLPushMatrix objects
431
for automatic cleanup on exceptions. (Cary Phillips)
432
* Imath: removed implicit scalar->vector promotions and vector
433
comparisons. (Nick Rasmussen)
436
* Fixed a typo in one of the IlmImfTest tests. (Paul Schneider)
437
* Fixed a bug in exrdisplay that causes the image to display
438
as all black if there's a NaN or infinity in an OpenEXR
439
image. (Florian Kainz)
440
* Updated exrheader per recent changes to IlmImf library.
442
* Changed an errant float to a T in ImathFrame.h nextFrame().
444
* Support for new "optional standard" attributes
445
(chromaticities, luminance, comments, etc.).
446
(Florian Kainz, Greg Ward, Joseph Goldstone)
447
* Fixed a buffer overrun in ImfOpaqueAttribute. (Paul Schneider)
448
* Added new function, isImfMagic (). (Florian Kainz)
451
* Added README.win32 to disted files.
452
* Fixed OpenEXR.pc.in pkg-config file, OpenEXR now works
454
* Random fixes to readme files for new release.
455
* Fixed openexr.m4, now looks in /usr by default.
456
* Added Visual Studio .NET 2003 "solution."
457
* Fixes for Visual Studio .NET 2003 w/ Microsoft C++ compiler.
459
* Random Imath fixes and enhancements. Note that
460
extractSHRT now takes an additional optional
461
argument, see ImathMatrixAlgo.h for details. (Various)
462
* Added Wojciech Jarosz to AUTHORS file.
463
* Added test cases for uncompressed case, preview images,
464
frame buffer type conversion. (Wojciech Jarosz,
466
* Fix a bug in IlmImf where uncompressed data doesn't get
467
read/written correctly. (Wojciech Jarosz)
468
* Added support for preview images and preview image
469
attributes (thumbnail images) in IlmImf. (Florian Kainz)
470
* Added support for automatic frame buffer type conversion
471
in IlmImf. (Florian Kainz)
472
* Cleaned up some compile-time checks.
473
* Added HalfTest unit tests.
474
* [exrdisplay] Download half framebuffer to texture memory
475
instead of converting to float first. Requires latest
479
* Fixed IlmImf.dll to use static runtime libs (Andreas).
480
* Added exrheader project to Visual Studio 6.0 workspace.
481
* Added some example code showing how to use the IlmImf library.
483
* Use DLL runtime libs for Win32 libraries rather than static
485
* Add an exrdisplay_fragshader project to the Visual Studio 6.0
486
workspace to enable fragment shaders in Win32.
487
* Add an IlmImfDll project to the Visual Studio 6.0 workspace.
488
* In Win32, export the ImfCRgbaFile C interface via a DLL so
489
that Visual C++ 6.0 users can link against an Intel-compiled
490
IlmImf. (Andreas Kahler)
491
* Use auto_ptr in ImfAutoArray on Win32, it doesn't like large
493
* Performance improvements in PIZ decoding, between
494
20 and 60% speedup on Athlon and Pentium 4 systems.
496
* Updated the README with various information, made
497
some cosmetic changes for readability.
498
* Added fragment shader support to exrdisplay.
499
* Bumped the version to 1.0.5 in prep for release.
500
* Updated README and README.OSX to talk about CodeWarrior
502
* Incorporated Rodrigo Damazio's patch for an openexr.m4
503
macro file and an openexr.spec file for building RPMs.
504
* Small change in ImfAttribute.h to make IlmImf compile with gcc 2.95.
505
* Updated ImfDoubleAttribute.h for Codewarrior on MacOS.
506
* Added exrheader utility.
507
* Update to AUTHORS file.
508
* Added a README.win32 file.
509
* Added project files for Visual Studio 6.0.
510
* Initial Win32 port. Requires Visual Studio 6.0 and Intel C++
511
compiler version 7.0.
512
* Added new intersectT method in ImathSphere.h
513
* Fixed some bugs in ImathQuat.h
514
* Proper use of fltk-config to get platform-specific FLTK
515
compile- and link-time flags.
516
* exrdisplay uses Imath::Math<T>::pow instead of powf now.
517
powf is not availble on all platforms.
518
* Roll OS X "hack" into the source until Apple fixes their
519
istream implementation.
522
* OpenEXR is now covered by a modified BSD license. See LICENSE
527
* OpenEXR is now in sf.net CVS.
528
* Imf::Xdr namespace cleanups.
529
* Some IlmImfTest cleanups for OS X.
530
* Use .cpp extension in exrdisplay sources.
532
* Make IlmImf compile with Metrowerks Codewarrior.
533
* Change large automatic stacks in ImfHuf.C to auto_ptrs allocated
534
off the heap. MacOS X default stack size isn't large enough.
535
* std::ios fix for MacOS X in ImfInputFile.C.
536
* Added new FP predecessor/successor functions to Imath, added
538
* Fixed a bug in Imath::extractSHRT for 3x3 matricies when
539
exactly one of the original scaling factors is negative, updated
540
ImathTest to check this case.
541
* Install include files when 'make install' is run.
542
* exrdisplay requires fltk 1.1+ now in an effort to support
543
a MacOS X display program (fltk 1.1 runs on OS X), though this
545
* renamed configure.in to configure.ac
546
* Removed some tests from IexTest that are no longer used.
547
* Removed ImfHalfXdr.h, it's not used anymore.
548
* Revamped the autoconf system, added some compile-time
549
optimizations, a pkgconfig target, and some maintainer-specific
554
* More OS X fixes in Imath, IlmImf and IlmImfTest.
556
* Fixed a rotation bug in Imath
560
* Used autoconf 2.53 and automake 1.6 to generate build environment.
561
* Makefile.am cleanups.
563
* removed images directory (now distributed separately).
567
* first official release.
568
* added some high-level documentation, removed the old OpenEXR.html
570
* fixed a few nagging build problems.
571
* bumped IMV_VERSION_NUMBER to 2
575
* added exrdisplay viewer application.
576
* cleanup _data in Imf::InputFile and Imf::OutputFile constructors.
577
* removed old ILM copyright notices.
2
* Removed Windows .suo files from distribution.
4
* Bug fix: crashes, memory leaks and file descriptor leaks
5
when reading damaged image files (some reported by Apple,
6
others found by running IlmImfFuzzTest).
8
* Added new IlmImfFuzzTest program to test how resilient the
9
IlmImf library is with respect broken input files: the program
10
first damages OpenEXR files by partially overwriting them with
11
random data; then it tries to read the damaged files. If all
12
goes well, the program doesn't crash.
16
* Bumped DSO version number to 6.0
18
* Added new standard attributes related to color rendering with
19
CTL (Color Transformation Language): renderingTransform,
20
lookModTransform and adoptedNeutral.
22
* Bug fix: for pixels with luminance near HALF_MIN, conversion
23
from RGB to luminance/chroma produces NaNs and infinities
25
* Bug fix: excessive desaturation of small details with certain
26
colors after repeatedly loading and saving luminance/chroma
27
encoded images with B44 compression.
29
* Added B44A compression, a minor variation of B44: in most cases,
30
the compression ratio is 2.28:1, the same as with B44, but in
31
uniform image areas where all pixels have the same value, the
32
compression ratio increases to 10.66:1. Uniform areas occur, for
33
example, in an image's alpha channel, which typically contains
34
large patches that are solid black or white, or in computer-
35
generated images with a black background.
37
* Added flag to configure.ac to enable or disable use of large
38
auto arrays in the IlmImf library. Default is "enable" for
39
Linux, "disable" for everything else.
40
(Darby Johnston, Florian Kainz)
41
* corrected version number on dso's (libtool) - now 5.0
42
* Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs
43
can link with static libraries properly
44
* eliminated some warning messages during install
48
* reorganized packaging of OpenEXR libraries to facilitate
49
integration with CTL. Now this library depends on the library
50
IlmBase. Some functionality has been moved into OpenEXR_Viewers,
51
which depends on two other libraries, CTL and OpenEXR_CTL.
52
Note: previously there were separate releases of
53
OpenEXR-related plugins for Renderman, Shake and Photoshop.
54
OpenEXR is supported natively by Rendermand and Photoshop, so
55
these plugins will not be supported for this or future
58
* New build scripts for Linux/Unix
60
* New Windows project files and build scripts
62
* float-to-half conversion now preserves the sign of float zeroes
63
and of floats that are so small that they become half zeroes.
65
* Bug fix: Imath::Frustum<T>::planes() returns incorrect planes
66
if the frustum is orthogonal.
68
* added new framesPerSecond optional standard attribute
71
- Rewrote function Imath::Quat<T>::setRotation() to make it
72
numerically more accurate, added confidence tests
73
- Rewrote function Imath::Quat<T>::slerp() using Don Hatch's
74
method, which is numerically more accurate, added confidence
76
- Rewrote functions Imath::closestPoints(), Imath::intersect(),
77
added confidence tests.
78
- Removed broken function Imath::nearestPointOnTriangle().
79
- Rewrote Imath::drand48(), Imath::lrand48(), etc. to make
80
them functionally identical with the Unix/Linux versions
81
of drand48(), lrand48() and friends.
82
- Replaced redundant definitions of Int64 in Imath and IlmImf
83
with a single definition in ImathInt64.h.
85
* exrdisplay: if the file's and the display's RGB chromaticities
86
differ, the pixels RGB values are transformed from the file's
87
to the display's RGB space.
89
* Added new lossy B44 compression method. HALF channels are
90
compressed with a fixed ratio of 2.28:1. UINT and FLOAT
91
channels are stored verbatim, without compression.
95
* Fixed the ReleaseDLL targets for Visual Studio 2003.
100
* Bug Fix: calling setFrameBuffer() for every scan line
101
while reading a tiled file through the scan line API
102
returns bad pixel data. (Paul Schneider, Florian Kainz)
105
* Fixed the ReleaseDLL targets for Visual Studio 2005.
106
(Nick Porcino, Drew Hess)
107
* Fixes/enhancements for createDLL.
111
* Removed openexr.spec file, it's out of date and broken to
114
* Support for Visual Studio 2005.
115
(Drew Hess, Nick Porcino)
116
* When compiling against OpenEXR headers on Windows, you
117
no longer need to define any HAVE_* or PLATFORM_*
118
macros in your projects. If you are using any OpenEXR
119
DLLs, however, you must define OPENEXR_DLL in your
120
project's preprocessor directives.
122
* Many fixes to the Windows VC7 build system.
123
(Drew Hess, Nick Porcino)
124
* Support for building universal binaries on OS X 10.4.
125
(Drew Hess, Paul Schneider)
126
* Minor configure.ac fix to accomodate OS X's automake.
128
* Removed CPU-specific optimizations from configure.ac,
129
autoconf's guess at the CPU type isn't very useful,
130
anyway. Closes #13429.
132
* Fixed quoting for tests in configure.ac. Closes #13428.
134
* Use host specification instead of target in configure.ac.
137
* Fix use of AC_ARG_ENABLE in configure.ac. Closes
140
* Removed workaround for OS X istream::read bug.
142
* Added pthread support to OpenEXR pkg-config file.
144
* Added -no-undefined to LDFLAGS and required libs to LIBADD
145
for library projects with other library dependencies, per
148
* HAVE_* macros are now defined in the OpenEXRConfig.h header
149
file instead of via compiler flags. There are a handful of
150
public headers which rely on the value of these macros,
151
and projects including these headers have previously needed
152
to define the same macros and values as used by OpenEXR's
153
'configure', which is bad form. Now 'configure' writes these
154
values to the OpenEXRConfig.h header file, which is included
155
by any OpenEXR source files that need these macros. This
156
method of specifying HAVE_* macros guarantees that projects
157
will get the proper settings without needing to add compile-
158
time flags to accomodate OpenEXR. Note that this isn't
159
implemented properly for Windows yet.
162
- No more support for IRIX or OSF1.
163
- No more explicit support for SunOS, because we have no way to
164
verify that it's working. I suspect that newish versions of
165
SunOS will just work out of the box, but let me know if not.
166
- No more PLATFORM_* macros (vestiges of the ILM internal build
167
system). PLATFORM_DARWIN_PPC is replaced by HAVE_DARWIN.
168
PLATFORM_REDHAT_IA32 (which was only used in IlmImfTest) is
169
replaced by HAVE_LINUX_PROCFS.
170
- OS X 10.4, which is the minimum version we're going to support
171
with this version, appears to have support for nrand48 and friends,
172
so no need to use the Imath-supplied version of them anymore.
174
* No more PLATFORM_WINDOWS or PLATFORM_WIN32, replace with
175
proper standard Windows macros. (Drew Hess)
176
* Remove support for gcc 2.95, no longer supported. (Drew Hess)
177
* Eliminate HAVE_IOS_BASE macro, OpenEXR now requires support for
178
ios_base. (Drew Hess)
179
* Eliminate HAVE_STL_LIMITS macro, OpenEXR now requires the ISO C++
180
<limits> header. (Drew Hess)
181
* Use double quote-style include dirctives for OpenEXR
182
includes. (Drew Hess)
183
* Added a document that gives an overview of the on-disk
184
layout of OpenEXR files (Florian Kainz)
185
* Added sections on layers and on memory-mapped file input
186
to the documentation. (Florian Kainz)
187
* Bug fix: reading an incomplete file causes a deadlock while
188
waiting on a semaphore. (Florian Kainz)
189
* Updated documentation (ReadingAndWritingImageFiles.sxw) and
190
sample code (IlmImfExamples):
191
Added a section about multi-threading, updated section on
192
thread-safety, changed documentation and sample code to use
193
readTiles()/writeTiles() instead of readTile()/writeTile()
194
where possible, mentioned that environment maps contain
195
redundant pixels, updated section on testing if a file is
198
* Multi-threading bug fixes (exceptions could be thrown
199
multiple times, some operations were not thread safe),
200
updated some comments, added comments, more multithreaded
203
* Added multi-threading support: multiple threads
204
cooperate to read or write a single OpenEXR file.
206
* Added operator== and operator!= to Imath::Frustum.
208
* Bug fix: Reading a PIZ-compressed file with an invalid
209
Huffman code table caused crashes by indexing off the
214
* Updated README to remove option for building with Visual C++ 6.0.
216
* Some older versions of gcc don't support a full iomanip
217
implemenation; check for this during configuration.
219
* Install PDF versions of documentation, remove old/out-of-date
220
HTML documentation. (Florian Kainz)
221
* Removed vc/vc6 directory; Visual C++ 6.0 is no longer
222
supported. (Drew Hess)
223
* Updated README.win32 with details of new build system.
224
(Florian Kainz, Drew Hess)
225
* New build system for Windows / Visual C++ 7 builds both
226
static libraries and DLLs.
228
* Removed Imath::TMatrix<T> and related classes, which are not
229
used anywhere in OpenEXR.
231
* Added minimal support for "image layers" to class Imf::ChannelList
233
* Added new isComplete() method to InputFile, TiledInputFile
234
etc., that checks if a file is complete or if any pixels
235
are missing (for example, because writing the file was
236
aborted prematurely).
238
* Exposed staticInitialize() function in ImfHeader.h in order
239
to allow thread-safe library initialization in multithreaded
242
* Added a new "time code" attribute
244
* exrmaketiled: when a MIPMAP_LEVELS or RIPMAP_LEVELS image
245
is produced, low-pass filtering takes samples outside the
246
image's data window. This requires extrapolating the image.
247
The user can now specify how the image is extrapolated
248
horizontally and vertically (image is surrounded by black /
249
outermost row of pixels repeats / entire image repeats /
250
entire image repeats, every other copy is a mirror image).
251
exrdisplay: added option to swap the top and botton half,
252
and the left and right half of an image, so that the image's
253
four corners end up in the center. This is useful for checking
254
the seams of wrap-around texture map images.
255
IlmImf library: Added new "wrapmodes" standard attribute
256
to indicate the extrapolation mode for MIPMAP_LEVELS and
257
RIPMAP_LEVELS images.
259
* Added a new "key code" attribute to identify motion picture
262
* Removed #include <Iex.h> from ImfAttribute.h, ImfHeader.h
263
and ImfXdr.h so that including header files such as
264
ImfInputFile.h no longer defines ASSERT and THROW macros,
265
which may conflict with similar macros defined by
266
application programs.
268
* Converted HTML documentation to OpenOffice format to
269
make maintaining the documents easier:
270
api.html -> ReadingAndWritingImageFiles.sxw
271
details.html -> TechnicalIntroduction.sxw
275
* exrenvmap and exrmaketiled use slightly less memory
277
* Added functions to IlmImf for quickly testing if a file
278
is an OpenEXR file, and whether the file is scan-line
279
based or tiled. (Florian Kainz)
280
* Added preview image examples to IlmImfExamples. Added
281
description of preview images and environment maps to
282
docs/api.html (Florian Kainz)
283
* Bug fix: PXR24 compression did not work properly for channels
286
* Made template <class T> become template <class S, class T> for
287
the transform(ObjectS, ObjectT) methods. This was done to allow
288
for differing templated objects to be passed in e.g. say a
289
Box<Vec3<S>> and a Matrix44<T>, where S=float and T=double.
290
(Jeff Yost, Arkell Rasiah)
291
* New method Matrix44::setTheMatrix(). Used for assigning a
292
M44f to a M44d. (Jeff Yost, Arkell Rasiah)
293
* Added convenience Color typedefs for half versions of Color3
294
and Color4. Note the Makefile.am for both Imath and ImathTest
295
have been updated with -I and/or -L pathing to Half.
296
(Max Chen, Arkell Rasiah)
297
* Methods equalWithAbsError() and equalWithRelError() are now
298
declared as const. (Colette Mullenhoff, Arkell Rasiah)
299
* Fixes for gcc34. Mainly typename/template/using/this syntax
300
correctness changes. (Nick Ramussen, Arkell Rasiah)
301
* Added Custom low-level file I/O examples to IlmImfExamples
302
and to the docs/api.html document. (Florian Kainz)
303
* Eliminated most warnings messages when OpenEXR is compiled
304
with Visual C++. The OpenEXR code uses lots of (intentional
305
and unintended) implicit type conversions. By default, Visual
306
C++ warns about almost all of them. Most implicit conversions
307
have been removed from the .h files, so that including them
308
should not generate warnings even at warning level 3. Most
309
.cpp files are now compiled with warning level 1.
313
* Production-ready release.
314
* Disable long double warnings on OS X. (Drew Hess)
315
* Add new source files to VC7 IlmImfDll target. (Drew Hess)
316
* Iex: change the way that APPEND_EXC and REPLACE_EXC modify
317
their what() string to work around an issue with Visual C++
318
7.1. (Florian Kainz, Nick Porcino)
319
* Bumped OpenEXR version to 1.2 and .so versions to 2.0.0 in
320
preparation for the release. (Drew Hess)
321
* Imath: fixed ImathTMatrix.h to work with gcc 3.4. (Drew Hess)
322
* Another quoting fix in openexr.m4. (Drew Hess)
323
* Quoting fix in acinclude.m4 for automake 1.8. (Brad Hards)
324
* Imath: put inline at beginning of declaration in ImathMatrix.h
325
to fix a warning. (Ken McGaugh)
326
* Imath: made Vec equalWith*Error () methods const.
327
* Cleaned up compile-time Win32 support. (Florian Kainz)
328
* Bug fix: Reading a particular broken PIZ-compressed file
329
caused crashes by indexing off the end of an array.
333
* Half: operator= and variants now return by reference rather
334
than by value. This brings half into conformance with
335
built-in types. (Drew Hess)
336
* Half: remove copy constructor, let compiler supply its
337
own. This improves performance up to 25% on some
338
expressions using half. (Drew Hess)
339
* configure: don't try to be fancy with CXXFLAGS, just use
340
what the user supplies or let configure choose a sensible
341
default if CXXFLAGS is not defined.
342
* IlmImf: fixed a bug in reading scanline files on big-endian
343
architectures. (Drew Hess)
344
* exrmaketiled: Added an option to select compression type.
346
* exrenvmap: Added an option to select compression type.
348
* exrdisplay: Added some new command-line options. (Florian Kainz)
349
* IlmImf: Added Pixar's new "slightly lossy" image compression
350
method. The new method, named PXR24, preserves HALF and
351
UINT data without loss, but FLOAT pixels are converted to
352
a 24-bit representation. PXR24 appears to compress
353
FLOAT depth buffers very well without losing much accuracy.
354
(Loren Carpenter, Florian Kainz)
355
* Changed top-level LICENSE file to allow for other copyright
356
holders for individual files.
357
* IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was
358
incorrectly interleaving channels and scanlines before
359
passing pixel data to a compressor. The lossless compressors
360
still work, but lossy compressors do not. Fix the bug by
361
interleaving channels and scanlines in tiled files in the
362
same way as ScanLineOutputFile does. Programs compiled with
363
the new version of IlmImf cannot read tiled images produced
364
with version 1.1.0. (Florian Kainz)
365
* IlmImf: ImfXdr.h fix for 64-bit architectures. (Florian Kainz)
366
* IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha)
367
images with subsampled chroma channels. When an image
368
is written with the RGBA convenience interface, selecting
369
WRITE_YCA instead of WRITE_RGBA causes the library to
370
convert the pixels to YCA format. If WRITE_Y is selected,
371
only luminance is stored in the file (for black and white
372
images). When an image file is read with the RGBA convenience
373
interface, YCA data are automatically converted back to RGBA.
375
* IlmImf: speed up reading tiled files as scan lines.
377
* Half: Fixed subtle bug in Half where signaling float NaNs
378
were being converted to inf in half. (Florian Kainz)
379
* gcc 3.3 compiler warning cleanups. (various)
380
* Imath: ImathEuler.h fixes for gcc 3.4. (Garrick Meeker)
383
* Added new targets to Visual C++ .NET 2003 project
384
for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr.
386
* A few assorted Win32 fixes for Imath. (Drew Hess)
387
* GNU autoconf builds now produce versioned libraries.
388
This release is 1:0:0. (Drew Hess)
389
* Fixes for Visual C++ .NET 2003. (Paul Schneider)
390
* Updated Visual C++ zlib project file to zlib 1.2.1.
392
* exrdisplay: Fixed fragment shader version. (Drew Hess)
393
* *Test: Fixed some compiler issues. (Drew Hess)
394
* Imath: Handle "restrict" keyword properly. (Drew Hess)
395
* IlmImfExamples: Updated to latest versions of example
396
source code, includes tiling and multi-res images.
398
* exrmakepreview: A new utility to create preview images.
400
* exrenvmap: A new utility to create OpenEXR environment
401
maps. (Florian Kainz)
402
* exrstdattr: A new utility to modify standard
403
attributes. (Florian Kainz)
404
* Updated exrheader to print level rounding mode and
405
preview image size. (Florian Kainz)
406
* Updated exrmaketiled to use level rounding mode.
408
* IlmImf: Changed the orientation of lat-long envmaps to
409
match typical panoramic camera setups. (Florian Kainz)
410
* IlmImf: Fixed a bug where partially-completed files with
411
DECREASING_Y could not be read. (Florian Kainz)
412
* IlmImf: Added support for selectable rounding mode (up/down)
413
when generating multiresolution files. (Florian Kainz)
414
* exrdisplay: Support for tiled images, mip/ripmaps, preview
415
images, and display windows. (Florian Kainz, Drew Hess)
416
* exrmaketiled: A new utility which generates tiled
417
versions of OpenEXR images. (Florian Kainz)
418
* IlmImf: Changed Imf::VERSION to Imf::EXR_VERSION to
419
work around problems with autoconf VERSION macro
420
conflict. (Drew Hess)
421
* exrheader: Support for tiles, mipmaps, environment
422
maps. (Florian Kainz)
423
* IlmImf: Environment map support. (Florian Kainz)
424
* IlmImf: Abstracted stream I/O support. (Florian Kainz)
425
* IlmImf: Support for tiled and mip/ripmapped files;
426
requires new file format. (Wojciech Jarosz, Florian Kainz)
427
* Imath: TMatrix*, generic 2D matricies and algorithms.
429
* Imath: major quaternions cleanup. (Cary Phillips)
430
* Imath: added GLBegin, GLPushAttrib, GLPushMatrix objects
431
for automatic cleanup on exceptions. (Cary Phillips)
432
* Imath: removed implicit scalar->vector promotions and vector
433
comparisons. (Nick Rasmussen)
436
* Fixed a typo in one of the IlmImfTest tests. (Paul Schneider)
437
* Fixed a bug in exrdisplay that causes the image to display
438
as all black if there's a NaN or infinity in an OpenEXR
439
image. (Florian Kainz)
440
* Updated exrheader per recent changes to IlmImf library.
442
* Changed an errant float to a T in ImathFrame.h nextFrame().
444
* Support for new "optional standard" attributes
445
(chromaticities, luminance, comments, etc.).
446
(Florian Kainz, Greg Ward, Joseph Goldstone)
447
* Fixed a buffer overrun in ImfOpaqueAttribute. (Paul Schneider)
448
* Added new function, isImfMagic (). (Florian Kainz)
451
* Added README.win32 to disted files.
452
* Fixed OpenEXR.pc.in pkg-config file, OpenEXR now works
454
* Random fixes to readme files for new release.
455
* Fixed openexr.m4, now looks in /usr by default.
456
* Added Visual Studio .NET 2003 "solution."
457
* Fixes for Visual Studio .NET 2003 w/ Microsoft C++ compiler.
459
* Random Imath fixes and enhancements. Note that
460
extractSHRT now takes an additional optional
461
argument, see ImathMatrixAlgo.h for details. (Various)
462
* Added Wojciech Jarosz to AUTHORS file.
463
* Added test cases for uncompressed case, preview images,
464
frame buffer type conversion. (Wojciech Jarosz,
466
* Fix a bug in IlmImf where uncompressed data doesn't get
467
read/written correctly. (Wojciech Jarosz)
468
* Added support for preview images and preview image
469
attributes (thumbnail images) in IlmImf. (Florian Kainz)
470
* Added support for automatic frame buffer type conversion
471
in IlmImf. (Florian Kainz)
472
* Cleaned up some compile-time checks.
473
* Added HalfTest unit tests.
474
* [exrdisplay] Download half framebuffer to texture memory
475
instead of converting to float first. Requires latest
479
* Fixed IlmImf.dll to use static runtime libs (Andreas).
480
* Added exrheader project to Visual Studio 6.0 workspace.
481
* Added some example code showing how to use the IlmImf library.
483
* Use DLL runtime libs for Win32 libraries rather than static
485
* Add an exrdisplay_fragshader project to the Visual Studio 6.0
486
workspace to enable fragment shaders in Win32.
487
* Add an IlmImfDll project to the Visual Studio 6.0 workspace.
488
* In Win32, export the ImfCRgbaFile C interface via a DLL so
489
that Visual C++ 6.0 users can link against an Intel-compiled
490
IlmImf. (Andreas Kahler)
491
* Use auto_ptr in ImfAutoArray on Win32, it doesn't like large
493
* Performance improvements in PIZ decoding, between
494
20 and 60% speedup on Athlon and Pentium 4 systems.
496
* Updated the README with various information, made
497
some cosmetic changes for readability.
498
* Added fragment shader support to exrdisplay.
499
* Bumped the version to 1.0.5 in prep for release.
500
* Updated README and README.OSX to talk about CodeWarrior
502
* Incorporated Rodrigo Damazio's patch for an openexr.m4
503
macro file and an openexr.spec file for building RPMs.
504
* Small change in ImfAttribute.h to make IlmImf compile with gcc 2.95.
505
* Updated ImfDoubleAttribute.h for Codewarrior on MacOS.
506
* Added exrheader utility.
507
* Update to AUTHORS file.
508
* Added a README.win32 file.
509
* Added project files for Visual Studio 6.0.
510
* Initial Win32 port. Requires Visual Studio 6.0 and Intel C++
511
compiler version 7.0.
512
* Added new intersectT method in ImathSphere.h
513
* Fixed some bugs in ImathQuat.h
514
* Proper use of fltk-config to get platform-specific FLTK
515
compile- and link-time flags.
516
* exrdisplay uses Imath::Math<T>::pow instead of powf now.
517
powf is not availble on all platforms.
518
* Roll OS X "hack" into the source until Apple fixes their
519
istream implementation.
522
* OpenEXR is now covered by a modified BSD license. See LICENSE
527
* OpenEXR is now in sf.net CVS.
528
* Imf::Xdr namespace cleanups.
529
* Some IlmImfTest cleanups for OS X.
530
* Use .cpp extension in exrdisplay sources.
532
* Make IlmImf compile with Metrowerks Codewarrior.
533
* Change large automatic stacks in ImfHuf.C to auto_ptrs allocated
534
off the heap. MacOS X default stack size isn't large enough.
535
* std::ios fix for MacOS X in ImfInputFile.C.
536
* Added new FP predecessor/successor functions to Imath, added
538
* Fixed a bug in Imath::extractSHRT for 3x3 matricies when
539
exactly one of the original scaling factors is negative, updated
540
ImathTest to check this case.
541
* Install include files when 'make install' is run.
542
* exrdisplay requires fltk 1.1+ now in an effort to support
543
a MacOS X display program (fltk 1.1 runs on OS X), though this
545
* renamed configure.in to configure.ac
546
* Removed some tests from IexTest that are no longer used.
547
* Removed ImfHalfXdr.h, it's not used anymore.
548
* Revamped the autoconf system, added some compile-time
549
optimizations, a pkgconfig target, and some maintainer-specific
554
* More OS X fixes in Imath, IlmImf and IlmImfTest.
556
* Fixed a rotation bug in Imath
560
* Used autoconf 2.53 and automake 1.6 to generate build environment.
561
* Makefile.am cleanups.
563
* removed images directory (now distributed separately).
567
* first official release.
568
* added some high-level documentation, removed the old OpenEXR.html
570
* fixed a few nagging build problems.
571
* bumped IMV_VERSION_NUMBER to 2
575
* added exrdisplay viewer application.
576
* cleanup _data in Imf::InputFile and Imf::OutputFile constructors.
577
* removed old ILM copyright notices.