Index: include/gpu/GrRenderTarget.h |
diff --git a/include/gpu/GrRenderTarget.h b/include/gpu/GrRenderTarget.h |
index 8983d53a251847325254441c86492436d555c088..2309dbd876f6cf4e9d58b715730088045e83fb65 100644 |
--- a/include/gpu/GrRenderTarget.h |
+++ b/include/gpu/GrRenderTarget.h |
@@ -144,15 +144,18 @@ public: |
*/ |
virtual GrBackendObject getRenderTargetHandle() const = 0; |
+ // Checked when this object is asked to attach a stencil buffer. |
+ virtual bool canAttemptStencilAttachment() const = 0; |
+ |
// Provides access to functions that aren't part of the public API. |
GrRenderTargetPriv renderTargetPriv(); |
const GrRenderTargetPriv renderTargetPriv() const; |
protected: |
GrRenderTarget(GrGpu* gpu, LifeCycle lifeCycle, const GrSurfaceDesc& desc, |
- SampleConfig sampleConfig) |
+ SampleConfig sampleConfig, GrStencilAttachment* stencil = nullptr) |
: INHERITED(gpu, lifeCycle, desc) |
- , fStencilAttachment(NULL) |
+ , fStencilAttachment(stencil) |
, fSampleConfig(sampleConfig) { |
fResolveRect.setLargestInverted(); |
} |
@@ -162,8 +165,11 @@ protected: |
void onRelease() override; |
private: |
- // Checked when this object is asked to attach a stencil buffer. |
- virtual bool canAttemptStencilAttachment() const = 0; |
+ // Allows the backends to perform any additional work that is required for attaching a |
+ // GrStencilAttachment. When this is called, the GrStencilAttachment has already been put onto |
+ // the GrRenderTarget. This function must return false if any failures occur when completing the |
+ // stencil attachment. |
+ virtual bool completeStencilAttachment() = 0; |
friend class GrRenderTargetPriv; |