summaryrefslogtreecommitdiff
path: root/src/jniglue
diff options
context:
space:
mode:
authorMatteo F. Vescovi <mfv.debian@gmail.com>2013-08-20 09:53:19 +0100
committerMatteo F. Vescovi <mfv.debian@gmail.com>2013-08-20 09:53:19 +0100
commit66e5d9e2915733247bca47d077414ec2594aedad (patch)
treef4070a31bf015e159dadd34378cda703d8f6edea /src/jniglue
opencolorio (1.0.8~dfsg0-2) unstable; urgency=low
* debian/rules: get-orig-source stuff added * debian/rules: useless dh addon removed * debian/rules: License.txt duplicate removed * debian/rules: SSE optimization disabled (Closes: #719174) * debian/libopencolorio1.symbols: file removed (Closes: #719175) # imported from the archive
Diffstat (limited to 'src/jniglue')
-rw-r--r--src/jniglue/CMakeLists.txt92
-rw-r--r--src/jniglue/JNIBaker.cpp264
-rw-r--r--src/jniglue/JNIColorSpace.cpp239
-rw-r--r--src/jniglue/JNIConfig.cpp607
-rw-r--r--src/jniglue/JNIContext.cpp170
-rw-r--r--src/jniglue/JNIGlobals.cpp417
-rw-r--r--src/jniglue/JNIGpuShaderDesc.cpp125
-rw-r--r--src/jniglue/JNIImageDesc.cpp309
-rw-r--r--src/jniglue/JNILook.cpp131
-rw-r--r--src/jniglue/JNIProcessor.cpp133
-rw-r--r--src/jniglue/JNITransforms.cpp1151
-rw-r--r--src/jniglue/JNIUtil.cpp122
-rw-r--r--src/jniglue/JNIUtil.h282
-rw-r--r--src/jniglue/LoadLibrary.java.in40
-rw-r--r--src/jniglue/Manifest.txt.in7
-rw-r--r--src/jniglue/org/OpenColorIO/Allocation.java44
-rw-r--r--src/jniglue/org/OpenColorIO/AllocationTransform.java42
-rw-r--r--src/jniglue/org/OpenColorIO/Baker.java62
-rw-r--r--src/jniglue/org/OpenColorIO/BitDepth.java56
-rw-r--r--src/jniglue/org/OpenColorIO/CDLTransform.java56
-rw-r--r--src/jniglue/org/OpenColorIO/ColorSpace.java59
-rw-r--r--src/jniglue/org/OpenColorIO/ColorSpaceDirection.java44
-rw-r--r--src/jniglue/org/OpenColorIO/ColorSpaceTransform.java41
-rw-r--r--src/jniglue/org/OpenColorIO/Config.java96
-rw-r--r--src/jniglue/org/OpenColorIO/Context.java52
-rw-r--r--src/jniglue/org/OpenColorIO/DisplayTransform.java55
-rw-r--r--src/jniglue/org/OpenColorIO/ExceptionBase.java37
-rw-r--r--src/jniglue/org/OpenColorIO/ExceptionMissingFile.java37
-rw-r--r--src/jniglue/org/OpenColorIO/ExponentTransform.java39
-rw-r--r--src/jniglue/org/OpenColorIO/FileTransform.java46
-rw-r--r--src/jniglue/org/OpenColorIO/Globals.java78
-rw-r--r--src/jniglue/org/OpenColorIO/GpuLanguage.java46
-rw-r--r--src/jniglue/org/OpenColorIO/GpuShaderDesc.java46
-rw-r--r--src/jniglue/org/OpenColorIO/GroupTransform.java42
-rw-r--r--src/jniglue/org/OpenColorIO/ImageDesc.java36
-rw-r--r--src/jniglue/org/OpenColorIO/Interpolation.java48
-rw-r--r--src/jniglue/org/OpenColorIO/LogTransform.java39
-rw-r--r--src/jniglue/org/OpenColorIO/LoggingLevel.java48
-rw-r--r--src/jniglue/org/OpenColorIO/Look.java48
-rw-r--r--src/jniglue/org/OpenColorIO/LookTransform.java43
-rw-r--r--src/jniglue/org/OpenColorIO/MatrixTransform.java54
-rw-r--r--src/jniglue/org/OpenColorIO/PackedImageDesc.java59
-rw-r--r--src/jniglue/org/OpenColorIO/PlanarImageDesc.java63
-rw-r--r--src/jniglue/org/OpenColorIO/Processor.java51
-rw-r--r--src/jniglue/org/OpenColorIO/Transform.java41
-rw-r--r--src/jniglue/org/OpenColorIO/TransformDirection.java44
-rw-r--r--src/jniglue/org/OpenColorIO/TruelightTransform.java58
-rw-r--r--src/jniglue/tests/CMakeLists.txt17
-rw-r--r--src/jniglue/tests/org/OpenColorIO/BakerTest.java84
-rw-r--r--src/jniglue/tests/org/OpenColorIO/ColorSpaceTest.java41
-rw-r--r--src/jniglue/tests/org/OpenColorIO/ConfigTest.java220
-rw-r--r--src/jniglue/tests/org/OpenColorIO/ContextTest.java38
-rw-r--r--src/jniglue/tests/org/OpenColorIO/GlobalsTest.java150
-rw-r--r--src/jniglue/tests/org/OpenColorIO/GpuShaderDescTest.java24
-rw-r--r--src/jniglue/tests/org/OpenColorIO/LookTest.java35
-rw-r--r--src/jniglue/tests/org/OpenColorIO/OpenColorIOTestSuite.java30
-rw-r--r--src/jniglue/tests/org/OpenColorIO/PackedImageDescTest.java39
-rw-r--r--src/jniglue/tests/org/OpenColorIO/PlanarImageDescTest.java51
-rw-r--r--src/jniglue/tests/org/OpenColorIO/TransformsTest.java237
-rw-r--r--src/jniglue/tests/org/OpenColorIO/test.cc11
60 files changed, 6676 insertions, 0 deletions
diff --git a/src/jniglue/CMakeLists.txt b/src/jniglue/CMakeLists.txt
new file mode 100644
index 0000000..aedb514
--- /dev/null
+++ b/src/jniglue/CMakeLists.txt
@@ -0,0 +1,92 @@
+
+include_directories(
+ ${JNI_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/export/
+ ${CMAKE_BINARY_DIR}/export/
+)
+
+set(JNIOCIO_CLASSES
+ # Core
+ org.OpenColorIO.ExceptionBase
+ org.OpenColorIO.ExceptionMissingFile
+ org.OpenColorIO.Globals
+ org.OpenColorIO.Config
+ org.OpenColorIO.ColorSpace
+ org.OpenColorIO.Processor
+ org.OpenColorIO.GpuShaderDesc
+ org.OpenColorIO.Context
+ org.OpenColorIO.Look
+ org.OpenColorIO.ImageDesc
+ org.OpenColorIO.Transform
+ org.OpenColorIO.PackedImageDesc
+ org.OpenColorIO.PlanarImageDesc
+ org.OpenColorIO.Baker
+ # Enums
+ org.OpenColorIO.LoggingLevel
+ org.OpenColorIO.ColorSpaceDirection
+ org.OpenColorIO.TransformDirection
+ org.OpenColorIO.Interpolation
+ org.OpenColorIO.BitDepth
+ org.OpenColorIO.Allocation
+ org.OpenColorIO.GpuLanguage
+ # Transforms
+ org.OpenColorIO.AllocationTransform
+ org.OpenColorIO.CDLTransform
+ org.OpenColorIO.ColorSpaceTransform
+ org.OpenColorIO.DisplayTransform
+ org.OpenColorIO.ExponentTransform
+ org.OpenColorIO.FileTransform
+ org.OpenColorIO.GroupTransform
+ org.OpenColorIO.LogTransform
+ org.OpenColorIO.LookTransform
+ org.OpenColorIO.MatrixTransform
+ org.OpenColorIO.TruelightTransform
+)
+
+file(GLOB JNIOCIO_JAVAS "org/OpenColorIO/*.java")
+
+message(STATUS "Creating Jar Manifest.txt")
+configure_file(${CMAKE_SOURCE_DIR}/src/jniglue/Manifest.txt.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Manifest.txt @ONLY)
+
+message(STATUS "Creating LoadLibrary.java")
+configure_file(${CMAKE_SOURCE_DIR}/src/jniglue/LoadLibrary.java.in
+ ${CMAKE_CURRENT_BINARY_DIR}/LoadLibrary.java @ONLY)
+list(APPEND JNIOCIO_JAVAS ${CMAKE_CURRENT_BINARY_DIR}/LoadLibrary.java)
+
+set(JNIOCIO_HEADERS)
+set(JNIOCIO_H_INCLUDE "/* DO NOT EDIT THIS FILE - it is machine generated */\n\n")
+foreach(_CLASS ${JNIOCIO_CLASSES})
+ string(REPLACE "." "_" _CLASS_H ${_CLASS})
+ set(_CLASS_H "${_CLASS_H}.h")
+ set(JNIOCIO_HEADERS ${JNIOCIO_HEADERS} "${_CLASS_H}")
+ set(JNIOCIO_H_INCLUDE "${JNIOCIO_H_INCLUDE}#include \"${_CLASS_H}\"\n")
+endforeach()
+message(STATUS "Creating OpenColorIOJNI.h that includes all the ocio jni headers")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OpenColorIOJNI.h" "${JNIOCIO_H_INCLUDE}")
+
+set(JNIOCIO_JAR "${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO-${OCIO_VERSION}.jar")
+add_custom_command(OUTPUT ${JNIOCIO_HEADERS}
+ COMMAND cmake -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/org/OpenColorIO
+ COMMAND ${Java_JAVAC_EXECUTABLE} -cp ${CMAKE_CURRENT_BINARY_DIR} -d ${CMAKE_CURRENT_BINARY_DIR} ${JNIOCIO_JAVAS}
+ COMMAND ${Java_JAVAH_EXECUTABLE} -jni -force ${JNIOCIO_CLASSES}
+ COMMAND ${Java_JAR_EXECUTABLE} vcfm ${JNIOCIO_JAR} Manifest.txt org
+ IMPLICIT_DEPENDS ${JNIOCIO_JAVAS}
+ COMMENT "Compiling .java files, packaged .jar and creating jni C headers")
+
+file(GLOB JNIOCIO_SRC "*.cpp")
+add_library(OpenColorIO-JNI SHARED ${JNIOCIO_SRC} ${JNIOCIO_HEADERS})
+set_target_properties(OpenColorIO-JNI PROPERTIES
+ VERSION ${OCIO_VERSION}
+ SOVERSION ${SOVERSION})
+if(OCIO_STATIC_JNIGLUE)
+ target_link_libraries(OpenColorIO-JNI OpenColorIO_STATIC)
+else()
+ target_link_libraries(OpenColorIO-JNI OpenColorIO)
+endif()
+
+add_subdirectory(tests)
+
+install(TARGETS OpenColorIO-JNI DESTINATION ${CMAKE_INSTALL_EXEC_PREFIX}/lib${LIB_SUFFIX})
+install(FILES ${JNIOCIO_JAR} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ocio/)
diff --git a/src/jniglue/JNIBaker.cpp b/src/jniglue/JNIBaker.cpp
new file mode 100644
index 0000000..c838b70
--- /dev/null
+++ b/src/jniglue/JNIBaker.cpp
@@ -0,0 +1,264 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<BakerJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Baker_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<BakerRcPtr, BakerJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Baker"), Baker::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Baker_createEditableCopy(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return BuildJObject<BakerRcPtr, BakerJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Baker"), bake->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setConfig(JNIEnv * env, jobject self, jobject config)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, config);
+ bake->setConfig(cfg);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Baker_getConfig(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return BuildJConstObject<ConstConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), bake->getConfig());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setFormat(JNIEnv * env, jobject self, jstring formatName)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setFormat(GetJStringValue(env, formatName)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getFormat(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getFormat());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setType(JNIEnv * env, jobject self, jstring type)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setType(GetJStringValue(env, type)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getType(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getType());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setMetadata(JNIEnv * env, jobject self, jstring metadata)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setMetadata(GetJStringValue(env, metadata)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getMetadata(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getMetadata());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setInputSpace(JNIEnv * env, jobject self, jstring inputSpace)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setInputSpace(GetJStringValue(env, inputSpace)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getInputSpace(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getInputSpace());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setShaperSpace(JNIEnv * env, jobject self, jstring shaperSpace)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setShaperSpace(GetJStringValue(env, shaperSpace)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getShaperSpace(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getShaperSpace());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setTargetSpace(JNIEnv * env, jobject self, jstring targetSpace)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ bake->setTargetSpace(GetJStringValue(env, targetSpace)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getTargetSpace(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getTargetSpace());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setShaperSize(JNIEnv * env, jobject self, jint shapersize)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ return bake->setShaperSize((int)shapersize);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Baker_getShaperSize(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return (jint)bake->getShaperSize();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Baker_setCubeSize(JNIEnv * env, jobject self, jint cubesize)
+{
+ OCIO_JNITRY_ENTER()
+ BakerRcPtr bake = GetEditableJOCIO<BakerRcPtr, BakerJNI>(env, self);
+ return bake->setCubeSize((int)cubesize);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Baker_getCubeSize(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return (jint)bake->getCubeSize();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_bake(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ std::ostringstream os;
+ bake->bake(os);
+ return env->NewStringUTF(os.str().c_str());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Baker_getNumFormats(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return (jint)bake->getNumFormats();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getFormatNameByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getFormatNameByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Baker_getFormatExtensionByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstBakerRcPtr bake = GetConstJOCIO<ConstBakerRcPtr, BakerJNI>(env, self);
+ return env->NewStringUTF(bake->getFormatExtensionByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIColorSpace.cpp b/src/jniglue/JNIColorSpace.cpp
new file mode 100644
index 0000000..e540ad2
--- /dev/null
+++ b/src/jniglue/JNIColorSpace.cpp
@@ -0,0 +1,239 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+#include <vector>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<ColorSpaceJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpace_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<ColorSpaceRcPtr, ColorSpaceJNI>(env, self,
+ env->FindClass("org/OpenColorIO/ColorSpace"), ColorSpace::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpace_createEditableCopy(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return BuildJObject<ColorSpaceRcPtr, ColorSpaceJNI>(env, self,
+ env->FindClass("org/OpenColorIO/ColorSpace"), col->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpace_getName(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return env->NewStringUTF(col->getName());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setName(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setName(GetJStringValue(env, name)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpace_getFamily(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return env->NewStringUTF(col->getFamily());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setFamily(JNIEnv * env, jobject self, jstring family)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setFamily(GetJStringValue(env, family)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpace_getEqualityGroup(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return env->NewStringUTF(col->getEqualityGroup());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setEqualityGroup(JNIEnv * env, jobject self, jstring equalityGroup)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setEqualityGroup(GetJStringValue(env, equalityGroup)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpace_getDescription(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return env->NewStringUTF(col->getDescription());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setDescription(JNIEnv * env, jobject self, jstring description)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setDescription(GetJStringValue(env, description)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpace_getBitDepth(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/BitDepth", col->getBitDepth());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setBitDepth(JNIEnv * env, jobject self, jobject bitDepth)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setBitDepth(GetJEnum<BitDepth>(env, bitDepth));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_ColorSpace_isData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return (jboolean)col->isData();
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setIsData(JNIEnv * env, jobject self, jboolean isData)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setIsData((bool)isData);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpace_getAllocation(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/Allocation", col->getAllocation());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setAllocation(JNIEnv * env, jobject self, jobject allocation)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setAllocation(GetJEnum<Allocation>(env, allocation));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_ColorSpace_getAllocationNumVars(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ return (jint)col->getAllocationNumVars();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_getAllocationVars(JNIEnv * env, jobject self, jfloatArray vars)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->getAllocationVars(SetJFloatArrayValue(env, vars, "vars", col->getAllocationNumVars())());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setAllocationVars(JNIEnv * env, jobject self, jint numvars, jfloatArray vars)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ col->setAllocationVars((int)numvars, GetJFloatArrayValue(env, vars, "vars", numvars)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpace_getTransform(JNIEnv * env, jobject self, jobject dir)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceRcPtr col = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ ColorSpaceDirection cd = GetJEnum<ColorSpaceDirection>(env, dir);
+ ConstTransformRcPtr tr = col->getTransform(cd);
+ return BuildJConstObject<ConstTransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(tr)), tr);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpace_setTransform(JNIEnv * env, jobject self, jobject transform, jobject dir)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceRcPtr col = GetEditableJOCIO<ColorSpaceRcPtr, ColorSpaceJNI>(env, self);
+ ColorSpaceDirection cd = GetJEnum<ColorSpaceDirection>(env, dir);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ col->setTransform(tran, cd);
+ OCIO_JNITRY_EXIT()
+}
diff --git a/src/jniglue/JNIConfig.cpp b/src/jniglue/JNIConfig.cpp
new file mode 100644
index 0000000..fa3873a
--- /dev/null
+++ b/src/jniglue/JNIConfig.cpp
@@ -0,0 +1,607 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+#include <vector>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<ConfigJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<ConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), Config::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_CreateFromEnv(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJConstObject<ConstConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), Config::CreateFromEnv());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_CreateFromFile(JNIEnv * env, jobject self, jstring filename)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJConstObject<ConstConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"),
+ Config::CreateFromFile(GetJStringValue(env, filename)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_CreateFromStream(JNIEnv * env, jobject self, jstring istream)
+{
+ OCIO_JNITRY_ENTER()
+ std::istringstream is;
+ is.str(std::string(GetJStringValue(env, istream)()));
+ return BuildJConstObject<ConstConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), Config::CreateFromStream(is));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_createEditableCopy(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJObject<ConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), cfg->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_sanityCheck(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ cfg->sanityCheck();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDescription(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDescription());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setDescription(JNIEnv * env, jobject self, jstring description)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setDescription(GetJStringValue(env, description)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_serialize(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ std::ostringstream os;
+ cfg->serialize(os);
+ return env->NewStringUTF(os.str().c_str());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getCacheID__(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getCacheID());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getCacheID__Lorg_OpenColorIO_Context_2(JNIEnv * env, jobject self, jobject context)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, context);
+ return env->NewStringUTF(cfg->getCacheID(con));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getCurrentContext(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJConstObject<ConstContextRcPtr, ContextJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Context"), cfg->getCurrentContext());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getSearchPath(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getSearchPath());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setSearchPath(JNIEnv * env, jobject self, jstring path)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setSearchPath(GetJStringValue(env, path)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getWorkingDir(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getWorkingDir());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setWorkingDir(JNIEnv * env, jobject self, jstring dirname)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setWorkingDir(GetJStringValue(env, dirname)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getNumColorSpaces(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getNumColorSpaces();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getColorSpaceNameByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getColorSpaceNameByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getColorSpace(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJConstObject<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, self,
+ env->FindClass("org/OpenColorIO/ColorSpace"),
+ cfg->getColorSpace(GetJStringValue(env, name)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getIndexForColorSpace(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getIndexForColorSpace(GetJStringValue(env, name)());
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_addColorSpace(JNIEnv * env, jobject self, jobject cs)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ ConstColorSpaceRcPtr space = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, cs);
+ cfg->addColorSpace(space);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_clearColorSpaces(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->clearColorSpaces();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_parseColorSpaceFromString(JNIEnv * env, jobject self, jstring str)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->parseColorSpaceFromString(GetJStringValue(env, str)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Config_isStrictParsingEnabled(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jboolean)cfg->isStrictParsingEnabled();
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setStrictParsingEnabled(JNIEnv * env, jobject self, jboolean enabled)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setStrictParsingEnabled((bool)enabled);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setRole(JNIEnv * env, jobject self, jstring role, jstring colorSpaceName)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setRole(GetJStringValue(env, role)(), GetJStringValue(env, colorSpaceName)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getNumRoles(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getNumRoles();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Config_hasRole(JNIEnv * env, jobject self, jstring role)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jboolean)cfg->hasRole(GetJStringValue(env, role)());
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getRoleName(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getRoleName((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDefaultDisplay(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDefaultDisplay());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getNumDisplays(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getNumDisplays();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDisplay(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDisplay((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDefaultView(JNIEnv * env, jobject self, jstring display)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDefaultView(GetJStringValue(env, display)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getNumViews(JNIEnv * env, jobject self, jstring display)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getNumViews(GetJStringValue(env, display)());
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getView(JNIEnv * env, jobject self, jstring display, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getView(GetJStringValue(env, display)(), (int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDisplayColorSpaceName(JNIEnv * env, jobject self, jstring display, jstring view)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDisplayColorSpaceName(GetJStringValue(env, display)(),
+ GetJStringValue(env, view)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getDisplayLooks(JNIEnv * env, jobject self, jstring display, jstring view)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getDisplayLooks(GetJStringValue(env, display)(),
+ GetJStringValue(env, view)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// TODO: seems that 4 string params causes a memory error in the JNI layer?
+/*
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_addDisplay(JNIEnv * env, jobject self, jstring display, jstring view, jstring colorSpaceName, jstring looks)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->addDisplay(GetJStringValue(env, display)(),
+ GetJStringValue(env, view)(),
+ GetJStringValue(env, colorSpaceName)(),
+ GetJStringValue(env, looks)());
+
+ OCIO_JNITRY_EXIT()
+}
+*/
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_clearDisplays(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->clearDisplays();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setActiveDisplays(JNIEnv * env, jobject self, jstring displays)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setActiveDisplays(GetJStringValue(env, displays)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getActiveDisplays(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getActiveDisplays());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setActiveViews(JNIEnv * env, jobject self, jstring views)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setActiveViews(GetJStringValue(env, views)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getActiveViews(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getActiveViews());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_getDefaultLumaCoefs(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ cfg->getDefaultLumaCoefs(SetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_setDefaultLumaCoefs(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->setDefaultLumaCoefs(GetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getLook(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJConstObject<ConstLookRcPtr, LookJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Look"), cfg->getLook(GetJStringValue(env, name)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Config_getNumLooks(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return (jint)cfg->getNumLooks();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Config_getLookNameByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return env->NewStringUTF(cfg->getLookNameByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_addLook(JNIEnv * env, jobject self, jobject look)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ ConstLookRcPtr lok = GetConstJOCIO<ConstLookRcPtr, LookJNI>(env, look);
+ cfg->addLook(lok);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Config_clearLooks(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConfigRcPtr cfg = GetEditableJOCIO<ConfigRcPtr, ConfigJNI>(env, self);
+ cfg->clearLooks();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_Context_2Lorg_OpenColorIO_ColorSpace_2Lorg_OpenColorIO_ColorSpace_2
+ (JNIEnv * env, jobject self, jobject context, jobject srcColorSpace, jobject dstColorSpace)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, context);
+ ConstColorSpaceRcPtr src = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, srcColorSpace);
+ ConstColorSpaceRcPtr dst = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, dstColorSpace);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(con, src, dst));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_ColorSpace_2Lorg_OpenColorIO_ColorSpace_2
+ (JNIEnv * env, jobject self, jobject srcColorSpace, jobject dstColorSpace)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstColorSpaceRcPtr src = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, srcColorSpace);
+ ConstColorSpaceRcPtr dst = GetConstJOCIO<ConstColorSpaceRcPtr, ColorSpaceJNI>(env, dstColorSpace);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(src, dst));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Ljava_lang_String_2Ljava_lang_String_2
+ (JNIEnv * env, jobject self, jstring srcName, jstring dstName)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(
+ GetJStringValue(env, srcName)(), GetJStringValue(env, dstName)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_Context_2Ljava_lang_String_2Ljava_lang_String_2
+ (JNIEnv * env, jobject self, jobject context, jstring srcName, jstring dstName)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, context);
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(con,
+ GetJStringValue(env, srcName)(), GetJStringValue(env, dstName)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_Transform_2
+ (JNIEnv * env, jobject self, jobject transform)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(tran));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_Transform_2Lorg_OpenColorIO_TransformDirection_2
+ (JNIEnv * env, jobject self, jobject transform, jobject direction)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ TransformDirection dir = GetJEnum<TransformDirection>(env, direction);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(tran, dir));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Config_getProcessor__Lorg_OpenColorIO_Context_2Lorg_OpenColorIO_Transform_2Lorg_OpenColorIO_TransformDirection_2
+ (JNIEnv * env, jobject self, jobject context, jobject transform, jobject direction)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, self);
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, context);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ TransformDirection dir = GetJEnum<TransformDirection>(env, direction);
+ return BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), cfg->getProcessor(con, tran, dir));
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIContext.cpp b/src/jniglue/JNIContext.cpp
new file mode 100644
index 0000000..e1fcffd
--- /dev/null
+++ b/src/jniglue/JNIContext.cpp
@@ -0,0 +1,170 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Context_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<ContextJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Context_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<ContextRcPtr, ContextJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Context"), Context::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Context_createEditableCopy(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return BuildJObject<ContextRcPtr, ContextJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Context"), con->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_getCacheID(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->getCacheID());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Context_setSearchPath(JNIEnv * env, jobject self, jstring path)
+{
+ OCIO_JNITRY_ENTER()
+ ContextRcPtr con = GetEditableJOCIO<ContextRcPtr, ContextJNI>(env, self);
+ con->setSearchPath(GetJStringValue(env, path)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_getSearchPath(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->getSearchPath());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Context_setWorkingDir(JNIEnv * env, jobject self, jstring dirname)
+{
+ OCIO_JNITRY_ENTER()
+ ContextRcPtr con = GetEditableJOCIO<ContextRcPtr, ContextJNI>(env, self);
+ con->setWorkingDir(GetJStringValue(env, dirname)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_getWorkingDir(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->getWorkingDir());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Context_setStringVar(JNIEnv * env, jobject self, jstring name, jstring var)
+{
+ OCIO_JNITRY_ENTER()
+ ContextRcPtr con = GetEditableJOCIO<ContextRcPtr, ContextJNI>(env, self);
+ con->setStringVar(GetJStringValue(env, name)(), GetJStringValue(env, var)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_getStringVar(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->getStringVar(GetJStringValue(env, name)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Context_getNumStringVars(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return (jint)con->getNumStringVars();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_getStringVarNameByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->getStringVarNameByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Context_loadEnvironment(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ContextRcPtr con = GetEditableJOCIO<ContextRcPtr, ContextJNI>(env, self);
+ con->loadEnvironment();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_resolveStringVar(JNIEnv * env, jobject self, jstring val)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->resolveStringVar(GetJStringValue(env, val)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Context_resolveFileLocation(JNIEnv * env, jobject self, jstring filename)
+{
+ OCIO_JNITRY_ENTER()
+ ConstContextRcPtr con = GetConstJOCIO<ConstContextRcPtr, ContextJNI>(env, self);
+ return env->NewStringUTF(con->resolveFileLocation(GetJStringValue(env, filename)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIGlobals.cpp b/src/jniglue/JNIGlobals.cpp
new file mode 100644
index 0000000..9d57c84
--- /dev/null
+++ b/src/jniglue/JNIGlobals.cpp
@@ -0,0 +1,417 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Globals_create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ jfieldID fid;
+ jclass wclass = env->GetObjectClass(self);
+ fid = env->GetFieldID(wclass, "ROLE_DEFAULT", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_DEFAULT));
+ fid = env->GetFieldID(wclass, "ROLE_REFERENCE", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_REFERENCE));
+ fid = env->GetFieldID(wclass, "ROLE_DATA", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_DATA));
+ fid = env->GetFieldID(wclass, "ROLE_COLOR_PICKING", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_COLOR_PICKING));
+ fid = env->GetFieldID(wclass, "ROLE_SCENE_LINEAR", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_SCENE_LINEAR));
+ fid = env->GetFieldID(wclass, "ROLE_COMPOSITING_LOG", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_COMPOSITING_LOG));
+ fid = env->GetFieldID(wclass, "ROLE_COLOR_TIMING", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_COLOR_TIMING));
+ fid = env->GetFieldID(wclass, "ROLE_TEXTURE_PAINT", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_TEXTURE_PAINT));
+ fid = env->GetFieldID(wclass, "ROLE_MATTE_PAINT", "Ljava/lang/String;");
+ env->SetObjectField(self, fid, env->NewStringUTF(ROLE_MATTE_PAINT));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Globals_ClearAllCaches(JNIEnv * env, jobject)
+{
+ OCIO_JNITRY_ENTER()
+ ClearAllCaches();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_GetVersion(JNIEnv * env, jobject)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(GetVersion());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Globals_GetVersionHex(JNIEnv * env, jobject)
+{
+ OCIO_JNITRY_ENTER()
+ return (jint)GetVersionHex();
+ OCIO_JNITRY_EXIT(-1)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_GetLoggingLevel(JNIEnv * env, jobject)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/LoggingLevel", GetLoggingLevel());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Globals_SetLoggingLevel(JNIEnv * env, jobject, jobject level)
+{
+ OCIO_JNITRY_ENTER()
+ SetLoggingLevel(GetJEnum<LoggingLevel>(env, level));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_GetCurrentConfig(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ jobject obj = BuildJConstObject<ConstConfigRcPtr, ConfigJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Config"), GetCurrentConfig());
+ return obj;
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Globals_SetCurrentConfig(JNIEnv * env, jobject, jobject config)
+{
+ OCIO_JNITRY_ENTER()
+ ConstConfigRcPtr cfg = GetConstJOCIO<ConstConfigRcPtr, ConfigJNI>(env, config);
+ SetCurrentConfig(cfg);
+ OCIO_JNITRY_EXIT()
+}
+
+// Bool
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_BoolToString(JNIEnv * env, jobject, jboolean val)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(BoolToString((bool)val));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Globals_BoolFromString(JNIEnv * env, jobject, jstring s)
+{
+ OCIO_JNITRY_ENTER()
+ return (jboolean)BoolFromString(GetJStringValue(env, s)());
+ OCIO_JNITRY_EXIT(false)
+}
+
+// LoggingLevel
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_LoggingLevel_toString(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ LoggingLevelToString(GetJEnum<LoggingLevel>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_LoggingLevel_equals(JNIEnv * env, jobject self, jobject obj)
+{
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<LoggingLevel>(env, self)
+ == GetJEnum<LoggingLevel>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_LoggingLevelToString(JNIEnv * env, jobject, jobject level)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ LoggingLevelToString(GetJEnum<LoggingLevel>(env, level)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_LoggingLevelFromString(JNIEnv * env, jobject, jstring s)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/LoggingLevel",
+ LoggingLevelFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// TransformDirection
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TransformDirection_toString(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ TransformDirectionToString(GetJEnum<TransformDirection>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_TransformDirection_equals(JNIEnv * env, jobject self, jobject obj)
+{
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<TransformDirection>(env, self)
+ == GetJEnum<TransformDirection>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_TransformDirectionToString(JNIEnv * env, jobject,
+ jobject dir)
+{
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ TransformDirectionToString(GetJEnum<TransformDirection>(env, dir)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_TransformDirectionFromString(JNIEnv * env, jobject,
+ jstring s)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/TransformDirection",
+ TransformDirectionFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_GetInverseTransformDirection(JNIEnv * env, jobject,
+ jobject dir) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/TransformDirection",
+ GetInverseTransformDirection(GetJEnum<TransformDirection>(env, dir)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_CombineTransformDirections(JNIEnv * env, jobject,
+ jobject d1, jobject d2) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/TransformDirection",
+ CombineTransformDirections(GetJEnum<TransformDirection>(env, d1),
+ GetJEnum<TransformDirection>(env, d2)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// ColorSpaceDirection
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpaceDirection_toString(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ ColorSpaceDirectionToString(GetJEnum<ColorSpaceDirection>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_ColorSpaceDirection_equals(JNIEnv * env, jobject self, jobject obj) {
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<ColorSpaceDirection>(env, self)
+ == GetJEnum<ColorSpaceDirection>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_ColorSpaceDirectionToString(JNIEnv * env, jobject, jobject dir) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ ColorSpaceDirectionToString(GetJEnum<ColorSpaceDirection>(env, dir)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_ColorSpaceDirectionFromString(JNIEnv * env, jobject, jstring s) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/ColorSpaceDirection",
+ ColorSpaceDirectionFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// BitDepth
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_BitDepth_toString(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ BitDepthToString(GetJEnum<BitDepth>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_BitDepth_equals(JNIEnv * env, jobject self, jobject obj) {
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<BitDepth>(env, self)
+ == GetJEnum<BitDepth>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_BitDepthToString(JNIEnv * env, jobject, jobject bitDepth) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ BitDepthToString(GetJEnum<BitDepth>(env, bitDepth)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_BitDepthFromString(JNIEnv * env, jobject, jstring s) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/BitDepth",
+ BitDepthFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Globals_BitDepthIsFloat(JNIEnv * env, jobject, jobject bitDepth) {
+ OCIO_JNITRY_ENTER()
+ return (jboolean)BitDepthIsFloat(GetJEnum<BitDepth>(env, bitDepth));
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_Globals_BitDepthToInt(JNIEnv * env, jobject, jobject bitDepth) {
+ OCIO_JNITRY_ENTER()
+ return (jint) BitDepthToInt(GetJEnum<BitDepth>(env, bitDepth));
+ OCIO_JNITRY_EXIT(-1)
+}
+
+// Allocation
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Allocation_toString(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ AllocationToString(GetJEnum<Allocation>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Allocation_equals(JNIEnv * env, jobject self, jobject obj) {
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<Allocation>(env, self)
+ == GetJEnum<Allocation>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_AllocationToString(JNIEnv * env, jobject, jobject allocation) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ AllocationToString(GetJEnum<Allocation>(env, allocation)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_AllocationFromString(JNIEnv * env, jobject, jstring s) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/Allocation",
+ AllocationFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// Interpolation
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Interpolation_toString(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ InterpolationToString(GetJEnum<Interpolation>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Interpolation_equals(JNIEnv * env, jobject self, jobject obj) {
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<Interpolation>(env, self)
+ == GetJEnum<Interpolation>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_InterpolationToString(JNIEnv * env, jobject, jobject interp) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ InterpolationToString(GetJEnum<Interpolation>(env, interp)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_InterpolationFromString(JNIEnv * env, jobject, jstring s) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/Interpolation",
+ InterpolationFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// GpuLanguage
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_GpuLanguage_toString(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ GpuLanguageToString(GetJEnum<GpuLanguage>(env, self)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_GpuLanguage_equals(JNIEnv * env, jobject self, jobject obj) {
+ OCIO_JNITRY_ENTER()
+ return GetJEnum<GpuLanguage>(env, self)
+ == GetJEnum<GpuLanguage>(env, obj);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Globals_GpuLanguageToString(JNIEnv * env, jobject, jobject language) {
+ OCIO_JNITRY_ENTER()
+ return env->NewStringUTF(
+ GpuLanguageToString(GetJEnum<GpuLanguage>(env, language)));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Globals_GpuLanguageFromString(JNIEnv * env, jobject, jstring s) {
+ OCIO_JNITRY_ENTER()
+ return BuildJEnum(env, "org/OpenColorIO/GpuLanguage",
+ GpuLanguageFromString(GetJStringValue(env, s)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIGpuShaderDesc.cpp b/src/jniglue/JNIGpuShaderDesc.cpp
new file mode 100644
index 0000000..21a57ea
--- /dev/null
+++ b/src/jniglue/JNIGpuShaderDesc.cpp
@@ -0,0 +1,125 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+namespace
+{
+
+void GpuShaderDesc_deleter(GpuShaderDesc* d)
+{
+ delete d;
+}
+
+}; // end anon namespace
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_create(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ GpuShaderDescJNI * jnistruct = new GpuShaderDescJNI();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new ConstGpuShaderDescRcPtr();
+ jnistruct->cppobj = new GpuShaderDescRcPtr();
+ *jnistruct->cppobj = GpuShaderDescRcPtr(new GpuShaderDesc(), &GpuShaderDesc_deleter);
+ jnistruct->isconst = false;
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ env->SetLongField(self, fid, (jlong)jnistruct);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_dispose(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<GpuShaderDescJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_setLanguage(JNIEnv * env, jobject self, jobject lang) {
+ OCIO_JNITRY_ENTER()
+ GpuShaderDescRcPtr ptr = GetEditableJOCIO<GpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ ptr->setLanguage(GetJEnum<GpuLanguage>(env, lang));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_getLanguage(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstGpuShaderDescRcPtr ptr = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/GpuLanguage", ptr->getLanguage());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_setFunctionName(JNIEnv * env, jobject self, jstring name) {
+ OCIO_JNITRY_ENTER()
+ const char *_name = env->GetStringUTFChars(name, 0);
+ GpuShaderDescRcPtr ptr = GetEditableJOCIO<GpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ ptr->setFunctionName(_name);
+ env->ReleaseStringUTFChars(name, _name);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_getFunctionName(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstGpuShaderDescRcPtr ptr = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ return env->NewStringUTF(ptr->getFunctionName());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_setLut3DEdgeLen(JNIEnv * env, jobject self, jint len) {
+ OCIO_JNITRY_ENTER()
+ GpuShaderDescRcPtr ptr = GetEditableJOCIO<GpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ ptr->setLut3DEdgeLen((int)len);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_getLut3DEdgeLen(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstGpuShaderDescRcPtr ptr = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ return (jint)ptr->getLut3DEdgeLen();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_GpuShaderDesc_getCacheID(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstGpuShaderDescRcPtr ptr = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, self);
+ return env->NewStringUTF(ptr->getCacheID());
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIImageDesc.cpp b/src/jniglue/JNIImageDesc.cpp
new file mode 100644
index 0000000..c307984
--- /dev/null
+++ b/src/jniglue/JNIImageDesc.cpp
@@ -0,0 +1,309 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+namespace
+{
+void ImageDesc_deleter(ImageDesc* d)
+{
+ delete d;
+}
+
+void ImageDesc_dispose(JNIEnv * env, jobject self)
+{
+ DisposeJOCIO<ImageDescJNI>(env, self);
+}
+
+}; // end anon namespace
+
+// PackedImageDesc
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_PackedImageDesc_create__Ljava_nio_FloatBuffer_2JJJ(JNIEnv * env,
+ jobject self, jobject data, jlong width, jlong height, jlong numChannels)
+{
+ OCIO_JNITRY_ENTER()
+ float* _data = GetJFloatBuffer(env, data, width * height * numChannels);
+ if(!_data) throw Exception("Could not find direct buffer address for data");
+ ImageDescJNI * jnistruct = new ImageDescJNI();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new ConstImageDescRcPtr();
+ jnistruct->cppobj = new ImageDescRcPtr();
+ *jnistruct->cppobj = ImageDescRcPtr(new PackedImageDesc(_data, (long)width,
+ (long)height, (long)numChannels), &ImageDesc_deleter);
+ jnistruct->isconst = false;
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ env->SetLongField(self, fid, (jlong)jnistruct);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_PackedImageDesc_create__Ljava_nio_FloatBuffer_2JJJJJJ(JNIEnv * env,
+ jobject self, jobject data, jlong width, jlong height, jlong numChannels,
+ jlong chanStrideBytes, jlong xStrideBytes, jlong yStrideBytes)
+{
+ OCIO_JNITRY_ENTER()
+ float* _data = GetJFloatBuffer(env, data, width * height * numChannels);
+ if(!_data) throw Exception("Could not find direct buffer address for data");
+ ImageDescJNI * jnistruct = new ImageDescJNI();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new ConstImageDescRcPtr();
+ jnistruct->cppobj = new ImageDescRcPtr();
+ *jnistruct->cppobj = ImageDescRcPtr(new PackedImageDesc(_data, (long)width,
+ (long)height, (long)numChannels, (long)chanStrideBytes, (long) xStrideBytes,
+ (long)yStrideBytes), &ImageDesc_deleter);
+ jnistruct->isconst = false;
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ env->SetLongField(self, fid, (jlong)jnistruct);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_PackedImageDesc_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ImageDesc_dispose(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ int size = ptr->getWidth() * ptr->getHeight() * ptr->getNumChannels();
+ return NewJFloatBuffer(env, ptr->getData(), size);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getWidth(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getWidth();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getHeight(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getHeight();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getNumChannels(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getNumChannels();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getChanStrideBytes(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getChanStrideBytes();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getXStrideBytes(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getXStrideBytes();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PackedImageDesc_getYStrideBytes(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPackedImageDescRcPtr ptr = DynamicPtrCast<const PackedImageDesc>(img);
+ return (jlong)ptr->getYStrideBytes();
+ OCIO_JNITRY_EXIT(0)
+}
+
+// PlanarImageDesc
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ImageDesc_dispose(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_create__Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2JJ
+ (JNIEnv * env, jobject self, jobject rData, jobject gData, jobject bData,
+ jobject aData, jlong width, jlong height)
+{
+ OCIO_JNITRY_ENTER()
+ int32_t size = width * height;
+ float* _rdata = GetJFloatBuffer(env, rData, size);
+ if(!_rdata) throw Exception("Could not find direct buffer address for rData");
+ float* _gdata = GetJFloatBuffer(env, gData, size);
+ if(!_gdata) throw Exception("Could not find direct buffer address for gData");
+ float* _bdata = GetJFloatBuffer(env, bData, size);
+ if(!_bdata) throw Exception("Could not find direct buffer address for bData");
+ float* _adata = GetJFloatBuffer(env, aData, size);
+ if(!_adata) throw Exception("Could not find direct buffer address for aData");
+ ImageDescJNI * jnistruct = new ImageDescJNI();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new ConstImageDescRcPtr();
+ jnistruct->cppobj = new ImageDescRcPtr();
+ *jnistruct->cppobj = ImageDescRcPtr(new PlanarImageDesc(_rdata, _gdata,
+ _bdata, _adata, (long)width, (long)height), &ImageDesc_deleter);
+ jnistruct->isconst = false;
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ env->SetLongField(self, fid, (jlong)jnistruct);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void
+JNICALL Java_org_OpenColorIO_PlanarImageDesc_create__Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2JJJ
+ (JNIEnv * env, jobject self, jobject rData, jobject gData, jobject bData,
+ jobject aData, jlong width, jlong height, jlong yStrideBytes)
+{
+ OCIO_JNITRY_ENTER()
+ int32_t size = width * height;
+ float* _rdata = GetJFloatBuffer(env, rData, size);
+ if(!_rdata) throw Exception("Could not find direct buffer address for rData");
+ float* _gdata = GetJFloatBuffer(env, gData, size);
+ if(!_gdata) throw Exception("Could not find direct buffer address for gData");
+ float* _bdata = GetJFloatBuffer(env, bData, size);
+ if(!_bdata) throw Exception("Could not find direct buffer address for bData");
+ float* _adata = GetJFloatBuffer(env, aData, size);
+ if(!_adata) throw Exception("Could not find direct buffer address for aData");
+ ImageDescJNI * jnistruct = new ImageDescJNI();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new ConstImageDescRcPtr();
+ jnistruct->cppobj = new ImageDescRcPtr();
+ *jnistruct->cppobj = ImageDescRcPtr(new PlanarImageDesc(_rdata, _gdata, _bdata,
+ _adata, (long)width, (long)height, (long)yStrideBytes), &ImageDesc_deleter);
+ jnistruct->isconst = false;
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ env->SetLongField(self, fid, (jlong)jnistruct);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getRData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ int size = ptr->getWidth() * ptr->getHeight();
+ return NewJFloatBuffer(env, ptr->getRData(), size);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getGData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ int size = ptr->getWidth() * ptr->getHeight();
+ return NewJFloatBuffer(env, ptr->getGData(), size);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getBData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ int size = ptr->getWidth() * ptr->getHeight();
+ return NewJFloatBuffer(env, ptr->getBData(), size);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getAData(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ int size = ptr->getWidth() * ptr->getHeight();
+ return NewJFloatBuffer(env, ptr->getAData(), size);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getWidth(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ return (jlong)ptr->getWidth();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getHeight(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ return (jlong)ptr->getHeight();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jlong JNICALL
+Java_org_OpenColorIO_PlanarImageDesc_getYStrideBytes(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstImageDescRcPtr img = GetConstJOCIO<ConstImageDescRcPtr, ImageDescJNI>(env, self);
+ ConstPlanarImageDescRcPtr ptr = DynamicPtrCast<const PlanarImageDesc>(img);
+ return (jlong)ptr->getYStrideBytes();
+ OCIO_JNITRY_EXIT(0)
+}
diff --git a/src/jniglue/JNILook.cpp b/src/jniglue/JNILook.cpp
new file mode 100644
index 0000000..ebd7731
--- /dev/null
+++ b/src/jniglue/JNILook.cpp
@@ -0,0 +1,131 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+#include <vector>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Look_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<LookJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Look_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<LookRcPtr, LookJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Look"), Look::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Look_getName(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookRcPtr lok = GetConstJOCIO<ConstLookRcPtr, LookJNI>(env, self);
+ return env->NewStringUTF(lok->getName());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Look_setName(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ LookRcPtr lok = GetEditableJOCIO<LookRcPtr, LookJNI>(env, self);
+ lok->setName(GetJStringValue(env, name)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Look_getProcessSpace(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookRcPtr lok = GetConstJOCIO<ConstLookRcPtr, LookJNI>(env, self);
+ return env->NewStringUTF(lok->getProcessSpace());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Look_setProcessSpace(JNIEnv * env, jobject self, jstring processSpace)
+{
+ OCIO_JNITRY_ENTER()
+ LookRcPtr lok = GetEditableJOCIO<LookRcPtr, LookJNI>(env, self);
+ lok->setProcessSpace(GetJStringValue(env, processSpace)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Look_getTransform(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookRcPtr lok = GetConstJOCIO<ConstLookRcPtr, LookJNI>(env, self);
+ ConstTransformRcPtr tr = lok->getTransform();
+ return BuildJConstObject<ConstTransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(tr)), tr);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Look_setTransform(JNIEnv * env, jobject self, jobject transform)
+{
+ OCIO_JNITRY_ENTER()
+ LookRcPtr lok = GetEditableJOCIO<LookRcPtr, LookJNI>(env, self);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ lok->setTransform(tran);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Look_getInverseTransform(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookRcPtr lok = GetConstJOCIO<ConstLookRcPtr, LookJNI>(env, self);
+ ConstTransformRcPtr tr = lok->getInverseTransform();
+ return BuildJConstObject<ConstTransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(tr)), tr);
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Look_setInverseTransform(JNIEnv * env, jobject self, jobject transform)
+{
+ OCIO_JNITRY_ENTER()
+ LookRcPtr lok = GetEditableJOCIO<LookRcPtr, LookJNI>(env, self);
+ ConstTransformRcPtr tran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ lok->setInverseTransform(tran);
+ OCIO_JNITRY_EXIT()
+}
diff --git a/src/jniglue/JNIProcessor.cpp b/src/jniglue/JNIProcessor.cpp
new file mode 100644
index 0000000..ada897a
--- /dev/null
+++ b/src/jniglue/JNIProcessor.cpp
@@ -0,0 +1,133 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include <sstream>
+#include <vector>
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Processor_Create(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ jobject obj = BuildJConstObject<ConstProcessorRcPtr, ProcessorJNI>(env, self,
+ env->FindClass("org/OpenColorIO/Processor"), Processor::Create());
+ return obj;
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Processor_isNoOp(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ return (jboolean)ptr->isNoOp();
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_Processor_hasChannelCrosstalk(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ return (jboolean)ptr->hasChannelCrosstalk();
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Processor_apply(JNIEnv * env, jobject self, jobject img) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ImageDescRcPtr _img = GetEditableJOCIO<ImageDescRcPtr, ImageDescJNI>(env, img);
+ ptr->apply(*_img.get());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Processor_applyRGB(JNIEnv * env, jobject self, jfloatArray pixel) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ptr->applyRGB(GetJFloatArrayValue(env, pixel, "pixel", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Processor_applyRGBA(JNIEnv * env, jobject self, jfloatArray pixel) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ptr->applyRGBA(GetJFloatArrayValue(env, pixel, "pixel", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Processor_getCpuCacheID(JNIEnv * env, jobject self) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ return env->NewStringUTF(ptr->getCpuCacheID());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Processor_getGpuShaderText(JNIEnv * env, jobject self, jobject shaderDesc) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ConstGpuShaderDescRcPtr desc = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, shaderDesc);
+ return env->NewStringUTF(ptr->getGpuShaderText(*desc.get()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Processor_getGpuShaderTextCacheID(JNIEnv * env, jobject self, jobject shaderDesc) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ConstGpuShaderDescRcPtr desc = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, shaderDesc);
+ return env->NewStringUTF(ptr->getGpuShaderTextCacheID(*desc.get()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Processor_getGpuLut3D(JNIEnv * env, jobject self, jobject lut3d, jobject shaderDesc) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ConstGpuShaderDescRcPtr desc = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, shaderDesc);
+ int len = desc->getLut3DEdgeLen();
+ int size = 3*len*len*len;
+ float* _lut3d = GetJFloatBuffer(env, lut3d, size);
+ ptr->getGpuLut3D(_lut3d, *desc.get());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_Processor_getGpuLut3DCacheID(JNIEnv * env, jobject self, jobject shaderDesc) {
+ OCIO_JNITRY_ENTER()
+ ConstProcessorRcPtr ptr = GetConstJOCIO<ConstProcessorRcPtr, ProcessorJNI>(env, self);
+ ConstGpuShaderDescRcPtr desc = GetConstJOCIO<ConstGpuShaderDescRcPtr, GpuShaderDescJNI>(env, shaderDesc);
+ return env->NewStringUTF(ptr->getGpuLut3DCacheID(*desc.get()));
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNITransforms.cpp b/src/jniglue/JNITransforms.cpp
new file mode 100644
index 0000000..6e2fe26
--- /dev/null
+++ b/src/jniglue/JNITransforms.cpp
@@ -0,0 +1,1151 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "OpenColorIO/OpenColorIO.h"
+#include "OpenColorIOJNI.h"
+#include "JNIUtil.h"
+OCIO_NAMESPACE_USING
+
+// Transform
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Transform_dispose(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ DisposeJOCIO<TransformJNI>(env, self);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Transform_createEditableCopy(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTransformRcPtr ctran = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, self);
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(ctran)), ctran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_Transform_getDirection(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/TransformDirection", ptr->getDirection());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_Transform_setDirection(JNIEnv * env, jobject self, jobject dir)
+{
+ OCIO_JNITRY_ENTER()
+ TransformRcPtr ptr = GetEditableJOCIO<TransformRcPtr, TransformJNI>(env, self);
+ ptr->setDirection(GetJEnum<TransformDirection>(env, dir));
+ OCIO_JNITRY_EXIT()
+}
+
+// AllocationTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_AllocationTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<AllocationTransformRcPtr, AllocationTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/AllocationTransform"), AllocationTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_AllocationTransform_getAllocation(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstAllocationTransformRcPtr alctran = GetConstJOCIO<ConstAllocationTransformRcPtr, AllocationTransformJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/Allocation", alctran->getAllocation());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_AllocationTransform_setAllocation(JNIEnv * env, jobject self, jobject allocation)
+{
+ OCIO_JNITRY_ENTER()
+ AllocationTransformRcPtr alctran = GetEditableJOCIO<AllocationTransformRcPtr, AllocationTransformJNI>(env, self);
+ alctran->setAllocation(GetJEnum<Allocation>(env, allocation));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_AllocationTransform_getNumVars(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstAllocationTransformRcPtr alctran = GetConstJOCIO<ConstAllocationTransformRcPtr, AllocationTransformJNI>(env, self);
+ return (jint)alctran->getNumVars();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_AllocationTransform_getVars(JNIEnv * env, jobject self, jfloatArray vars)
+{
+ OCIO_JNITRY_ENTER()
+ ConstAllocationTransformRcPtr alctran = GetConstJOCIO<ConstAllocationTransformRcPtr, AllocationTransformJNI>(env, self);
+ alctran->getVars(SetJFloatArrayValue(env, vars, "vars", alctran->getNumVars())());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_AllocationTransform_setVars(JNIEnv * env, jobject self, jint numvars, jfloatArray vars)
+{
+ OCIO_JNITRY_ENTER()
+ AllocationTransformRcPtr alctran = GetEditableJOCIO<AllocationTransformRcPtr, AllocationTransformJNI>(env, self);
+ alctran->setVars((int)numvars, GetJFloatArrayValue(env, vars, "vars", numvars)());
+ OCIO_JNITRY_EXIT()
+}
+
+// CDLTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_CDLTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<CDLTransformRcPtr, CDLTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/CDLTransform"), CDLTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_CDLTransform_CreateFromFile(JNIEnv * env, jobject self, jstring src, jstring cccid)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<CDLTransformRcPtr, CDLTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/CDLTransform"),
+ CDLTransform::CreateFromFile(GetJStringValue(env, src)(), GetJStringValue(env, cccid)()));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_CDLTransform_equals(JNIEnv * env, jobject self, jobject obj)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr left = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ ConstCDLTransformRcPtr right = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, obj);
+ return (jboolean)left->equals(right);
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_CDLTransform_getXML(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ return env->NewStringUTF(cdltran->getXML());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setXML(JNIEnv * env, jobject self, jstring xml)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setXML(GetJStringValue(env, xml)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setSlope(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setSlope(GetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_getSlope(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->getSlope(SetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setOffset(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setOffset(GetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_getOffset(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->getOffset(SetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setPower(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setPower(GetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_getPower(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->getPower(SetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setSOP(JNIEnv * env, jobject self, jfloatArray vec9)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setSOP(GetJFloatArrayValue(env, vec9, "vec9", 9)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_getSOP(JNIEnv * env, jobject self, jfloatArray vec9)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->getSOP(SetJFloatArrayValue(env, vec9, "vec9", 9)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setSat(JNIEnv * env, jobject self, jfloat sat)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setSat((float)sat);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jfloat JNICALL
+Java_org_OpenColorIO_CDLTransform_getSat(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ return (jfloat)cdltran->getSat();
+ OCIO_JNITRY_EXIT(1.f)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_getSatLumaCoefs(JNIEnv * env, jobject self, jfloatArray rgb)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->getSatLumaCoefs(SetJFloatArrayValue(env, rgb, "rgb", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setID(JNIEnv * env, jobject self, jstring id)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setID(GetJStringValue(env, id)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_CDLTransform_getID(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ return env->NewStringUTF(cdltran->getID());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_CDLTransform_setDescription(JNIEnv * env, jobject self, jstring desc)
+{
+ OCIO_JNITRY_ENTER()
+ CDLTransformRcPtr cdltran = GetEditableJOCIO<CDLTransformRcPtr, CDLTransformJNI>(env, self);
+ cdltran->setDescription(GetJStringValue(env, desc)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_CDLTransform_getDescription(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstCDLTransformRcPtr cdltran = GetConstJOCIO<ConstCDLTransformRcPtr, CDLTransformJNI>(env, self);
+ return env->NewStringUTF(cdltran->getDescription());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// ColorSpaceTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ColorSpaceTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<ColorSpaceTransformRcPtr, ColorSpaceTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/ColorSpaceTransform"), ColorSpaceTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpaceTransform_getSrc(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceTransformRcPtr coltran = GetConstJOCIO<ConstColorSpaceTransformRcPtr, ColorSpaceTransformJNI>(env, self);
+ return env->NewStringUTF(coltran->getSrc());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpaceTransform_setSrc(JNIEnv * env, jobject self, jstring src)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceTransformRcPtr coltran = GetEditableJOCIO<ColorSpaceTransformRcPtr, ColorSpaceTransformJNI>(env, self);
+ coltran->setSrc(GetJStringValue(env, src)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_ColorSpaceTransform_getDst(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstColorSpaceTransformRcPtr coltran = GetConstJOCIO<ConstColorSpaceTransformRcPtr, ColorSpaceTransformJNI>(env, self);
+ return env->NewStringUTF(coltran->getDst());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ColorSpaceTransform_setDst(JNIEnv * env, jobject self, jstring dst)
+{
+ OCIO_JNITRY_ENTER()
+ ColorSpaceTransformRcPtr coltran = GetEditableJOCIO<ColorSpaceTransformRcPtr, ColorSpaceTransformJNI>(env, self);
+ coltran->setDst(GetJStringValue(env, dst)());
+ OCIO_JNITRY_EXIT()
+}
+
+// DisplayTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_DisplayTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<DisplayTransformRcPtr, DisplayTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/DisplayTransform"), DisplayTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setInputColorSpaceName(JNIEnv * env, jobject self, jstring name)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ dtran->setInputColorSpaceName(GetJStringValue(env, name)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_DisplayTransform_getInputColorSpaceName(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ return env->NewStringUTF(dtran->getInputColorSpaceName());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setLinearCC(JNIEnv * env, jobject self, jobject cc)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, cc);
+ dtran->setLinearCC(ptr);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_DisplayTransform_getLinearCC(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr cctran = dtran->getLinearCC();
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(cctran)), cctran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setColorTimingCC(JNIEnv * env, jobject self, jobject cc)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, cc);
+ dtran->setColorTimingCC(ptr);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_DisplayTransform_getColorTimingCC(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr cctran = dtran->getColorTimingCC();
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(cctran)), cctran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setChannelView(JNIEnv * env, jobject self, jobject transform)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ dtran->setChannelView(ptr);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_DisplayTransform_getChannelView(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr cvtran = dtran->getChannelView();
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(cvtran)), cvtran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setDisplay(JNIEnv * env, jobject self, jstring display)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ dtran->setDisplay(GetJStringValue(env, display)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_DisplayTransform_getDisplay(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ return env->NewStringUTF(dtran->getDisplay());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setView(JNIEnv * env, jobject self, jstring view)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ dtran->setView(GetJStringValue(env, view)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_DisplayTransform_getView(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ return env->NewStringUTF(dtran->getView());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setDisplayCC(JNIEnv * env, jobject self, jobject cc)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, cc);
+ dtran->setDisplayCC(ptr);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_DisplayTransform_getDisplayCC(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ ConstTransformRcPtr cctran = dtran->getDisplayCC();
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(cctran)), cctran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setLooksOverride(JNIEnv * env, jobject self, jstring looks)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ dtran->setLooksOverride(GetJStringValue(env, looks)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_DisplayTransform_getLooksOverride(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ return env->NewStringUTF(dtran->getLooksOverride());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_DisplayTransform_setLooksOverrideEnabled(JNIEnv * env, jobject self, jboolean enabled)
+{
+ OCIO_JNITRY_ENTER()
+ DisplayTransformRcPtr dtran = GetEditableJOCIO<DisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ dtran->setLooksOverrideEnabled((bool)enabled);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_DisplayTransform_getLooksOverrideEnabled(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstDisplayTransformRcPtr dtran = GetConstJOCIO<ConstDisplayTransformRcPtr, DisplayTransformJNI>(env, self);
+ return (jboolean)dtran->getLooksOverrideEnabled();
+ OCIO_JNITRY_EXIT(false)
+}
+
+// ExponentTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_ExponentTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/ExponentTransform"), ExponentTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ExponentTransform_setValue(JNIEnv * env, jobject self, jfloatArray vec4)
+{
+ OCIO_JNITRY_ENTER()
+ ExponentTransformRcPtr exptran = GetEditableJOCIO<ExponentTransformRcPtr, ExponentTransformJNI>(env, self);
+ exptran->setValue(GetJFloatArrayValue(env, vec4, "vec4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_ExponentTransform_getValue(JNIEnv * env, jobject self, jfloatArray vec4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstExponentTransformRcPtr exptran = GetConstJOCIO<ConstExponentTransformRcPtr, ExponentTransformJNI>(env, self);
+ exptran->getValue(SetJFloatArrayValue(env, vec4, "vec4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+// FileTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_FileTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<FileTransformRcPtr, FileTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/FileTransform"), FileTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_FileTransform_getSrc(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return env->NewStringUTF(filetran->getSrc());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_FileTransform_setSrc(JNIEnv * env, jobject self, jstring src)
+{
+ OCIO_JNITRY_ENTER()
+ FileTransformRcPtr filetran = GetEditableJOCIO<FileTransformRcPtr, FileTransformJNI>(env, self);
+ filetran->setSrc(GetJStringValue(env, src)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_FileTransform_getCCCId(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return env->NewStringUTF(filetran->getCCCId());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_FileTransform_setCCCId(JNIEnv * env, jobject self, jstring id)
+{
+ OCIO_JNITRY_ENTER()
+ FileTransformRcPtr filetran = GetEditableJOCIO<FileTransformRcPtr, FileTransformJNI>(env, self);
+ filetran->setCCCId(GetJStringValue(env, id)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_FileTransform_getInterpolation(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return BuildJEnum(env, "org/OpenColorIO/Interpolation", filetran->getInterpolation());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_FileTransform_setInterpolation(JNIEnv * env, jobject self, jobject interp)
+{
+ OCIO_JNITRY_ENTER()
+ FileTransformRcPtr filetran = GetEditableJOCIO<FileTransformRcPtr, FileTransformJNI>(env, self);
+ filetran->setInterpolation(GetJEnum<Interpolation>(env, interp));
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_FileTransform_getNumFormats(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return (jint)filetran->getNumFormats();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_FileTransform_getFormatNameByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return env->NewStringUTF(filetran->getFormatNameByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_FileTransform_getFormatExtensionByIndex(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstFileTransformRcPtr filetran = GetConstJOCIO<ConstFileTransformRcPtr, FileTransformJNI>(env, self);
+ return env->NewStringUTF(filetran->getFormatExtensionByIndex((int)index));
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// GroupTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_GroupTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<GroupTransformRcPtr, GroupTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/GroupTransform"), GroupTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_GroupTransform_getTransform(JNIEnv * env, jobject self, jint index)
+{
+ OCIO_JNITRY_ENTER()
+ ConstGroupTransformRcPtr gtran = GetConstJOCIO<ConstGroupTransformRcPtr, GroupTransformJNI>(env, self);
+ ConstTransformRcPtr ctran = gtran->getTransform((int)index);
+ return BuildJObject<TransformRcPtr, TransformJNI>(env, self,
+ env->FindClass(GetOCIOTClass(ctran)), ctran->createEditableCopy());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jint JNICALL
+Java_org_OpenColorIO_GroupTransform_size(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstGroupTransformRcPtr gtran = GetConstJOCIO<ConstGroupTransformRcPtr, GroupTransformJNI>(env, self);
+ return (jint)gtran->size();
+ OCIO_JNITRY_EXIT(0)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GroupTransform_push_1back(JNIEnv * env, jobject self, jobject transform)
+{
+ OCIO_JNITRY_ENTER()
+ GroupTransformRcPtr gtran = GetEditableJOCIO<GroupTransformRcPtr, GroupTransformJNI>(env, self);
+ ConstTransformRcPtr ptr = GetConstJOCIO<ConstTransformRcPtr, TransformJNI>(env, transform);
+ gtran->push_back(ptr);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_GroupTransform_clear(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ GroupTransformRcPtr gtran = GetEditableJOCIO<GroupTransformRcPtr, GroupTransformJNI>(env, self);
+ gtran->clear();
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_GroupTransform_empty(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstGroupTransformRcPtr gtran = GetConstJOCIO<ConstGroupTransformRcPtr, GroupTransformJNI>(env, self);
+ return (jboolean)gtran->empty();
+ OCIO_JNITRY_EXIT(false)
+}
+
+// LogTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_LogTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<LogTransformRcPtr, LogTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/LogTransform"), LogTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_LogTransform_setBase(JNIEnv * env, jobject self, jfloat val)
+{
+ OCIO_JNITRY_ENTER()
+ LogTransformRcPtr ltran = GetEditableJOCIO<LogTransformRcPtr, LogTransformJNI>(env, self);
+ ltran->setBase((float)val);
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jfloat JNICALL
+Java_org_OpenColorIO_LogTransform_getBase(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLogTransformRcPtr ltran = GetConstJOCIO<ConstLogTransformRcPtr, LogTransformJNI>(env, self);
+ return (jfloat)ltran->getBase();
+ OCIO_JNITRY_EXIT(0.f)
+}
+
+// LookTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_LookTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<LookTransformRcPtr, LookTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/LookTransform"), LookTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_LookTransform_getSrc(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookTransformRcPtr lktran = GetConstJOCIO<ConstLookTransformRcPtr, LookTransformJNI>(env, self);
+ return env->NewStringUTF(lktran->getSrc());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_LookTransform_setSrc(JNIEnv * env, jobject self, jstring src)
+{
+ OCIO_JNITRY_ENTER()
+ LookTransformRcPtr lktran = GetEditableJOCIO<LookTransformRcPtr, LookTransformJNI>(env, self);
+ lktran->setSrc(GetJStringValue(env, src)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_LookTransform_getDst(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookTransformRcPtr lktran = GetConstJOCIO<ConstLookTransformRcPtr, LookTransformJNI>(env, self);
+ return env->NewStringUTF(lktran->getDst());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_LookTransform_setDst(JNIEnv * env, jobject self, jstring dst)
+{
+ OCIO_JNITRY_ENTER()
+ LookTransformRcPtr lktran = GetEditableJOCIO<LookTransformRcPtr, LookTransformJNI>(env, self);
+ lktran->setDst(GetJStringValue(env, dst)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_LookTransform_setLooks(JNIEnv * env, jobject self, jstring looks)
+{
+ OCIO_JNITRY_ENTER()
+ LookTransformRcPtr lktran = GetEditableJOCIO<LookTransformRcPtr, LookTransformJNI>(env, self);
+ lktran->setLooks(GetJStringValue(env, looks)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_LookTransform_getLooks(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstLookTransformRcPtr lktran = GetConstJOCIO<ConstLookTransformRcPtr, LookTransformJNI>(env, self);
+ return env->NewStringUTF(lktran->getLooks());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+// MatrixTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_MatrixTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<MatrixTransformRcPtr, MatrixTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/MatrixTransform"), MatrixTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_OpenColorIO_MatrixTransform_equals(JNIEnv * env, jobject self, jobject obj)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr left = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ ConstMatrixTransformRcPtr right = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, obj);
+ return (jboolean)left->equals(*right.get());
+ OCIO_JNITRY_EXIT(false)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_setValue(JNIEnv * env, jobject self, jfloatArray m44, jfloatArray offset4)
+{
+ OCIO_JNITRY_ENTER()
+ MatrixTransformRcPtr mtran = GetEditableJOCIO<MatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->setValue(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_getValue(JNIEnv * env, jobject self, jfloatArray m44, jfloatArray offset4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->getValue(SetJFloatArrayValue(env, m44, "m44", 16)(),
+ SetJFloatArrayValue(env, offset4, "offset4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_setMatrix(JNIEnv * env, jobject self, jfloatArray m44)
+{
+ OCIO_JNITRY_ENTER()
+ MatrixTransformRcPtr mtran = GetEditableJOCIO<MatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->setMatrix(GetJFloatArrayValue(env, m44, "m44", 16)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_getMatrix(JNIEnv * env, jobject self, jfloatArray m44)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->getMatrix(SetJFloatArrayValue(env, m44, "m44", 16)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_setOffset(JNIEnv * env, jobject self, jfloatArray offset4)
+{
+ OCIO_JNITRY_ENTER()
+ MatrixTransformRcPtr mtran = GetEditableJOCIO<MatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->setOffset(GetJFloatArrayValue(env, offset4, "offset4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_getOffset(JNIEnv * env, jobject self, jfloatArray offset4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->getOffset(SetJFloatArrayValue(env, offset4, "offset4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_Fit(JNIEnv * env, jobject self,
+ jfloatArray m44, jfloatArray offset4, jfloatArray oldmin4,
+ jfloatArray oldmax4, jfloatArray newmin4, jfloatArray newmax4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->Fit(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)(),
+ GetJFloatArrayValue(env, oldmin4, "oldmin4", 4)(),
+ GetJFloatArrayValue(env, oldmax4, "oldmax4", 4)(),
+ GetJFloatArrayValue(env, newmin4, "newmin4", 4)(),
+ GetJFloatArrayValue(env, newmax4, "newmax4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_Identity(JNIEnv * env, jobject self,
+ jfloatArray m44, jfloatArray offset4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->Identity(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_Sat(JNIEnv * env, jobject self,
+ jfloatArray m44, jfloatArray offset4, jfloat sat,
+ jfloatArray lumaCoef3)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->Sat(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)(),
+ (float)sat,
+ GetJFloatArrayValue(env, lumaCoef3, "lumaCoef3", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_Scale(JNIEnv * env, jobject self,
+ jfloatArray m44, jfloatArray offset4, jfloatArray scale4)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->Scale(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)(),
+ GetJFloatArrayValue(env, scale4, "scale4", 4)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_MatrixTransform_View(JNIEnv * env, jobject self,
+ jfloatArray m44, jfloatArray offset4, jintArray channelHot4,
+ jfloatArray lumaCoef3)
+{
+ OCIO_JNITRY_ENTER()
+ ConstMatrixTransformRcPtr mtran = GetConstJOCIO<ConstMatrixTransformRcPtr, MatrixTransformJNI>(env, self);
+ mtran->View(GetJFloatArrayValue(env, m44, "m44", 16)(),
+ GetJFloatArrayValue(env, offset4, "offset4", 4)(),
+ GetJIntArrayValue(env, channelHot4, "channelHot4", 4)(),
+ GetJFloatArrayValue(env, lumaCoef3, "lumaCoef3", 3)());
+ OCIO_JNITRY_EXIT()
+}
+
+// TruelightTransform
+
+JNIEXPORT jobject JNICALL
+Java_org_OpenColorIO_TruelightTransform_Create(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ return BuildJObject<TruelightTransformRcPtr, TruelightTransformJNI>(env, self,
+ env->FindClass("org/OpenColorIO/TruelightTransform"), TruelightTransform::Create());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setConfigRoot(JNIEnv * env, jobject self, jstring configroot)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setConfigRoot(GetJStringValue(env, configroot)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getConfigRoot(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getConfigRoot());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setProfile(JNIEnv * env, jobject self, jstring profile)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setProfile(GetJStringValue(env, profile)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getProfile(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getProfile());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setCamera(JNIEnv * env, jobject self, jstring camera)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setCamera(GetJStringValue(env, camera)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getCamera(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getCamera());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setInputDisplay(JNIEnv * env, jobject self, jstring display)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setInputDisplay(GetJStringValue(env, display)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getInputDisplay(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getInputDisplay());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setRecorder(JNIEnv * env, jobject self, jstring recorder)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setRecorder(GetJStringValue(env, recorder)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getRecorder(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getRecorder());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setPrint(JNIEnv * env, jobject self, jstring print)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setPrint(GetJStringValue(env, print)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getPrint(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getPrint());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setLamp(JNIEnv * env, jobject self, jstring lamp)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setLamp(GetJStringValue(env, lamp)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getLamp(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getLamp());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setOutputCamera(JNIEnv * env, jobject self, jstring camera)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setOutputCamera(GetJStringValue(env, camera)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getOutputCamera(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getOutputCamera());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setDisplay(JNIEnv * env, jobject self, jstring display)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setDisplay(GetJStringValue(env, display)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getDisplay(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getDisplay());
+ OCIO_JNITRY_EXIT(NULL)
+}
+
+JNIEXPORT void JNICALL
+Java_org_OpenColorIO_TruelightTransform_setCubeInput(JNIEnv * env, jobject self, jstring type)
+{
+ OCIO_JNITRY_ENTER()
+ TruelightTransformRcPtr ttran = GetEditableJOCIO<TruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ ttran->setCubeInput(GetJStringValue(env, type)());
+ OCIO_JNITRY_EXIT()
+}
+
+JNIEXPORT jstring JNICALL
+Java_org_OpenColorIO_TruelightTransform_getCubeInput(JNIEnv * env, jobject self)
+{
+ OCIO_JNITRY_ENTER()
+ ConstTruelightTransformRcPtr ttran = GetConstJOCIO<ConstTruelightTransformRcPtr, TruelightTransformJNI>(env, self);
+ return env->NewStringUTF(ttran->getCubeInput());
+ OCIO_JNITRY_EXIT(NULL)
+}
diff --git a/src/jniglue/JNIUtil.cpp b/src/jniglue/JNIUtil.cpp
new file mode 100644
index 0000000..b893098
--- /dev/null
+++ b/src/jniglue/JNIUtil.cpp
@@ -0,0 +1,122 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <OpenColorIO/OpenColorIO.h>
+
+#include "JNIUtil.h"
+
+OCIO_NAMESPACE_ENTER
+{
+
+jobject NewJFloatBuffer(JNIEnv * env, float* ptr, int32_t len) {
+ jobject byte_buf = env->NewDirectByteBuffer(ptr, len * sizeof(float));
+ jmethodID mid = env->GetMethodID(env->GetObjectClass(byte_buf),
+ "asFloatBuffer", "()Ljava/nio/FloatBuffer;");
+ if (mid == 0) throw Exception("Could not find asFloatBuffer() method");
+ return env->CallObjectMethod(byte_buf, mid);
+}
+
+float* GetJFloatBuffer(JNIEnv * env, jobject buffer, int32_t len) {
+ jmethodID mid = env->GetMethodID(env->GetObjectClass(buffer), "isDirect", "()Z");
+ if (mid == 0) throw Exception("Could not find isDirect() method");
+ if(!env->CallBooleanMethod(buffer, mid)) {
+ std::ostringstream err;
+ err << "the FloatBuffer object is not 'direct' it needs to be created ";
+ err << "from a ByteBuffer.allocateDirect(..).asFloatBuffer() call.";
+ throw Exception(err.str().c_str());
+ }
+ if(env->GetDirectBufferCapacity(buffer) != len) {
+ std::ostringstream err;
+ err << "the FloatBuffer object is not allocated correctly it needs to ";
+ err << "of size " << len << " but is ";
+ err << env->GetDirectBufferCapacity(buffer) << ".";
+ throw Exception(err.str().c_str());
+ }
+ return (float*)env->GetDirectBufferAddress(buffer);
+}
+
+const char* GetOCIOTClass(ConstTransformRcPtr tran) {
+ if(ConstAllocationTransformRcPtr at = DynamicPtrCast<const AllocationTransform>(tran))
+ return "org/OpenColorIO/AllocationTransform";
+ else if(ConstCDLTransformRcPtr ct = DynamicPtrCast<const CDLTransform>(tran))
+ return "org/OpenColorIO/CDLTransform";
+ else if(ConstColorSpaceTransformRcPtr cst = DynamicPtrCast<const ColorSpaceTransform>(tran))
+ return "org/OpenColorIO/ColorSpaceTransform";
+ else if(ConstDisplayTransformRcPtr dt = DynamicPtrCast<const DisplayTransform>(tran))
+ return "org/OpenColorIO/DisplayTransform";
+ else if(ConstExponentTransformRcPtr et = DynamicPtrCast<const ExponentTransform>(tran))
+ return "org/OpenColorIO/ExponentTransform";
+ else if(ConstFileTransformRcPtr ft = DynamicPtrCast<const FileTransform>(tran))
+ return "org/OpenColorIO/FileTransform";
+ else if(ConstGroupTransformRcPtr gt = DynamicPtrCast<const GroupTransform>(tran))
+ return "org/OpenColorIO/GroupTransform";
+ else if(ConstLogTransformRcPtr lt = DynamicPtrCast<const LogTransform>(tran))
+ return "org/OpenColorIO/LogTransform";
+ else if(ConstLookTransformRcPtr lkt = DynamicPtrCast<const LookTransform>(tran))
+ return "org/OpenColorIO/LookTransform";
+ else if(ConstMatrixTransformRcPtr mt = DynamicPtrCast<const MatrixTransform>(tran))
+ return "org/OpenColorIO/MatrixTransform";
+ else if(ConstTruelightTransformRcPtr tt = DynamicPtrCast<const TruelightTransform>(tran))
+ return "org/OpenColorIO/TruelightTransform";
+ else return "org/OpenColorIO/Transform";
+}
+
+void JNI_Handle_Exception(JNIEnv * env)
+{
+ try
+ {
+ throw;
+ }
+ catch (ExceptionMissingFile & e)
+ {
+ jclass je = env->FindClass("org/OpenColorIO/ExceptionMissingFile");
+ env->ThrowNew(je, e.what());
+ env->DeleteLocalRef(je);
+ }
+ catch (Exception & e)
+ {
+ jclass je = env->FindClass("org/OpenColorIO/ExceptionBase");
+ env->ThrowNew(je, e.what());
+ env->DeleteLocalRef(je);
+ }
+ catch (std::exception& e)
+ {
+ jclass je = env->FindClass("java/lang/Exception");
+ env->ThrowNew(je, e.what());
+ env->DeleteLocalRef(je);
+ }
+ catch (...)
+ {
+ jclass je = env->FindClass("java/lang/Exception");
+ env->ThrowNew(je, "Unknown C++ exception caught.");
+ env->DeleteLocalRef(je);
+ }
+}
+
+}
+OCIO_NAMESPACE_EXIT
diff --git a/src/jniglue/JNIUtil.h b/src/jniglue/JNIUtil.h
new file mode 100644
index 0000000..cf9381c
--- /dev/null
+++ b/src/jniglue/JNIUtil.h
@@ -0,0 +1,282 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef INCLUDED_OCIO_JNIUTIL_H
+#define INCLUDED_OCIO_JNIUTIL_H
+
+#include <sstream>
+#include <vector>
+#include "OpenColorIOJNI.h"
+
+OCIO_NAMESPACE_ENTER
+{
+
+template<typename C, typename E>
+struct JObject
+{
+ jobject back_ptr;
+ C * constcppobj;
+ E * cppobj;
+ bool isconst;
+};
+
+typedef OCIO_SHARED_PTR<const GpuShaderDesc> ConstGpuShaderDescRcPtr;
+typedef OCIO_SHARED_PTR<GpuShaderDesc> GpuShaderDescRcPtr;
+typedef OCIO_SHARED_PTR<const ImageDesc> ConstImageDescRcPtr;
+typedef OCIO_SHARED_PTR<ImageDesc> ImageDescRcPtr;
+typedef OCIO_SHARED_PTR<const PackedImageDesc> ConstPackedImageDescRcPtr;
+typedef OCIO_SHARED_PTR<PackedImageDesc> PackedImageDescRcPtr;
+typedef OCIO_SHARED_PTR<const PlanarImageDesc> ConstPlanarImageDescRcPtr;
+typedef OCIO_SHARED_PTR<PlanarImageDesc> PlanarImageDescRcPtr;
+
+typedef JObject <ConstConfigRcPtr, ConfigRcPtr> ConfigJNI;
+typedef JObject <ConstContextRcPtr, ContextRcPtr> ContextJNI;
+typedef JObject <ConstProcessorRcPtr, ProcessorRcPtr> ProcessorJNI;
+typedef JObject <ConstColorSpaceRcPtr, ColorSpaceRcPtr> ColorSpaceJNI;
+typedef JObject <ConstLookRcPtr, LookRcPtr> LookJNI;
+typedef JObject <ConstBakerRcPtr, BakerRcPtr> BakerJNI;
+typedef JObject <ConstGpuShaderDescRcPtr, GpuShaderDescRcPtr> GpuShaderDescJNI;
+typedef JObject <ConstImageDescRcPtr, ImageDescRcPtr> ImageDescJNI;
+typedef JObject <ConstTransformRcPtr, TransformRcPtr> TransformJNI;
+typedef JObject <ConstAllocationTransformRcPtr, AllocationTransformRcPtr> AllocationTransformJNI;
+typedef JObject <ConstCDLTransformRcPtr, CDLTransformRcPtr> CDLTransformJNI;
+typedef JObject <ConstColorSpaceTransformRcPtr, ColorSpaceTransformRcPtr> ColorSpaceTransformJNI;
+typedef JObject <ConstDisplayTransformRcPtr, DisplayTransformRcPtr> DisplayTransformJNI;
+typedef JObject <ConstExponentTransformRcPtr, ExponentTransformRcPtr> ExponentTransformJNI;
+typedef JObject <ConstFileTransformRcPtr, FileTransformRcPtr> FileTransformJNI;
+typedef JObject <ConstGroupTransformRcPtr, GroupTransformRcPtr> GroupTransformJNI;
+typedef JObject <ConstLogTransformRcPtr, LogTransformRcPtr> LogTransformJNI;
+typedef JObject <ConstLookTransformRcPtr, LookTransformRcPtr> LookTransformJNI;
+typedef JObject <ConstMatrixTransformRcPtr, MatrixTransformRcPtr> MatrixTransformJNI;
+typedef JObject <ConstTruelightTransformRcPtr, TruelightTransformRcPtr> TruelightTransformJNI;
+
+template<typename T, typename S>
+inline jobject BuildJConstObject(JNIEnv * env, jobject self, jclass cls, T ptr)
+{
+ S * jnistruct = new S ();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->constcppobj = new T ();
+ *jnistruct->constcppobj = ptr;
+ jnistruct->isconst = true;
+ jmethodID mid = env->GetMethodID(cls, "<init>", "(J)V");
+ return env->NewObject(cls, mid, (jlong)jnistruct);
+}
+
+template<typename T, typename S>
+inline jobject BuildJObject(JNIEnv * env, jobject self, jclass cls, T ptr)
+{
+ S * jnistruct = new S ();
+ jnistruct->back_ptr = env->NewGlobalRef(self);
+ jnistruct->cppobj = new T ();
+ *jnistruct->cppobj = ptr;
+ jnistruct->isconst = false;
+ jmethodID mid = env->GetMethodID(cls, "<init>", "(J)V");
+ return env->NewObject(cls, mid, (jlong)jnistruct);
+}
+
+template<typename S>
+inline void DisposeJOCIO(JNIEnv * env, jobject self)
+{
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ jlong m_impl = env->GetLongField(self, fid);
+ if(m_impl == 0) return; // nothing to do
+ S * jni = reinterpret_cast<S *> (m_impl);
+ delete jni->constcppobj;
+ delete jni->cppobj;
+ env->DeleteGlobalRef(jni->back_ptr);
+ delete jni;
+ env->SetLongField(self, fid, 0);
+ return;
+}
+
+template<typename T, typename S>
+inline T GetConstJOCIO(JNIEnv * env, jobject self)
+{
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ jlong m_impl = env->GetLongField(self, fid);
+ if(m_impl == 0) {
+ throw Exception("Java object doesn't point to a OCIO object");
+ }
+ S * jni = reinterpret_cast<S *> (m_impl);
+ if(jni->isconst && jni->constcppobj) {
+ return *jni->constcppobj;
+ }
+ if(!jni->isconst && jni->cppobj) {
+ return *jni->cppobj;
+ }
+ throw Exception("Could not get a const OCIO object");
+}
+
+template<typename T, typename S>
+inline T GetEditableJOCIO(JNIEnv * env, jobject self)
+{
+ jclass wclass = env->GetObjectClass(self);
+ jfieldID fid = env->GetFieldID(wclass, "m_impl", "J");
+ jlong m_impl = env->GetLongField(self, fid);
+ if(m_impl == 0) {
+ throw Exception("Java object doesn't point to a OCIO object");
+ }
+ S * jni = reinterpret_cast<S *> (m_impl);
+ if(!jni->isconst && jni->cppobj) {
+ return *jni->cppobj;
+ }
+ throw Exception("Could not get an editable OCIO object");
+}
+
+template<typename T>
+inline T GetJEnum(JNIEnv * env, jobject j_enum)
+{
+ jclass cls = env->GetObjectClass(j_enum);
+ jfieldID fid = env->GetFieldID(cls, "m_enum", "I");
+ return (T)env->GetIntField(j_enum, fid);
+}
+
+template<typename T>
+inline jobject BuildJEnum(JNIEnv * env, const char* ociotype, T val)
+{
+ jclass cls = env->FindClass(ociotype);
+ jmethodID mid = env->GetMethodID(cls, "<init>", "(I)V");
+ return env->NewObject(cls, mid, (int)val);
+}
+
+template<typename T>
+inline void CheckArrayLength(JNIEnv * env, const char* name, T ptr, int32_t length) {
+ if(ptr == NULL) return;
+ if(env->GetArrayLength(ptr) < length) {
+ std::ostringstream err;
+ err << name << " needs to have " << length;
+ err << " elements but found only " << env->GetArrayLength(ptr);
+ throw Exception(err.str().c_str());
+ }
+}
+
+class GetJFloatArrayValue
+{
+public:
+ GetJFloatArrayValue(JNIEnv* env, jfloatArray val, const char* name, int32_t len) {
+ CheckArrayLength(env, name, val, len);
+ m_env = env;
+ m_val = val;
+ if(val != NULL) m_ptr = env->GetFloatArrayElements(val, JNI_FALSE);
+ }
+ ~GetJFloatArrayValue() {
+ if(m_val != NULL) m_env->ReleaseFloatArrayElements(m_val, m_ptr, JNI_FALSE);
+ m_val = NULL;
+ m_ptr = NULL;
+ }
+ jfloat* operator() () {
+ return m_ptr;
+ }
+private:
+ JNIEnv* m_env;
+ jfloat* m_ptr;
+ jfloatArray m_val;
+};
+
+class SetJFloatArrayValue
+{
+public:
+ SetJFloatArrayValue(JNIEnv* env, jfloatArray val, const char* name, int32_t len) {
+ CheckArrayLength(env, name, val, len);
+ m_env = env;
+ m_val = val;
+ if(val != NULL) m_tmp.resize(len);
+ }
+ ~SetJFloatArrayValue() {
+ if(m_val != NULL) m_env->SetFloatArrayRegion(m_val, 0, m_tmp.size(), &m_tmp[0]);
+ m_val = NULL;
+ m_tmp.clear();
+ }
+ float* operator() () {
+ return &m_tmp[0];
+ }
+private:
+ JNIEnv* m_env;
+ std::vector<float> m_tmp;
+ jfloatArray m_val;
+};
+
+class GetJIntArrayValue
+{
+public:
+ GetJIntArrayValue(JNIEnv* env, jintArray val, const char* name, int32_t len) {
+ CheckArrayLength(env, name, val, len);
+ m_env = env;
+ m_val = val;
+ if(val != NULL) m_ptr = env->GetIntArrayElements(val, JNI_FALSE);
+ }
+ ~GetJIntArrayValue() {
+ if(m_val != NULL) m_env->ReleaseIntArrayElements(m_val, m_ptr, JNI_FALSE);
+ m_val = NULL;
+ m_ptr = NULL;
+ }
+ jint* operator() () {
+ return m_ptr;
+ }
+private:
+ JNIEnv* m_env;
+ jint* m_ptr;
+ jintArray m_val;
+};
+
+class GetJStringValue
+{
+public:
+ GetJStringValue(JNIEnv* env, jstring val) {
+ m_env = env;
+ m_val = val;
+ if(val != NULL) m_tmp = env->GetStringUTFChars(m_val, 0);
+ }
+ ~GetJStringValue() {
+ if(m_val != NULL) m_env->ReleaseStringUTFChars(m_val, m_tmp);
+ m_val = NULL;
+ m_tmp = NULL;
+ }
+ const char* operator() () {
+ return m_tmp;
+ }
+private:
+ JNIEnv* m_env;
+ const char* m_tmp;
+ jstring m_val;
+};
+
+jobject NewJFloatBuffer(JNIEnv * env, float* ptr, int32_t len);
+float* GetJFloatBuffer(JNIEnv * env, jobject buffer, int32_t len);
+const char* GetOCIOTClass(ConstTransformRcPtr tran);
+void JNI_Handle_Exception(JNIEnv * env);
+
+#define OCIO_JNITRY_ENTER() try {
+#define OCIO_JNITRY_EXIT(ret) } catch(...) { JNI_Handle_Exception(env); return ret; }
+
+}
+OCIO_NAMESPACE_EXIT
+
+#endif // INCLUDED_OCIO_JNIUTIL_H
diff --git a/src/jniglue/LoadLibrary.java.in b/src/jniglue/LoadLibrary.java.in
new file mode 100644
index 0000000..41818d6
--- /dev/null
+++ b/src/jniglue/LoadLibrary.java.in
@@ -0,0 +1,40 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+
+public class LoadLibrary
+{
+ public LoadLibrary() { }
+ protected LoadLibrary(long impl) { m_impl = impl; }
+ public long m_impl = 0;
+ static
+ {
+ System.loadLibrary("OpenColorIO-JNI.@OCIO_VERSION@");
+ }
+}
diff --git a/src/jniglue/Manifest.txt.in b/src/jniglue/Manifest.txt.in
new file mode 100644
index 0000000..71a5142
--- /dev/null
+++ b/src/jniglue/Manifest.txt.in
@@ -0,0 +1,7 @@
+Name: org/OpenColorIO/
+Specification-Title: OpenColorIO - Open Source Color Management
+Specification-Version: @OCIO_VERSION@
+Specification-Vendor: Sony Pictures Imageworks Inc., et al.
+Implementation-Title: org.OpenColorIO
+Implementation-Version: @OCIO_VERSION@
+Implementation-Vendor: Sony Pictures Imageworks Inc., et al. \ No newline at end of file
diff --git a/src/jniglue/org/OpenColorIO/Allocation.java b/src/jniglue/org/OpenColorIO/Allocation.java
new file mode 100644
index 0000000..3d80251
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Allocation.java
@@ -0,0 +1,44 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Allocation extends LoadLibrary
+{
+ private final int m_enum;
+ protected Allocation(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final Allocation
+ ALLOCATION_UNKNOWN = new Allocation(0);
+ public static final Allocation
+ ALLOCATION_UNIFORM = new Allocation(1);
+ public static final Allocation
+ ALLOCATION_LG2 = new Allocation(2);
+}
diff --git a/src/jniglue/org/OpenColorIO/AllocationTransform.java b/src/jniglue/org/OpenColorIO/AllocationTransform.java
new file mode 100644
index 0000000..b116d18
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/AllocationTransform.java
@@ -0,0 +1,42 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class AllocationTransform extends Transform
+{
+ public AllocationTransform() { super(); }
+ protected AllocationTransform(long impl) { super(impl); }
+ public native AllocationTransform Create();
+ public native Allocation getAllocation();
+ public native void setAllocation(Allocation allocation);
+ public native int getNumVars();
+ public native void getVars(float[] vars);
+ public native void setVars(int numvars, float[] vars);
+}
diff --git a/src/jniglue/org/OpenColorIO/Baker.java b/src/jniglue/org/OpenColorIO/Baker.java
new file mode 100644
index 0000000..0464753
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Baker.java
@@ -0,0 +1,62 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Baker extends LoadLibrary
+{
+ public Baker() { super(); }
+ protected Baker(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Baker Create();
+ public native Baker createEditableCopy();
+ public native void setConfig(Config config);
+ public native Config getConfig();
+ public native void setFormat(String formatName);
+ public native String getFormat();
+ public native void setType(String type);
+ public native String getType();
+ public native void setMetadata(String metadata);
+ public native String getMetadata();
+ public native void setInputSpace(String inputSpace);
+ public native String getInputSpace();
+ public native void setShaperSpace(String shaperSpace);
+ public native String getShaperSpace();
+ public native void setTargetSpace(String targetSpace);
+ public native String getTargetSpace();
+ public native void setShaperSize(int shapersize);
+ public native int getShaperSize();
+ public native void setCubeSize(int cubesize);
+ public native int getCubeSize();
+ public native String bake();
+ public native int getNumFormats();
+ public native String getFormatNameByIndex(int index);
+ public native String getFormatExtensionByIndex(int index);
+}
diff --git a/src/jniglue/org/OpenColorIO/BitDepth.java b/src/jniglue/org/OpenColorIO/BitDepth.java
new file mode 100644
index 0000000..afa0543
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/BitDepth.java
@@ -0,0 +1,56 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class BitDepth extends LoadLibrary
+{
+ private final int m_enum;
+ protected BitDepth(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final BitDepth
+ BIT_DEPTH_UNKNOWN = new BitDepth(0);
+ public static final BitDepth
+ BIT_DEPTH_UINT8 = new BitDepth(1);
+ public static final BitDepth
+ BIT_DEPTH_UINT10 = new BitDepth(2);
+ public static final BitDepth
+ BIT_DEPTH_UINT12 = new BitDepth(3);
+ public static final BitDepth
+ BIT_DEPTH_UINT14 = new BitDepth(4);
+ public static final BitDepth
+ BIT_DEPTH_UINT16 = new BitDepth(5);
+ public static final BitDepth
+ BIT_DEPTH_UINT32 = new BitDepth(6);
+ public static final BitDepth
+ BIT_DEPTH_F16 = new BitDepth(7);
+ public static final BitDepth
+ BIT_DEPTH_F32 = new BitDepth(8);
+}
diff --git a/src/jniglue/org/OpenColorIO/CDLTransform.java b/src/jniglue/org/OpenColorIO/CDLTransform.java
new file mode 100644
index 0000000..ce0fd00
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/CDLTransform.java
@@ -0,0 +1,56 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class CDLTransform extends Transform
+{
+ public CDLTransform() { super(); }
+ protected CDLTransform(long impl) { super(impl); }
+ public native CDLTransform Create();
+ public native CDLTransform CreateFromFile(String src, String cccid);
+ public native boolean equals(CDLTransform obj);
+ public native String getXML();
+ public native void setXML(String xml);
+ public native void setSlope(float[] rgb);
+ public native void getSlope(float[] rgb);
+ public native void setOffset(float[] rgb);
+ public native void getOffset(float[] rgb);
+ public native void setPower(float[] rgb);
+ public native void getPower(float[] rgb);
+ public native void setSOP(float[] vec9);
+ public native void getSOP(float[] vec9);
+ public native void setSat(float sat);
+ public native float getSat();
+ public native void getSatLumaCoefs(float[] rgb);
+ public native void setID(String id);
+ public native String getID();
+ public native void setDescription(String desc);
+ public native String getDescription();
+}
diff --git a/src/jniglue/org/OpenColorIO/ColorSpace.java b/src/jniglue/org/OpenColorIO/ColorSpace.java
new file mode 100644
index 0000000..11e7198
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ColorSpace.java
@@ -0,0 +1,59 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ColorSpace extends LoadLibrary
+{
+ public ColorSpace() { super(); }
+ protected ColorSpace(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native ColorSpace Create();
+ public native ColorSpace createEditableCopy();
+ public native String getName();
+ public native void setName(String name);
+ public native String getFamily();
+ public native void setFamily(String family);
+ public native String getEqualityGroup();
+ public native void setEqualityGroup(String equalityGroup);
+ public native String getDescription();
+ public native void setDescription(String description);
+ public native BitDepth getBitDepth();
+ public native void setBitDepth(BitDepth bitDepth);
+ public native boolean isData();
+ public native void setIsData(boolean isData);
+ public native Allocation getAllocation();
+ public native void setAllocation(Allocation allocation);
+ public native int getAllocationNumVars();
+ public native void getAllocationVars(float[] vars);
+ public native void setAllocationVars(int numvars, float[] vars);
+ public native Transform getTransform(ColorSpaceDirection dir);
+ public native void setTransform(Transform transform, ColorSpaceDirection dir);
+}
diff --git a/src/jniglue/org/OpenColorIO/ColorSpaceDirection.java b/src/jniglue/org/OpenColorIO/ColorSpaceDirection.java
new file mode 100644
index 0000000..a822f6e
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ColorSpaceDirection.java
@@ -0,0 +1,44 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ColorSpaceDirection extends LoadLibrary
+{
+ private final int m_enum;
+ protected ColorSpaceDirection(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final ColorSpaceDirection
+ COLORSPACE_DIR_UNKNOWN = new ColorSpaceDirection(0);
+ public static final ColorSpaceDirection
+ COLORSPACE_DIR_TO_REFERENCE = new ColorSpaceDirection(1);
+ public static final ColorSpaceDirection
+ COLORSPACE_DIR_FROM_REFERENCE = new ColorSpaceDirection(2);
+}
diff --git a/src/jniglue/org/OpenColorIO/ColorSpaceTransform.java b/src/jniglue/org/OpenColorIO/ColorSpaceTransform.java
new file mode 100644
index 0000000..ffc856b
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ColorSpaceTransform.java
@@ -0,0 +1,41 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ColorSpaceTransform extends Transform
+{
+ public ColorSpaceTransform() { super(); }
+ protected ColorSpaceTransform(long impl) { super(impl); }
+ public native ColorSpaceTransform Create();
+ public native String getSrc();
+ public native void setSrc(String src);
+ public native String getDst();
+ public native void setDst(String dst);
+}
diff --git a/src/jniglue/org/OpenColorIO/Config.java b/src/jniglue/org/OpenColorIO/Config.java
new file mode 100644
index 0000000..f35ca65
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Config.java
@@ -0,0 +1,96 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Config extends LoadLibrary
+{
+ public Config() { super(); }
+ protected Config(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Config Create();
+ public native Config CreateFromEnv();
+ public native Config CreateFromFile(String filename);
+ public native Config CreateFromStream(String istream);
+ public native Config createEditableCopy();
+ public native void sanityCheck();
+ public native String getDescription();
+ public native void setDescription(String description);
+ public native String serialize();
+ public native String getCacheID();
+ public native String getCacheID(Context context);
+ public native Context getCurrentContext();
+ public native String getSearchPath();
+ public native void setSearchPath(String path);
+ public native String getWorkingDir();
+ public native void setWorkingDir(String dirname);
+ public native int getNumColorSpaces();
+ public native String getColorSpaceNameByIndex(int index);
+ public native ColorSpace getColorSpace(String name);
+ public native int getIndexForColorSpace(String name);
+ public native void addColorSpace(ColorSpace cs);
+ public native void clearColorSpaces();
+ public native String parseColorSpaceFromString(String str);
+ public native boolean isStrictParsingEnabled();
+ public native void setStrictParsingEnabled(boolean enabled);
+ public native void setRole(String role, String colorSpaceName);
+ public native int getNumRoles();
+ public native boolean hasRole(String role);
+ public native String getRoleName(int index);
+ public native String getDefaultDisplay();
+ public native int getNumDisplays();
+ public native String getDisplay(int index);
+ public native String getDefaultView(String display);
+ public native int getNumViews(String display);
+ public native String getView(String display, int index);
+ public native String getDisplayColorSpaceName(String display, String view);
+ public native String getDisplayLooks(String display, String view);
+ // TODO: seems that 4 string params causes a memory error in the JNI layer?
+ // public native void addDisplay(String display, String view, String colorSpaceName, int looks);
+ public native void clearDisplays();
+ public native void setActiveDisplays(String displays);
+ public native String getActiveDisplays();
+ public native void setActiveViews(String views);
+ public native String getActiveViews();
+ public native void getDefaultLumaCoefs(float[] rgb);
+ public native void setDefaultLumaCoefs(float[] rgb);
+ public native Look getLook(String name);
+ public native int getNumLooks();
+ public native String getLookNameByIndex(int index);
+ public native void addLook(Look look);
+ public native void clearLooks();
+ public native Processor getProcessor(Context context, ColorSpace srcColorSpace, ColorSpace dstColorSpace);
+ public native Processor getProcessor(ColorSpace srcColorSpace, ColorSpace dstColorSpace);
+ public native Processor getProcessor(String srcName, String dstName);
+ public native Processor getProcessor(Context context, String srcName, String dstName);
+ public native Processor getProcessor(Transform transform);
+ public native Processor getProcessor(Transform transform, TransformDirection direction);
+ public native Processor getProcessor(Context context, Transform transform, TransformDirection direction);
+}
diff --git a/src/jniglue/org/OpenColorIO/Context.java b/src/jniglue/org/OpenColorIO/Context.java
new file mode 100644
index 0000000..eaec345
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Context.java
@@ -0,0 +1,52 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Context extends LoadLibrary
+{
+ public Context() { super(); }
+ protected Context(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Context Create();
+ public native Context createEditableCopy();
+ public native String getCacheID();
+ public native void setSearchPath(String path);
+ public native String getSearchPath();
+ public native void setWorkingDir(String dirname);
+ public native String getWorkingDir();
+ public native void setStringVar(String name, String value);
+ public native String getStringVar(String name);
+ public native int getNumStringVars();
+ public native String getStringVarNameByIndex(int index);
+ public native void loadEnvironment();
+ public native String resolveStringVar(String val);
+ public native String resolveFileLocation(String filename) throws ExceptionMissingFile;
+}
diff --git a/src/jniglue/org/OpenColorIO/DisplayTransform.java b/src/jniglue/org/OpenColorIO/DisplayTransform.java
new file mode 100644
index 0000000..0867029
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/DisplayTransform.java
@@ -0,0 +1,55 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class DisplayTransform extends Transform
+{
+ public DisplayTransform() { super(); }
+ protected DisplayTransform(long impl) { super(impl); }
+ public native DisplayTransform Create();
+ public native void setInputColorSpaceName(String name);
+ public native String getInputColorSpaceName();
+ public native void setLinearCC(Transform cc);
+ public native Transform getLinearCC();
+ public native void setColorTimingCC(Transform cc);
+ public native Transform getColorTimingCC();
+ public native void setChannelView(Transform transform);
+ public native Transform getChannelView();
+ public native void setDisplay(String display);
+ public native String getDisplay();
+ public native void setView(String view);
+ public native String getView();
+ public native void setDisplayCC(Transform cc);
+ public native Transform getDisplayCC();
+ public native void setLooksOverride(String looks);
+ public native String getLooksOverride();
+ public native void setLooksOverrideEnabled(boolean enabled);
+ public native boolean getLooksOverrideEnabled();
+}
diff --git a/src/jniglue/org/OpenColorIO/ExceptionBase.java b/src/jniglue/org/OpenColorIO/ExceptionBase.java
new file mode 100644
index 0000000..ba8639f
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ExceptionBase.java
@@ -0,0 +1,37 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ExceptionBase extends java.lang.Exception
+{
+ public ExceptionBase(String msg) {
+ super(msg);
+ }
+}
diff --git a/src/jniglue/org/OpenColorIO/ExceptionMissingFile.java b/src/jniglue/org/OpenColorIO/ExceptionMissingFile.java
new file mode 100644
index 0000000..a0c79ef
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ExceptionMissingFile.java
@@ -0,0 +1,37 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ExceptionMissingFile extends ExceptionBase
+{
+ public ExceptionMissingFile(String msg) {
+ super(msg);
+ }
+}
diff --git a/src/jniglue/org/OpenColorIO/ExponentTransform.java b/src/jniglue/org/OpenColorIO/ExponentTransform.java
new file mode 100644
index 0000000..4f763a9
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ExponentTransform.java
@@ -0,0 +1,39 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ExponentTransform extends Transform
+{
+ public ExponentTransform() { super(); }
+ protected ExponentTransform(long impl) { super(impl); }
+ public native ExponentTransform Create();
+ public native void setValue(float[] vec4);
+ public native void getValue(float[] vec4);
+}
diff --git a/src/jniglue/org/OpenColorIO/FileTransform.java b/src/jniglue/org/OpenColorIO/FileTransform.java
new file mode 100644
index 0000000..bfe55cc
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/FileTransform.java
@@ -0,0 +1,46 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class FileTransform extends Transform
+{
+ public FileTransform() { super(); }
+ protected FileTransform(long impl) { super(impl); }
+ public native FileTransform Create();
+ public native String getSrc();
+ public native void setSrc(String src);
+ public native String getCCCId();
+ public native void setCCCId(String id);
+ public native Interpolation getInterpolation();
+ public native void setInterpolation(Interpolation interp);
+ public native int getNumFormats();
+ public native String getFormatNameByIndex(int index);
+ public native String getFormatExtensionByIndex(int index);
+}
diff --git a/src/jniglue/org/OpenColorIO/Globals.java b/src/jniglue/org/OpenColorIO/Globals.java
new file mode 100644
index 0000000..5273bd7
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Globals.java
@@ -0,0 +1,78 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Globals extends LoadLibrary
+{
+ public native void ClearAllCaches();
+ public native String GetVersion();
+ public native int GetVersionHex();
+ public native LoggingLevel GetLoggingLevel();
+ public native void SetLoggingLevel(LoggingLevel level);
+ public native Config GetCurrentConfig();
+ public native void SetCurrentConfig(Config config);
+
+ // Types
+ public native String BoolToString(boolean val);
+ public native boolean BoolFromString(String s);
+ public native String LoggingLevelToString(LoggingLevel level);
+ public native LoggingLevel LoggingLevelFromString(String s);
+ public native String TransformDirectionToString(TransformDirection dir);
+ public native TransformDirection TransformDirectionFromString(String s);
+ public native TransformDirection GetInverseTransformDirection(TransformDirection dir);
+ public native TransformDirection CombineTransformDirections(TransformDirection d1, TransformDirection d2);
+ public native String ColorSpaceDirectionToString(ColorSpaceDirection dir);
+ public native ColorSpaceDirection ColorSpaceDirectionFromString(String s);
+ public native String BitDepthToString(BitDepth bitDepth);
+ public native BitDepth BitDepthFromString(String s);
+ public native boolean BitDepthIsFloat(BitDepth bitDepth);
+ public native int BitDepthToInt(BitDepth bitDepth);
+ public native String AllocationToString(Allocation allocation);
+ public native Allocation AllocationFromString(String s);
+ public native String InterpolationToString(Interpolation interp);
+ public native Interpolation InterpolationFromString(String s);
+ public native String GpuLanguageToString(GpuLanguage language);
+ public native GpuLanguage GpuLanguageFromString(String s);
+
+ // Roles
+ public String ROLE_DEFAULT;
+ public String ROLE_REFERENCE;
+ public String ROLE_DATA;
+ public String ROLE_COLOR_PICKING;
+ public String ROLE_SCENE_LINEAR;
+ public String ROLE_COMPOSITING_LOG;
+ public String ROLE_COLOR_TIMING;
+ public String ROLE_TEXTURE_PAINT;
+ public String ROLE_MATTE_PAINT;
+
+ //
+ public Globals() { super(); create(); }
+ private native void create();
+}
diff --git a/src/jniglue/org/OpenColorIO/GpuLanguage.java b/src/jniglue/org/OpenColorIO/GpuLanguage.java
new file mode 100644
index 0000000..3368a88
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/GpuLanguage.java
@@ -0,0 +1,46 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class GpuLanguage extends LoadLibrary
+{
+ private final int m_enum;
+ protected GpuLanguage(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final GpuLanguage
+ GPU_LANGUAGE_UNKNOWN = new GpuLanguage(0);
+ public static final GpuLanguage
+ GPU_LANGUAGE_CG = new GpuLanguage(1);
+ public static final GpuLanguage
+ GPU_LANGUAGE_GLSL_1_0 = new GpuLanguage(2);
+ public static final GpuLanguage
+ GPU_LANGUAGE_GLSL_1_3 = new GpuLanguage(3);
+}
diff --git a/src/jniglue/org/OpenColorIO/GpuShaderDesc.java b/src/jniglue/org/OpenColorIO/GpuShaderDesc.java
new file mode 100644
index 0000000..bdaf855
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/GpuShaderDesc.java
@@ -0,0 +1,46 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class GpuShaderDesc extends LoadLibrary
+{
+ public GpuShaderDesc() { super(); create(); }
+ protected GpuShaderDesc(long impl) { super(impl); }
+ private native void create();
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native void setLanguage(GpuLanguage lang);
+ public native GpuLanguage getLanguage();
+ public native void setFunctionName(String name);
+ public native String getFunctionName();
+ public native void setLut3DEdgeLen(int len);
+ public native int getLut3DEdgeLen();
+ public native String getCacheID();
+};
diff --git a/src/jniglue/org/OpenColorIO/GroupTransform.java b/src/jniglue/org/OpenColorIO/GroupTransform.java
new file mode 100644
index 0000000..b0a24e6
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/GroupTransform.java
@@ -0,0 +1,42 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class GroupTransform extends Transform
+{
+ public GroupTransform() { super(); }
+ protected GroupTransform(long impl) { super(impl); }
+ public native GroupTransform Create();
+ public native Transform getTransform(int index);
+ public native int size();
+ public native void push_back(Transform transform);
+ public native void clear();
+ public native boolean empty();
+}
diff --git a/src/jniglue/org/OpenColorIO/ImageDesc.java b/src/jniglue/org/OpenColorIO/ImageDesc.java
new file mode 100644
index 0000000..f442ca1
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/ImageDesc.java
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class ImageDesc extends LoadLibrary
+{
+ public ImageDesc() { super(); }
+ protected ImageDesc(long impl) { super(impl); }
+};
diff --git a/src/jniglue/org/OpenColorIO/Interpolation.java b/src/jniglue/org/OpenColorIO/Interpolation.java
new file mode 100644
index 0000000..f807d99
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Interpolation.java
@@ -0,0 +1,48 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Interpolation extends LoadLibrary
+{
+ private final int m_enum;
+ protected Interpolation(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final Interpolation
+ INTERP_UNKNOWN = new Interpolation(0);
+ public static final Interpolation
+ INTERP_NEAREST = new Interpolation(1);
+ public static final Interpolation
+ INTERP_LINEAR = new Interpolation(2);
+ public static final Interpolation
+ INTERP_TETRAHEDRAL = new Interpolation(3);
+ public static final Interpolation
+ INTERP_BEST = new Interpolation(255);
+}
diff --git a/src/jniglue/org/OpenColorIO/LogTransform.java b/src/jniglue/org/OpenColorIO/LogTransform.java
new file mode 100644
index 0000000..0f5b435
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/LogTransform.java
@@ -0,0 +1,39 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class LogTransform extends Transform
+{
+ public LogTransform() { super(); }
+ protected LogTransform(long impl) { super(impl); }
+ public native LogTransform Create();
+ public native void setBase(float val);
+ public native float getBase();
+}
diff --git a/src/jniglue/org/OpenColorIO/LoggingLevel.java b/src/jniglue/org/OpenColorIO/LoggingLevel.java
new file mode 100644
index 0000000..a8106e4
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/LoggingLevel.java
@@ -0,0 +1,48 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class LoggingLevel extends LoadLibrary
+{
+ private final int m_enum;
+ protected LoggingLevel(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final LoggingLevel
+ LOGGING_LEVEL_NONE = new LoggingLevel(0);
+ public static final LoggingLevel
+ LOGGING_LEVEL_WARNING = new LoggingLevel(1);
+ public static final LoggingLevel
+ LOGGING_LEVEL_INFO = new LoggingLevel(2);
+ public static final LoggingLevel
+ LOGGING_LEVEL_DEBUG = new LoggingLevel(3);
+ public static final LoggingLevel
+ LOGGING_LEVEL_UNKNOWN = new LoggingLevel(255);
+}
diff --git a/src/jniglue/org/OpenColorIO/Look.java b/src/jniglue/org/OpenColorIO/Look.java
new file mode 100644
index 0000000..c2fb0ef
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Look.java
@@ -0,0 +1,48 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Look extends LoadLibrary
+{
+ public Look() { super(); }
+ protected Look(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Look Create();
+ public native String getName();
+ public native void setName(String name);
+ public native String getProcessSpace();
+ public native void setProcessSpace(String processSpace);
+ public native Transform getTransform();
+ public native void setTransform(Transform transform);
+ public native Transform getInverseTransform();
+ public native void setInverseTransform(Transform transform);
+};
+
diff --git a/src/jniglue/org/OpenColorIO/LookTransform.java b/src/jniglue/org/OpenColorIO/LookTransform.java
new file mode 100644
index 0000000..a6ca6b3
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/LookTransform.java
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class LookTransform extends Transform
+{
+ public LookTransform() { super(); }
+ protected LookTransform(long impl) { super(impl); }
+ public native LookTransform Create();
+ public native String getSrc();
+ public native void setSrc(String src);
+ public native String getDst();
+ public native void setDst(String dst);
+ public native void setLooks(String looks);
+ public native String getLooks();
+}
diff --git a/src/jniglue/org/OpenColorIO/MatrixTransform.java b/src/jniglue/org/OpenColorIO/MatrixTransform.java
new file mode 100644
index 0000000..d4560f1
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/MatrixTransform.java
@@ -0,0 +1,54 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class MatrixTransform extends Transform
+{
+ public MatrixTransform() { super(); }
+ protected MatrixTransform(long impl) { super(impl); }
+ public native MatrixTransform Create();
+ public native boolean equals(MatrixTransform obj);
+ public native void setValue(float[] m44, float[] offset4);
+ public native void getValue(float[] m44, float[] offset4);
+ public native void setMatrix(float[] m44);
+ public native void getMatrix(float[] m44);
+ public native void setOffset(float[] offset4);
+ public native void getOffset(float[] offset4);
+ public native void Fit(float[] m44, float[] offset4,
+ float[] oldmin4, float[] oldmax4,
+ float[] newmin4, float[] newmax4);
+ public native void Identity(float[] m44, float[] offset4);
+ public native void Sat(float[] m44, float[] offset4,
+ float sat, float[] lumaCoef3);
+ public native void Scale(float[] m44, float[] offset4,
+ float[] scale4);
+ public native void View(float[] m44, float[] offset4,
+ int[] channelHot4, float[] lumaCoef3);
+}
diff --git a/src/jniglue/org/OpenColorIO/PackedImageDesc.java b/src/jniglue/org/OpenColorIO/PackedImageDesc.java
new file mode 100644
index 0000000..8cc6932
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/PackedImageDesc.java
@@ -0,0 +1,59 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+import java.nio.FloatBuffer;
+
+public class PackedImageDesc extends ImageDesc
+{
+ public PackedImageDesc(FloatBuffer data, long width, long height, long numChannels)
+ {
+ super();
+ create(data, width, height, numChannels);
+ }
+ public PackedImageDesc(FloatBuffer data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes)
+ {
+ super();
+ create(data, width, height, numChannels, chanStrideBytes, xStrideBytes, yStrideBytes);
+ }
+ protected PackedImageDesc(long impl) { super(impl); }
+ protected native void create(FloatBuffer data, long width, long height, long numChannels);
+ protected native void create(FloatBuffer data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes);
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native FloatBuffer getData();
+ public native long getWidth();
+ public native long getHeight();
+ public native long getNumChannels();
+ public native long getChanStrideBytes();
+ public native long getXStrideBytes();
+ public native long getYStrideBytes();
+};
diff --git a/src/jniglue/org/OpenColorIO/PlanarImageDesc.java b/src/jniglue/org/OpenColorIO/PlanarImageDesc.java
new file mode 100644
index 0000000..86fc5de
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/PlanarImageDesc.java
@@ -0,0 +1,63 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+import java.nio.FloatBuffer;
+
+public class PlanarImageDesc extends ImageDesc
+{
+ public PlanarImageDesc(FloatBuffer rData, FloatBuffer gData, FloatBuffer bData,
+ FloatBuffer aData, long width, long height)
+ {
+ super();
+ create(rData, gData, bData, aData, width, height);
+ }
+ public PlanarImageDesc(FloatBuffer rData, FloatBuffer gData, FloatBuffer bData,
+ FloatBuffer aData, long width, long height,
+ long yStrideBytes)
+ {
+ super();
+ create(rData, gData, bData, aData, width, height, yStrideBytes);
+ }
+ protected PlanarImageDesc(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ protected native void create(FloatBuffer rData, FloatBuffer gData, FloatBuffer bData,
+ FloatBuffer aData, long width, long height);
+ protected native void create(FloatBuffer rData, FloatBuffer gData, FloatBuffer bData,
+ FloatBuffer aData, long width, long height,
+ long yStrideBytes);
+ public native FloatBuffer getRData();
+ public native FloatBuffer getGData();
+ public native FloatBuffer getBData();
+ public native FloatBuffer getAData();
+ public native long getWidth();
+ public native long getHeight();
+ public native long getYStrideBytes();
+};
diff --git a/src/jniglue/org/OpenColorIO/Processor.java b/src/jniglue/org/OpenColorIO/Processor.java
new file mode 100644
index 0000000..a999992
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Processor.java
@@ -0,0 +1,51 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+import java.nio.FloatBuffer;
+
+public class Processor extends LoadLibrary
+{
+ public Processor() { super(); }
+ protected Processor(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Processor Create();
+ public native boolean isNoOp();
+ public native boolean hasChannelCrosstalk();
+ public native void apply(ImageDesc img);
+ public native void applyRGB(float[] pixel);
+ public native void applyRGBA(float[] pixel);
+ public native String getCpuCacheID();
+ public native String getGpuShaderText(GpuShaderDesc shaderDesc);
+ public native String getGpuShaderTextCacheID(GpuShaderDesc shaderDesc);
+ public native void getGpuLut3D(FloatBuffer lut3d, GpuShaderDesc shaderDesc);
+ public native String getGpuLut3DCacheID(GpuShaderDesc shaderDesc);
+};
+
diff --git a/src/jniglue/org/OpenColorIO/Transform.java b/src/jniglue/org/OpenColorIO/Transform.java
new file mode 100644
index 0000000..52c6fb5
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/Transform.java
@@ -0,0 +1,41 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class Transform extends LoadLibrary
+{
+ public Transform() { super(); }
+ protected Transform(long impl) { super(impl); }
+ public native void dispose();
+ protected void finalize() { dispose(); }
+ public native Transform createEditableCopy();
+ public native TransformDirection getDirection();
+ public native void setDirection(TransformDirection dir);
+}
diff --git a/src/jniglue/org/OpenColorIO/TransformDirection.java b/src/jniglue/org/OpenColorIO/TransformDirection.java
new file mode 100644
index 0000000..b034b5a
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/TransformDirection.java
@@ -0,0 +1,44 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class TransformDirection extends LoadLibrary
+{
+ private final int m_enum;
+ protected TransformDirection(int type) { super(); m_enum = type; }
+ public native String toString();
+ public native boolean equals(Object obj);
+ public static final TransformDirection
+ TRANSFORM_DIR_UNKNOWN = new TransformDirection(0);
+ public static final TransformDirection
+ TRANSFORM_DIR_FORWARD = new TransformDirection(1);
+ public static final TransformDirection
+ TRANSFORM_DIR_INVERSE = new TransformDirection(2);
+}
diff --git a/src/jniglue/org/OpenColorIO/TruelightTransform.java b/src/jniglue/org/OpenColorIO/TruelightTransform.java
new file mode 100644
index 0000000..1d966e9
--- /dev/null
+++ b/src/jniglue/org/OpenColorIO/TruelightTransform.java
@@ -0,0 +1,58 @@
+/*
+Copyright (c) 2003-2010 Sony Pictures Imageworks Inc., et al.
+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 Sony Pictures Imageworks nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package org.OpenColorIO;
+import org.OpenColorIO.*;
+
+public class TruelightTransform extends Transform
+{
+ public TruelightTransform() { super(); }
+ protected TruelightTransform(long impl) { super(impl); }
+ public native TruelightTransform Create();
+ public native void setConfigRoot(String configroot);
+ public native String getConfigRoot();
+ public native void setProfile(String profile);
+ public native String getProfile();
+ public native void setCamera(String camera);
+ public native String getCamera();
+ public native void setInputDisplay(String display);
+ public native String getInputDisplay();
+ public native void setRecorder(String recorder);
+ public native String getRecorder();
+ public native void setPrint(String print);
+ public native String getPrint();
+ public native void setLamp(String lamp);
+ public native String getLamp();
+ public native void setOutputCamera(String camera);
+ public native String getOutputCamera();
+ public native void setDisplay(String display);
+ public native String getDisplay();
+ public native void setCubeInput(String type);
+ public native String getCubeInput();
+}
+
diff --git a/src/jniglue/tests/CMakeLists.txt b/src/jniglue/tests/CMakeLists.txt
new file mode 100644
index 0000000..e201749
--- /dev/null
+++ b/src/jniglue/tests/CMakeLists.txt
@@ -0,0 +1,17 @@
+###############################################################################
+### JNI JUNIT TESTS ###
+
+
+file(GLOB _TESTS_FILES "org/OpenColorIO/*.java")
+set(_JCLASS_PATH "${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/..:${CMAKE_SOURCE_DIR}/ext/junit-4.9b4.jar")
+set(_JLIB_PATH "${CMAKE_CURRENT_BINARY_DIR}/..")
+
+add_custom_target(JNITests
+ COMMAND javac -cp ${_JCLASS_PATH}
+ -d ${CMAKE_CURRENT_BINARY_DIR} ${_TESTS_FILES}
+ COMMAND java -cp ${_JCLASS_PATH}
+ -Djava.library.path=${_JLIB_PATH} junit.textui.TestRunner
+ OpenColorIOTestSuite
+ DEPENDS OpenColorIO-JNI
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Setting Up and Running JNI OCIO JUNIT tests")
diff --git a/src/jniglue/tests/org/OpenColorIO/BakerTest.java b/src/jniglue/tests/org/OpenColorIO/BakerTest.java
new file mode 100644
index 0000000..63f540a
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/BakerTest.java
@@ -0,0 +1,84 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class BakerTest extends TestCase {
+
+ String SIMPLE_PROFILE = ""
+ + "ocio_profile_version: 1\n"
+ + "\n"
+ + "strictparsing: false\n"
+ + "\n"
+ + "colorspaces:\n"
+ + "\n"
+ + " - !<ColorSpace>\n"
+ + " name: lnh\n"
+ + " bitdepth: 16f\n"
+ + " isdata: false\n"
+ + " allocation: lg2\n"
+ + "\n"
+ + " - !<ColorSpace>\n"
+ + " name: test\n"
+ + " bitdepth: 8ui\n"
+ + " isdata: false\n"
+ + " allocation: uniform\n"
+ + " to_reference: !<ExponentTransform> {value: [2.2, 2.2, 2.2, 1]}\n";
+
+ String EXPECTED_LUT = ""
+ + "CSPLUTV100\n"
+ + "3D\n"
+ + "BEGIN METADATA\n"
+ + "this is some metadata!\n"
+ + "END METADATA\n"
+ + "\n"
+ + "4\n"
+ + "0.000977 0.039373 1.587401 64.000000\n"
+ + "0.000000 0.333333 0.666667 1.000000\n"
+ + "4\n"
+ + "0.000977 0.039373 1.587401 64.000000\n"
+ + "0.000000 0.333333 0.666667 1.000000\n"
+ + "4\n"
+ + "0.000977 0.039373 1.587401 64.000000\n"
+ + "0.000000 0.333333 0.666667 1.000000\n"
+ + "\n"
+ + "2 2 2\n"
+ + "0.042823 0.042823 0.042823\n"
+ + "6.622026 0.042823 0.042823\n"
+ + "0.042823 6.622026 0.042823\n"
+ + "6.622026 6.622026 0.042823\n"
+ + "0.042823 0.042823 6.622026\n"
+ + "6.622026 0.042823 6.622026\n"
+ + "0.042823 6.622026 6.622026\n"
+ + "6.622026 6.622026 6.622026\n"
+ + "\n";
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+ Baker bake = new Baker().Create();
+ Baker bakee = bake.createEditableCopy();
+ Config cfg = new Config().CreateFromStream(SIMPLE_PROFILE);
+ bakee.setConfig(cfg);
+ bakee.setFormat("cinespace");
+ assertEquals("cinespace", bakee.getFormat());
+ bakee.setType("3D");
+ assertEquals("3D", bakee.getType());
+ bakee.setMetadata("this is some metadata!");
+ assertEquals("this is some metadata!", bakee.getMetadata());
+ bakee.setInputSpace("lnh");
+ assertEquals("lnh", bakee.getInputSpace());
+ bakee.setTargetSpace("test");
+ assertEquals("test", bakee.getTargetSpace());
+ bakee.setShaperSize(4);
+ assertEquals(4, bakee.getShaperSize());
+ bakee.setCubeSize(2);
+ assertEquals(2, bakee.getCubeSize());
+ String output = bakee.bake();
+ assertEquals(EXPECTED_LUT, output);
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/ColorSpaceTest.java b/src/jniglue/tests/org/OpenColorIO/ColorSpaceTest.java
new file mode 100644
index 0000000..f49e582
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/ColorSpaceTest.java
@@ -0,0 +1,41 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class ColorSpaceTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+ ColorSpace cs = new ColorSpace().Create();
+ cs.setName("mynewcolspace");
+ assertEquals("mynewcolspace", cs.getName());
+ cs.setFamily("fam1");
+ assertEquals("fam1", cs.getFamily());
+ cs.setEqualityGroup("match1");
+ assertEquals("match1", cs.getEqualityGroup());
+ cs.setDescription("this is a test");
+ assertEquals("this is a test", cs.getDescription());
+ cs.setBitDepth(BitDepth.BIT_DEPTH_F16);
+ assertEquals(BitDepth.BIT_DEPTH_F16, cs.getBitDepth());
+ cs.setIsData(false);
+ assertEquals(false, cs.isData());
+ cs.setAllocation(Allocation.ALLOCATION_LG2);
+ assertEquals(Allocation.ALLOCATION_LG2, cs.getAllocation());
+ float test[] = new float[]{0.1f, 0.2f, 0.3f};
+ cs.setAllocationVars(3, test);
+ assertEquals(3, cs.getAllocationNumVars());
+ float out[] = new float[3];
+ cs.getAllocationVars(out);
+ LogTransform lt = new LogTransform().Create();
+ lt.setBase(10.f);
+ cs.setTransform(lt, ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE);
+ LogTransform ott = (LogTransform)cs.getTransform(ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE);
+ assertEquals(10.f, ott.getBase());
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/ConfigTest.java b/src/jniglue/tests/org/OpenColorIO/ConfigTest.java
new file mode 100644
index 0000000..a676bae
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/ConfigTest.java
@@ -0,0 +1,220 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+import java.nio.*;
+
+public class ConfigTest extends TestCase {
+
+ String SIMPLE_PROFILE = ""
+ + "ocio_profile_version: 1\n"
+ + "\n"
+ + "search_path: luts\n"
+ + "strictparsing: false\n"
+ + "luma: [0.2126, 0.7152, 0.0722]\n"
+ + "\n"
+ + "roles:\n"
+ + " default: raw\n"
+ + " scene_linear: lnh\n"
+ + "\n"
+ + "displays:\n"
+ + " sRGB:\n"
+ + " - !<View> {name: Film1D, colorspace: vd8}\n"
+ + " - !<View> {name: Raw, colorspace: raw}\n"
+ + "\n"
+ + "active_displays: []\n"
+ + "active_views: []\n"
+ + "\n"
+ + "colorspaces:\n"
+ + " - !<ColorSpace>\n"
+ + " name: raw\n"
+ + " family: raw\n"
+ + " bitdepth: 32f\n"
+ + " description: |\n"
+ + " A raw color space. Conversions to and from this space are no-ops.\n"
+ + " \n"
+ + " isdata: true\n"
+ + " allocation: uniform\n"
+ + "\n"
+ + " - !<ColorSpace>\n"
+ + " name: lnh\n"
+ + " family: ln\n"
+ + " bitdepth: 16f\n"
+ + " description: |\n"
+ + " The show reference space. This is a sensor referred linear\n"
+ + " representation of the scene with primaries that correspond to\n"
+ + " scanned film. 0.18 in this space corresponds to a properly\n"
+ + " exposed 18% grey card.\n"
+ + " \n"
+ + " isdata: false\n"
+ + " allocation: lg2\n"
+ + "\n"
+ + " - !<ColorSpace>\n"
+ + " name: vd8\n"
+ + " family: vd8\n"
+ + " bitdepth: 8ui\n"
+ + " description: |\n"
+ + " how many transforms can we use?\n"
+ + " \n"
+ + " isdata: false\n"
+ + " allocation: uniform\n"
+ + " to_reference: !<GroupTransform>\n"
+ + " children:\n"
+ + " - !<ExponentTransform> {value: [2.2, 2.2, 2.2, 1]}\n"
+ + " - !<MatrixTransform> {matrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], offset: [0, 0, 0, 0]}\n"
+ + " - !<CDLTransform> {slope: [1, 1, 1], offset: [0.1, 0.3, 0.4], power: [1.1, 1.1, 1.1], saturation: 0.9}\n";
+
+ String GLSLResult = ""
+ + "\n"
+ + "// Generated by OpenColorIO\n"
+ + "\n"
+ + "vec4 jnitestocio(in vec4 inPixel, \n"
+ + " const sampler3D lut3d) \n"
+ + "{\n"
+ + "vec4 out_pixel = inPixel; \n"
+ + "out_pixel = out_pixel * mat4(1.08749, -0.0794667, -0.00802222, 0, -0.0236222, 1.03164, -0.00802222, 0, -0.0236222, -0.0794667, 1.10309, 0, 0, 0, 0, 1);\n"
+ + "out_pixel = pow(max(out_pixel, vec4(0, 0, 0, 0)), vec4(0.909091, 0.909091, 0.909091, 1));\n"
+ + "out_pixel = vec4(-0.1, -0.3, -0.4, -0) + out_pixel;\n"
+ + "out_pixel = pow(max(out_pixel, vec4(0, 0, 0, 0)), vec4(0.454545, 0.454545, 0.454545, 1));\n"
+ + "// OSX segfault work-around: Force a no-op sampling of the 3d lut.\n"
+ + "texture3D(lut3d, -inf * out_pixel.rgb + inf).rgb;\n"
+ + "return out_pixel;\n"
+ + "}\n"
+ + "\n";
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+
+ Config _cfg = new Config().CreateFromStream(SIMPLE_PROFILE);
+ Config _cfge = _cfg.createEditableCopy();
+ assertEquals("luts", _cfge.getSearchPath());
+ _cfge.setSearchPath("otherdir");
+ assertEquals("otherdir", _cfge.getSearchPath());
+ _cfge.sanityCheck();
+ _cfge.setDescription("testdesc");
+ assertEquals("testdesc", _cfge.getDescription());
+ //assertEquals(SIMPLE_PROFILE, _cfg.serialize());
+ //assertEquals("$07d1fb1509eeae1837825fd4242f8a69:$885ad1683add38a11f7bbe34e8bf9ac0",
+ // _cfg.getCacheID());
+ Context con = _cfg.getCurrentContext();
+ assertNotSame(0, con.getNumStringVars());
+ //assertEquals("", _cfg.getCacheID(con)); // test env makes this fail
+ //assertEquals("", _cfge.getWorkingDir());
+ _cfge.setWorkingDir("/foobar");
+ assertEquals("/foobar", _cfge.getWorkingDir());
+ assertEquals(3, _cfge.getNumColorSpaces());
+ assertEquals("lnh", _cfge.getColorSpaceNameByIndex(1));
+ //public native ColorSpace getColorSpace(String name);
+ assertEquals(0, _cfge.getIndexForColorSpace("foobar"));
+ //public native void addColorSpace(ColorSpace cs);
+ //public native void clearColorSpaces();
+ //public native String parseColorSpaceFromString(String str);
+ if(_cfg.isStrictParsingEnabled()) fail("strict parsing should be off");
+ _cfge.setStrictParsingEnabled(true);
+ if(!_cfge.isStrictParsingEnabled()) fail("strict parsing should be on");
+ assertEquals(2, _cfge.getNumRoles());
+ if(_cfg.hasRole("foo")) fail("shouldn't have role foo");
+ _cfge.setRole("foo", "dfadfadf");
+ assertEquals(3, _cfge.getNumRoles());
+ if(!_cfge.hasRole("foo")) fail("should have role foo");
+ assertEquals("foo", _cfge.getRoleName(1));
+ assertEquals("sRGB", _cfge.getDefaultDisplay());
+ assertEquals(1, _cfge.getNumDisplays());
+ assertEquals("sRGB", _cfge.getDisplay(0));
+ assertEquals("Film1D", _cfge.getDefaultView("sRGB"));
+ assertEquals(2, _cfge.getNumViews("sRGB"));
+ assertEquals("Raw", _cfge.getView("sRGB", 1));
+ assertEquals("vd8", _cfge.getDisplayColorSpaceName("sRGB", "Film1D"));
+ assertEquals("", _cfg.getDisplayLooks("sRGB", "Film1D"));
+
+ // TODO: seems that 4 string params causes a memory error in the JNI layer?
+ //_cfge.addDisplay("foo", "bar", "foo", 0);
+
+ _cfge.clearDisplays();
+ _cfge.setActiveDisplays("sRGB");
+ assertEquals("sRGB", _cfge.getActiveDisplays());
+ _cfge.setActiveViews("Film1D");
+ assertEquals("Film1D", _cfge.getActiveViews());
+ float luma[] = new float[3];
+ _cfge.getDefaultLumaCoefs(luma);
+ assertEquals(0.2126, luma[0], 1e-8);
+ float[] newluma = new float[]{0.1f, 0.2f, 0.3f};
+ _cfge.setDefaultLumaCoefs(newluma);
+ float tnewluma[] = new float[3];
+ _cfge.getDefaultLumaCoefs(tnewluma);
+ assertEquals(0.1f, tnewluma[0], 1e-8);
+ assertEquals(0, _cfge.getNumLooks());
+ Look lk = new Look().Create();
+ lk.setName("coollook");
+ lk.setProcessSpace("somespace");
+ ExponentTransform et = new ExponentTransform().Create();
+ et.setValue(new float[]{0.1f, 0.2f, 0.3f, 0.4f});
+ lk.setTransform(et);
+ ExponentTransform iet = new ExponentTransform().Create();
+ iet.setValue(new float[]{-0.1f, -0.2f, -0.3f, -0.4f});
+ lk.setInverseTransform(iet);
+ _cfge.addLook(lk);
+ assertEquals(1, _cfge.getNumLooks());
+ assertEquals("coollook", _cfge.getLookNameByIndex(0));
+ Look glk = _cfge.getLook("coollook");
+ assertEquals("somespace", glk.getProcessSpace());
+ _cfge.clearLooks();
+ assertEquals(0, _cfge.getNumLooks());
+
+ //public native Processor getProcessor(Context context, ColorSpace srcColorSpace, ColorSpace dstColorSpace);
+
+ Processor _proc = _cfg.getProcessor("lnh", "vd8");
+ assertEquals(false, _proc.isNoOp());
+ assertEquals(true, _proc.hasChannelCrosstalk());
+ float packedpix[] = new float[]{0.48f, 0.18f, 0.9f, 1.0f,
+ 0.48f, 0.18f, 0.18f, 1.0f,
+ 0.48f, 0.18f, 0.18f, 1.0f,
+ 0.48f, 0.18f, 0.18f, 1.0f };
+ FloatBuffer buf = ByteBuffer.allocateDirect(2 * 2 * 4 * Float.SIZE / 8).asFloatBuffer();
+ buf.put(packedpix);
+ PackedImageDesc foo = new PackedImageDesc(buf, 2, 2, 4);
+ _proc.apply(foo);
+ FloatBuffer wee = foo.getData();
+ assertEquals(-2.4307251581696764E-35f, wee.get(2), 1e-8);
+ float rgbfoo[] = new float[]{0.48f, 0.18f, 0.18f};
+ _proc.applyRGB(rgbfoo);
+ assertEquals(0.6875247f, rgbfoo[0], 1e-8);
+ float rgbafoo[] = new float[]{0.48f, 0.18f, 0.18f, 1.f};
+ _proc.applyRGBA(rgbafoo);
+ assertEquals(1.f, rgbafoo[3], 1e-8);
+ //assertEquals("$a92ef63abd9edf61ad5a7855da064648", _proc.getCpuCacheID());
+ GpuShaderDesc desc = new GpuShaderDesc();
+ desc.setLanguage(GpuLanguage.GPU_LANGUAGE_GLSL_1_3);
+ desc.setFunctionName("jnitestocio");
+ desc.setLut3DEdgeLen(32);
+ String glsl = _proc.getGpuShaderText(desc);
+ //assertEquals(GLSLResult, glsl);
+ //assertEquals("$1dead2bf42974cd1769164e45a0c9e40", _proc.getGpuShaderTextCacheID(desc));
+ int len = desc.getLut3DEdgeLen();
+ int size = 3 * len * len * len;
+ FloatBuffer lut3d = ByteBuffer.allocateDirect(size * Float.SIZE / 8).asFloatBuffer();
+ _proc.getGpuLut3D(lut3d, desc);
+ assertEquals(0.0f, lut3d.get(size-1));
+ assertEquals("<NULL>", _proc.getGpuLut3DCacheID(desc));
+
+ //public native Processor getProcessor(Context context, String srcName, String dstName);
+ //public native Processor getProcessor(Transform transform);
+ //public native Processor getProcessor(Transform transform, TransformDirection direction);
+ //public native Processor getProcessor(Context context, Transform transform, TransformDirection direction);
+
+ _cfge.dispose();
+ _cfg.dispose();
+
+ //System.out.println(_cfge.serialize());
+ //_cfge.sanityCheck();
+ //System.out.println(_cfge.getNumColorSpaces());
+ //System.out.println(_cfg.getCacheID());
+ //System.out.println(_cfge.serialize());
+
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/ContextTest.java b/src/jniglue/tests/org/OpenColorIO/ContextTest.java
new file mode 100644
index 0000000..87579e3
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/ContextTest.java
@@ -0,0 +1,38 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class ContextTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+ Context cont = new Context().Create();
+ cont.setSearchPath("testing123");
+ cont.setWorkingDir("/dir/123");
+ assertEquals("$af84c0ff921e48843d711a761e05b80f", cont.getCacheID());
+ assertEquals("testing123", cont.getSearchPath());
+ assertEquals("/dir/123", cont.getWorkingDir());
+ cont.setStringVar("TeSt", "foobar");
+ assertEquals("foobar", cont.getStringVar("TeSt"));
+ assertEquals(1, cont.getNumStringVars());
+ assertEquals("TeSt", cont.getStringVarNameByIndex(0));
+ cont.loadEnvironment();
+ assertNotSame(0, cont.getNumStringVars());
+ cont.setStringVar("TEST1", "foobar");
+ assertEquals("/foo/foobar/bar",
+ cont.resolveStringVar("/foo/${TEST1}/bar"));
+ try {
+ cont.setSearchPath("testing123");
+ String foo = cont.resolveFileLocation("test.lut");
+ System.out.println(foo);
+ } catch (ExceptionMissingFile e) {
+ //System.out.println(e);
+ }
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/GlobalsTest.java b/src/jniglue/tests/org/OpenColorIO/GlobalsTest.java
new file mode 100644
index 0000000..72f92f8
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/GlobalsTest.java
@@ -0,0 +1,150 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class GlobalsTest extends TestCase {
+
+ String FOO = ""
+ + "ocio_profile_version: 1\n"
+ + "\n"
+ + "search_path: \n"
+ + "strictparsing: false\n"
+ + "luma: [0.2126, 0.7152, 0.0722]\n"
+ + "\n"
+ + "roles:\n"
+ + " default: raw\n"
+ + "\n"
+ + "displays:\n"
+ + " sRGB:\n"
+ + " - !<View> {name: Raw, colorspace: raw}\n"
+ + "\n"
+ + "active_displays: []\n"
+ + "active_views: []\n"
+ + "\n"
+ + "colorspaces:\n"
+ + " - !<ColorSpace>\n"
+ + " name: raw\n"
+ + " family: raw\n"
+ + " equalitygroup: \n"
+ + " bitdepth: 32f\n"
+ + " description: |\n"
+ + " A raw color space. Conversions to and from this space are no-ops.\n"
+ + " isdata: true\n"
+ + " allocation: uniform\n";
+
+ protected void setUp() {
+ }
+
+ public void test_interface() {
+
+ Globals globals = new Globals();
+
+ // Globals
+ globals.ClearAllCaches();
+ //assertEquals("1.0.1", globals.GetVersion());
+ //assertEquals(16777472, globals.GetVersionHex());
+ assertEquals(LoggingLevel.LOGGING_LEVEL_INFO, globals.GetLoggingLevel());
+ globals.SetLoggingLevel(LoggingLevel.LOGGING_LEVEL_NONE);
+ assertEquals(LoggingLevel.LOGGING_LEVEL_NONE, globals.GetLoggingLevel());
+ Config foo = globals.GetCurrentConfig();
+ assertEquals(FOO, foo.serialize());
+ globals.SetLoggingLevel(LoggingLevel.LOGGING_LEVEL_INFO);
+ Config bar = new Config().CreateFromStream(foo.serialize());
+ globals.SetCurrentConfig(bar);
+ Config wee = globals.GetCurrentConfig();
+
+ // LoggingLevel
+ assertEquals(globals.LoggingLevelToString(LoggingLevel.LOGGING_LEVEL_NONE), "none");
+ assertEquals(globals.LoggingLevelFromString("none"), LoggingLevel.LOGGING_LEVEL_NONE);
+ assertEquals(globals.LoggingLevelToString(LoggingLevel.LOGGING_LEVEL_WARNING), "warning");
+ assertEquals(globals.LoggingLevelFromString("warning"), LoggingLevel.LOGGING_LEVEL_WARNING);
+ assertEquals(globals.LoggingLevelToString(LoggingLevel.LOGGING_LEVEL_INFO), "info");
+ assertEquals(globals.LoggingLevelFromString("info"), LoggingLevel.LOGGING_LEVEL_INFO);
+ assertEquals(globals.LoggingLevelToString(LoggingLevel.LOGGING_LEVEL_DEBUG), "debug");
+ assertEquals(globals.LoggingLevelFromString("debug"), LoggingLevel.LOGGING_LEVEL_DEBUG);
+ assertEquals(globals.LoggingLevelToString(LoggingLevel.LOGGING_LEVEL_UNKNOWN), "unknown");
+ assertEquals(globals.LoggingLevelFromString("unknown"), LoggingLevel.LOGGING_LEVEL_UNKNOWN);
+
+ // TransformDirection
+ assertEquals(globals.TransformDirectionToString(TransformDirection.TRANSFORM_DIR_UNKNOWN), "unknown");
+ assertEquals(globals.TransformDirectionFromString("unknown"), TransformDirection.TRANSFORM_DIR_UNKNOWN);
+ assertEquals(globals.TransformDirectionToString(TransformDirection.TRANSFORM_DIR_FORWARD), "forward");
+ assertEquals(globals.TransformDirectionFromString("forward"), TransformDirection.TRANSFORM_DIR_FORWARD);
+ assertEquals(globals.TransformDirectionToString(TransformDirection.TRANSFORM_DIR_INVERSE), "inverse");
+ assertEquals(globals.TransformDirectionFromString("inverse"), TransformDirection.TRANSFORM_DIR_INVERSE);
+ assertEquals(globals.GetInverseTransformDirection(TransformDirection.TRANSFORM_DIR_UNKNOWN), TransformDirection.TRANSFORM_DIR_UNKNOWN);
+ assertEquals(globals.GetInverseTransformDirection(TransformDirection.TRANSFORM_DIR_FORWARD), TransformDirection.TRANSFORM_DIR_INVERSE);
+ assertEquals(globals.GetInverseTransformDirection(TransformDirection.TRANSFORM_DIR_INVERSE), TransformDirection.TRANSFORM_DIR_FORWARD);
+
+ // ColorSpaceDirection
+ assertEquals(globals.ColorSpaceDirectionToString(ColorSpaceDirection.COLORSPACE_DIR_UNKNOWN), "unknown");
+ assertEquals(globals.ColorSpaceDirectionFromString("unknown"), ColorSpaceDirection.COLORSPACE_DIR_UNKNOWN);
+ assertEquals(globals.ColorSpaceDirectionToString(ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE), "to_reference");
+ assertEquals(globals.ColorSpaceDirectionFromString("to_reference"), ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE);
+ assertEquals(globals.ColorSpaceDirectionToString(ColorSpaceDirection.COLORSPACE_DIR_FROM_REFERENCE), "from_reference");
+ assertEquals(globals.ColorSpaceDirectionFromString("from_reference"), ColorSpaceDirection.COLORSPACE_DIR_FROM_REFERENCE);
+
+ // BitDepth
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UNKNOWN), "unknown");
+ assertEquals(globals.BitDepthFromString("unknown"), BitDepth.BIT_DEPTH_UNKNOWN);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT8), "8ui");
+ assertEquals(globals.BitDepthFromString("8ui"), BitDepth.BIT_DEPTH_UINT8);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT10), "10ui");
+ assertEquals(globals.BitDepthFromString("10ui"), BitDepth.BIT_DEPTH_UINT10);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT12), "12ui");
+ assertEquals(globals.BitDepthFromString("12ui"), BitDepth.BIT_DEPTH_UINT12);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT14), "14ui");
+ assertEquals(globals.BitDepthFromString("14ui"), BitDepth.BIT_DEPTH_UINT14);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT16), "16ui");
+ assertEquals(globals.BitDepthFromString("16ui"), BitDepth.BIT_DEPTH_UINT16);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_UINT32), "32ui");
+ assertEquals(globals.BitDepthFromString("32ui"), BitDepth.BIT_DEPTH_UINT32);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_F16), "16f");
+ assertEquals(globals.BitDepthFromString("16f"), BitDepth.BIT_DEPTH_F16);
+ assertEquals(globals.BitDepthToString(BitDepth.BIT_DEPTH_F32), "32f");
+ assertEquals(globals.BitDepthFromString("32f"), BitDepth.BIT_DEPTH_F32);
+
+ // Allocation
+ assertEquals(globals.AllocationToString(Allocation.ALLOCATION_UNKNOWN), "unknown");
+ assertEquals(globals.AllocationFromString("unknown"), Allocation.ALLOCATION_UNKNOWN);
+ assertEquals(globals.AllocationToString(Allocation.ALLOCATION_UNIFORM), "uniform");
+ assertEquals(globals.AllocationFromString("uniform"), Allocation.ALLOCATION_UNIFORM);
+ assertEquals(globals.AllocationToString(Allocation.ALLOCATION_LG2), "lg2");
+ assertEquals(globals.AllocationFromString("lg2"), Allocation.ALLOCATION_LG2);
+
+ // Interpolation
+ assertEquals(globals.InterpolationToString(Interpolation.INTERP_UNKNOWN), "unknown");
+ assertEquals(globals.InterpolationFromString("unknown"), Interpolation.INTERP_UNKNOWN);
+ assertEquals(globals.InterpolationToString(Interpolation.INTERP_NEAREST), "nearest");
+ assertEquals(globals.InterpolationFromString("nearest"), Interpolation.INTERP_NEAREST);
+ assertEquals(globals.InterpolationToString(Interpolation.INTERP_LINEAR), "linear");
+ assertEquals(globals.InterpolationFromString("linear"), Interpolation.INTERP_LINEAR);
+ assertEquals(globals.InterpolationToString(Interpolation.INTERP_TETRAHEDRAL), "tetrahedral");
+ assertEquals(globals.InterpolationFromString("tetrahedral"), Interpolation.INTERP_TETRAHEDRAL);
+ assertEquals(globals.InterpolationToString(Interpolation.INTERP_BEST), "best");
+ assertEquals(globals.InterpolationFromString("best"), Interpolation.INTERP_BEST);
+
+ // GpuLanguage
+ assertEquals(globals.GpuLanguageToString(GpuLanguage.GPU_LANGUAGE_UNKNOWN), "unknown");
+ assertEquals(globals.GpuLanguageFromString("unknown"), GpuLanguage.GPU_LANGUAGE_UNKNOWN);
+ assertEquals(globals.GpuLanguageToString(GpuLanguage.GPU_LANGUAGE_CG), "cg");
+ assertEquals(globals.GpuLanguageFromString("cg"), GpuLanguage.GPU_LANGUAGE_CG);
+ assertEquals(globals.GpuLanguageToString(GpuLanguage.GPU_LANGUAGE_GLSL_1_0), "glsl_1.0");
+ assertEquals(globals.GpuLanguageFromString("glsl_1.0"), GpuLanguage.GPU_LANGUAGE_GLSL_1_0);
+ assertEquals(globals.GpuLanguageToString(GpuLanguage.GPU_LANGUAGE_GLSL_1_3), "glsl_1.3");
+ assertEquals(globals.GpuLanguageFromString("glsl_1.3"), GpuLanguage.GPU_LANGUAGE_GLSL_1_3);
+
+ // Roles
+ assertEquals(globals.ROLE_DEFAULT, "default");
+ assertEquals(globals.ROLE_REFERENCE, "reference");
+ assertEquals(globals.ROLE_DATA, "data");
+ assertEquals(globals.ROLE_COLOR_PICKING, "color_picking");
+ assertEquals(globals.ROLE_SCENE_LINEAR, "scene_linear");
+ assertEquals(globals.ROLE_COMPOSITING_LOG, "compositing_log");
+ assertEquals(globals.ROLE_COLOR_TIMING, "color_timing");
+ assertEquals(globals.ROLE_TEXTURE_PAINT, "texture_paint");
+ assertEquals(globals.ROLE_MATTE_PAINT, "matte_paint");
+
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/GpuShaderDescTest.java b/src/jniglue/tests/org/OpenColorIO/GpuShaderDescTest.java
new file mode 100644
index 0000000..08b0a16
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/GpuShaderDescTest.java
@@ -0,0 +1,24 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class GpuShaderDescTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+ GpuShaderDesc desc = new GpuShaderDesc();
+ desc.setLanguage(GpuLanguage.GPU_LANGUAGE_GLSL_1_3);
+ assertEquals(GpuLanguage.GPU_LANGUAGE_GLSL_1_3, desc.getLanguage());
+ desc.setFunctionName("foo123");
+ assertEquals("foo123", desc.getFunctionName());
+ desc.setLut3DEdgeLen(32);
+ assertEquals(32, desc.getLut3DEdgeLen());
+ assertEquals("glsl_1.3 foo123 32", desc.getCacheID());
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/LookTest.java b/src/jniglue/tests/org/OpenColorIO/LookTest.java
new file mode 100644
index 0000000..778c124
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/LookTest.java
@@ -0,0 +1,35 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class LookTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+ Look lk = new Look().Create();
+ lk.setName("coollook");
+ assertEquals("coollook", lk.getName());
+ lk.setProcessSpace("somespace");
+ assertEquals("somespace", lk.getProcessSpace());
+ ExponentTransform et = new ExponentTransform().Create();
+ et.setValue(new float[]{0.1f, 0.2f, 0.3f, 0.4f});
+ lk.setTransform(et);
+ ExponentTransform oet = (ExponentTransform)lk.getTransform();
+ float vals[] = new float[4];
+ oet.getValue(vals);
+ assertEquals(0.2f, vals[1], 1e-8);
+ ExponentTransform iet = new ExponentTransform().Create();
+ iet.setValue(new float[]{-0.1f, -0.2f, -0.3f, -0.4f});
+ lk.setInverseTransform(iet);
+ ExponentTransform ioet = (ExponentTransform)lk.getInverseTransform();
+ float vals2[] = new float[4];
+ ioet.getValue(vals2);
+ assertEquals(-0.2f, vals2[1], 1e-8);
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/OpenColorIOTestSuite.java b/src/jniglue/tests/org/OpenColorIO/OpenColorIOTestSuite.java
new file mode 100644
index 0000000..b847d96
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/OpenColorIOTestSuite.java
@@ -0,0 +1,30 @@
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class OpenColorIOTestSuite {
+
+ public static Test suite() {
+
+ TestSuite suite = new TestSuite();
+
+ // Core
+ suite.addTestSuite(GlobalsTest.class);
+ suite.addTestSuite(ConfigTest.class);
+ suite.addTestSuite(ColorSpaceTest.class);
+ suite.addTestSuite(LookTest.class);
+ suite.addTestSuite(BakerTest.class);
+ suite.addTestSuite(PackedImageDescTest.class);
+ suite.addTestSuite(PlanarImageDescTest.class);
+ suite.addTestSuite(GpuShaderDescTest.class);
+ suite.addTestSuite(ContextTest.class);
+ suite.addTestSuite(TransformsTest.class);
+
+ return suite;
+ }
+
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(suite());
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/PackedImageDescTest.java b/src/jniglue/tests/org/OpenColorIO/PackedImageDescTest.java
new file mode 100644
index 0000000..741a13d
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/PackedImageDescTest.java
@@ -0,0 +1,39 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+import java.nio.*;
+
+public class PackedImageDescTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+
+ int width = 2;
+ int height = 2;
+ int channels = 4;
+ float packedpix[] = new float[]{0.1f, 0.1f, 0.1f, 1.0f,
+ 0.2f, 0.2f, 0.2f, 1.0f,
+ 0.3f, 0.3f, 0.3f, 1.0f,
+ 0.4f, 0.4f, 0.4f, 1.0f };
+ FloatBuffer buf = ByteBuffer.allocateDirect(width * height * channels
+ * Float.SIZE / 8).asFloatBuffer();
+ buf.put(packedpix);
+ //
+ PackedImageDesc foo = new PackedImageDesc(buf, width, height, channels);
+ FloatBuffer wee = foo.getData();
+ assertEquals(0.3f, wee.get(10));
+ assertEquals(2, foo.getWidth());
+ assertEquals(2, foo.getHeight());
+ assertEquals(4, foo.getNumChannels());
+ assertEquals(4, foo.getChanStrideBytes());
+ assertEquals(16, foo.getXStrideBytes());
+ assertEquals(32, foo.getYStrideBytes());
+
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/PlanarImageDescTest.java b/src/jniglue/tests/org/OpenColorIO/PlanarImageDescTest.java
new file mode 100644
index 0000000..e0d4deb
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/PlanarImageDescTest.java
@@ -0,0 +1,51 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+import java.nio.*;
+
+public class PlanarImageDescTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+
+ int width = 2;
+ int height = 2;
+ int channels = 4;
+ //
+ float rpix[] = new float[]{0.1f, 0.2f, 0.3f, 0.4f};
+ float gpix[] = new float[]{0.1f, 0.2f, 0.3f, 0.4f};
+ float bpix[] = new float[]{0.1f, 0.2f, 0.3f, 0.4f};
+ float apix[] = new float[]{1.0f, 1.0f, 1.0f, 1.0f};
+ int alloc = width * height * Float.SIZE / 8;
+ //
+ FloatBuffer rbuf = ByteBuffer.allocateDirect(alloc).asFloatBuffer();
+ rbuf.put(rpix);
+ FloatBuffer gbuf = ByteBuffer.allocateDirect(alloc).asFloatBuffer();
+ gbuf.put(gpix);
+ FloatBuffer bbuf = ByteBuffer.allocateDirect(alloc).asFloatBuffer();
+ bbuf.put(bpix);
+ FloatBuffer abuf = ByteBuffer.allocateDirect(alloc).asFloatBuffer();
+ abuf.put(apix);
+ //
+ PlanarImageDesc foo = new PlanarImageDesc(rbuf, gbuf, bbuf, abuf,
+ width, height);
+ FloatBuffer trb = foo.getRData();
+ FloatBuffer tgb = foo.getGData();
+ FloatBuffer tbb = foo.getBData();
+ FloatBuffer tab = foo.getAData();
+ assertEquals(0.1f, trb.get(0));
+ assertEquals(0.2f, tgb.get(1));
+ assertEquals(0.3f, tbb.get(2));
+ assertEquals(1.0f, tab.get(3));
+ assertEquals(2, foo.getWidth());
+ assertEquals(2, foo.getHeight());
+ assertEquals(8, foo.getYStrideBytes());
+
+ }
+
+}
diff --git a/src/jniglue/tests/org/OpenColorIO/TransformsTest.java b/src/jniglue/tests/org/OpenColorIO/TransformsTest.java
new file mode 100644
index 0000000..6300079
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/TransformsTest.java
@@ -0,0 +1,237 @@
+
+import junit.framework.TestCase;
+import org.OpenColorIO.*;
+
+public class TransformsTest extends TestCase {
+
+ protected void setUp() {
+ }
+
+ protected void tearDown() {
+ }
+
+ public void test_interface() {
+
+ //// AllocationTransform ////
+ AllocationTransform at = new AllocationTransform().Create();
+ assertEquals(Allocation.ALLOCATION_UNIFORM, at.getAllocation());
+ at.setAllocation(Allocation.ALLOCATION_LG2);
+ assertEquals(Allocation.ALLOCATION_LG2, at.getAllocation());
+ assertEquals(0, at.getNumVars());
+ float[] vars = new float[]{0.1f, 0.2f, 0.3f};
+ at.setVars(3, vars);
+ assertEquals(3, at.getNumVars());
+ float newvars[] = new float[3];
+ at.getVars(newvars);
+ assertEquals(0.2f, newvars[1], 1e-8);
+
+ // Base Transform method tests
+ assertEquals(TransformDirection.TRANSFORM_DIR_FORWARD, at.getDirection());
+ at.setDirection(TransformDirection.TRANSFORM_DIR_UNKNOWN);
+ assertEquals(TransformDirection.TRANSFORM_DIR_UNKNOWN, at.getDirection());
+
+ //// CDLTransform ////
+ CDLTransform cdl = new CDLTransform().Create();
+ String CC = ""
+ +"<ColorCorrection id=\"foo\">"
+ +"<SOPNode>"
+ +"<Description>this is a descipt</Description>"
+ +"<Slope>1.1 1.2 1.3</Slope>"
+ +"<Offset>2.1 2.2 2.3</Offset>"
+ +"<Power>3.1 3.2 3.3</Power>"
+ +"</SOPNode>"
+ +"<SatNode><Saturation>0.7</Saturation></SatNode>"
+ +"</ColorCorrection>";
+ // Don't want to deal with getting the correct path so this runs
+ //CDLTransform cdlfile = new CDLTransform().CreateFromFile("../OpenColorIO/src/jniglue/tests/org/OpenColorIO/test.cc", "foo");
+ //assertEquals(CC, cdlfile.getXML());
+ cdl.setXML(CC);
+ assertEquals(CC, cdl.getXML());
+ //CDLTransform match = new CDLTransform().Create();
+ CDLTransform match = (CDLTransform)cdl.createEditableCopy();
+ match.setOffset(new float[]{1.0f, 1.0f, 1.f});
+ assertEquals(false, cdl.equals(match));
+ cdl.setSlope(new float[]{0.1f, 0.2f, 0.3f});
+ cdl.setOffset(new float[]{1.1f, 1.2f, 1.3f});
+ cdl.setPower(new float[]{2.1f, 2.2f, 2.3f});
+ cdl.setSat(0.5f);
+ String CC2 = ""
+ +"<ColorCorrection id=\"foo\">"
+ +"<SOPNode>"
+ +"<Description>this is a descipt</Description>"
+ +"<Slope>0.1 0.2 0.3</Slope>"
+ +"<Offset>1.1 1.2 1.3</Offset>"
+ +"<Power>2.1 2.2 2.3</Power>"
+ +"</SOPNode>"
+ +"<SatNode><Saturation>0.5</Saturation></SatNode>"
+ +"</ColorCorrection>";
+ assertEquals(CC2, cdl.getXML());
+ cdl.setSOP(new float[]{1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f});
+ float newsop[] = new float[9];
+ cdl.getSOP(newsop);
+ assertEquals(1.5f, newsop[4], 1e-8);
+ float slope[] = new float[3];
+ cdl.getSlope(slope);
+ assertEquals(1.2f, slope[1], 1e-8);
+ float offset[] = new float[3];
+ cdl.getOffset(offset);
+ assertEquals(1.6f, offset[2], 1e-8);
+ float power[] = new float[3];
+ cdl.getPower(power);
+ assertEquals(1.7f, power[0], 1e-8);
+ assertEquals(0.5f, cdl.getSat(), 1e-8);
+ float luma[] = new float[3];
+ cdl.getSatLumaCoefs(luma);
+ assertEquals(0.2126f, luma[0], 1e-8);
+ assertEquals(0.7152f, luma[1], 1e-8);
+ assertEquals(0.0722f, luma[2], 1e-8);
+ cdl.setID("foobar123");
+ assertEquals("foobar123", cdl.getID());
+ cdl.setDescription("bar");
+ assertEquals("bar", cdl.getDescription());
+
+ //// ColorSpaceTransform ////
+ ColorSpaceTransform ct = new ColorSpaceTransform().Create();
+ ct.setSrc("foo");
+ assertEquals("foo", ct.getSrc());
+ ct.setDst("bar");
+ assertEquals("bar", ct.getDst());
+
+ //// DisplayTransform ////
+ DisplayTransform dt = new DisplayTransform().Create();
+ dt.setInputColorSpaceName("lin18");
+ assertEquals("lin18", dt.getInputColorSpaceName());
+ //public native void setLinearCC(Transform cc);
+ //public native Transform getLinearCC();
+ //public native void setColorTimingCC(Transform cc);
+ //public native Transform getColorTimingCC();
+ //public native void setChannelView(Transform transform);
+ //public native Transform getChannelView();
+ dt.setDisplay("sRGB");
+ assertEquals("sRGB", dt.getDisplay());
+ dt.setView("foobar");
+ assertEquals("foobar", dt.getView());
+ cdl.setXML(CC);
+ dt.setDisplayCC(cdl);
+ CDLTransform cdldt = (CDLTransform)dt.getDisplayCC();
+ assertEquals(CC, cdldt.getXML());
+ dt.setLooksOverride("darkgrade");
+ assertEquals("darkgrade", dt.getLooksOverride());
+ dt.setLooksOverrideEnabled(true);
+ assertEquals(true, dt.getLooksOverrideEnabled());
+
+ //// ExponentTransform ////
+ ExponentTransform et = new ExponentTransform().Create();
+ et.setValue(new float[]{0.1f, 0.2f, 0.3f, 0.4f});
+ float evals[] = new float[4];
+ et.getValue(evals);
+ assertEquals(0.3f, evals[2], 1e-8);
+
+ //// FileTransform ////
+ FileTransform ft = new FileTransform().Create();
+ ft.setSrc("foo");
+ assertEquals("foo", ft.getSrc());
+ ft.setCCCId("foobar");
+ assertEquals("foobar", ft.getCCCId());
+ ft.setInterpolation(Interpolation.INTERP_NEAREST);
+ assertEquals(Interpolation.INTERP_NEAREST, ft.getInterpolation());
+ assertEquals(15, ft.getNumFormats());
+ assertEquals("flame", ft.getFormatNameByIndex(0));
+ assertEquals("3dl", ft.getFormatExtensionByIndex(0));
+
+ //// GroupTransform ////
+ GroupTransform gt = new GroupTransform().Create();
+ gt.push_back(et);
+ gt.push_back(ft);
+ assertEquals(2, gt.size());
+ assertEquals(false, gt.empty());
+ Transform foo = gt.getTransform(0);
+ assertEquals(TransformDirection.TRANSFORM_DIR_FORWARD, foo.getDirection());
+ gt.clear();
+ assertEquals(0, gt.size());
+
+ //// LogTransform ////
+ LogTransform lt = new LogTransform().Create();
+ lt.setBase(10.f);
+ assertEquals(10.f, lt.getBase());
+
+ //// LookTransform ////
+ LookTransform lkt = new LookTransform().Create();
+ lkt.setSrc("foo");
+ assertEquals("foo", lkt.getSrc());
+ lkt.setDst("bar");
+ assertEquals("bar", lkt.getDst());
+ lkt.setLooks("bar;foo");
+ assertEquals("bar;foo", lkt.getLooks());
+
+ //// MatrixTransform ////
+ MatrixTransform mt = new MatrixTransform().Create();
+ MatrixTransform mmt = (MatrixTransform)mt.createEditableCopy();
+ mt.setValue(new float[]{0.1f, 0.2f, 0.3f, 0.4f,
+ 0.5f, 0.6f, 0.7f, 0.8f,
+ 0.9f, 1.0f, 1.1f, 1.2f,
+ 1.3f, 1.4f, 1.5f, 1.6f},
+ new float[]{0.1f, 0.2f, 0.3f, 0.4f});
+ assertEquals(false, mt.equals(mmt));
+ float m44_1[] = new float[16];
+ float offset_1[] = new float[4];
+ mt.getValue(m44_1, offset_1);
+ assertEquals(0.3f, m44_1[2]);
+ assertEquals(0.2f, offset_1[1]);
+ mt.setMatrix(new float[]{1.1f, 1.2f, 1.3f, 1.4f,
+ 1.5f, 1.6f, 1.7f, 1.8f,
+ 1.9f, 2.0f, 2.1f, 2.2f,
+ 2.3f, 2.4f, 2.5f, 2.6f});
+ float m44_2[] = new float[16];
+ mt.getMatrix(m44_2);
+ assertEquals(1.3f, m44_2[2]);
+ mt.setOffset(new float[]{1.1f, 1.2f, 1.3f, 1.4f});
+ float offset_2[] = new float[4];
+ mt.getOffset(offset_2);
+ assertEquals(1.4f, offset_2[3]);
+ mt.Fit(m44_2, offset_2,
+ new float[]{0.1f, 0.1f, 0.1f, 0.1f},
+ new float[]{0.9f, 0.9f, 0.9f, 0.9f},
+ new float[]{0.0f, 0.0f, 0.0f, 0.0f},
+ new float[]{1.1f, 1.1f, 1.1f, 1.1f});
+ float m44_3[] = new float[16];
+ mt.getMatrix(m44_3);
+ assertEquals(1.3f, m44_3[2]);
+ mt.Identity(m44_3, offset_2);
+ assertEquals(0.f, m44_3[1]);
+ mt.Sat(m44_2, offset_2, 0.5f, new float[]{0.2126f, 0.7152f, 0.0722f});
+ assertEquals(0.3576f, m44_2[1]);
+ mt.Scale(m44_2, offset_2, new float[]{0.9f, 0.8f, 0.7f, 1.f});
+ assertEquals(0.9f, m44_2[0]);
+ mt.View(m44_2, null, new int[]{1, 1, 1, 0}, new float[]{0.2126f, 0.7152f, 0.0722f});
+ assertEquals(0.0722f, m44_2[2]);
+
+ //// TruelightTransform ////
+ TruelightTransform tt = new TruelightTransform().Create();
+ tt.setConfigRoot("/some/path");
+ assertEquals("/some/path", tt.getConfigRoot());
+ tt.setProfile("profileA");
+ assertEquals("profileA", tt.getProfile());
+ tt.setCamera("incam");
+ assertEquals("incam", tt.getCamera());
+ tt.setInputDisplay("dellmon");
+ assertEquals("dellmon", tt.getInputDisplay());
+ tt.setRecorder("blah");
+ assertEquals("blah", tt.getRecorder());
+ tt.setPrint("kodasomething");
+ assertEquals("kodasomething", tt.getPrint());
+ tt.setLamp("foobar");
+ assertEquals("foobar", tt.getLamp());
+ tt.setOutputCamera("somecam");
+ assertEquals("somecam", tt.getOutputCamera());
+ tt.setDisplay("sRGB");
+ assertEquals("sRGB", tt.getDisplay());
+ tt.setCubeInput("log");
+ assertEquals("log", tt.getCubeInput());
+
+ try {
+ } catch (Exception e) { System.out.println(e); }
+
+ }
+
+} \ No newline at end of file
diff --git a/src/jniglue/tests/org/OpenColorIO/test.cc b/src/jniglue/tests/org/OpenColorIO/test.cc
new file mode 100644
index 0000000..121bf42
--- /dev/null
+++ b/src/jniglue/tests/org/OpenColorIO/test.cc
@@ -0,0 +1,11 @@
+<ColorCorrection id="foo">
+ <SOPNode>
+ <Description>this is a descipt</Description>
+ <Slope>1.1 1.2 1.3</Slope>
+ <Offset>2.1 2.2 2.3</Offset>
+ <Power>3.1 3.2 3.3</Power>
+ </SOPNode>
+ <SatNode>
+ <Saturation>0.7</Saturation>
+ </SatNode>
+</ColorCorrection> \ No newline at end of file