diff options
author | 2016-05-02 23:16:42 -0700 | |
---|---|---|
committer | 2016-05-02 23:16:42 -0700 | |
commit | 1cb00e42bff455e23f6883bf09680438fa631224 (patch) | |
tree | ebd565a2c30d88418d9fc9fa909c2d0b02fd8f5c /src/gpu/gl | |
parent | cf975447a8576740e682bfc4b8b91c2d8f95f64c (diff) |
Make stencils be attachable to render targets created via SkSurface::MakeFromBackendTextureAsRenderTarget
This is a regression from "Refactor to separate backend object lifecycle
and GpuResource budget decision".
GrGLRenderTarget::CreateWrapped creates only render targets that wrap
the FBO.
GrGLRenderTargetTexture::CreateWrapped creates render targets that
wrap the texture.
Use the latter as the implementation for
SkSurface::MakeFromBackendTextureAsRenderTarget.
BUG=608238
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1924183003
Committed: https://skia.googlesource.com/skia/+/fe635fd76bbc375d527d1884af23cc617ca364ee
Review-Url: https://codereview.chromium.org/1924183003
Diffstat (limited to 'src/gpu/gl')
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index 9d2984f186..3372d42897 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -723,19 +723,20 @@ GrRenderTarget* GrGLGpu::onWrapBackendTextureAsRenderTarget(const GrBackendTextu } #endif - GrGLTextureInfo texInfo; + GrGLTexture::IDDesc idDesc; + idDesc.fOwnership = GrBackendObjectOwnership::kBorrowed; GrSurfaceDesc surfDesc; #ifdef SK_IGNORE_GL_TEXTURE_TARGET - texInfo.fID = static_cast<GrGLuint>(desc.fTextureHandle); + idDesc.fInfo.fID = static_cast<GrGLuint>(desc.fTextureHandle); // We only support GL_TEXTURE_2D at the moment. - texInfo.fTarget = GR_GL_TEXTURE_2D; + idDesc.fInfo.fTarget = GR_GL_TEXTURE_2D; #else - texInfo = *info; + idDesc.fInfo = *info; #endif - if (GR_GL_TEXTURE_RECTANGLE != texInfo.fTarget && - GR_GL_TEXTURE_2D != texInfo.fTarget) { + if (GR_GL_TEXTURE_RECTANGLE != idDesc.fInfo.fTarget && + GR_GL_TEXTURE_2D != idDesc.fInfo.fTarget) { // Only texture rectangle and texture 2d are supported. We do not check whether texture // rectangle is supported by Skia - if the caller provided us with a texture rectangle, // we assume the necessary support exists. @@ -758,10 +759,10 @@ GrRenderTarget* GrGLGpu::onWrapBackendTextureAsRenderTarget(const GrBackendTextu } GrGLRenderTarget::IDDesc rtIDDesc; - if (!this->createRenderTargetObjects(surfDesc, texInfo, &rtIDDesc)) { + if (!this->createRenderTargetObjects(surfDesc, idDesc.fInfo, &rtIDDesc)) { return nullptr; } - return GrGLRenderTarget::CreateWrapped(this, surfDesc, rtIDDesc, 0); + return GrGLTextureRenderTarget::CreateWrapped(this, surfDesc, idDesc, rtIDDesc); } //////////////////////////////////////////////////////////////////////////////// |