Lines Matching defs:env

21 void doThrowNPE(JNIEnv* env) {
22 jniThrowNullPointerException(env, NULL);
25 void doThrowAIOOBE(JNIEnv* env) {
26 jniThrowException(env, "java/lang/ArrayIndexOutOfBoundsException", NULL);
29 void doThrowRE(JNIEnv* env, const char* msg) {
30 jniThrowRuntimeException(env, msg);
33 void doThrowIAE(JNIEnv* env, const char* msg) {
34 jniThrowException(env, "java/lang/IllegalArgumentException", msg);
37 void doThrowISE(JNIEnv* env, const char* msg) {
38 jniThrowException(env, "java/lang/IllegalStateException", msg);
41 void doThrowOOME(JNIEnv* env, const char* msg) {
42 jniThrowException(env, "java/lang/OutOfMemoryError", msg);
45 void doThrowIOE(JNIEnv* env, const char* msg) {
46 jniThrowException(env, "java/io/IOException", msg);
49 bool GraphicsJNI::hasException(JNIEnv *env) {
50 if (env->ExceptionCheck() != 0) {
52 env->ExceptionDescribe();
60 AutoJavaFloatArray::AutoJavaFloatArray(JNIEnv* env, jfloatArray array,
62 : fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
63 SkASSERT(env);
65 fLen = env->GetArrayLength(array);
69 fPtr = env->GetFloatArrayElements(array, NULL);
80 AutoJavaIntArray::AutoJavaIntArray(JNIEnv* env, jintArray array,
82 : fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
83 SkASSERT(env);
85 fLen = env->GetArrayLength(array);
89 fPtr = env->GetIntArrayElements(array, NULL);
99 AutoJavaShortArray::AutoJavaShortArray(JNIEnv* env, jshortArray array,
101 : fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
102 SkASSERT(env);
104 fLen = env->GetArrayLength(array);
108 fPtr = env->GetShortArrayElements(array, NULL);
119 AutoJavaByteArray::AutoJavaByteArray(JNIEnv* env, jbyteArray array,
121 : fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
122 SkASSERT(env);
124 fLen = env->GetArrayLength(array);
128 fPtr = env->GetByteArrayElements(array, NULL);
190 void GraphicsJNI::get_jrect(JNIEnv* env, jobject obj, int* L, int* T, int* R, int* B)
192 SkASSERT(env->IsInstanceOf(obj, gRect_class));
194 *L = env->GetIntField(obj, gRect_leftFieldID);
195 *T = env->GetIntField(obj, gRect_topFieldID);
196 *R = env->GetIntField(obj, gRect_rightFieldID);
197 *B = env->GetIntField(obj, gRect_bottomFieldID);
200 void GraphicsJNI::set_jrect(JNIEnv* env, jobject obj, int L, int T, int R, int B)
202 SkASSERT(env->IsInstanceOf(obj, gRect_class));
204 env->SetIntField(obj, gRect_leftFieldID, L);
205 env->SetIntField(obj, gRect_topFieldID, T);
206 env->SetIntField(obj, gRect_rightFieldID, R);
207 env->SetIntField(obj, gRect_bottomFieldID, B);
210 SkIRect* GraphicsJNI::jrect_to_irect(JNIEnv* env, jobject obj, SkIRect* ir)
212 SkASSERT(env->IsInstanceOf(obj, gRect_class));
214 ir->set(env->GetIntField(obj, gRect_leftFieldID),
215 env->GetIntField(obj, gRect_topFieldID),
216 env->GetIntField(obj, gRect_rightFieldID),
217 env->GetIntField(obj, gRect_bottomFieldID));
221 void GraphicsJNI::irect_to_jrect(const SkIRect& ir, JNIEnv* env, jobject obj)
223 SkASSERT(env->IsInstanceOf(obj, gRect_class));
225 env->SetIntField(obj, gRect_leftFieldID, ir.fLeft);
226 env->SetIntField(obj, gRect_topFieldID, ir.fTop);
227 env->SetIntField(obj, gRect_rightFieldID, ir.fRight);
228 env->SetIntField(obj, gRect_bottomFieldID, ir.fBottom);
231 SkRect* GraphicsJNI::jrectf_to_rect(JNIEnv* env, jobject obj, SkRect* r)
233 SkASSERT(env->IsInstanceOf(obj, gRectF_class));
235 r->set(env->GetFloatField(obj, gRectF_leftFieldID),
236 env->GetFloatField(obj, gRectF_topFieldID),
237 env->GetFloatField(obj, gRectF_rightFieldID),
238 env->GetFloatField(obj, gRectF_bottomFieldID));
242 SkRect* GraphicsJNI::jrect_to_rect(JNIEnv* env, jobject obj, SkRect* r)
244 SkASSERT(env->IsInstanceOf(obj, gRect_class));
246 r->set(SkIntToScalar(env->GetIntField(obj, gRect_leftFieldID)),
247 SkIntToScalar(env->GetIntField(obj, gRect_topFieldID)),
248 SkIntToScalar(env->GetIntField(obj, gRect_rightFieldID)),
249 SkIntToScalar(env->GetIntField(obj, gRect_bottomFieldID)));
253 void GraphicsJNI::rect_to_jrectf(const SkRect& r, JNIEnv* env, jobject obj)
255 SkASSERT(env->IsInstanceOf(obj, gRectF_class));
257 env->SetFloatField(obj, gRectF_leftFieldID, SkScalarToFloat(r.fLeft));
258 env->SetFloatField(obj, gRectF_topFieldID, SkScalarToFloat(r.fTop));
259 env->SetFloatField(obj, gRectF_rightFieldID, SkScalarToFloat(r.fRight));
260 env->SetFloatField(obj, gRectF_bottomFieldID, SkScalarToFloat(r.fBottom));
263 SkIPoint* GraphicsJNI::jpoint_to_ipoint(JNIEnv* env, jobject obj, SkIPoint* point)
265 SkASSERT(env->IsInstanceOf(obj, gPoint_class));
267 point->set(env->GetIntField(obj, gPoint_xFieldID),
268 env->GetIntField(obj, gPoint_yFieldID));
272 void GraphicsJNI::ipoint_to_jpoint(const SkIPoint& ir, JNIEnv* env, jobject obj)
274 SkASSERT(env->IsInstanceOf(obj, gPoint_class));
276 env->SetIntField(obj, gPoint_xFieldID, ir.fX);
277 env->SetIntField(obj, gPoint_yFieldID, ir.fY);
280 SkPoint* GraphicsJNI::jpointf_to_point(JNIEnv* env, jobject obj, SkPoint* point)
282 SkASSERT(env->IsInstanceOf(obj, gPointF_class));
284 point->set(env->GetIntField(obj, gPointF_xFieldID),
285 env->GetIntField(obj, gPointF_yFieldID));
289 void GraphicsJNI::point_to_jpointf(const SkPoint& r, JNIEnv* env, jobject obj)
291 SkASSERT(env->IsInstanceOf(obj, gPointF_class));
293 env->SetFloatField(obj, gPointF_xFieldID, SkScalarToFloat(r.fX));
294 env->SetFloatField(obj, gPointF_yFieldID, SkScalarToFloat(r.fY));
345 android::Bitmap* GraphicsJNI::getBitmap(JNIEnv* env, jobject bitmap) {
346 SkASSERT(env);
348 SkASSERT(env->IsInstanceOf(bitmap, gBitmap_class));
349 jlong bitmapHandle = env->GetLongField(bitmap, gBitmap_nativePtr);
355 void GraphicsJNI::getSkBitmap(JNIEnv* env, jobject bitmap, SkBitmap* outBitmap) {
356 getBitmap(env, bitmap)->getSkBitmap(outBitmap);
359 SkPixelRef* GraphicsJNI::refSkPixelRef(JNIEnv* env, jobject bitmap) {
360 return getBitmap(env, bitmap)->refPixelRef();
363 SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig) {
364 SkASSERT(env);
368 SkASSERT(env->IsInstanceOf(jconfig, gBitmapConfig_class));
369 int c = env->GetIntField(jconfig, gBitmapConfig_nativeInstanceID);
373 android::Canvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
374 SkASSERT(env);
376 SkASSERT(env->IsInstanceOf(canvas, gCanvas_class));
377 jlong canvasHandle = env->GetLongField(canvas, gCanvas_nativeInstanceID);
384 SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)
386 SkASSERT(env);
388 SkASSERT(env->IsInstanceOf(region, gRegion_class));
389 jlong regionHandle = env->GetLongField(region, gRegion_nativeInstanceID);
409 jobject GraphicsJNI::createBitmap(JNIEnv* env, android::Bitmap* bitmap,
418 jobject obj = env->NewObject(gBitmap_class, gBitmap_constructorMethodID,
422 hasException(env); // For the side effect of logging.
426 void GraphicsJNI::reinitBitmap(JNIEnv* env, jobject javaBitmap, const SkImageInfo& info,
433 env->CallVoidMethod(javaBitmap, gBitmap_reinitMethodID,
437 int GraphicsJNI::getBitmapAllocationByteCount(JNIEnv* env, jobject javaBitmap)
439 return env->CallIntMethod(javaBitmap, gBitmap_getAllocationByteCountMethodID);
442 jobject GraphicsJNI::createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecoder* bitmap)
446 jobject obj = env->NewObject(gBitmapRegionDecoder_class,
449 hasException(env); // For the side effect of logging.
453 jobject GraphicsJNI::createRegion(JNIEnv* env, SkRegion* region)
456 jobject obj = env->NewObject(gRegion_class, gRegion_constructorMethodID,
458 hasException(env); // For the side effect of logging.
464 JNIEnv* env = NULL;
465 if (vm->GetEnv((void**)&env, JNI_VERSION_1_4) != JNI_OK || NULL == env)
470 return env;
486 android::Bitmap* GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
490 doThrowIAE(env, "unknown bitmap configuration");
503 jbyteArray arrayObj = (jbyteArray) env->CallObjectMethod(gVMRuntime,
506 if (env->ExceptionCheck() != 0) {
510 jbyte* addr = (jbyte*) env->CallLongMethod(gVMRuntime, gVMRuntime_addressOf, arrayObj);
511 if (env->ExceptionCheck() != 0) {
515 android::Bitmap* wrapper = new android::Bitmap(env, arrayObj, (void*) addr,
539 bool GraphicsJNI::allocatePixels(JNIEnv* env, SkBitmap* bitmap, SkColorTable* ctable) {
542 doThrowIAE(env, "unknown bitmap configuration");
579 android::Bitmap* GraphicsJNI::allocateAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap,
585 doThrowIAE(env, "unknown bitmap configuration");
625 android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap,
629 doThrowIAE(env, "unknown bitmap configuration");
660 JavaPixelAllocator::JavaPixelAllocator(JNIEnv* env) {
661 LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&mJavaVM) != JNI_OK,
662 "env->GetJavaVM failed");
672 JNIEnv* env = vm2env(mJavaVM);
674 mStorage = GraphicsJNI::allocateJavaPixelRef(env, bitmap, ctable);
768 AshmemPixelAllocator::AshmemPixelAllocator(JNIEnv *env) {
769 LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&mJavaVM) != JNI_OK,
770 "env->GetJavaVM failed");
780 JNIEnv* env = vm2env(mJavaVM);
781 mStorage = GraphicsJNI::allocateAshmemPixelRef(env, bitmap, ctable);
787 static jclass make_globalref(JNIEnv* env, const char classname[])
789 jclass c = env->FindClass(classname);
791 return (jclass) env->NewGlobalRef(c);
794 static jfieldID getFieldIDCheck(JNIEnv* env, jclass clazz,
797 jfieldID id = env->GetFieldID(clazz, fieldname, type);
802 int register_android_graphics_Graphics(JNIEnv* env)
807 gRect_class = make_globalref(env, "android/graphics/Rect");
808 gRect_leftFieldID = getFieldIDCheck(env, gRect_class, "left", "I");
809 gRect_topFieldID = getFieldIDCheck(env, gRect_class, "top", "I");
810 gRect_rightFieldID = getFieldIDCheck(env, gRect_class, "right", "I");
811 gRect_bottomFieldID = getFieldIDCheck(env, gRect_class, "bottom", "I");
813 gRectF_class = make_globalref(env, "android/graphics/RectF");
814 gRectF_leftFieldID = getFieldIDCheck(env, gRectF_class, "left", "F");
815 gRectF_topFieldID = getFieldIDCheck(env, gRectF_class, "top", "F");
816 gRectF_rightFieldID = getFieldIDCheck(env, gRectF_class, "right", "F");
817 gRectF_bottomFieldID = getFieldIDCheck(env, gRectF_class, "bottom", "F");
819 gPoint_class = make_globalref(env, "android/graphics/Point");
820 gPoint_xFieldID = getFieldIDCheck(env, gPoint_class, "x", "I");
821 gPoint_yFieldID = getFieldIDCheck(env, gPoint_class, "y", "I");
823 gPointF_class = make_globalref(env, "android/graphics/PointF");
824 gPointF_xFieldID = getFieldIDCheck(env, gPointF_class, "x", "F");
825 gPointF_yFieldID = getFieldIDCheck(env, gPointF_class, "y", "F");
827 gBitmap_class = make_globalref(env, "android/graphics/Bitmap");
828 gBitmap_nativePtr = getFieldIDCheck(env, gBitmap_class, "mNativePtr", "J");
829 gBitmap_constructorMethodID = env->GetMethodID(gBitmap_class, "<init>", "(J[BIIIZZ[BLandroid/graphics/NinePatch$InsetStruct;)V");
830 gBitmap_reinitMethodID = env->GetMethodID(gBitmap_class, "reinit", "(IIZ)V");
831 gBitmap_getAllocationByteCountMethodID = env->GetMethodID(gBitmap_class, "getAllocationByteCount", "()I");
832 gBitmapRegionDecoder_class = make_globalref(env, "android/graphics/BitmapRegionDecoder");
833 gBitmapRegionDecoder_constructorMethodID = env->GetMethodID(gBitmapRegionDecoder_class, "<init>", "(J)V");
835 gBitmapConfig_class = make_globalref(env, "android/graphics/Bitmap$Config");
836 gBitmapConfig_nativeInstanceID = getFieldIDCheck(env, gBitmapConfig_class,
839 gCanvas_class = make_globalref(env, "android/graphics/Canvas");
840 gCanvas_nativeInstanceID = getFieldIDCheck(env, gCanvas_class, "mNativeCanvasWrapper", "J");
842 gPicture_class = make_globalref(env, "android/graphics/Picture");
843 gPicture_nativeInstanceID = getFieldIDCheck(env, gPicture_class, "mNativePicture", "J");
845 gRegion_class = make_globalref(env, "android/graphics/Region");
846 gRegion_nativeInstanceID = getFieldIDCheck(env, gRegion_class, "mNativeRegion", "J");
847 gRegion_constructorMethodID = env->GetMethodID(gRegion_class, "<init>",
850 c = env->FindClass("java/lang/Byte");
851 gByte_class = (jclass) env->NewGlobalRef(
852 env->GetStaticObjectField(c, env->GetStaticFieldID(c, "TYPE", "Ljava/lang/Class;")));
854 gVMRuntime_class = make_globalref(env, "dalvik/system/VMRuntime");
855 m = env->GetStaticMethodID(gVMRuntime_class, "getRuntime", "()Ldalvik/system/VMRuntime;");
856 gVMRuntime = env->NewGlobalRef(env->CallStaticObjectMethod(gVMRuntime_class, m));
857 gVMRuntime_newNonMovableArray = env->GetMethodID(gVMRuntime_class, "newNonMovableArray",
859 gVMRuntime_addressOf = env->GetMethodID(gVMRuntime_class, "addressOf", "(Ljava/lang/Object;)J");