diff options
author | 2017-04-19 00:23:39 +0000 | |
---|---|---|
committer | 2017-04-19 00:23:50 +0000 | |
commit | 7fa5c31c2c9af834bee66d5fcf476e250076c8d6 (patch) | |
tree | 846c27759d4cf4c6487a636872e2e9c88d9137ff /src/gpu/gl | |
parent | edec99b640a7a9dbc7d4fd9f48d35ed3a54c61e3 (diff) |
Revert "Plumb GrBackendTexture throughout skia."
This reverts commit 7da62b9059f3c1d31624a0e4da96ee5f908f9c12.
Reason for revert: fix android roll
Original change's description:
> Plumb GrBackendTexture throughout skia.
>
> Bug: skia:
> Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
> Reviewed-on: https://skia-review.googlesource.com/13645
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,stani@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I5cb8763cc837c83ebc6d10366fe2dd3efe35fb89
Reviewed-on: https://skia-review.googlesource.com/13773
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
Diffstat (limited to 'src/gpu/gl')
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 48 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.h | 11 |
2 files changed, 23 insertions, 36 deletions
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index 8d656171ce..d585e097f9 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -8,7 +8,6 @@ #include "GrGLGpu.h" #include "../private/GrGLSL.h" -#include "GrBackendSurface.h" #include "GrFixedClip.h" #include "GrGLBuffer.h" #include "GrGLGpuCommandBuffer.h" @@ -512,18 +511,15 @@ static GrSurfaceOrigin resolve_origin(GrSurfaceOrigin origin, bool renderTarget) } } -sk_sp<GrTexture> GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTex, - GrSurfaceOrigin origin, - GrBackendTextureFlags flags, - int sampleCnt, +sk_sp<GrTexture> GrGLGpu::onWrapBackendTexture(const GrBackendTextureDesc& desc, GrWrapOwnership ownership) { - const GrGLTextureInfo* info = backendTex.getGLTextureInfo(); + const GrGLTextureInfo* info = reinterpret_cast<const GrGLTextureInfo*>(desc.fTextureHandle); if (!info || !info->fID) { return nullptr; } - // next line relies on GrBackendTextureFlags matching GrTexture's - bool renderTarget = SkToBool(flags & kRenderTarget_GrBackendTextureFlag); + // next line relies on GrBackendTextureDesc's flags matching GrTexture's + bool renderTarget = SkToBool(desc.fFlags & kRenderTarget_GrBackendTextureFlag); SkASSERT(!renderTarget || kAdoptAndCache_GrWrapOwnership != ownership); // Not supported GrGLTexture::IDDesc idDesc; @@ -547,7 +543,7 @@ sk_sp<GrTexture> GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTe // Sample count is interpreted to mean the number of samples that Gr code should allocate // for a render buffer that resolves to the texture. We don't support MSAA textures. - if (sampleCnt && !renderTarget) { + if (desc.fSampleCnt && !renderTarget) { return nullptr; } @@ -558,19 +554,19 @@ sk_sp<GrTexture> GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTe } GrSurfaceDesc surfDesc; - surfDesc.fFlags = (GrSurfaceFlags) flags; - surfDesc.fWidth = backendTex.width(); - surfDesc.fHeight = backendTex.height(); - surfDesc.fConfig = backendTex.config(); - surfDesc.fSampleCnt = SkTMin(sampleCnt, this->caps()->maxSampleCount()); + surfDesc.fFlags = (GrSurfaceFlags) desc.fFlags; + surfDesc.fWidth = desc.fWidth; + surfDesc.fHeight = desc.fHeight; + surfDesc.fConfig = desc.fConfig; + surfDesc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount()); // FIXME: this should be calling resolve_origin(), but Chrome code is currently // assuming the old behaviour, which is that backend textures are always // BottomLeft, even for non-RT's. Once Chrome is fixed, change this to: // glTexDesc.fOrigin = resolve_origin(desc.fOrigin, renderTarget); - if (kDefault_GrSurfaceOrigin == origin) { + if (kDefault_GrSurfaceOrigin == desc.fOrigin) { surfDesc.fOrigin = kBottomLeft_GrSurfaceOrigin; } else { - surfDesc.fOrigin = origin; + surfDesc.fOrigin = desc.fOrigin; } if (renderTarget) { @@ -607,10 +603,8 @@ sk_sp<GrRenderTarget> GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTa return GrGLRenderTarget::MakeWrapped(this, desc, idDesc, wrapDesc.fStencilBits); } -sk_sp<GrRenderTarget> GrGLGpu::onWrapBackendTextureAsRenderTarget(const GrBackendTexture& tex, - GrSurfaceOrigin origin, - int sampleCnt) { - const GrGLTextureInfo* info = tex.getGLTextureInfo(); +sk_sp<GrRenderTarget> GrGLGpu::onWrapBackendTextureAsRenderTarget(const GrBackendTextureDesc& desc){ + const GrGLTextureInfo* info = reinterpret_cast<const GrGLTextureInfo*>(desc.fTextureHandle); if (!info || !info->fID) { return nullptr; } @@ -627,19 +621,19 @@ sk_sp<GrRenderTarget> GrGLGpu::onWrapBackendTextureAsRenderTarget(const GrBacken } GrSurfaceDesc surfDesc; - surfDesc.fFlags = kRenderTarget_GrSurfaceFlag; - surfDesc.fWidth = tex.width(); - surfDesc.fHeight = tex.height(); - surfDesc.fConfig = tex.config(); - surfDesc.fSampleCnt = SkTMin(sampleCnt, this->caps()->maxSampleCount()); + surfDesc.fFlags = (GrSurfaceFlags) desc.fFlags; + surfDesc.fWidth = desc.fWidth; + surfDesc.fHeight = desc.fHeight; + surfDesc.fConfig = desc.fConfig; + surfDesc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount()); // FIXME: this should be calling resolve_origin(), but Chrome code is currently // assuming the old behaviour, which is that backend textures are always // BottomLeft, even for non-RT's. Once Chrome is fixed, change this to: // glTexDesc.fOrigin = resolve_origin(desc.fOrigin, renderTarget); - if (kDefault_GrSurfaceOrigin == origin) { + if (kDefault_GrSurfaceOrigin == desc.fOrigin) { surfDesc.fOrigin = kBottomLeft_GrSurfaceOrigin; } else { - surfDesc.fOrigin = origin; + surfDesc.fOrigin = desc.fOrigin; } GrGLRenderTarget::IDDesc rtIDDesc; diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h index 9bfe099d0d..1fc25576fe 100644 --- a/src/gpu/gl/GrGLGpu.h +++ b/src/gpu/gl/GrGLGpu.h @@ -170,16 +170,9 @@ private: GrBuffer* onCreateBuffer(size_t size, GrBufferType intendedType, GrAccessPattern, const void* data) override; - - sk_sp<GrTexture> onWrapBackendTexture(const GrBackendTexture&, - GrSurfaceOrigin, - GrBackendTextureFlags, - int sampleCnt, - GrWrapOwnership) override; + sk_sp<GrTexture> onWrapBackendTexture(const GrBackendTextureDesc&, GrWrapOwnership) override; sk_sp<GrRenderTarget> onWrapBackendRenderTarget(const GrBackendRenderTargetDesc&) override; - sk_sp<GrRenderTarget> onWrapBackendTextureAsRenderTarget(const GrBackendTexture&, - GrSurfaceOrigin, - int sampleCnt) override; + sk_sp<GrRenderTarget> onWrapBackendTextureAsRenderTarget(const GrBackendTextureDesc&) override; gr_instanced::InstancedRendering* onCreateInstancedRendering() override; |