diff options
author | bsalomon <bsalomon@google.com> | 2014-09-19 11:48:02 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-19 11:48:02 -0700 |
commit | 45725db1d82615d43408ec488549aec6218f80e4 (patch) | |
tree | a4c86b49d5ecdb458420c29d7605eb793f9367b5 /src/gpu | |
parent | 8483326704eff3b6a5fcce3f36d857a9779a4dd2 (diff) |
Move IOType to GrGpuRef and rename that to GrIORef. Template GrPendingIORef on IOType.
BUG=skia:2889
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/579403003
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrDrawState.h | 2 | ||||
-rw-r--r-- | src/gpu/GrGpuResource.cpp | 2 | ||||
-rw-r--r-- | src/gpu/GrGpuResourceRef.cpp | 37 | ||||
-rw-r--r-- | src/gpu/GrInOrderDrawBuffer.h | 32 | ||||
-rw-r--r-- | src/gpu/GrRODrawState.cpp | 2 | ||||
-rw-r--r-- | src/gpu/GrTextureAccess.cpp | 8 |
6 files changed, 33 insertions, 50 deletions
diff --git a/src/gpu/GrDrawState.h b/src/gpu/GrDrawState.h index 4d720624aa..458fb958e6 100644 --- a/src/gpu/GrDrawState.h +++ b/src/gpu/GrDrawState.h @@ -405,7 +405,7 @@ public: * @param target The render target to set. */ void setRenderTarget(GrRenderTarget* target) { - fRenderTarget.set(SkSafeRef(target), GrGpuResourceRef::kWrite_IOType); + fRenderTarget.set(SkSafeRef(target), GrIORef::kWrite_IOType); this->invalidateOptState(); } diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp index a8d7bbf9f5..bba934e605 100644 --- a/src/gpu/GrGpuResource.cpp +++ b/src/gpu/GrGpuResource.cpp @@ -11,7 +11,7 @@ #include "GrResourceCache2.h" #include "GrGpu.h" -GrGpuRef::~GrGpuRef() { +GrIORef::~GrIORef() { SkASSERT(0 == fRefCnt); SkASSERT(0 == fPendingReads); SkASSERT(0 == fPendingWrites); diff --git a/src/gpu/GrGpuResourceRef.cpp b/src/gpu/GrGpuResourceRef.cpp index e2a702ef6d..7c521df462 100644 --- a/src/gpu/GrGpuResourceRef.cpp +++ b/src/gpu/GrGpuResourceRef.cpp @@ -6,16 +6,14 @@ */ #include "GrGpuResourceRef.h" -#include "GrGpuResource.h" GrGpuResourceRef::GrGpuResourceRef() { fResource = NULL; fOwnRef = false; fPendingIO = false; - fIOType = kNone_IOType; } -GrGpuResourceRef::GrGpuResourceRef(GrGpuResource* resource, IOType ioType) { +GrGpuResourceRef::GrGpuResourceRef(GrGpuResource* resource, GrIORef::IOType ioType) { fResource = NULL; fOwnRef = false; fPendingIO = false; @@ -29,16 +27,13 @@ GrGpuResourceRef::~GrGpuResourceRef() { } if (fPendingIO) { switch (fIOType) { - case kNone_IOType: - SkFAIL("Shouldn't get here if fIOType is kNone."); - break; - case kRead_IOType: + case GrIORef::kRead_IOType: fResource->completedRead(); break; - case kWrite_IOType: + case GrIORef::kWrite_IOType: fResource->completedWrite(); break; - case kRW_IOType: + case GrIORef::kRW_IOType: fResource->completedRead(); fResource->completedWrite(); break; @@ -53,20 +48,17 @@ void GrGpuResourceRef::reset() { fResource->unref(); fOwnRef = false; fResource = NULL; - fIOType = kNone_IOType; } } -void GrGpuResourceRef::setResource(GrGpuResource* resource, IOType ioType) { +void GrGpuResourceRef::setResource(GrGpuResource* resource, GrIORef::IOType ioType) { SkASSERT(!fPendingIO); SkASSERT(SkToBool(fResource) == fOwnRef); SkSafeUnref(fResource); if (NULL == resource) { fResource = NULL; fOwnRef = false; - fIOType = kNone_IOType; } else { - SkASSERT(kNone_IOType != ioType); fResource = resource; fOwnRef = true; fIOType = ioType; @@ -80,16 +72,13 @@ void GrGpuResourceRef::markPendingIO() const { SkASSERT(fResource); fPendingIO = true; switch (fIOType) { - case kNone_IOType: - SkFAIL("GrGpuResourceRef with neither reads nor writes?"); - break; - case kRead_IOType: + case GrIORef::kRead_IOType: fResource->addPendingRead(); break; - case kWrite_IOType: + case GrIORef::kWrite_IOType: fResource->addPendingWrite(); break; - case kRW_IOType: + case GrIORef::kRW_IOType: fResource->addPendingRead(); fResource->addPendingWrite(); break; @@ -102,16 +91,13 @@ void GrGpuResourceRef::pendingIOComplete() const { SkASSERT(fOwnRef); SkASSERT(fPendingIO); switch (fIOType) { - case kNone_IOType: - SkFAIL("GrGpuResourceRef with neither reads nor writes?"); - break; - case kRead_IOType: + case GrIORef::kRead_IOType: fResource->completedRead(); break; - case kWrite_IOType: + case GrIORef::kWrite_IOType: fResource->completedWrite(); break; - case kRW_IOType: + case GrIORef::kRW_IOType: fResource->completedRead(); fResource->completedWrite(); break; @@ -125,7 +111,6 @@ void GrGpuResourceRef::removeRef() const { // there is a pending execution. SkASSERT(fOwnRef); SkASSERT(fPendingIO); - SkASSERT(kNone_IOType != fIOType); SkASSERT(fResource); fResource->unref(); fOwnRef = false; diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h index 532b83f1d1..e6ed06eadb 100644 --- a/src/gpu/GrInOrderDrawBuffer.h +++ b/src/gpu/GrInOrderDrawBuffer.h @@ -102,30 +102,30 @@ private: public: Draw(const DrawInfo& info, const GrVertexBuffer* vb, const GrIndexBuffer* ib) : DrawInfo(info) - , fVertexBuffer(vb, GrGpuResourceRef::kRead_IOType) - , fIndexBuffer(ib, GrGpuResourceRef::kRead_IOType) {} + , fVertexBuffer(vb) + , fIndexBuffer(ib) {} const GrVertexBuffer* vertexBuffer() const { return fVertexBuffer.get(); } const GrIndexBuffer* indexBuffer() const { return fIndexBuffer.get(); } private: - GrPendingIOResource<const GrVertexBuffer> fVertexBuffer; - GrPendingIOResource<const GrIndexBuffer> fIndexBuffer; + GrPendingIOResource<const GrVertexBuffer, GrIORef::kRead_IOType> fVertexBuffer; + GrPendingIOResource<const GrIndexBuffer, GrIORef::kRead_IOType> fIndexBuffer; }; struct StencilPath : public ::SkNoncopyable { - StencilPath(const GrPath* path) : fPath(path, GrGpuResourceRef::kRead_IOType) {} + StencilPath(const GrPath* path) : fPath(path) {} const GrPath* path() const { return fPath.get(); } SkPath::FillType fFill; private: - GrPendingIOResource<const GrPath> fPath; + GrPendingIOResource<const GrPath, GrIORef::kRead_IOType> fPath; }; struct DrawPath : public ::SkNoncopyable { - DrawPath(const GrPath* path) : fPath(path, GrGpuResourceRef::kRead_IOType) {} + DrawPath(const GrPath* path) : fPath(path) {} const GrPath* path() const { return fPath.get(); } @@ -133,12 +133,12 @@ private: GrDeviceCoordTexture fDstCopy; private: - GrPendingIOResource<const GrPath> fPath; + GrPendingIOResource<const GrPath, GrIORef::kRead_IOType> fPath; }; struct DrawPaths : public ::SkNoncopyable { DrawPaths(const GrPathRange* pathRange) - : fPathRange(pathRange, GrGpuResourceRef::kRead_IOType) {} + : fPathRange(pathRange) {} ~DrawPaths() { if (fTransforms) { @@ -159,12 +159,12 @@ private: GrDeviceCoordTexture fDstCopy; private: - GrPendingIOResource<const GrPathRange> fPathRange; + GrPendingIOResource<const GrPathRange, GrIORef::kRead_IOType> fPathRange; }; // This is also used to record a discard by setting the color to GrColor_ILLEGAL struct Clear : public ::SkNoncopyable { - Clear(GrRenderTarget* rt) : fRenderTarget(rt, GrGpuResourceRef::kWrite_IOType) {} + Clear(GrRenderTarget* rt) : fRenderTarget(rt) {} ~Clear() { } GrRenderTarget* renderTarget() const { return fRenderTarget.get(); } @@ -173,13 +173,11 @@ private: bool fCanIgnoreRect; private: - GrPendingIOResource<GrRenderTarget> fRenderTarget; + GrPendingIOResource<GrRenderTarget, GrIORef::kWrite_IOType> fRenderTarget; }; struct CopySurface : public ::SkNoncopyable { - CopySurface(GrSurface* dst, GrSurface* src) - : fDst(dst, GrGpuResourceRef::kWrite_IOType) - , fSrc(src, GrGpuResourceRef::kRead_IOType) {} + CopySurface(GrSurface* dst, GrSurface* src) : fDst(dst), fSrc(src) {} GrSurface* dst() const { return fDst.get(); } GrSurface* src() const { return fSrc.get(); } @@ -188,8 +186,8 @@ private: SkIRect fSrcRect; private: - GrPendingIOResource<GrSurface> fDst; - GrPendingIOResource<GrSurface> fSrc; + GrPendingIOResource<GrSurface, GrIORef::kWrite_IOType> fDst; + GrPendingIOResource<GrSurface, GrIORef::kRead_IOType> fSrc; }; struct Clip : public ::SkNoncopyable { diff --git a/src/gpu/GrRODrawState.cpp b/src/gpu/GrRODrawState.cpp index 4d35684e5c..fb4db2d09c 100644 --- a/src/gpu/GrRODrawState.cpp +++ b/src/gpu/GrRODrawState.cpp @@ -14,7 +14,7 @@ GrRODrawState::GrRODrawState(const GrRODrawState& drawState) : INHERITED() { fRenderTarget.setResource(SkSafeRef(drawState.fRenderTarget.getResource()), - GrGpuResourceRef::kWrite_IOType); + GrIORef::kWrite_IOType); } bool GrRODrawState::isEqual(const GrRODrawState& that) const { diff --git a/src/gpu/GrTextureAccess.cpp b/src/gpu/GrTextureAccess.cpp index 3e543ca75f..662ccd65f8 100644 --- a/src/gpu/GrTextureAccess.cpp +++ b/src/gpu/GrTextureAccess.cpp @@ -46,7 +46,7 @@ void GrTextureAccess::reset(GrTexture* texture, SkASSERT(strlen(swizzle) >= 1 && strlen(swizzle) <= 4); fParams = params; - fTexture.set(SkRef(texture), GrGpuResourceRef::kRead_IOType); + fTexture.set(SkRef(texture), GrIORef::kRead_IOType); this->setSwizzle(swizzle); } @@ -58,14 +58,14 @@ void GrTextureAccess::reset(GrTexture* texture, SkASSERT(strlen(swizzle) >= 1 && strlen(swizzle) <= 4); fParams.reset(tileXAndY, filterMode); - fTexture.set(SkRef(texture), GrGpuResourceRef::kRead_IOType); + fTexture.set(SkRef(texture), GrIORef::kRead_IOType); this->setSwizzle(swizzle); } void GrTextureAccess::reset(GrTexture* texture, const GrTextureParams& params) { SkASSERT(texture); - fTexture.set(SkRef(texture), GrGpuResourceRef::kRead_IOType); + fTexture.set(SkRef(texture), GrIORef::kRead_IOType); fParams = params; memcpy(fSwizzle, "rgba", 5); fSwizzleMask = kRGBA_GrColorComponentFlags; @@ -75,7 +75,7 @@ void GrTextureAccess::reset(GrTexture* texture, GrTextureParams::FilterMode filterMode, SkShader::TileMode tileXAndY) { SkASSERT(texture); - fTexture.set(SkRef(texture), GrGpuResourceRef::kRead_IOType); + fTexture.set(SkRef(texture), GrIORef::kRead_IOType); fParams.reset(tileXAndY, filterMode); memcpy(fSwizzle, "rgba", 5); fSwizzleMask = kRGBA_GrColorComponentFlags; |