mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-04-28 12:17:57 +03:00
implement android.graphics.Matrix and View.getMatrix()
This is needed for androidx CoordinatorLayout and will also be required for VectorDrawables
This commit is contained in:
parent
f852c2bbc9
commit
796742c0fc
10 changed files with 369 additions and 180 deletions
|
@ -86,6 +86,7 @@ libtranslationlayer_so = shared_library('translation_layer_main', [
|
|||
'src/api-impl-jni/graphics/android_graphics_BitmapFactory.c',
|
||||
'src/api-impl-jni/graphics/android_graphics_drawable_Drawable.c',
|
||||
'src/api-impl-jni/graphics/android_graphics_drawable_DrawableContainer.c',
|
||||
'src/api-impl-jni/graphics/android_graphics_Matrix.c',
|
||||
'src/api-impl-jni/graphics/android_graphics_Typeface.c',
|
||||
'src/api-impl-jni/graphics/NinePatchPaintable.c',
|
||||
'src/api-impl-jni/media/android_media_MediaCodec.c',
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#define _GET_INT_FIELD(object, field) ((*env)->GetIntField(env, object, _FIELD_ID(_CLASS(object), field, "I")))
|
||||
#define _SET_BOOL_FIELD(object, field, value) ((*env)->SetBooleanField(env, object, _FIELD_ID(_CLASS(object), field, "Z"), value))
|
||||
#define _GET_BOOL_FIELD(object, field) ((*env)->GetBooleanField(env, object, _FIELD_ID(_CLASS(object), field, "Z")))
|
||||
#define _GET_FLOAT_FIELD(object, field) ((*env)->GetFloatField(env, object, _FIELD_ID(_CLASS(object), field, "F")))
|
||||
#define _SET_FLOAT_FIELD(object, field, value) ((*env)->SetFloatField(env, object, _FIELD_ID(_CLASS(object), field, "F"), value))
|
||||
#define _SET_STATIC_INT_FIELD(class, field, value) ((*env)->SetStaticIntField(env, class, _STATIC_FIELD_ID(class, field, "I"), value))
|
||||
#define _SET_STATIC_OBJ_FIELD(class, field, type, value) ((*env)->SetStaticObjectField(env, class, _STATIC_FIELD_ID(class, field, type), value))
|
||||
#define _GET_STATIC_OBJ_FIELD(class, field, type) ((*env)->GetStaticObjectField(env, class, _STATIC_FIELD_ID(class, field, type)))
|
||||
|
|
|
@ -25,325 +25,333 @@ extern "C" {
|
|||
#define android_graphics_Matrix_MPERSP_1 7L
|
||||
#undef android_graphics_Matrix_MPERSP_2
|
||||
#define android_graphics_Matrix_MPERSP_2 8L
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_create
|
||||
* Signature: (J)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_android_graphics_Matrix_native_1create
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_isIdentity
|
||||
* Signature: (I)Z
|
||||
* Signature: (J)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1isIdentity
|
||||
(JNIEnv *, jclass, jint);
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_rectStaysRect
|
||||
* Signature: (I)Z
|
||||
* Signature: (J)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1rectStaysRect
|
||||
(JNIEnv *, jclass, jint);
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_reset
|
||||
* Signature: (I)V
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1reset
|
||||
(JNIEnv *, jclass, jint);
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_set
|
||||
* Signature: (II)V
|
||||
* Signature: (JJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1set
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setTranslate
|
||||
* Signature: (IFF)V
|
||||
* Signature: (JFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setTranslate
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setScale
|
||||
* Signature: (IFFFF)V
|
||||
* Signature: (JFFFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setScale__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setScale__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setScale
|
||||
* Signature: (IFF)V
|
||||
* Signature: (JFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setScale__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setScale__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setRotate
|
||||
* Signature: (IFFF)V
|
||||
* Signature: (JFFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setRotate__IFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setRotate__JFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setRotate
|
||||
* Signature: (IF)V
|
||||
* Signature: (JF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setRotate__IF
|
||||
(JNIEnv *, jclass, jint, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setRotate__JF
|
||||
(JNIEnv *, jclass, jlong, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setSinCos
|
||||
* Signature: (IFFFF)V
|
||||
* Signature: (JFFFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSinCos__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSinCos__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setSinCos
|
||||
* Signature: (IFF)V
|
||||
* Signature: (JFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSinCos__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSinCos__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setSkew
|
||||
* Signature: (IFFFF)V
|
||||
* Signature: (JFFFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSkew__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSkew__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setSkew
|
||||
* Signature: (IFF)V
|
||||
* Signature: (JFF)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSkew__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setSkew__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setConcat
|
||||
* Signature: (III)Z
|
||||
* Signature: (JJJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1setConcat
|
||||
(JNIEnv *, jclass, jint, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preTranslate
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preTranslate
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preScale
|
||||
* Signature: (IFFFF)Z
|
||||
* Signature: (JFFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preScale__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preScale__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preScale
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preScale__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preScale__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preRotate
|
||||
* Signature: (IFFF)Z
|
||||
* Signature: (JFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preRotate__IFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preRotate__JFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preRotate
|
||||
* Signature: (IF)Z
|
||||
* Signature: (JF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preRotate__IF
|
||||
(JNIEnv *, jclass, jint, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preRotate__JF
|
||||
(JNIEnv *, jclass, jlong, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preSkew
|
||||
* Signature: (IFFFF)Z
|
||||
* Signature: (JFFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preSkew__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preSkew__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preSkew
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preSkew__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preSkew__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_preConcat
|
||||
* Signature: (II)Z
|
||||
* Signature: (JJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preConcat
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postTranslate
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postTranslate
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postScale
|
||||
* Signature: (IFFFF)Z
|
||||
* Signature: (JFFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postScale
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postRotate
|
||||
* Signature: (IFFF)Z
|
||||
* Signature: (JFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__IFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__JFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postRotate
|
||||
* Signature: (IF)Z
|
||||
* Signature: (JF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__IF
|
||||
(JNIEnv *, jclass, jint, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__JF
|
||||
(JNIEnv *, jclass, jlong, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postSkew
|
||||
* Signature: (IFFFF)Z
|
||||
* Signature: (JFFFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postSkew__IFFFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postSkew__JFFFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postSkew
|
||||
* Signature: (IFF)Z
|
||||
* Signature: (JFF)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postSkew__IFF
|
||||
(JNIEnv *, jclass, jint, jfloat, jfloat);
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postSkew__JFF
|
||||
(JNIEnv *, jclass, jlong, jfloat, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_postConcat
|
||||
* Signature: (II)Z
|
||||
* Signature: (JJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postConcat
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setRectToRect
|
||||
* Signature: (ILandroid/graphics/RectF;Landroid/graphics/RectF;I)Z
|
||||
* Signature: (JLandroid/graphics/RectF;Landroid/graphics/RectF;I)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1setRectToRect
|
||||
(JNIEnv *, jclass, jint, jobject, jobject, jint);
|
||||
(JNIEnv *, jclass, jlong, jobject, jobject, jint);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setPolyToPoly
|
||||
* Signature: (I[FI[FII)Z
|
||||
* Signature: (J[FI[FII)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1setPolyToPoly
|
||||
(JNIEnv *, jclass, jint, jfloatArray, jint, jfloatArray, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jfloatArray, jint, jfloatArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_invert
|
||||
* Signature: (II)Z
|
||||
* Signature: (JJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1invert
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_mapPoints
|
||||
* Signature: (I[FI[FIIZ)V
|
||||
* Signature: (J[FI[FIIZ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1mapPoints
|
||||
(JNIEnv *, jclass, jint, jfloatArray, jint, jfloatArray, jint, jint, jboolean);
|
||||
(JNIEnv *, jclass, jlong, jfloatArray, jint, jfloatArray, jint, jint, jboolean);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_mapRect
|
||||
* Signature: (ILandroid/graphics/RectF;Landroid/graphics/RectF;)Z
|
||||
* Signature: (JLandroid/graphics/RectF;Landroid/graphics/RectF;)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1mapRect
|
||||
(JNIEnv *, jclass, jint, jobject, jobject);
|
||||
(JNIEnv *, jclass, jlong, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_mapRadius
|
||||
* Signature: (IF)F
|
||||
* Signature: (JF)F
|
||||
*/
|
||||
JNIEXPORT jfloat JNICALL Java_android_graphics_Matrix_native_1mapRadius
|
||||
(JNIEnv *, jclass, jint, jfloat);
|
||||
(JNIEnv *, jclass, jlong, jfloat);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_getValues
|
||||
* Signature: (I[F)V
|
||||
* Signature: (J[F)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1getValues
|
||||
(JNIEnv *, jclass, jint, jfloatArray);
|
||||
(JNIEnv *, jclass, jlong, jfloatArray);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_setValues
|
||||
* Signature: (I[F)V
|
||||
* Signature: (J[F)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setValues
|
||||
(JNIEnv *, jclass, jint, jfloatArray);
|
||||
(JNIEnv *, jclass, jlong, jfloatArray);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: native_equals
|
||||
* Signature: (II)Z
|
||||
* Signature: (JJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1equals
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
(JNIEnv *, jclass, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Matrix
|
||||
* Method: finalizer
|
||||
* Signature: (I)V
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_finalizer
|
||||
(JNIEnv *, jclass, jint);
|
||||
(JNIEnv *, jclass, jlong);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -250,10 +250,10 @@ JNIEXPORT void JNICALL Java_android_graphics_Path_native_1addPath__II
|
|||
/*
|
||||
* Class: android_graphics_Path
|
||||
* Method: native_addPath
|
||||
* Signature: (III)V
|
||||
* Signature: (IIJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1addPath__III
|
||||
(JNIEnv *, jclass, jint, jint, jint);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1addPath__IIJ
|
||||
(JNIEnv *, jclass, jint, jint, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Path
|
||||
|
@ -282,18 +282,18 @@ JNIEXPORT void JNICALL Java_android_graphics_Path_native_1setLastPoint
|
|||
/*
|
||||
* Class: android_graphics_Path
|
||||
* Method: native_transform
|
||||
* Signature: (III)V
|
||||
* Signature: (IJI)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1transform__III
|
||||
(JNIEnv *, jclass, jint, jint, jint);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1transform__IJI
|
||||
(JNIEnv *, jclass, jint, jlong, jint);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Path
|
||||
* Method: native_transform
|
||||
* Signature: (II)V
|
||||
* Signature: (IJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1transform__II
|
||||
(JNIEnv *, jclass, jint, jint);
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Path_native_1transform__IJ
|
||||
(JNIEnv *, jclass, jint, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_graphics_Path
|
||||
|
|
|
@ -319,6 +319,14 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1setVisibility
|
|||
JNIEXPORT void JNICALL Java_android_view_View_setOnLongClickListener
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: android_view_View
|
||||
* Method: native_getMatrix
|
||||
* Signature: (JJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_view_View_native_1getMatrix
|
||||
(JNIEnv *, jobject, jlong, jlong);
|
||||
|
||||
/*
|
||||
* Class: android_view_View
|
||||
* Method: native_getGlobalVisibleRect
|
||||
|
|
167
src/api-impl-jni/graphics/android_graphics_Matrix.c
Normal file
167
src/api-impl-jni/graphics/android_graphics_Matrix.c
Normal file
|
@ -0,0 +1,167 @@
|
|||
#include <graphene.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "../defines.h"
|
||||
#include "../util.h"
|
||||
|
||||
#include "../generated_headers/android_graphics_Matrix.h"
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_android_graphics_Matrix_native_1create(JNIEnv *env, jclass class, jlong src)
|
||||
{
|
||||
return _INTPTR(graphene_matrix_init_identity(graphene_matrix_alloc()));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1getValues(JNIEnv *env, jclass class, jlong src, jfloatArray values_ref)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(src);
|
||||
jfloat *value = (*env)->GetFloatArrayElements(env, values_ref, NULL);
|
||||
value[android_graphics_Matrix_MSCALE_X] = graphene_matrix_get_value(matrix, 0, 0);
|
||||
value[android_graphics_Matrix_MSKEW_X] = graphene_matrix_get_value(matrix, 0, 1);
|
||||
value[android_graphics_Matrix_MTRANS_X] = graphene_matrix_get_value(matrix, 0, 3);
|
||||
value[android_graphics_Matrix_MSKEW_Y] = graphene_matrix_get_value(matrix, 1, 0);
|
||||
value[android_graphics_Matrix_MSCALE_Y] = graphene_matrix_get_value(matrix, 1, 1);
|
||||
value[android_graphics_Matrix_MTRANS_Y] = graphene_matrix_get_value(matrix, 1, 3);
|
||||
value[android_graphics_Matrix_MPERSP_0] = graphene_matrix_get_value(matrix, 3, 0);
|
||||
value[android_graphics_Matrix_MPERSP_1] = graphene_matrix_get_value(matrix, 3, 1);
|
||||
value[android_graphics_Matrix_MPERSP_2] = graphene_matrix_get_value(matrix, 3, 3);
|
||||
(*env)->ReleaseFloatArrayElements(env, values_ref, value, 0);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1set(JNIEnv *env, jclass class, jlong dest_ptr, jlong src_ptr)
|
||||
{
|
||||
graphene_matrix_t *dest = (graphene_matrix_t *)_PTR(dest_ptr);
|
||||
graphene_matrix_t *src = (graphene_matrix_t *)_PTR(src_ptr);
|
||||
graphene_matrix_init_from_matrix(dest, src);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1isIdentity(JNIEnv *env, jclass class, jlong matrix_ptr)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
return graphene_matrix_is_identity(matrix);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preConcat(JNIEnv *env, jclass class, jlong matrix_ptr, jlong other_ptr)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_t *other = (graphene_matrix_t *)_PTR(other_ptr);
|
||||
graphene_matrix_multiply(matrix, other, matrix);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1mapRect(JNIEnv *env, jclass class, jlong matrix_ptr, jobject dest, jobject src)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_rect_t src_rect = GRAPHENE_RECT_INIT(
|
||||
_GET_FLOAT_FIELD(src, "left"),
|
||||
_GET_FLOAT_FIELD(src, "top"),
|
||||
_GET_FLOAT_FIELD(src, "right") - _GET_FLOAT_FIELD(src, "left"),
|
||||
_GET_FLOAT_FIELD(src, "bottom") - _GET_FLOAT_FIELD(src, "top")
|
||||
);
|
||||
|
||||
graphene_quad_t dest_quad;
|
||||
graphene_matrix_transform_rect(matrix, &src_rect, &dest_quad);
|
||||
graphene_rect_t dest_rect;
|
||||
graphene_quad_bounds(&dest_quad, &dest_rect);
|
||||
|
||||
_SET_FLOAT_FIELD(dest, "left", dest_rect.origin.x);
|
||||
_SET_FLOAT_FIELD(dest, "top", dest_rect.origin.y);
|
||||
_SET_FLOAT_FIELD(dest, "right", dest_rect.origin.x + dest_rect.size.width);
|
||||
_SET_FLOAT_FIELD(dest, "bottom", dest_rect.origin.y + dest_rect.size.height);
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1reset(JNIEnv *env, jclass class, jlong matrix_ptr)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_init_identity(matrix);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_finalizer(JNIEnv *env, jclass class, jlong matrix_ptr)
|
||||
{
|
||||
graphene_matrix_free((graphene_matrix_t *)_PTR(matrix_ptr));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postTranslate(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat x, jfloat y)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_point3d_t translation = GRAPHENE_POINT3D_INIT(x, y, 0);
|
||||
graphene_matrix_translate(matrix, &translation);
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__JFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat x, jfloat y)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_scale(matrix, x, y, 1.f);
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__JFFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat degrees, jfloat px, jfloat py)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(-px, -py, 0));
|
||||
graphene_matrix_rotate_z(matrix, degrees);
|
||||
graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(px, py, 0));
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT void Java_android_graphics_Matrix_native_1setScale__JFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat x, jfloat y)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_init_scale(matrix, x, y, 1.f);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_Matrix_native_1setScale__JFFFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat x, jfloat y, jfloat px, jfloat py)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_init_translate(matrix, &GRAPHENE_POINT3D_INIT(-px, -py, 0));
|
||||
graphene_matrix_scale(matrix, x, y, 1.f);
|
||||
graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(px, py, 0));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postScale__JFFFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat x, jfloat y, jfloat px, jfloat py)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(-px, -py, 0));
|
||||
graphene_matrix_scale(matrix, x, y, 1.f);
|
||||
graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(px, py, 0));
|
||||
return true;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1postRotate__JF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat degrees)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_rotate_z(matrix, degrees);
|
||||
return true;
|
||||
}
|
||||
|
||||
#define SCALE_TO_FIT_FILL 0
|
||||
#define SCALE_TO_FIT_START 1
|
||||
#define SCALE_TO_FIT_CENTER 2
|
||||
#define SCALE_TO_FIT_END 3
|
||||
JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1setRectToRect(JNIEnv *env, jclass class, jlong matrix_ptr, jobject src, jobject dest, jint stf)
|
||||
{
|
||||
graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr);
|
||||
graphene_matrix_init_translate(matrix, &GRAPHENE_POINT3D_INIT(-_GET_FLOAT_FIELD(src, "left"), -_GET_FLOAT_FIELD(src, "top"), 0));
|
||||
float src_width = _GET_FLOAT_FIELD(src, "right") - _GET_FLOAT_FIELD(src, "left");
|
||||
float src_height = _GET_FLOAT_FIELD(src, "bottom") - _GET_FLOAT_FIELD(src, "top");
|
||||
float dest_width = _GET_FLOAT_FIELD(dest, "right") - _GET_FLOAT_FIELD(dest, "left");
|
||||
float dest_height = _GET_FLOAT_FIELD(dest, "bottom") - _GET_FLOAT_FIELD(dest, "top");
|
||||
float factor_x = dest_width / src_width;
|
||||
float factor_y = dest_height / src_height;
|
||||
if (stf != SCALE_TO_FIT_FILL) {
|
||||
factor_x = factor_y = (factor_x < factor_y) ? factor_x : factor_y;
|
||||
}
|
||||
graphene_matrix_scale(matrix, factor_x, factor_y, 1.f);
|
||||
graphene_point3d_t translation = GRAPHENE_POINT3D_INIT(_GET_FLOAT_FIELD(dest, "left"), _GET_FLOAT_FIELD(dest, "top"), 0);
|
||||
if (stf == SCALE_TO_FIT_CENTER) {
|
||||
translation.x += (dest_width - src_width * factor_x) / 2;
|
||||
translation.y += (dest_height - src_height * factor_y) / 2;
|
||||
} else if (stf == SCALE_TO_FIT_END) {
|
||||
translation.x += (dest_width - src_width * factor_x);
|
||||
translation.y += (dest_height - src_height * factor_y);
|
||||
}
|
||||
graphene_matrix_translate(matrix, &translation);
|
||||
return true;
|
||||
}
|
|
@ -523,3 +523,9 @@ JNIEXPORT void JNICALL Java_android_view_View_setOnLongClickListener(JNIEnv *env
|
|||
gtk_widget_add_controller(widget, controller);
|
||||
g_object_set_data(G_OBJECT(widget), "on_long_click_listener", controller);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_view_View_native_1getMatrix(JNIEnv *env, jobject this, jlong widget_ptr, jlong matrix_ptr)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET(_PTR(widget_ptr));
|
||||
return gtk_widget_compute_transform(gtk_widget_get_parent(gtk_widget_get_parent(widget)), widget, _PTR(matrix_ptr));
|
||||
}
|
||||
|
|
|
@ -183,7 +183,7 @@ public class Matrix {
|
|||
/**
|
||||
* @hide
|
||||
*/
|
||||
public int native_instance;
|
||||
public long native_instance;
|
||||
/**
|
||||
* Create an identity matrix
|
||||
*/
|
||||
|
@ -202,8 +202,7 @@ public class Matrix {
|
|||
* This maybe faster than testing if (getType() == 0)
|
||||
*/
|
||||
public boolean isIdentity() {
|
||||
return true;
|
||||
// return native_isIdentity(native_instance);
|
||||
return native_isIdentity(native_instance);
|
||||
}
|
||||
/**
|
||||
* Returns true if will map a rectangle to another rectangle. This can be
|
||||
|
@ -221,7 +220,7 @@ public class Matrix {
|
|||
if (src == null) {
|
||||
reset();
|
||||
} else {
|
||||
// native_set(native_instance, src.native_instance);
|
||||
native_set(native_instance, src.native_instance);
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -246,7 +245,7 @@ public class Matrix {
|
|||
* Set the matrix to identity
|
||||
*/
|
||||
public void reset() {
|
||||
// native_reset(native_instance);
|
||||
native_reset(native_instance);
|
||||
}
|
||||
/**
|
||||
* Set the matrix to translate by (dx, dy).
|
||||
|
@ -260,13 +259,13 @@ public class Matrix {
|
|||
* specified transformation.
|
||||
*/
|
||||
public void setScale(float sx, float sy, float px, float py) {
|
||||
// native_setScale(native_instance, sx, sy, px, py);
|
||||
native_setScale(native_instance, sx, sy, px, py);
|
||||
}
|
||||
/**
|
||||
* Set the matrix to scale by sx and sy.
|
||||
*/
|
||||
public void setScale(float sx, float sy) {
|
||||
// native_setScale(native_instance, sx, sy);
|
||||
native_setScale(native_instance, sx, sy);
|
||||
}
|
||||
/**
|
||||
* Set the matrix to rotate by the specified number of degrees, with a pivot
|
||||
|
@ -381,32 +380,28 @@ public class Matrix {
|
|||
* M' = T(dx, dy) * M
|
||||
*/
|
||||
public boolean postTranslate(float dx, float dy) {
|
||||
// return native_postTranslate(native_instance, dx, dy);
|
||||
return true;
|
||||
return native_postTranslate(native_instance, dx, dy);
|
||||
}
|
||||
/**
|
||||
* Postconcats the matrix with the specified scale.
|
||||
* M' = S(sx, sy, px, py) * M
|
||||
*/
|
||||
public boolean postScale(float sx, float sy, float px, float py) {
|
||||
// return native_postScale(native_instance, sx, sy, px, py);
|
||||
return true;
|
||||
return native_postScale(native_instance, sx, sy, px, py);
|
||||
}
|
||||
/**
|
||||
* Postconcats the matrix with the specified scale.
|
||||
* M' = S(sx, sy) * M
|
||||
*/
|
||||
public boolean postScale(float sx, float sy) {
|
||||
// return native_postScale(native_instance, sx, sy);
|
||||
return true;
|
||||
return native_postScale(native_instance, sx, sy);
|
||||
}
|
||||
/**
|
||||
* Postconcats the matrix with the specified rotation.
|
||||
* M' = R(degrees, px, py) * M
|
||||
*/
|
||||
public boolean postRotate(float degrees, float px, float py) {
|
||||
// return native_postRotate(native_instance, degrees, px, py);
|
||||
return true;
|
||||
return native_postRotate(native_instance, degrees, px, py);
|
||||
}
|
||||
/**
|
||||
* Postconcats the matrix with the specified rotation.
|
||||
|
@ -486,8 +481,7 @@ public class Matrix {
|
|||
if (dst == null || src == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
// return native_setRectToRect(native_instance, src, dst, stf.nativeInt);
|
||||
return true;
|
||||
return native_setRectToRect(native_instance, src, dst, stf.nativeInt);
|
||||
}
|
||||
// private helper to perform range checks on arrays of "points"
|
||||
private static void checkPointArrays(float[] src, int srcIndex,
|
||||
|
@ -634,8 +628,7 @@ public class Matrix {
|
|||
if (dst == null || src == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
// return native_mapRect(native_instance, dst, src);
|
||||
return false;
|
||||
return native_mapRect(native_instance, dst, src);
|
||||
}
|
||||
/**
|
||||
* Apply this matrix to the rectangle, and write the transformed rectangle
|
||||
|
@ -747,89 +740,87 @@ public class Matrix {
|
|||
@Override
|
||||
protected void finalize() throws Throwable {
|
||||
try {
|
||||
// finalizer(native_instance);
|
||||
finalizer(native_instance);
|
||||
} finally {
|
||||
super.finalize();
|
||||
}
|
||||
}
|
||||
/*package*/ final int ni() {
|
||||
/*package*/ final long ni() {
|
||||
return native_instance;
|
||||
}
|
||||
private static /*native*/ int native_create(int native_src_or_zero) {
|
||||
return 0;
|
||||
}
|
||||
private static native boolean native_isIdentity(int native_object);
|
||||
private static native boolean native_rectStaysRect(int native_object);
|
||||
private static native void native_reset(int native_object);
|
||||
private static native void native_set(int native_object, int other);
|
||||
private static native void native_setTranslate(int native_object,
|
||||
private static native long native_create(long native_src_or_zero);
|
||||
private static native boolean native_isIdentity(long native_object);
|
||||
private static native boolean native_rectStaysRect(long native_object);
|
||||
private static native void native_reset(long native_object);
|
||||
private static native void native_set(long native_object, long other);
|
||||
private static native void native_setTranslate(long native_object,
|
||||
float dx, float dy);
|
||||
private static native void native_setScale(int native_object,
|
||||
private static native void native_setScale(long native_object,
|
||||
float sx, float sy, float px, float py);
|
||||
private static native void native_setScale(int native_object,
|
||||
private static native void native_setScale(long native_object,
|
||||
float sx, float sy);
|
||||
private static native void native_setRotate(int native_object,
|
||||
private static native void native_setRotate(long native_object,
|
||||
float degrees, float px, float py);
|
||||
private static native void native_setRotate(int native_object,
|
||||
private static native void native_setRotate(long native_object,
|
||||
float degrees);
|
||||
private static native void native_setSinCos(int native_object,
|
||||
private static native void native_setSinCos(long native_object,
|
||||
float sinValue, float cosValue, float px, float py);
|
||||
private static native void native_setSinCos(int native_object,
|
||||
private static native void native_setSinCos(long native_object,
|
||||
float sinValue, float cosValue);
|
||||
private static native void native_setSkew(int native_object,
|
||||
private static native void native_setSkew(long native_object,
|
||||
float kx, float ky, float px, float py);
|
||||
private static native void native_setSkew(int native_object,
|
||||
private static native void native_setSkew(long native_object,
|
||||
float kx, float ky);
|
||||
private static native boolean native_setConcat(int native_object,
|
||||
int a, int b);
|
||||
private static native boolean native_preTranslate(int native_object,
|
||||
private static native boolean native_setConcat(long native_object,
|
||||
long a, long b);
|
||||
private static native boolean native_preTranslate(long native_object,
|
||||
float dx, float dy);
|
||||
private static native boolean native_preScale(int native_object,
|
||||
private static native boolean native_preScale(long native_object,
|
||||
float sx, float sy, float px, float py);
|
||||
private static native boolean native_preScale(int native_object,
|
||||
private static native boolean native_preScale(long native_object,
|
||||
float sx, float sy);
|
||||
private static native boolean native_preRotate(int native_object,
|
||||
private static native boolean native_preRotate(long native_object,
|
||||
float degrees, float px, float py);
|
||||
private static native boolean native_preRotate(int native_object,
|
||||
private static native boolean native_preRotate(long native_object,
|
||||
float degrees);
|
||||
private static native boolean native_preSkew(int native_object,
|
||||
private static native boolean native_preSkew(long native_object,
|
||||
float kx, float ky, float px, float py);
|
||||
private static native boolean native_preSkew(int native_object,
|
||||
private static native boolean native_preSkew(long native_object,
|
||||
float kx, float ky);
|
||||
private static native boolean native_preConcat(int native_object,
|
||||
int other_matrix);
|
||||
private static native boolean native_postTranslate(int native_object,
|
||||
private static native boolean native_preConcat(long native_object,
|
||||
long other_matrix);
|
||||
private static native boolean native_postTranslate(long native_object,
|
||||
float dx, float dy);
|
||||
private static native boolean native_postScale(int native_object,
|
||||
private static native boolean native_postScale(long native_object,
|
||||
float sx, float sy, float px, float py);
|
||||
private static native boolean native_postScale(int native_object,
|
||||
private static native boolean native_postScale(long native_object,
|
||||
float sx, float sy);
|
||||
private static native boolean native_postRotate(int native_object,
|
||||
private static native boolean native_postRotate(long native_object,
|
||||
float degrees, float px, float py);
|
||||
private static native boolean native_postRotate(int native_object,
|
||||
private static native boolean native_postRotate(long native_object,
|
||||
float degrees);
|
||||
private static native boolean native_postSkew(int native_object,
|
||||
private static native boolean native_postSkew(long native_object,
|
||||
float kx, float ky, float px, float py);
|
||||
private static native boolean native_postSkew(int native_object,
|
||||
private static native boolean native_postSkew(long native_object,
|
||||
float kx, float ky);
|
||||
private static native boolean native_postConcat(int native_object,
|
||||
int other_matrix);
|
||||
private static native boolean native_setRectToRect(int native_object,
|
||||
private static native boolean native_postConcat(long native_object,
|
||||
long other_matrix);
|
||||
private static native boolean native_setRectToRect(long native_object,
|
||||
RectF src, RectF dst, int stf);
|
||||
private static native boolean native_setPolyToPoly(int native_object,
|
||||
private static native boolean native_setPolyToPoly(long native_object,
|
||||
float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount);
|
||||
private static native boolean native_invert(int native_object, int inverse);
|
||||
private static native void native_mapPoints(int native_object,
|
||||
private static native boolean native_invert(long native_object, long inverse);
|
||||
private static native void native_mapPoints(long native_object,
|
||||
float[] dst, int dstIndex, float[] src, int srcIndex,
|
||||
int ptCount, boolean isPts);
|
||||
private static native boolean native_mapRect(int native_object,
|
||||
private static native boolean native_mapRect(long native_object,
|
||||
RectF dst, RectF src);
|
||||
private static native float native_mapRadius(int native_object,
|
||||
private static native float native_mapRadius(long native_object,
|
||||
float radius);
|
||||
private static native void native_getValues(int native_object,
|
||||
private static native void native_getValues(long native_object,
|
||||
float[] values);
|
||||
private static native void native_setValues(int native_object,
|
||||
private static native void native_setValues(long native_object,
|
||||
float[] values);
|
||||
private static native boolean native_equals(int native_a, int native_b);
|
||||
private static native void finalizer(int native_instance);
|
||||
private static native boolean native_equals(long native_a, long native_b);
|
||||
private static native void finalizer(long native_instance);
|
||||
}
|
||||
|
|
|
@ -709,12 +709,12 @@ mDetectSimplePaths = HardwareRenderer.isAvailable();
|
|||
private static native void native_addRoundRect(int nPath, RectF r, float[] radii, int dir);
|
||||
private static native void native_addPath(int nPath, int src, float dx, float dy);
|
||||
private static native void native_addPath(int nPath, int src);
|
||||
private static native void native_addPath(int nPath, int src, int matrix);
|
||||
private static native void native_addPath(int nPath, int src, long matrix);
|
||||
private static native void native_offset(int nPath, float dx, float dy, int dst_path);
|
||||
private static native void native_offset(int nPath, float dx, float dy);
|
||||
private static native void native_setLastPoint(int nPath, float dx, float dy);
|
||||
private static native void native_transform(int nPath, int matrix, int dst_path);
|
||||
private static native void native_transform(int nPath, int matrix);
|
||||
private static native void native_transform(int nPath, long matrix, int dst_path);
|
||||
private static native void native_transform(int nPath, long matrix);
|
||||
private static native boolean native_op(int path1, int path2, int op, int result);
|
||||
private static native void finalizer(int nPath);
|
||||
}
|
||||
|
|
|
@ -1374,7 +1374,13 @@ public class View extends Object {
|
|||
public boolean onGenericMotionEvent(MotionEvent event) {return false;}
|
||||
|
||||
protected boolean awakenScrollBars() {return false;}
|
||||
public Matrix getMatrix() {return new Matrix();}
|
||||
|
||||
protected native boolean native_getMatrix(long widget, long matrix);
|
||||
public Matrix getMatrix() {
|
||||
Matrix matrix = new Matrix();
|
||||
native_getMatrix(widget, matrix.native_instance);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
protected static final int[] EMPTY_STATE_SET = new int[0];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue