GskCanavas: draw default content when custom View calls super.onDraw()

This commit is contained in:
Julian Winkler
2024-05-25 19:58:55 +02:00
committed by Mis012
parent 6575fef58e
commit 6f02565920
9 changed files with 54 additions and 8 deletions

View File

@@ -5,7 +5,7 @@ package android.graphics;
* - implements Canvas for onscreen rendering inside GTKs snapshot function
*/
public class GskCanvas extends Canvas {
private long snapshot;
public long snapshot;
private int save_count = 0;
public GskCanvas(long snapshot) {

View File

@@ -17,6 +17,7 @@ import android.content.res.Resources.Theme;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.GskCanvas;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
@@ -74,7 +75,10 @@ public class Drawable {
return mBounds;
}
public void draw(Canvas canvas) {}
public void draw(Canvas canvas) {
if (canvas instanceof GskCanvas)
native_draw(paintable, ((GskCanvas)canvas).snapshot, mBounds.width(), mBounds.height());
}
public boolean setState(int[] stateSet) {
if (!Arrays.equals(this.mStateSet, stateSet)) {
@@ -261,4 +265,5 @@ public class Drawable {
protected static native long native_paintable_from_path(String path);
protected native long native_constructor();
protected native void native_invalidate(long paintable);
protected native void native_draw(long paintable, long snapshot, int width, int height);
}