aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl
diff options
context:
space:
mode:
authorGravatar Stan Iliev <stani@google.com>2017-04-19 00:23:39 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-19 00:23:50 +0000
commit7fa5c31c2c9af834bee66d5fcf476e250076c8d6 (patch)
tree846c27759d4cf4c6487a636872e2e9c88d9137ff /src/gpu/gl
parentedec99b640a7a9dbc7d4fd9f48d35ed3a54c61e3 (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.cpp48
-rw-r--r--src/gpu/gl/GrGLGpu.h11
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;