OpenEXR is a resource within the motion picture industry for providing a standardized file format suitable for transferring highly detailed and complicated video data between different studios. Originally created by Industrial Light and Magic in the late 90's and early 2000's, OpenEXR provided a set of valuable tools for private productions before becoming open source in 2004. Within the OpenEXR source there is a subset of code that is particuliarly useful. 'Imath' is a vector matrix image processing math library that has been imitated by other open source projects. For this GSoC project, Imath was neatly cleaved from OpenEXR while achieving 3 things:
- Complete backwards compatability
- Virtually imperceptable change to the installation of OpenEXR
- Modernization of the Imath library
Doing these and seperating Imath allows for other projects to utilize it without the baggage of the complete installation of OpenEXR.
Owen Thompson was responsible for the following project developments:
Initial separation and population of the Imath-test repo:
https://github.com/AcademySoftwareFoundation/Imath-test
Removal of unneeded source, including IEX library:
https://github.com/AcademySoftwareFoundation/Imath-test/pull/3
Integration of Python bindings with Imath-test into the ultimate Imath repo:
AcademySoftwareFoundation/Imath#18
Small suite of tests to demonstrate library speed:
AcademySoftwareFoundation/Imath#20
Adding constexpr to allow for better compilation:
AcademySoftwareFoundation/Imath#21
Maintaining compatability with C++11 constexpr restrictions:
AcademySoftwareFoundation/Imath#25
Resolving conflicting type half (Imath) with half (CUDA):
AcademySoftwareFoundation/Imath#27
Ensuring CI works with the new repo similar to how it worked with OpenEXR:
AcademySoftwareFoundation/Imath#29
AcademySoftwareFoundation/Imath#30
Added CUDA __host__ __device__ conditionally to all Imath methods to allow for compiling on the CUDA kernel:
AcademySoftwareFoundation/Imath#38
AcademySoftwareFoundation/Imath#41
Made library methods inline where possible/useful:
AcademySoftwareFoundation/Imath#42
Restructured source directories:
AcademySoftwareFoundation/Imath#46
Removal of Imath source from the OpenEXR repositroy:
AcademySoftwareFoundation/openexr#791
Restructuring of OpenEXR's source directories:
AcademySoftwareFoundation/openexr#796
Adding an automatic installer of Imath to OpenEXR: