Commit Graph

830 Commits

Author SHA1 Message Date
Julian Winkler
054fb9276a GLSurfaceView: call eglMakeCurrent() again after onSurfaceCreated()
This seems to be required by some newer mesa drivers. For example when
running Flappy Bird with latest freedreno drivers.
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
c076c1e545 implement DateUtils.formatDateTime() 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
Julian Winkler
ae58d29336 BitmapDrawable: support intrinsic sizes 2024-12-22 10:24:55 +01:00
Julian Winkler
e8a08f3d28 implement HtcAlertDialog for Teeter 2024-12-22 10:24:55 +01:00
Julian Winkler
bf610d3504 implement Activity.isInMultiWindowMode() 2024-12-22 10:24:54 +01:00
Julian Winkler
f9db8faebd ImageButton: set the defStyleAttr 2024-12-22 10:24:54 +01:00
Julian Winkler
2e11934bcf Animator: add delay before calling onAnimationEnd()
This fixes a crash in NewPipe's Download Activity
2024-12-20 08:12:48 +01:00
Mis012
078006f7fb LayoutInflater: prettyprint debug messages 2024-12-20 00:14:30 +01:00
Mis012
060ea72f94 AssetManager: use AndroidManifest.xml to identify apks
resources.arsc may be missing in rare cases
2024-12-20 00:12:01 +01:00
Mis012
58745f23ea api-impl: misc stubs, additions and fixes 2024-12-20 00:11:06 +01:00
Mis012
df5390db5e main-executable: don't crash on NULL app_icon_path 2024-12-20 00:02:18 +01:00
Mis012
4acd99f1e2 GridView: import from AOSP 2024-12-20 00:00:19 +01:00
Julian Winkler
42fad0cfa6 WindowManagerImpl: set view.parent 2024-12-17 22:41:51 +01:00
Julian Winkler
167d3856e9 HACK: prevent window height of 0
For some reason some apps like LibreSudoku try to create Dialog and
Popup windows with height = 0. Prevent this on the window side until the
measurement error is fixed.
2024-12-17 22:41:51 +01:00
Julian Winkler
47fc749018 implement WindowManager for composeUI popups
currently everything is created as GtkPopover which is not ideal for
toplevel windows, so print a warning in that case.
2024-12-17 22:38:09 +01:00
Julian Winkler
c8ed103516 implement Canvas.scale() for skia and GtkSnapshot 2024-12-16 17:54:15 +01:00