12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrGLStencilAttachment_DEFINED
- #define GrGLStencilAttachment_DEFINED
- #include "include/gpu/gl/GrGLInterface.h"
- #include "src/gpu/GrStencilAttachment.h"
- class GrGLStencilAttachment : public GrStencilAttachment {
- public:
- static const GrGLenum kUnknownInternalFormat = ~0U;
- static const GrGLuint kUnknownBitCount = ~0U;
- struct Format {
- GrGLenum fInternalFormat;
- GrGLuint fStencilBits;
- GrGLuint fTotalBits;
- bool fPacked;
- };
- struct IDDesc {
- IDDesc() : fRenderbufferID(0) {}
- GrGLuint fRenderbufferID;
- };
- GrGLStencilAttachment(GrGpu* gpu,
- const IDDesc& idDesc,
- int width, int height,
- int sampleCnt,
- const Format& format)
- : GrStencilAttachment(gpu, width, height, format.fStencilBits, sampleCnt)
- , fFormat(format)
- , fRenderbufferID(idDesc.fRenderbufferID) {
- this->registerWithCache(SkBudgeted::kYes);
- }
- GrGLuint renderbufferID() const {
- return fRenderbufferID;
- }
- const Format& format() const { return fFormat; }
- protected:
- // overrides of GrResource
- void onRelease() override;
- void onAbandon() override;
- void setMemoryBacking(SkTraceMemoryDump* traceMemoryDump,
- const SkString& dumpName) const override;
- private:
- size_t onGpuMemorySize() const override;
- Format fFormat;
- // may be zero for external SBs associated with external RTs
- // (we don't require the client to give us the id, just tell
- // us how many bits of stencil there are).
- GrGLuint fRenderbufferID;
- typedef GrStencilAttachment INHERITED;
- };
- #endif
|