From 4e46df96510335c086a3764e002c99348e0e9624 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 18 Sep 2023 10:59:55 +0800 Subject: Optimize damage region tracking under Android * java/org/gnu/emacs/EmacsDrawLine.java (perform): * java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Call damageRect with integer coordinates in lieu of consing a new Rect. * java/org/gnu/emacs/EmacsDrawable.java (damageRect) : Declare a new variant of damageRect, accepting four integers designating the extents of the damage rectangle. * java/org/gnu/emacs/EmacsPixmap.java (damageRect) : New stub. * java/org/gnu/emacs/EmacsView.java (damageRect) : Implement this overloaded variant of damageRect. * java/org/gnu/emacs/EmacsWindow.java (damageRect): Ditto. * src/android.c (android_init_emacs_drawable) (android_init_emacs_window): Move search for `damageRect' to android_init_emacs_window. (android_damage_window): Call IIII variant of `damageRect' to avoid consing a new rectangle. Ameliorate dynamic method dispatch overhead. --- java/org/gnu/emacs/EmacsDrawLine.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'java/org/gnu/emacs/EmacsDrawLine.java') diff --git a/java/org/gnu/emacs/EmacsDrawLine.java b/java/org/gnu/emacs/EmacsDrawLine.java index d367ccff9c4..be4da54c075 100644 --- a/java/org/gnu/emacs/EmacsDrawLine.java +++ b/java/org/gnu/emacs/EmacsDrawLine.java @@ -29,7 +29,6 @@ public final class EmacsDrawLine perform (EmacsDrawable drawable, EmacsGC gc, int x, int y, int x2, int y2) { - Rect rect; Canvas canvas; Paint paint; int x0, x1, y0, y1; @@ -48,7 +47,6 @@ public final class EmacsDrawLine /* And the clip rectangle. */ paint = gc.gcPaint; - rect = new Rect (x0, y0, x1, y1); canvas = drawable.lockCanvas (gc); if (canvas == null) @@ -74,6 +72,6 @@ public final class EmacsDrawLine /* DrawLine with clip mask not implemented; it is not used by Emacs. */ - drawable.damageRect (rect); + drawable.damageRect (x0, y0, x1, y1); } } -- cgit v1.3