1 #ifndef NIOBuffer_DEFINED 2 #define NIOBuffer_DEFINED 3 4 #include <jni.h> 5 #include "SkBitmap.h" 6 7 class NIOBuffer { 8 public: 9 NIOBuffer(JNIEnv* env, jobject buffer); 10 // this checks to ensure that free() was called 11 ~NIOBuffer(); 12 13 void* lock(JNIEnv* env, int* remaining); 14 void unlock(JNIEnv* env, bool dataChanged); 15 // must be called before destructor 16 void free(JNIEnv* env); 17 18 // call once on boot, to setup JNI globals 19 static void RegisterJNI(JNIEnv*); 20 21 private: 22 jobject fBuffer; 23 void* fLockedPtr; 24 jbyteArray fLockedArray; 25 }; 26 27 #endif 28