diff options
author | bsalomon <bsalomon@google.com> | 2015-02-19 09:09:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-19 09:09:00 -0800 |
commit | 02a44a488605112aa6683c9d919e13b188112ce1 (patch) | |
tree | 2331653d7e79b66a0c8dda0168adc36b8becf64f /src/gpu/gl | |
parent | 90c6bc4e85df2da37f436ea1da203e194c4740e2 (diff) |
Recycle stencil buffers across render targets.
Review URL: https://codereview.chromium.org/939093002
Diffstat (limited to 'src/gpu/gl')
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 8 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.h | 3 | ||||
-rw-r--r-- | src/gpu/gl/GrGLStencilBuffer.h | 1 |
3 files changed, 3 insertions, 9 deletions
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index 5a861d4923..ef4423ba6b 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -442,8 +442,6 @@ GrRenderTarget* GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTargetDe GrRenderTarget* tgt = SkNEW_ARGS(GrGLRenderTarget, (this, desc, idDesc)); if (wrapDesc.fStencilBits) { GrGLStencilBuffer::IDDesc sbDesc; - sbDesc.fRenderbufferID = 0; - sbDesc.fLifeCycle = GrGpuResource::kWrapped_LifeCycle; GrGLStencilBuffer::Format format; format.fInternalFormat = GrGLStencilBuffer::kUnknownInternalFormat; format.fPacked = false; @@ -1128,8 +1126,7 @@ void inline get_stencil_rb_sizes(const GrGLInterface* gl, } } -bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, bool budgeted, int width, - int height) { +bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, int width, int height) { // All internally created RTs are also textures. We don't create // SBs for a client's standalone RT (that is a RT that isn't also a texture). SkASSERT(rt->asTexture()); @@ -1138,9 +1135,6 @@ bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, bool budget int samples = rt->numSamples(); GrGLStencilBuffer::IDDesc sbDesc; - sbDesc.fRenderbufferID = 0; - sbDesc.fLifeCycle = budgeted ? GrGpuResource::kCached_LifeCycle - : GrGpuResource::kUncached_LifeCycle; int stencilFmtCnt = this->glCaps().stencilFormats().count(); for (int i = 0; i < stencilFmtCnt; ++i) { diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h index 18f0f749c4..7cbca0108d 100644 --- a/src/gpu/gl/GrGLGpu.h +++ b/src/gpu/gl/GrGLGpu.h @@ -122,8 +122,7 @@ private: GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) SK_OVERRIDE; GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) SK_OVERRIDE; GrRenderTarget* onWrapBackendRenderTarget(const GrBackendRenderTargetDesc&) SK_OVERRIDE; - bool createStencilBufferForRenderTarget(GrRenderTarget* rt, bool budgeted, - int width, int height) SK_OVERRIDE; + bool createStencilBufferForRenderTarget(GrRenderTarget* rt, int width, int height) SK_OVERRIDE; bool attachStencilBufferToRenderTarget(GrStencilBuffer* sb, GrRenderTarget* rt) SK_OVERRIDE; void onClear(GrRenderTarget*, const SkIRect* rect, GrColor color, diff --git a/src/gpu/gl/GrGLStencilBuffer.h b/src/gpu/gl/GrGLStencilBuffer.h index 305ece8d53..75e98a0a17 100644 --- a/src/gpu/gl/GrGLStencilBuffer.h +++ b/src/gpu/gl/GrGLStencilBuffer.h @@ -24,6 +24,7 @@ public: }; struct IDDesc { + IDDesc() : fRenderbufferID(0), fLifeCycle(kCached_LifeCycle) {} GrGLuint fRenderbufferID; GrGpuResource::LifeCycle fLifeCycle; }; |