Update to use GrBackendTexture/RT instead of Descriptors
Test: manual testing
Change-Id: Ide727a39e2c49f226c8d432608e0072214249451
diff --git a/libs/hwui/pipeline/skia/LayerDrawable.cpp b/libs/hwui/pipeline/skia/LayerDrawable.cpp
index 2ebfbcc..4feeb2d 100644
--- a/libs/hwui/pipeline/skia/LayerDrawable.cpp
+++ b/libs/hwui/pipeline/skia/LayerDrawable.cpp
@@ -18,6 +18,7 @@
#include "LayerDrawable.h"
#include "VkLayer.h"
+#include "GrBackendSurface.h"
#include "SkColorFilter.h"
#include "SkSurface.h"
#include "gl/GrGLTypes.h"
@@ -46,13 +47,10 @@
GrGLTextureInfo externalTexture;
externalTexture.fTarget = glLayer->getRenderTarget();
externalTexture.fID = glLayer->getTextureId();
- GrBackendTextureDesc textureDescription;
- textureDescription.fWidth = glLayer->getWidth();
- textureDescription.fHeight = glLayer->getHeight();
- textureDescription.fConfig = kRGBA_8888_GrPixelConfig;
- textureDescription.fOrigin = kTopLeft_GrSurfaceOrigin;
- textureDescription.fTextureHandle = reinterpret_cast<GrBackendObject>(&externalTexture);
- layerImage = SkImage::MakeFromTexture(context, textureDescription);
+ GrBackendTexture backendTexture(glLayer->getWidth(), glLayer->getHeight(),
+ kRGBA_8888_GrPixelConfig, externalTexture);
+ layerImage = SkImage::MakeFromTexture(context, backendTexture, kTopLeft_GrSurfaceOrigin,
+ kPremul_SkAlphaType, nullptr);
} else {
SkASSERT(layer->getApi() == Layer::Api::Vulkan);
VkLayer* vkLayer = static_cast<VkLayer*>(layer);
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
index 6d5ef1d..71e3ff8 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
@@ -27,6 +27,8 @@
#include "SkiaProfileRenderer.h"
#include "utils/TraceUtils.h"
+#include <GrBackendSurface.h>
+
#include <cutils/properties.h>
#include <strings.h>
@@ -69,20 +71,17 @@
mEglManager.damageFrame(frame, dirty);
// setup surface for fbo0
- GrBackendRenderTargetDesc renderTargetDesc;
- renderTargetDesc.fWidth = frame.width();
- renderTargetDesc.fHeight = frame.height();
- renderTargetDesc.fConfig = kRGBA_8888_GrPixelConfig;
- renderTargetDesc.fOrigin = kBottomLeft_GrSurfaceOrigin;
- renderTargetDesc.fSampleCnt = 0;
- renderTargetDesc.fStencilBits = STENCIL_BUFFER_SIZE;
- renderTargetDesc.fRenderTargetHandle = 0;
+ GrGLFramebufferInfo fboInfo;
+ fboInfo.fFBOID = 0;
+
+ GrBackendRenderTarget backendRT(frame.width(), frame.height(), 0, STENCIL_BUFFER_SIZE,
+ kRGBA_8888_GrPixelConfig, fboInfo);
SkSurfaceProps props(0, kUnknown_SkPixelGeometry);
SkASSERT(mRenderThread.getGrContext() != nullptr);
sk_sp<SkSurface> surface(SkSurface::MakeFromBackendRenderTarget(
- mRenderThread.getGrContext(), renderTargetDesc, &props));
+ mRenderThread.getGrContext(), backendRT, kBottomLeft_GrSurfaceOrigin, nullptr, &props));
SkiaPipeline::updateLighting(lightGeometry, lightInfo);
renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, wideColorGamut,
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp
index e865b57..69b9c01fe 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLReadback.cpp
@@ -20,6 +20,7 @@
#include "Properties.h"
#include <SkCanvas.h>
#include <SkSurface.h>
+#include <GrBackendSurface.h>
#include <gl/GrGLInterface.h>
#include <gl/GrGLTypes.h>
#include <GLES2/gl2.h>
@@ -53,15 +54,11 @@
externalTexture.fTarget = GL_TEXTURE_EXTERNAL_OES;
externalTexture.fID = sourceTexId;
- GrBackendTextureDesc textureDescription;
- textureDescription.fWidth = imgWidth;
- textureDescription.fHeight = imgHeight;
- textureDescription.fConfig = kRGBA_8888_GrPixelConfig;
- textureDescription.fOrigin = kTopLeft_GrSurfaceOrigin;
- textureDescription.fTextureHandle = reinterpret_cast<GrBackendObject>(&externalTexture);
+ GrBackendTexture backendTexture(imgWidth, imgHeight, kRGBA_8888_GrPixelConfig, externalTexture);
CopyResult copyResult = CopyResult::UnknownError;
- sk_sp<SkImage> image(SkImage::MakeFromAdoptedTexture(grContext.get(), textureDescription));
+ sk_sp<SkImage> image(SkImage::MakeFromAdoptedTexture(grContext.get(), backendTexture,
+ kTopLeft_GrSurfaceOrigin));
if (image) {
// convert to Skia data structures
const SkRect bufferRect = SkRect::MakeIWH(imgWidth, imgHeight);