// Copyright (c) the JPEG XL Project Authors. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. #include #include "tools/jni/org/jpeg/jpegxl/wrapper/decoder_jni.h" #ifdef __cplusplus extern "C" { #endif static char* kGetBasicInfoName = const_cast("nativeGetBasicInfo"); static char* kGetBasicInfoSig = const_cast("([ILjava/nio/Buffer;)V"); static char* kGetPixelsName = const_cast("nativeGetPixels"); static char* kGetPixelsInfoSig = const_cast( "([ILjava/nio/Buffer;Ljava/nio/Buffer;Ljava/nio/Buffer;)V"); #define JXL_JNI_METHOD(NAME) \ (reinterpret_cast( \ Java_org_jpeg_jpegxl_wrapper_DecoderJni_native##NAME)) static const JNINativeMethod kDecoderMethods[] = { {kGetBasicInfoName, kGetBasicInfoSig, JXL_JNI_METHOD(GetBasicInfo)}, {kGetPixelsName, kGetPixelsInfoSig, JXL_JNI_METHOD(GetPixels)}}; static const size_t kNumDecoderMethods = 2; #undef JXL_JNI_METHOD JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env; if (vm->GetEnv(reinterpret_cast(&env), JNI_VERSION_1_6) != JNI_OK) { return -1; } jclass clazz = env->FindClass("org/jpeg/jpegxl/wrapper/DecoderJni"); if (clazz == nullptr) { return -1; } if (env->RegisterNatives(clazz, kDecoderMethods, kNumDecoderMethods) < 0) { return -1; } return JNI_VERSION_1_6; } #ifdef __cplusplus } #endif