You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
Canvas: add drawLines
This commit is contained in:
@@ -73,6 +73,14 @@ JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1restore
|
|||||||
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLine
|
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLine
|
||||||
(JNIEnv *, jobject, jlong, jfloat, jfloat, jfloat, jfloat, jlong);
|
(JNIEnv *, jobject, jlong, jfloat, jfloat, jfloat, jfloat, jlong);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: android_graphics_GskCanvas
|
||||||
|
* Method: native_drawLines
|
||||||
|
* Signature: (J[FIIJ)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLines
|
||||||
|
(JNIEnv *, jobject, jlong, jfloatArray, jint, jint, jlong);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class: android_graphics_GskCanvas
|
* Class: android_graphics_GskCanvas
|
||||||
* Method: native_drawText
|
* Method: native_drawText
|
||||||
|
|||||||
@@ -82,6 +82,15 @@ JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLine(JNIEnv *
|
|||||||
gtk_snapshot_restore(snapshot);
|
gtk_snapshot_restore(snapshot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLines(JNIEnv *env, jclass this_class, jlong snapshot_ptr, jfloatArray points_arr, jint offset, jint count, jlong paint_ptr)
|
||||||
|
{
|
||||||
|
jfloat *points = (*env)->GetFloatArrayElements(env, points_arr, NULL);
|
||||||
|
for(int i = offset; i < count; i++)
|
||||||
|
Java_android_graphics_GskCanvas_native_1drawLine(env, this_class, snapshot_ptr, points[i + 0], points[i + 1], points[i + 2], points[i + 3], paint_ptr);
|
||||||
|
(*env)->ReleaseFloatArrayElements(env, points_arr, points, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extern GtkWidget *window;
|
extern GtkWidget *window;
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawText(JNIEnv *env, jclass this_class, jlong snapshot_ptr, jstring text, jfloat x, jfloat y, jlong paint_ptr)
|
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawText(JNIEnv *env, jclass this_class, jlong snapshot_ptr, jstring text, jfloat x, jfloat y, jlong paint_ptr)
|
||||||
|
|||||||
@@ -378,6 +378,15 @@ public class Canvas {
|
|||||||
gsk_canvas.drawLine(startX, startY, stopX, stopY, paint);
|
gsk_canvas.drawLine(startX, startY, stopX, stopY, paint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void drawLines(float[] points, Paint paint) {
|
||||||
|
drawLines(points, 0, points.length, paint);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawLines(float[] points, int offset, int count, Paint paint) {
|
||||||
|
gsk_canvas.snapshot = bitmap.getSnapshot();
|
||||||
|
gsk_canvas.drawLines(points, offset, count, paint);
|
||||||
|
}
|
||||||
|
|
||||||
public void setBitmap(Bitmap bitmap) {
|
public void setBitmap(Bitmap bitmap) {
|
||||||
if (bitmap != null && !bitmap.isMutable()) {
|
if (bitmap != null && !bitmap.isMutable()) {
|
||||||
throw new IllegalStateException("Bitmap must be mutable");
|
throw new IllegalStateException("Bitmap must be mutable");
|
||||||
|
|||||||
@@ -78,6 +78,18 @@ public class GskCanvas extends Canvas {
|
|||||||
native_drawLine(snapshot, startX, startY, stopX, stopY, paint != null ? paint.paint : default_paint.paint);
|
native_drawLine(snapshot, startX, startY, stopX, stopY, paint != null ? paint.paint : default_paint.paint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawLines(float[] points, Paint paint) {
|
||||||
|
drawLines(points, 0, points.length, paint);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawLines(float[] points, int offset, int count, Paint paint) {
|
||||||
|
if (offset + count < 0 /* overflow */ || offset + count > points.length)
|
||||||
|
throw new IndexOutOfBoundsException();
|
||||||
|
native_drawLines(snapshot, points, offset, count, paint != null ? paint.paint : default_paint.paint);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) {
|
public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) {
|
||||||
Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
|
Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
|
||||||
@@ -122,6 +134,7 @@ public class GskCanvas extends Canvas {
|
|||||||
protected native void native_save(long snapshot);
|
protected native void native_save(long snapshot);
|
||||||
protected native void native_restore(long snapshot);
|
protected native void native_restore(long snapshot);
|
||||||
protected native void native_drawLine(long snapshot, float startX, float startY, float stopX, float stopY, long paint);
|
protected native void native_drawLine(long snapshot, float startX, float startY, float stopX, float stopY, long paint);
|
||||||
|
protected native void native_drawLines(long snapshot, float[] points, int offset, int count, long paint);
|
||||||
protected native void native_drawText(long snapshot, String text, float x, float y, long paint);
|
protected native void native_drawText(long snapshot, String text, float x, float y, long paint);
|
||||||
protected native void native_drawRoundRect(long snapshot, float left, float top, float right, float bottom, float rx, float ry, long paint);
|
protected native void native_drawRoundRect(long snapshot, float left, float top, float right, float bottom, float rx, float ry, long paint);
|
||||||
protected native void native_scale(long snapshot, float sx, float sy);
|
protected native void native_scale(long snapshot, float sx, float sy);
|
||||||
|
|||||||
Reference in New Issue
Block a user