Commit Graph

141 Commits

Author SHA1 Message Date
Julian Winkler
1eb0a5074f Canvas: fix NullPointerException in setBitmap() 2025-02-15 08:21:30 +01:00
Julian Winkler
5375f4b5fd implement android.text.Layout using PangoLayout
This is needed to have proper line wrapping in composeUI apps.

In the CTS, android.text.cts.StaticLayoutTest passes all checks now.
2025-02-13 07:01:17 +01:00
Julian Winkler
829df70a9f Canvas: fix some issues spotted by the CTS 2025-02-13 06:56:31 +01:00
Julian Winkler
1cf48085ff api-impl: add misc APIs needed for AntennaPod 2025-02-10 21:55:27 +01:00
Julian Winkler
652715ee00 Canvas: add more Bitmap drawing methods 2025-02-10 21:55:14 +01:00
Julian Winkler
f69cff7113 implement Bitmap.compress() 2025-02-10 21:55:14 +01:00
Julian Winkler
e9769c1587 Bitmap: explicitly store whether it was recycled 2025-02-10 21:55:14 +01:00
Mis012
ab5b600bf1 run whitespace_format.py --add-new-line-marker-at-end-of-file --remove-trailing-whitespace --remove-trailing-empty-lines --new-line-marker=linux --normalize-non-standard-whitespace=remove on src/ 2025-02-05 16:27:17 +01:00
Julian Winkler
111a90e554 add Bitmap.isMutable()
In our implementation all bitmaps are mutable
2025-01-26 22:27:43 +01:00
Julian Winkler
98e7989ccb api-impl: fixes for apps using old support library 2025-01-13 14:17:40 +01:00
Julian Winkler
7700d8bf11 replace VectorDrawable with AOSP implementation from Android 6
This way, we can avoid librsvg which causes stack overflows on
Alpine/postmarketOS, because of musl's limited stack size.
2025-01-11 23:23:53 +01:00
Julian Winkler
57dd86fc98 api-impl: misc stubs for WhatsApp 2025-01-11 22:42:25 +01:00
Mis012
7354864e34 Path: stub out the rest of addRoundRect variants 2025-01-02 22:39:57 +01:00
Mis012
279c95becb borrow relevant parts of AOSP commit dbee9bb342cdfaa5155b1918f90262c05e2464cb
Our SVG-based VectorDrawable implementation still relies on `getDefaultColor`
but exceptions are no longer thrown when parsing VectorDrawable xml files
which use gradients as colors.
2025-01-02 22:25:13 +01:00
Pierre-Hugues Husson
c81442321e api-impl: stubs and fixes for latest WhatsApp version 2025-01-01 11:33:16 +01:00
Julian Winkler
bf923cfcfa Bitmap: create Texture as GdkMemoryTexture if nothing has to be rendered
This improves OsmAnd V1 renderer performance.
2024-12-22 23:40:11 +01:00
Julian Winkler
260821d68c Bitmap: implement pixel buffer access
For GPU textures, the GdkTextureDownloader will take care of format
conversions, so the application never sees the actual format.

If the application calls AndroidBitmap_unlockPixels(), the texture is
converted into a GdkMemoryTexture and can be accessed zero copy.
2024-12-22 23:40:11 +01:00
Julian Winkler
7695aadf91 implement Paint as combination of GDK, GSK and Pango attributes 2024-12-22 23:40:11 +01:00
Julian Winkler
ba302d87ec add back graphics APIs for the previously working applications 2024-12-22 12:30:29 +01:00
Julian Winkler
f3bc468a1c drop Skia dependency
Everything is implementede using GTK Scene Graph now. Skia is no longer
needed.
2024-12-22 12:30:29 +01:00
Julian Winkler
cd2c69cf73 reimplement Bitmap and Path using GdkTexture and GskPath
This allows us to use GskCanvas for Bitmap rendering

This increases the required GTK version to >= 4.14.
2024-12-22 12:30:29 +01:00
Julian Winkler
ae58d29336 BitmapDrawable: support intrinsic sizes 2024-12-22 10:24:55 +01:00
Mis012
58745f23ea api-impl: misc stubs, additions and fixes 2024-12-20 00:11:06 +01:00
Julian Winkler
c8ed103516 implement Canvas.scale() for skia and GtkSnapshot 2024-12-16 17:54:15 +01:00
Julian Winkler
597c73f334 GskCanvas: implement RoundedRect filling 2024-12-16 17:54:15 +01:00