From 2173ea286afff6766043227de0bc2d82d9595f77 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Wed, 19 Feb 2020 15:37:29 -0500 Subject: [PATCH] Export symbols for the newly exposed APEX/internal headers Bug: 137655431 Test: CtsUiRenderingTestCases Change-Id: I71c6d1a53ae080bf104848679ee62a77cf07c9fa --- .../apex/include/android/graphics/bitmap.h | 27 ++++++++++--------- .../apex/include/android/graphics/canvas.h | 19 ++++++------- .../include/android/graphics/jni_runtime.h | 9 ++++--- .../apex/include/android/graphics/matrix.h | 3 ++- .../apex/include/android/graphics/paint.h | 7 ++--- .../apex/include/android/graphics/region.h | 15 ++++++----- .../include/android/graphics/renderthread.h | 3 ++- libs/hwui/jni/BitmapFactory.cpp | 1 + libs/hwui/jni/GraphicsJNI.h | 4 ++- libs/hwui/jni/GraphicsStatsService.cpp | 7 +++-- .../graphics => libs/hwui/jni}/MimeType.h | 3 ++- native/graphics/jni/imagedecoder.cpp | 2 +- services/core/jni/onload.cpp | 2 +- 13 files changed, 59 insertions(+), 43 deletions(-) rename {core/jni/android/graphics => libs/hwui/jni}/MimeType.h (88%) diff --git a/libs/hwui/apex/include/android/graphics/bitmap.h b/libs/hwui/apex/include/android/graphics/bitmap.h index 45fec2ab7b43f..8c4b439d2a2b9 100644 --- a/libs/hwui/apex/include/android/graphics/bitmap.h +++ b/libs/hwui/apex/include/android/graphics/bitmap.h @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -37,31 +38,31 @@ typedef struct ABitmap ABitmap; * NOTE: This API does not need to remain as an APEX API if/when we pull libjnigraphics into the * UI module. */ -AndroidBitmapInfo ABitmap_getInfoFromJava(JNIEnv* env, jobject bitmapObj); +ANDROID_API AndroidBitmapInfo ABitmap_getInfoFromJava(JNIEnv* env, jobject bitmapObj); /** * * @return ptr to an opaque handle to the native bitmap or null if the java bitmap has been recycled * or does not exist. */ -ABitmap* ABitmap_acquireBitmapFromJava(JNIEnv* env, jobject bitmapObj); +ANDROID_API ABitmap* ABitmap_acquireBitmapFromJava(JNIEnv* env, jobject bitmapObj); -ABitmap* ABitmap_copy(ABitmap* srcBitmap, AndroidBitmapFormat dstFormat); +ANDROID_API ABitmap* ABitmap_copy(ABitmap* srcBitmap, AndroidBitmapFormat dstFormat); -void ABitmap_acquireRef(ABitmap* bitmap); -void ABitmap_releaseRef(ABitmap* bitmap); +ANDROID_API void ABitmap_acquireRef(ABitmap* bitmap); +ANDROID_API void ABitmap_releaseRef(ABitmap* bitmap); -AndroidBitmapInfo ABitmap_getInfo(ABitmap* bitmap); -ADataSpace ABitmap_getDataSpace(ABitmap* bitmap); +ANDROID_API AndroidBitmapInfo ABitmap_getInfo(ABitmap* bitmap); +ANDROID_API ADataSpace ABitmap_getDataSpace(ABitmap* bitmap); -void* ABitmap_getPixels(ABitmap* bitmap); -void ABitmap_notifyPixelsChanged(ABitmap* bitmap); +ANDROID_API void* ABitmap_getPixels(ABitmap* bitmap); +ANDROID_API void ABitmap_notifyPixelsChanged(ABitmap* bitmap); -AndroidBitmapFormat ABitmapConfig_getFormatFromConfig(JNIEnv* env, jobject bitmapConfigObj); -jobject ABitmapConfig_getConfigFromFormat(JNIEnv* env, AndroidBitmapFormat format); +ANDROID_API AndroidBitmapFormat ABitmapConfig_getFormatFromConfig(JNIEnv* env, jobject bitmapConfigObj); +ANDROID_API jobject ABitmapConfig_getConfigFromFormat(JNIEnv* env, AndroidBitmapFormat format); // NDK access -int ABitmap_compress(const AndroidBitmapInfo* info, ADataSpace dataSpace, const void* pixels, +ANDROID_API int ABitmap_compress(const AndroidBitmapInfo* info, ADataSpace dataSpace, const void* pixels, AndroidBitmapCompressFormat format, int32_t quality, void* userContext, AndroidBitmap_CompressWriteFunc); /** @@ -75,7 +76,7 @@ int ABitmap_compress(const AndroidBitmapInfo* info, ADataSpace dataSpace, const * a reference on the buffer, and the client must call * AHardwareBuffer_release when finished with it. */ -AHardwareBuffer* ABitmap_getHardwareBuffer(ABitmap* bitmap); +ANDROID_API AHardwareBuffer* ABitmap_getHardwareBuffer(ABitmap* bitmap); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/canvas.h b/libs/hwui/apex/include/android/graphics/canvas.h index 6fd6b0693b37c..a0cecc04a7e5e 100644 --- a/libs/hwui/apex/include/android/graphics/canvas.h +++ b/libs/hwui/apex/include/android/graphics/canvas.h @@ -20,6 +20,7 @@ #include #include #include +#include #include __BEGIN_DECLS @@ -30,24 +31,24 @@ __BEGIN_DECLS typedef struct ACanvas ACanvas; // One of AHardwareBuffer_Format. -bool ACanvas_isSupportedPixelFormat(int32_t bufferFormat); +ANDROID_API bool ACanvas_isSupportedPixelFormat(int32_t bufferFormat); /** * Returns a native handle to a Java android.graphics.Canvas * * @return ACanvas* that is only valid for the life of the jobject. */ -ACanvas* ACanvas_getNativeHandleFromJava(JNIEnv* env, jobject canvas); +ANDROID_API ACanvas* ACanvas_getNativeHandleFromJava(JNIEnv* env, jobject canvas); /** * Creates a canvas that wraps the buffer * * @param buffer is a required param. If no buffer is provided a nullptr will be returned. */ -ACanvas* ACanvas_createCanvas(const ANativeWindow_Buffer* buffer, +ANDROID_API ACanvas* ACanvas_createCanvas(const ANativeWindow_Buffer* buffer, int32_t /*android_dataspace_t*/ dataspace); -void ACanvas_destroyCanvas(ACanvas* canvas); +ANDROID_API void ACanvas_destroyCanvas(ACanvas* canvas); /** * Updates the canvas to render into the pixels in the provided buffer @@ -60,7 +61,7 @@ void ACanvas_destroyCanvas(ACanvas* canvas); * method will behave as if nullptr were passed as the input buffer and the previous buffer * will still be released. */ -bool ACanvas_setBuffer(ACanvas* canvas, const ANativeWindow_Buffer* buffer, +ANDROID_API bool ACanvas_setBuffer(ACanvas* canvas, const ANativeWindow_Buffer* buffer, int32_t /*android_dataspace_t*/ dataspace); /** @@ -68,21 +69,21 @@ bool ACanvas_setBuffer(ACanvas* canvas, const ANativeWindow_Buffer* buffer, * * @param clipRect required */ -void ACanvas_clipRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false); +ANDROID_API void ACanvas_clipRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false); /** * Clips operations on the canvas to the difference of the current clip and the provided clipRect. * * @param clipRect required */ -void ACanvas_clipOutRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false); +ANDROID_API void ACanvas_clipOutRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false); /** * * @param rect required * @param paint required */ -void ACanvas_drawRect(ACanvas* canvas, const ARect* rect, const APaint* paint); +ANDROID_API void ACanvas_drawRect(ACanvas* canvas, const ARect* rect, const APaint* paint); /** * @@ -91,7 +92,7 @@ void ACanvas_drawRect(ACanvas* canvas, const ARect* rect, const APaint* paint); * @param top * @param paint */ -void ACanvas_drawBitmap(ACanvas* canvas, const ABitmap* bitmap, float left, float top, +ANDROID_API void ACanvas_drawBitmap(ACanvas* canvas, const ABitmap* bitmap, float left, float top, const APaint* paint); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/jni_runtime.h b/libs/hwui/apex/include/android/graphics/jni_runtime.h index 872a9497ab90a..487383ed50d56 100644 --- a/libs/hwui/apex/include/android/graphics/jni_runtime.h +++ b/libs/hwui/apex/include/android/graphics/jni_runtime.h @@ -16,15 +16,18 @@ #ifndef ANDROID_GRAPHICS_JNI_RUNTIME_H #define ANDROID_GRAPHICS_JNI_RUNTIME_H +#include #include __BEGIN_DECLS -void init_android_graphics(); +ANDROID_API void init_android_graphics(); -int register_android_graphics_classes(JNIEnv* env); +ANDROID_API int register_android_graphics_classes(JNIEnv* env); -void zygote_preload_graphics(); +ANDROID_API int register_android_graphics_GraphicsStatsService(JNIEnv* env); + +ANDROID_API void zygote_preload_graphics(); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/matrix.h b/libs/hwui/apex/include/android/graphics/matrix.h index 4039cd1b8f74f..987ad13f76356 100644 --- a/libs/hwui/apex/include/android/graphics/matrix.h +++ b/libs/hwui/apex/include/android/graphics/matrix.h @@ -18,6 +18,7 @@ #define ANDROID_GRAPHICS_MATRIX_H #include +#include #include __BEGIN_DECLS @@ -31,7 +32,7 @@ __BEGIN_DECLS * @return true if the values param was populated and false otherwise. */ -bool AMatrix_getContents(JNIEnv* env, jobject matrixObj, float values[9]); +ANDROID_API bool AMatrix_getContents(JNIEnv* env, jobject matrixObj, float values[9]); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/paint.h b/libs/hwui/apex/include/android/graphics/paint.h index 5895e006bf934..058db8d376198 100644 --- a/libs/hwui/apex/include/android/graphics/paint.h +++ b/libs/hwui/apex/include/android/graphics/paint.h @@ -16,6 +16,7 @@ #ifndef ANDROID_GRAPHICS_PAINT_H #define ANDROID_GRAPHICS_PAINT_H +#include #include __BEGIN_DECLS @@ -35,11 +36,11 @@ enum ABlendMode { ABLEND_MODE_SRC = 2, }; -APaint* APaint_createPaint(); +ANDROID_API APaint* APaint_createPaint(); -void APaint_destroyPaint(APaint* paint); +ANDROID_API void APaint_destroyPaint(APaint* paint); -void APaint_setBlendMode(APaint* paint, ABlendMode blendMode); +ANDROID_API void APaint_setBlendMode(APaint* paint, ABlendMode blendMode); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/region.h b/libs/hwui/apex/include/android/graphics/region.h index 961067a8e2dba..0756d6dd63f6f 100644 --- a/libs/hwui/apex/include/android/graphics/region.h +++ b/libs/hwui/apex/include/android/graphics/region.h @@ -16,6 +16,7 @@ #ifndef ANDROID_GRAPHICS_REGION_H #define ANDROID_GRAPHICS_REGION_H +#include #include #include #include @@ -35,19 +36,19 @@ typedef struct ARegionIterator ARegionIterator; * @return ARegionIterator that must be closed and must not live longer than the life * of the jobject. It returns nullptr if the region is not a valid object. */ -ARegionIterator* ARegionIterator_acquireIterator(JNIEnv* env, jobject region); +ANDROID_API ARegionIterator* ARegionIterator_acquireIterator(JNIEnv* env, jobject region); -void ARegionIterator_releaseIterator(ARegionIterator* iterator); +ANDROID_API void ARegionIterator_releaseIterator(ARegionIterator* iterator); -bool ARegionIterator_isComplex(ARegionIterator* iterator); +ANDROID_API bool ARegionIterator_isComplex(ARegionIterator* iterator); -bool ARegionIterator_isDone(ARegionIterator* iterator); +ANDROID_API bool ARegionIterator_isDone(ARegionIterator* iterator); -void ARegionIterator_next(ARegionIterator* iterator); +ANDROID_API void ARegionIterator_next(ARegionIterator* iterator); -ARect ARegionIterator_getRect(ARegionIterator* iterator); +ANDROID_API ARect ARegionIterator_getRect(ARegionIterator* iterator); -ARect ARegionIterator_getTotalBounds(ARegionIterator* iterator); +ANDROID_API ARect ARegionIterator_getTotalBounds(ARegionIterator* iterator); __END_DECLS diff --git a/libs/hwui/apex/include/android/graphics/renderthread.h b/libs/hwui/apex/include/android/graphics/renderthread.h index 0a790af731a92..50280a6dd1fbd 100644 --- a/libs/hwui/apex/include/android/graphics/renderthread.h +++ b/libs/hwui/apex/include/android/graphics/renderthread.h @@ -16,6 +16,7 @@ #ifndef ANDROID_GRAPHICS_RENDERTHREAD_H #define ANDROID_GRAPHICS_RENDERTHREAD_H +#include #include __BEGIN_DECLS @@ -26,7 +27,7 @@ __BEGIN_DECLS * function requires a valid fd, but does not persist or assume ownership of the fd * outside the scope of this function. */ -void ARenderThread_dumpGraphicsMemory(int fd); +ANDROID_API void ARenderThread_dumpGraphicsMemory(int fd); __END_DECLS diff --git a/libs/hwui/jni/BitmapFactory.cpp b/libs/hwui/jni/BitmapFactory.cpp index f3395b9e6877d..d4e27d8125006 100644 --- a/libs/hwui/jni/BitmapFactory.cpp +++ b/libs/hwui/jni/BitmapFactory.cpp @@ -4,6 +4,7 @@ #include "BitmapFactory.h" #include "CreateJavaOutputStreamAdaptor.h" #include "GraphicsJNI.h" +#include "MimeType.h" #include "NinePatchPeeker.h" #include "SkAndroidCodec.h" #include "SkBRDAllocator.h" diff --git a/libs/hwui/jni/GraphicsJNI.h b/libs/hwui/jni/GraphicsJNI.h index 4bf3ed1c6a3e5..b58a740a4c273 100644 --- a/libs/hwui/jni/GraphicsJNI.h +++ b/libs/hwui/jni/GraphicsJNI.h @@ -1,6 +1,8 @@ #ifndef _ANDROID_GRAPHICS_GRAPHICS_JNI_H_ #define _ANDROID_GRAPHICS_GRAPHICS_JNI_H_ +#include + #include "Bitmap.h" #include "SkBitmap.h" #include "SkBRDAllocator.h" @@ -75,7 +77,7 @@ public: static SkPoint* jpointf_to_point(JNIEnv*, jobject jpointf, SkPoint* point); static void point_to_jpointf(const SkPoint& point, JNIEnv*, jobject jpointf); - static android::Canvas* getNativeCanvas(JNIEnv*, jobject canvas); + ANDROID_API static android::Canvas* getNativeCanvas(JNIEnv*, jobject canvas); static android::Bitmap* getNativeBitmap(JNIEnv*, jobject bitmap); static SkImageInfo getBitmapInfo(JNIEnv*, jobject bitmap, uint32_t* outRowBytes, bool* isHardware); diff --git a/libs/hwui/jni/GraphicsStatsService.cpp b/libs/hwui/jni/GraphicsStatsService.cpp index e9259462bcac9..6076552fc094d 100644 --- a/libs/hwui/jni/GraphicsStatsService.cpp +++ b/libs/hwui/jni/GraphicsStatsService.cpp @@ -25,6 +25,8 @@ #include #include #include + +#include "android/graphics/jni_runtime.h" #include "GraphicsJNI.h" namespace android { @@ -171,6 +173,9 @@ static void nativeDestructor(JNIEnv* env, jobject javaObject) { gGraphicsStatsServiceObject = nullptr; } +} // namespace android +using namespace android; + static const JNINativeMethod sMethods[] = {{"nGetAshmemSize", "()I", (void*)getAshmemSize}, {"nCreateDump", "(IZ)J", (void*)createDump}, @@ -190,5 +195,3 @@ int register_android_graphics_GraphicsStatsService(JNIEnv* env) { return jniRegisterNativeMethods(env, "android/graphics/GraphicsStatsService", sMethods, NELEM(sMethods)); } - -} // namespace android diff --git a/core/jni/android/graphics/MimeType.h b/libs/hwui/jni/MimeType.h similarity index 88% rename from core/jni/android/graphics/MimeType.h rename to libs/hwui/jni/MimeType.h index 38a579c595e49..fdd510cfeb791 100644 --- a/core/jni/android/graphics/MimeType.h +++ b/libs/hwui/jni/MimeType.h @@ -16,6 +16,7 @@ #pragma once +#include #include "SkEncodedImageFormat.h" -const char* getMimeType(SkEncodedImageFormat); +ANDROID_API const char* getMimeType(SkEncodedImageFormat); diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp index d1946b085df4c..56f390698eb2a 100644 --- a/native/graphics/jni/imagedecoder.cpp +++ b/native/graphics/jni/imagedecoder.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp index e57543203634a..f9238e3977c60 100644 --- a/services/core/jni/onload.cpp +++ b/services/core/jni/onload.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #include #include "jni.h" #include "utils/Log.h" @@ -49,7 +50,6 @@ int register_android_server_PersistentDataBlockService(JNIEnv* env); int register_android_server_Watchdog(JNIEnv* env); int register_android_server_HardwarePropertiesManagerService(JNIEnv* env); int register_android_server_SyntheticPasswordManager(JNIEnv* env); -int register_android_graphics_GraphicsStatsService(JNIEnv* env); int register_android_hardware_display_DisplayViewport(JNIEnv* env); int register_android_server_net_NetworkStatsFactory(JNIEnv* env); int register_android_server_net_NetworkStatsService(JNIEnv* env);