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

Commit f35b989d authored by Leon Scroggins III's avatar Leon Scroggins III Committed by Tom Hudson
Browse files

Merge six commits from master-skia to master

Also corrects some code under development behind the HWUI_NEW_OPS flags
to match the updated Skia API.

Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
previous-Change-Id: I85de3462ad1e4877784df38edc4bcd0acbd24e5e
Change-Id: Ide8e2f669e91a13c32521af3a16efdaa085c81d0
parent 438c220d
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -189,6 +189,7 @@ LOCAL_C_INCLUDES += \
    external/pdfium/core/include/fpdfdoc \
    external/pdfium/core/include/fpdfdoc \
    external/pdfium/fpdfsdk/include \
    external/pdfium/fpdfsdk/include \
    external/pdfium/public \
    external/pdfium/public \
    external/skia/include/private \
    external/skia/src/core \
    external/skia/src/core \
    external/skia/src/effects \
    external/skia/src/effects \
    external/skia/src/images \
    external/skia/src/images \
+1 −1
Original line number Original line Diff line number Diff line
@@ -165,7 +165,7 @@ public:


    virtual bool allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable) {
    virtual bool allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable) {
        const SkImageInfo& info = bitmap->info();
        const SkImageInfo& info = bitmap->info();
        if (info.fColorType == kUnknown_SkColorType) {
        if (info.colorType() == kUnknown_SkColorType) {
            ALOGW("unable to reuse a bitmap as the target has an unknown bitmap configuration");
            ALOGW("unable to reuse a bitmap as the target has an unknown bitmap configuration");
            return false;
            return false;
        }
        }
+4 −4
Original line number Original line Diff line number Diff line
@@ -486,7 +486,7 @@ static bool computeAllocationSize(const SkBitmap& bitmap, size_t* size) {
android::Bitmap* GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
android::Bitmap* GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
                                             SkColorTable* ctable) {
                                             SkColorTable* ctable) {
    const SkImageInfo& info = bitmap->info();
    const SkImageInfo& info = bitmap->info();
    if (info.fColorType == kUnknown_SkColorType) {
    if (info.colorType() == kUnknown_SkColorType) {
        doThrowIAE(env, "unknown bitmap configuration");
        doThrowIAE(env, "unknown bitmap configuration");
        return NULL;
        return NULL;
    }
    }
@@ -538,7 +538,7 @@ static void allocatePixelsReleaseProc(void* ptr, void* ctx) {


bool GraphicsJNI::allocatePixels(JNIEnv* env, SkBitmap* bitmap, SkColorTable* ctable) {
bool GraphicsJNI::allocatePixels(JNIEnv* env, SkBitmap* bitmap, SkColorTable* ctable) {
    const SkImageInfo& info = bitmap->info();
    const SkImageInfo& info = bitmap->info();
    if (info.fColorType == kUnknown_SkColorType) {
    if (info.colorType() == kUnknown_SkColorType) {
        doThrowIAE(env, "unknown bitmap configuration");
        doThrowIAE(env, "unknown bitmap configuration");
        return NULL;
        return NULL;
    }
    }
@@ -581,7 +581,7 @@ android::Bitmap* GraphicsJNI::allocateAshmemPixelRef(JNIEnv* env, SkBitmap* bitm
    int fd;
    int fd;


    const SkImageInfo& info = bitmap->info();
    const SkImageInfo& info = bitmap->info();
    if (info.fColorType == kUnknown_SkColorType) {
    if (info.colorType() == kUnknown_SkColorType) {
        doThrowIAE(env, "unknown bitmap configuration");
        doThrowIAE(env, "unknown bitmap configuration");
        return nullptr;
        return nullptr;
    }
    }
@@ -625,7 +625,7 @@ android::Bitmap* GraphicsJNI::allocateAshmemPixelRef(JNIEnv* env, SkBitmap* bitm
android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap,
android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap,
        SkColorTable* ctable, int fd, void* addr, bool readOnly) {
        SkColorTable* ctable, int fd, void* addr, bool readOnly) {
    const SkImageInfo& info = bitmap->info();
    const SkImageInfo& info = bitmap->info();
    if (info.fColorType == kUnknown_SkColorType) {
    if (info.colorType() == kUnknown_SkColorType) {
        doThrowIAE(env, "unknown bitmap configuration");
        doThrowIAE(env, "unknown bitmap configuration");
        return nullptr;
        return nullptr;
    }
    }
+3 −4
Original line number Original line Diff line number Diff line
@@ -313,12 +313,11 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz,
        return 0;
        return 0;
    }
    }



    SkImageInfo info = SkImageInfo::Make(outBuffer.width, outBuffer.height,
    SkImageInfo info = SkImageInfo::Make(outBuffer.width, outBuffer.height,
                                         convertPixelFormat(outBuffer.format),
                                         convertPixelFormat(outBuffer.format),
                                         kPremul_SkAlphaType);
                                         outBuffer.format == PIXEL_FORMAT_RGBX_8888 ?
    if (outBuffer.format == PIXEL_FORMAT_RGBX_8888) {
                                         kOpaque_SkAlphaType : kPremul_SkAlphaType);
        info.fAlphaType = kOpaque_SkAlphaType;
    }


    SkBitmap bitmap;
    SkBitmap bitmap;
    ssize_t bpr = outBuffer.stride * bytesPerPixel(outBuffer.format);
    ssize_t bpr = outBuffer.stride * bytesPerPixel(outBuffer.format);
+12 −11
Original line number Original line Diff line number Diff line
@@ -138,35 +138,36 @@ static jobject nativeScreenshotBitmap(JNIEnv* env, jclass clazz,
        return NULL;
        return NULL;
    }
    }


    SkImageInfo screenshotInfo;
    SkColorType colorType;
    screenshotInfo.fWidth = screenshot->getWidth();
    SkAlphaType alphaType;
    screenshotInfo.fHeight = screenshot->getHeight();

    switch (screenshot->getFormat()) {
    switch (screenshot->getFormat()) {
        case PIXEL_FORMAT_RGBX_8888: {
        case PIXEL_FORMAT_RGBX_8888: {
            screenshotInfo.fColorType = kRGBA_8888_SkColorType;
            colorType = kRGBA_8888_SkColorType;
            screenshotInfo.fAlphaType = kOpaque_SkAlphaType;
            alphaType = kOpaque_SkAlphaType;
            break;
            break;
        }
        }
        case PIXEL_FORMAT_RGBA_8888: {
        case PIXEL_FORMAT_RGBA_8888: {
            screenshotInfo.fColorType = kRGBA_8888_SkColorType;
            colorType = kRGBA_8888_SkColorType;
            screenshotInfo.fAlphaType = kPremul_SkAlphaType;
            alphaType = kPremul_SkAlphaType;
            break;
            break;
        }
        }
        case PIXEL_FORMAT_RGB_565: {
        case PIXEL_FORMAT_RGB_565: {
            screenshotInfo.fColorType = kRGB_565_SkColorType;
            colorType = kRGB_565_SkColorType;
            screenshotInfo.fAlphaType = kOpaque_SkAlphaType;
            alphaType = kOpaque_SkAlphaType;
            break;
            break;
        }
        }
        default: {
        default: {
            return NULL;
            return NULL;
        }
        }
    }
    }
    SkImageInfo screenshotInfo = SkImageInfo::Make(screenshot->getWidth(),
                                                   screenshot->getHeight(),
                                                   colorType, alphaType);


    const size_t rowBytes =
    const size_t rowBytes =
            screenshot->getStride() * android::bytesPerPixel(screenshot->getFormat());
            screenshot->getStride() * android::bytesPerPixel(screenshot->getFormat());


    if (!screenshotInfo.fWidth || !screenshotInfo.fHeight) {
    if (!screenshotInfo.width() || !screenshotInfo.height()) {
        return NULL;
        return NULL;
    }
    }


Loading