Commit Graph

435 Commits

Author SHA1 Message Date
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
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
2077dc9406 MediaCodec: initialize audio resampler after the codec sample rate is known 2025-01-28 06:54:31 +01:00
Julian Winkler
ecd5996ad2 MediaCodec: inject SPS and PPS into the first video frame
For some reason, this is required to make livestreams functional
2025-01-28 06:54:31 +01:00
Julian Winkler
68e32eab45 MediaCodec: add mp3 and opus codecs 2025-01-26 22:27:19 +01:00
Mis012
465b3ebbfe View: support multitouch properly
seems to work, but there might still be some edge cases
2025-01-15 00:06:06 +01:00
Julian Winkler
554b4d346a TextView: store text in the Java object
Some apps expect getText() to return a Spannable instead of a String.
2025-01-12 14:37:04 +01:00
Julian Winkler
785c24af62 implement View.setKeepScreenOn() 2025-01-11 23:23:53 +01:00
Julian Winkler
f2a32dae61 update android_content_res_AssetManager.h 2025-01-11 23:23:53 +01:00
Julian Winkler
e6a22df315 AudioTrack: recover underruns properly 2025-01-11 23:23:53 +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
Mis012
7d59407138 AssetManager: implement resolveAttrs 2025-01-02 22:18:45 +01:00
Julian Winkler
c16feb72e5 MessageQueue: fix integer overflow when converting ms to us 2025-01-01 11:33:16 +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
09a38f9a28 AudioTrack: set buffer size and period size correctly
Android buffer size is in bytes, but ALSA buffer size is in frames. Also
the period size was not set previously.

This fixes several audio issues on postmarketOS and probably other
distributions that still use PulseAudio instead of PipeWire.
2024-12-30 09:47:14 +01:00
Julian Winkler
b4f7c64cef Context.updateConfig(): handle XDG-portal unvavailablility
The XDG-portal DBus instance is not available to applications launched
from SSH on postmarketOS.
2024-12-30 09:46:52 +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
0dfcb9324f drop GTK < 4.14 ifdefs 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
2f122cbad7 SurfaceView.unlockCanvasAndPost(): create GSK renderer without surface
This is needed to allow using the renderer on non UI threads.
2024-12-22 10:24:55 +01:00