Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <android/bitmap.h>
- #include <jni.h>
- template< class T, class TCpp >
- class JavaArrayAccessor
- {
- public:
- JavaArrayAccessor(JNIEnv* env, T array) :
- env(env),
- array(array),
- data(reinterpret_cast< TCpp* >(env->GetPrimitiveArrayCritical(array, NULL))) // never returns NULL
- {}
- ~JavaArrayAccessor()
- {
- env->ReleasePrimitiveArrayCritical(array, data, 0);
- }
- TCpp* getData()
- {
- return data;
- }
- private:
- JNIEnv* env;
- T array;
- TCpp* data;
- };
- class AndroidBitmapAccessor
- {
- public:
- AndroidBitmapAccessor(JNIEnv* env, jobject bitmap):
- env(env),
- bitmap(bitmap),
- data(NULL)
- {
- int rv = AndroidBitmap_lockPixels(env, bitmap, reinterpret_cast< void** >(&data));
- }
- ~AndroidBitmapAccessor()
- {
- if(data)
- {
- AndroidBitmap_unlockPixels(env, bitmap);
- }
- }
- unsigned char *getData()
- {
- return data;
- }
- private:
- JNIEnv* env;
- jobject bitmap;
- unsigned char *data;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement