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

Commit 15f58d76 authored by Kevin Lubick's avatar Kevin Lubick
Browse files

[native] Migrate deprecated GL GrSurfaceBackend related functions

Skia-side changes:
 - https://skia-review.googlesource.com/c/skia/+/735976
 - https://skia-review.googlesource.com/c/skia/+/701398

Change-Id: I1f3a68e980ee3a0fb77b3d3804049ae26184ed1e
parent 81d5649f
Loading
Loading
Loading
Loading
+40 −9
Original line number Original line Diff line number Diff line
@@ -23,7 +23,7 @@
#include <SkImage.h>
#include <SkImage.h>
#include <include/gpu/ganesh/SkImageGanesh.h>
#include <include/gpu/ganesh/SkImageGanesh.h>
#include <include/gpu/ganesh/SkSurfaceGanesh.h>
#include <include/gpu/ganesh/SkSurfaceGanesh.h>

#include <include/gpu/ganesh/gl/GrGLBackendSurface.h>
#include <android/hardware_buffer.h>
#include <android/hardware_buffer.h>
#include "ColorSpaces.h"
#include "ColorSpaces.h"
#include "log/log_main.h"
#include "log/log_main.h"
@@ -40,13 +40,44 @@ AutoBackendTexture::AutoBackendTexture(GrDirectContext* context, AHardwareBuffer
    AHardwareBuffer_Desc desc;
    AHardwareBuffer_Desc desc;
    AHardwareBuffer_describe(buffer, &desc);
    AHardwareBuffer_describe(buffer, &desc);
    bool createProtectedImage = 0 != (desc.usage & AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT);
    bool createProtectedImage = 0 != (desc.usage & AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT);
    GrBackendFormat backendFormat =
    GrBackendFormat backendFormat;
            GrAHardwareBufferUtils::GetBackendFormat(context, buffer, desc.format, false);

    GrBackendApi backend = context->backend();
    if (backend == GrBackendApi::kOpenGL) {
        backendFormat =
                GrAHardwareBufferUtils::GetGLBackendFormat(context, desc.format, false);
        mBackendTexture =
                GrAHardwareBufferUtils::MakeGLBackendTexture(context,
                                                             buffer,
                                                             desc.width,
                                                             desc.height,
                                                             &mDeleteProc,
                                                             &mUpdateProc,
                                                             &mImageCtx,
                                                             createProtectedImage,
                                                             backendFormat,
                                                             isOutputBuffer);
    } else if (backend == GrBackendApi::kVulkan) {
        backendFormat =
                GrAHardwareBufferUtils::GetVulkanBackendFormat(context,
                                                               buffer,
                                                               desc.format,
                                                               false);
        mBackendTexture =
        mBackendTexture =
            GrAHardwareBufferUtils::MakeBackendTexture(context, buffer, desc.width, desc.height,
                GrAHardwareBufferUtils::MakeVulkanBackendTexture(context,
                                                       &mDeleteProc, &mUpdateProc, &mImageCtx,
                                                                 buffer,
                                                       createProtectedImage, backendFormat,
                                                                 desc.width,
                                                                 desc.height,
                                                                 &mDeleteProc,
                                                                 &mUpdateProc,
                                                                 &mImageCtx,
                                                                 createProtectedImage,
                                                                 backendFormat,
                                                                 isOutputBuffer);
                                                                 isOutputBuffer);
    } else {
        LOG_ALWAYS_FATAL("Unexpected backend %d", backend);
    }

    mColorType = GrAHardwareBufferUtils::GetSkColorTypeFromBufferFormat(desc.format);
    mColorType = GrAHardwareBufferUtils::GetSkColorTypeFromBufferFormat(desc.format);
    if (!mBackendTexture.isValid() || !desc.width || !desc.height) {
    if (!mBackendTexture.isValid() || !desc.width || !desc.height) {
        LOG_ALWAYS_FATAL("Failed to create a valid texture. [%p]:[%d,%d] isProtected:%d "
        LOG_ALWAYS_FATAL("Failed to create a valid texture. [%p]:[%d,%d] isProtected:%d "
@@ -94,7 +125,7 @@ void logFatalTexture(const char* msg, const GrBackendTexture& tex, ui::Dataspace
    switch (tex.backend()) {
    switch (tex.backend()) {
        case GrBackendApi::kOpenGL: {
        case GrBackendApi::kOpenGL: {
            GrGLTextureInfo textureInfo;
            GrGLTextureInfo textureInfo;
            bool retrievedTextureInfo = tex.getGLTextureInfo(&textureInfo);
            bool retrievedTextureInfo = GrBackendTextures::GetGLTextureInfo(tex, &textureInfo);
            LOG_ALWAYS_FATAL("%s isTextureValid:%d dataspace:%d"
            LOG_ALWAYS_FATAL("%s isTextureValid:%d dataspace:%d"
                             "\n\tGrBackendTexture: (%i x %i) hasMipmaps: %i isProtected: %i "
                             "\n\tGrBackendTexture: (%i x %i) hasMipmaps: %i isProtected: %i "
                             "texType: %i\n\t\tGrGLTextureInfo: success: %i fTarget: %u fFormat: %u"
                             "texType: %i\n\t\tGrGLTextureInfo: success: %i fTarget: %u fFormat: %u"