diff options
| author | 2023-08-11 17:54:52 +0000 | |
|---|---|---|
| committer | 2023-08-11 17:54:52 +0000 | |
| commit | 137a5428701c27f58dd4ca2615e05f002382ce66 (patch) | |
| tree | 361a17a5c9851471dc994c7e19315b7a2f2f3d93 | |
| parent | 4d5e98a11f61311daf50b65c30d68bbfdfae4836 (diff) | |
| parent | 15f58d7635cb29adea504dcbce201e950038d937 (diff) | |
Merge "[native] Migrate deprecated GL GrSurfaceBackend related functions" into main
| -rw-r--r-- | libs/renderengine/skia/AutoBackendTexture.cpp | 49 | 
1 files changed, 40 insertions, 9 deletions
diff --git a/libs/renderengine/skia/AutoBackendTexture.cpp b/libs/renderengine/skia/AutoBackendTexture.cpp index dad3c1993b..90dcae4369 100644 --- a/libs/renderengine/skia/AutoBackendTexture.cpp +++ b/libs/renderengine/skia/AutoBackendTexture.cpp @@ -23,7 +23,7 @@  #include <SkImage.h>  #include <include/gpu/ganesh/SkImageGanesh.h>  #include <include/gpu/ganesh/SkSurfaceGanesh.h> - +#include <include/gpu/ganesh/gl/GrGLBackendSurface.h>  #include <android/hardware_buffer.h>  #include "ColorSpaces.h"  #include "log/log_main.h" @@ -40,13 +40,44 @@ AutoBackendTexture::AutoBackendTexture(GrDirectContext* context, AHardwareBuffer      AHardwareBuffer_Desc desc;      AHardwareBuffer_describe(buffer, &desc);      bool createProtectedImage = 0 != (desc.usage & AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT); -    GrBackendFormat backendFormat = -            GrAHardwareBufferUtils::GetBackendFormat(context, buffer, desc.format, false); -    mBackendTexture = -            GrAHardwareBufferUtils::MakeBackendTexture(context, buffer, desc.width, desc.height, -                                                       &mDeleteProc, &mUpdateProc, &mImageCtx, -                                                       createProtectedImage, backendFormat, -                                                       isOutputBuffer); +    GrBackendFormat backendFormat; + +    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 = +                GrAHardwareBufferUtils::MakeVulkanBackendTexture(context, +                                                                 buffer, +                                                                 desc.width, +                                                                 desc.height, +                                                                 &mDeleteProc, +                                                                 &mUpdateProc, +                                                                 &mImageCtx, +                                                                 createProtectedImage, +                                                                 backendFormat, +                                                                 isOutputBuffer); +    } else { +        LOG_ALWAYS_FATAL("Unexpected backend %d", backend); +    } +      mColorType = GrAHardwareBufferUtils::GetSkColorTypeFromBufferFormat(desc.format);      if (!mBackendTexture.isValid() || !desc.width || !desc.height) {          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()) {          case GrBackendApi::kOpenGL: {              GrGLTextureInfo textureInfo; -            bool retrievedTextureInfo = tex.getGLTextureInfo(&textureInfo); +            bool retrievedTextureInfo = GrBackendTextures::GetGLTextureInfo(tex, &textureInfo);              LOG_ALWAYS_FATAL("%s isTextureValid:%d dataspace:%d"                               "\n\tGrBackendTexture: (%i x %i) hasMipmaps: %i isProtected: %i "                               "texType: %i\n\t\tGrGLTextureInfo: success: %i fTarget: %u fFormat: %u"  |