Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fee4a985 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fallout of libandroid.so split

Test: compiled & booted
Bug: 35164655
Change-Id: I786167a21453e17493969cdacfc9d31bdb781d98
parent 339dc75d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -283,11 +283,16 @@ LOCAL_SHARED_LIBRARIES := \
    libhidltransport \
    libhwbinder \
    libvintf \
    libnativewindow \

LOCAL_SHARED_LIBRARIES += \
    libhwui \
    libdl \

# our headers include libnativewindow's public headers
LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := \
    libnativewindow \

# we need to access the private Bionic header
# <bionic_tls.h> in com_google_android_gles_jni_GLImpl.cpp
LOCAL_C_INCLUDES += bionic/libc/private
+23 −109
Original line number Diff line number Diff line
@@ -26,15 +26,17 @@
#include <android_runtime/android_hardware_HardwareBuffer.h>
#include <android_runtime/AndroidRuntime.h>
#include <android_runtime/Log.h>
#include <private/android/AHardwareBufferHelpers.h>

#include <binder/Parcel.h>

#include <ui/GraphicBuffer.h>
#include <gui/IGraphicBufferAlloc.h>
#include <gui/ISurfaceComposer.h>
#include <hardware/gralloc1.h>
#include <ui/GraphicBuffer.h>

#include <private/gui/ComposerService.h>

#include <hardware/gralloc1.h>

#include "core_jni_helpers.h"

using namespace android;
@@ -64,15 +66,6 @@ public:
    sp<GraphicBuffer> buffer;
};


// ----------------------------------------------------------------------------
// Helper functions
// ----------------------------------------------------------------------------

static inline bool containsBits(uint64_t mask, uint64_t bitsToCheck) {
    return (mask & bitsToCheck) == bitsToCheck;
}

// ----------------------------------------------------------------------------
// HardwareBuffer lifecycle
// ----------------------------------------------------------------------------
@@ -121,8 +114,7 @@ static void destroyWrapper(GraphicBufferWrapper* wrapper) {
    delete wrapper;
}

static jlong android_hardware_HardwareBuffer_getNativeFinalizer(JNIEnv* env,
        jobject clazz) {
static jlong android_hardware_HardwareBuffer_getNativeFinalizer(JNIEnv* env, jobject clazz) {
    return static_cast<jlong>(reinterpret_cast<uintptr_t>(&destroyWrapper));
}

@@ -203,7 +195,8 @@ AHardwareBuffer* android_hardware_HardwareBuffer_getNativeHardwareBuffer(
    if (env->IsInstanceOf(hardwareBufferObj, gHardwareBufferClassInfo.clazz)) {
        GraphicBuffer* buffer = GraphicBufferWrapper_to_GraphicBuffer(
                env->GetLongField(hardwareBufferObj, gHardwareBufferClassInfo.mNativeObject));
        return reinterpret_cast<AHardwareBuffer*>(buffer);
        return AHardwareBuffer_from_GraphicBuffer(buffer);

    } else {
        return nullptr;
    }
@@ -211,7 +204,7 @@ AHardwareBuffer* android_hardware_HardwareBuffer_getNativeHardwareBuffer(

jobject android_hardware_HardwareBuffer_createFromAHardwareBuffer(
        JNIEnv* env, AHardwareBuffer* hardwareBuffer) {
    GraphicBuffer* buffer = reinterpret_cast<GraphicBuffer*>(hardwareBuffer);
    GraphicBuffer* buffer = AHardwareBuffer_to_GraphicBuffer(hardwareBuffer);
    GraphicBufferWrapper* wrapper = new GraphicBufferWrapper(buffer);
    jobject hardwareBufferObj = env->NewObject(gHardwareBufferClassInfo.clazz,
            gHardwareBufferClassInfo.ctor, reinterpret_cast<jlong>(wrapper));
@@ -228,103 +221,22 @@ jobject android_hardware_HardwareBuffer_createFromAHardwareBuffer(
}

uint32_t android_hardware_HardwareBuffer_convertFromPixelFormat(uint32_t format) {
    switch (format) {
        case HAL_PIXEL_FORMAT_RGBA_8888:
            return AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM;
        case HAL_PIXEL_FORMAT_RGBX_8888:
            return AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM;
        case HAL_PIXEL_FORMAT_RGB_565:
            return AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM;
        case HAL_PIXEL_FORMAT_RGB_888:
            return AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM;
        case HAL_PIXEL_FORMAT_RGBA_FP16:
            return AHARDWAREBUFFER_FORMAT_R16G16B16A16_SFLOAT;
        case HAL_PIXEL_FORMAT_RGBA_1010102:
            return AHARDWAREBUFFER_FORMAT_A2R10G10B10_UNORM_PACK32;
        case HAL_PIXEL_FORMAT_BLOB:
            return AHARDWAREBUFFER_FORMAT_BLOB;
        default:
            ALOGE("Unknown pixel format %u", format);
            return 0;
    }
    return AHardwareBuffer_convertFromPixelFormat(format);
}

uint32_t android_hardware_HardwareBuffer_convertToPixelFormat(uint32_t format) {
    switch (format) {
        case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM:
            return HAL_PIXEL_FORMAT_RGBA_8888;
        case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM:
            return HAL_PIXEL_FORMAT_RGBX_8888;
        case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM:
            return HAL_PIXEL_FORMAT_RGB_565;
        case AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM:
            return HAL_PIXEL_FORMAT_RGB_888;
        case AHARDWAREBUFFER_FORMAT_R16G16B16A16_SFLOAT:
            return HAL_PIXEL_FORMAT_RGBA_FP16;
        case AHARDWAREBUFFER_FORMAT_A2R10G10B10_UNORM_PACK32:
            return HAL_PIXEL_FORMAT_RGBA_1010102;
        case AHARDWAREBUFFER_FORMAT_BLOB:
            return HAL_PIXEL_FORMAT_BLOB;
        default:
            ALOGE("Unknown AHardwareBuffer format %u", format);
            return 0;
    }
    return AHardwareBuffer_convertToPixelFormat(format);
}

void android_hardware_HardwareBuffer_convertToGrallocUsageBits(uint64_t usage0,
        uint64_t usage1, uint64_t* outProducerUsage,
        uint64_t /*usage1*/, uint64_t* outProducerUsage,
        uint64_t* outConsumerUsage) {
    *outProducerUsage = 0;
    *outConsumerUsage = 0;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_CPU_READ))
        *outConsumerUsage |= GRALLOC1_CONSUMER_USAGE_CPU_READ;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_CPU_READ_OFTEN))
        *outConsumerUsage |= GRALLOC1_CONSUMER_USAGE_CPU_READ_OFTEN;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_CPU_WRITE))
        *outProducerUsage |= GRALLOC1_PRODUCER_USAGE_CPU_WRITE;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_CPU_WRITE_OFTEN))
        *outProducerUsage |= GRALLOC1_PRODUCER_USAGE_CPU_WRITE_OFTEN;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_GPU_SAMPLED_IMAGE))
        *outConsumerUsage |= GRALLOC1_CONSUMER_USAGE_GPU_TEXTURE;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_GPU_COLOR_OUTPUT))
        *outProducerUsage |= GRALLOC1_PRODUCER_USAGE_GPU_RENDER_TARGET;
    // Not sure what this should be.
    //if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_GPU_CUBEMAP)) bits |= 0;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_GPU_DATA_BUFFER))
        *outConsumerUsage |= GRALLOC1_CONSUMER_USAGE_GPU_DATA_BUFFER;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_VIDEO_ENCODE))
        *outConsumerUsage |= GRALLOC1_CONSUMER_USAGE_VIDEO_ENCODER;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_PROTECTED_CONTENT))
        *outProducerUsage |= GRALLOC1_PRODUCER_USAGE_PROTECTED;
    if (containsBits(usage0, AHARDWAREBUFFER_USAGE0_SENSOR_DIRECT_DATA))
        *outProducerUsage |= GRALLOC1_PRODUCER_USAGE_SENSOR_DIRECT_DATA;
    AHardwareBuffer_convertToGrallocUsageBits(usage0, outProducerUsage, outConsumerUsage);
}

uint64_t android_hardware_HardwareBuffer_convertFromGrallocUsageBits(
        uint64_t producerUsage, uint64_t consumerUsage) {
    uint64_t bits = 0;
    if (containsBits(consumerUsage, GRALLOC1_CONSUMER_USAGE_CPU_READ))
        bits |= AHARDWAREBUFFER_USAGE0_CPU_READ;
    if (containsBits(consumerUsage, GRALLOC1_CONSUMER_USAGE_CPU_READ_OFTEN))
        bits |= AHARDWAREBUFFER_USAGE0_CPU_READ_OFTEN;
    if (containsBits(producerUsage, GRALLOC1_PRODUCER_USAGE_CPU_WRITE))
        bits |= AHARDWAREBUFFER_USAGE0_CPU_WRITE;
    if (containsBits(producerUsage, GRALLOC1_PRODUCER_USAGE_CPU_WRITE_OFTEN))
        bits |= AHARDWAREBUFFER_USAGE0_CPU_WRITE_OFTEN;
    if (containsBits(consumerUsage, GRALLOC1_CONSUMER_USAGE_GPU_TEXTURE))
        bits |= AHARDWAREBUFFER_USAGE0_GPU_SAMPLED_IMAGE;
    if (containsBits(producerUsage, GRALLOC1_PRODUCER_USAGE_GPU_RENDER_TARGET))
        bits |= AHARDWAREBUFFER_USAGE0_GPU_COLOR_OUTPUT;
    if (containsBits(consumerUsage, GRALLOC1_CONSUMER_USAGE_GPU_DATA_BUFFER))
        bits |= AHARDWAREBUFFER_USAGE0_GPU_DATA_BUFFER;
    if (containsBits(consumerUsage, GRALLOC1_CONSUMER_USAGE_VIDEO_ENCODER))
        bits |= AHARDWAREBUFFER_USAGE0_VIDEO_ENCODE;
    if (containsBits(producerUsage, GRALLOC1_PRODUCER_USAGE_PROTECTED))
        bits |= AHARDWAREBUFFER_USAGE0_PROTECTED_CONTENT;
    if (containsBits(producerUsage, GRALLOC1_PRODUCER_USAGE_SENSOR_DIRECT_DATA))
        bits |= AHARDWAREBUFFER_USAGE0_SENSOR_DIRECT_DATA;

    return bits;
    return AHardwareBuffer_convertFromGrallocUsageBits(producerUsage, consumerUsage);
}

}  // namespace android
@@ -336,8 +248,10 @@ uint64_t android_hardware_HardwareBuffer_convertFromGrallocUsageBits(
const char* const kClassPathName = "android/hardware/HardwareBuffer";

static const JNINativeMethod gMethods[] = {
    { "nCreateHardwareBuffer",  "(IIIIJ)J", (void*) android_hardware_HardwareBuffer_create },
    { "nGetNativeFinalizer", "()J",          (void*) android_hardware_HardwareBuffer_getNativeFinalizer },
    { "nCreateHardwareBuffer",  "(IIIIJ)J",
            (void*) android_hardware_HardwareBuffer_create },
    { "nGetNativeFinalizer", "()J",
            (void*) android_hardware_HardwareBuffer_getNativeFinalizer },
    { "nWriteHardwareBufferToParcel",  "(JLandroid/os/Parcel;)V",
            (void*) android_hardware_HardwareBuffer_write },
    { "nReadHardwareBufferFromParcel", "(Landroid/os/Parcel;)J",
+0 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@
#include "SkiaProfileRenderer.h"
#include "utils/TraceUtils.h"

#include <android/native_window.h>
#include <cutils/properties.h>
#include <strings.h>

+0 −1
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@
#include <GrTypes.h>
#include <vk/GrVkTypes.h>

#include <android/native_window.h>
#include <cutils/properties.h>
#include <strings.h>

+0 −1
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@
#include "renderstate/RenderState.h"
#include "OpenGLReadback.h"

#include <android/native_window.h>
#include <cutils/properties.h>
#include <strings.h>

Loading