From 167d1cfe96fa1e396dc707a63168ecd1ed4a0da8 Mon Sep 17 00:00:00 2001 From: Jerome Gaillard Date: Wed, 10 Jul 2024 16:31:40 +0100 Subject: Update host build for libhwui The host build should use the host-compatible version of libnativehelper, libnativehelper_jvm. This also removes dependency on the flag libraries for host builds. Finally this makes more JNI registrations available for Hwui on host, so that they can be accessed in layoutlib. Flag: EXEMPT refactor Bug: 322360037 Test: build libhwui on host Change-Id: I11ab4dcdb3132e62568e07be967690d31fa3a3eb --- libs/hwui/Android.bp | 10 +++++----- libs/hwui/apex/LayoutlibLoader.cpp | 10 ++++++++++ libs/hwui/hwui/DrawTextFunctor.h | 13 ++++++++++++- 3 files changed, 27 insertions(+), 6 deletions(-) (limited to 'libs') diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index 341599e79662..e302fa8b1fc3 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -114,16 +114,12 @@ cc_defaults { "libbase", "libharfbuzz_ng", "libminikin", - "server_configurable_flags", - "libaconfig_storage_read_api_cc" ], static_libs: [ "libui-types", ], - whole_static_libs: ["hwui_flags_cc_lib"], - target: { android: { shared_libs: [ @@ -145,6 +141,8 @@ cc_defaults { "libsync", "libui", "aconfig_text_flags_c_lib", + "server_configurable_flags", + "libaconfig_storage_read_api_cc", ], static_libs: [ "libEGL_blobCache", @@ -155,6 +153,7 @@ cc_defaults { "libstatssocket_lazy", "libtonemap", ], + whole_static_libs: ["hwui_flags_cc_lib"], }, host: { static_libs: [ @@ -419,7 +418,6 @@ cc_defaults { ], static_libs: [ - "libnativehelper_lazy", "libziparchive_for_incfs", ], @@ -446,6 +444,7 @@ cc_defaults { ], static_libs: [ "libgif", + "libnativehelper_lazy", "libstatslog_hwui", "libstatspull_lazy", "libstatssocket_lazy", @@ -464,6 +463,7 @@ cc_defaults { ], static_libs: [ "libandroidfw", + "libnativehelper_jvm", ], }, }, diff --git a/libs/hwui/apex/LayoutlibLoader.cpp b/libs/hwui/apex/LayoutlibLoader.cpp index 70a9ef04d6f3..073bc8de3659 100644 --- a/libs/hwui/apex/LayoutlibLoader.cpp +++ b/libs/hwui/apex/LayoutlibLoader.cpp @@ -41,6 +41,7 @@ extern int register_android_graphics_Shader(JNIEnv* env); extern int register_android_graphics_RenderEffect(JNIEnv* env); extern int register_android_graphics_Typeface(JNIEnv* env); extern int register_android_graphics_YuvImage(JNIEnv* env); +extern int register_android_graphics_drawable_AnimatedImageDrawable(JNIEnv* env); namespace android { @@ -51,6 +52,8 @@ extern int register_android_graphics_ColorFilter(JNIEnv* env); extern int register_android_graphics_ColorSpace(JNIEnv* env); extern int register_android_graphics_DrawFilter(JNIEnv* env); extern int register_android_graphics_FontFamily(JNIEnv* env); +extern int register_android_graphics_Gainmap(JNIEnv* env); +extern int register_android_graphics_HardwareRendererObserver(JNIEnv* env); extern int register_android_graphics_Matrix(JNIEnv* env); extern int register_android_graphics_Paint(JNIEnv* env); extern int register_android_graphics_Path(JNIEnv* env); @@ -72,6 +75,7 @@ extern int register_android_graphics_text_GraphemeBreak(JNIEnv* env); extern int register_android_util_PathParser(JNIEnv* env); extern int register_android_view_DisplayListCanvas(JNIEnv* env); extern int register_android_view_RenderNode(JNIEnv* env); +extern int register_android_view_ThreadedRenderer(JNIEnv* env); #define REG_JNI(name) { name } struct RegJNIRec { @@ -95,7 +99,11 @@ static const std::unordered_map gRegJNIMap = { REG_JNI(register_android_graphics_CreateJavaOutputStreamAdaptor)}, {"android.graphics.DrawFilter", REG_JNI(register_android_graphics_DrawFilter)}, {"android.graphics.FontFamily", REG_JNI(register_android_graphics_FontFamily)}, + {"android.graphics.Gainmap", REG_JNI(register_android_graphics_Gainmap)}, {"android.graphics.Graphics", REG_JNI(register_android_graphics_Graphics)}, + {"android.graphics.HardwareRenderer", REG_JNI(register_android_view_ThreadedRenderer)}, + {"android.graphics.HardwareRendererObserver", + REG_JNI(register_android_graphics_HardwareRendererObserver)}, {"android.graphics.ImageDecoder", REG_JNI(register_android_graphics_ImageDecoder)}, {"android.graphics.Interpolator", REG_JNI(register_android_graphics_Interpolator)}, {"android.graphics.MaskFilter", REG_JNI(register_android_graphics_MaskFilter)}, @@ -118,6 +126,8 @@ static const std::unordered_map gRegJNIMap = { REG_JNI(register_android_graphics_animation_NativeInterpolatorFactory)}, {"android.graphics.animation.RenderNodeAnimator", REG_JNI(register_android_graphics_animation_RenderNodeAnimator)}, + {"android.graphics.drawable.AnimatedImageDrawable", + REG_JNI(register_android_graphics_drawable_AnimatedImageDrawable)}, {"android.graphics.drawable.AnimatedVectorDrawable", REG_JNI(register_android_graphics_drawable_AnimatedVectorDrawable)}, {"android.graphics.drawable.VectorDrawable", diff --git a/libs/hwui/hwui/DrawTextFunctor.h b/libs/hwui/hwui/DrawTextFunctor.h index cfca48084d97..0efb2c81af01 100644 --- a/libs/hwui/hwui/DrawTextFunctor.h +++ b/libs/hwui/hwui/DrawTextFunctor.h @@ -17,7 +17,6 @@ #include #include #include -#include #include "../utils/Color.h" #include "Canvas.h" @@ -30,7 +29,19 @@ #include "hwui/PaintFilter.h" #include "pipeline/skia/SkiaRecordingCanvas.h" +#ifdef __ANDROID__ +#include namespace flags = com::android::graphics::hwui::flags; +#else +namespace flags { +constexpr bool high_contrast_text_luminance() { + return false; +} +constexpr bool high_contrast_text_small_text_rect() { + return false; +} +} // namespace flags +#endif namespace android { -- cgit v1.2.3-59-g8ed1b