diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkRect.h | 3 | ||||
-rw-r--r-- | include/private/GrAuditTrail.h | 39 |
2 files changed, 29 insertions, 13 deletions
diff --git a/include/core/SkRect.h b/include/core/SkRect.h index bcdc4f147b..b8cf846404 100644 --- a/include/core/SkRect.h +++ b/include/core/SkRect.h @@ -327,8 +327,7 @@ struct SK_API SkIRect { otherwise return false and do not change this rectangle. If either rectangle is empty, do nothing and return false. */ - bool intersect(int32_t left, int32_t top, - int32_t right, int32_t bottom) { + bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom) { if (left < right && top < bottom && !this->isEmpty() && fLeft < right && left < fRight && fTop < bottom && top < fBottom) { if (fLeft < left) fLeft = left; diff --git a/include/private/GrAuditTrail.h b/include/private/GrAuditTrail.h index f1ae494c9b..9fdae30f8f 100644 --- a/include/private/GrAuditTrail.h +++ b/include/private/GrAuditTrail.h @@ -10,6 +10,7 @@ #include "GrConfig.h" #include "GrGpuResource.h" +#include "GrRenderTargetProxy.h" #include "SkRect.h" #include "SkString.h" #include "SkTArray.h" @@ -80,7 +81,9 @@ public: fCurrentStackTrace.push_back(SkString(framename)); } - void addOp(const GrOp*, GrGpuResource::UniqueID renderTargetID); + void addOp(const GrOp*, + GrGpuResource::UniqueID resourceID, + GrRenderTargetProxy::UniqueID proxyID); void opsCombined(const GrOp* consumer, const GrOp* consumed); @@ -103,14 +106,23 @@ public: // We could just return our internal bookkeeping struct if copying the data out becomes // a performance issue, but until then its nice to decouple struct OpInfo { - SkRect fBounds; - // TODO: switch over to GrSurfaceProxy::UniqueID - GrGpuResource::UniqueID fRenderTargetUniqueID; + // Will the resourceID comparison yield the same decision as the proxyID comparison? + bool sameDecision(GrGpuResource::UniqueID resourceUniqueID, + GrSurfaceProxy::UniqueID proxyUniqueID) const { + return (fResourceUniqueID == resourceUniqueID) == + (fProxyUniqueID == proxyUniqueID); + } + struct Op { - int fClientID; + int fClientID; SkRect fBounds; }; - SkTArray<Op> fOps; + + SkRect fBounds; + // MDB TODO: remove fResourceUniqueID + GrGpuResource::UniqueID fResourceUniqueID; + GrSurfaceProxy::UniqueID fProxyUniqueID; + SkTArray<Op> fOps; }; void getBoundsByClientID(SkTArray<OpInfo>* outInfo, int clientID); @@ -136,11 +148,16 @@ private: typedef SkTArray<Op*> Ops; struct OpNode { - OpNode(const GrGpuResource::UniqueID& id) : fRenderTargetUniqueID(id) {} + OpNode(const GrGpuResource::UniqueID& resourceID, const GrSurfaceProxy::UniqueID& proxyID) + : fResourceUniqueID(resourceID) + , fProxyUniqueID(proxyID) { + } SkString toJson() const; + SkRect fBounds; - Ops fChildren; - const GrGpuResource::UniqueID fRenderTargetUniqueID; + Ops fChildren; + const GrGpuResource::UniqueID fResourceUniqueID; + const GrSurfaceProxy::UniqueID fProxyUniqueID; }; typedef SkTArray<std::unique_ptr<OpNode>, true> OpList; @@ -172,8 +189,8 @@ private: #define GR_AUDIT_TRAIL_RESET(audit_trail) \ //GR_AUDIT_TRAIL_INVOKE_GUARD(audit_trail, fullReset); -#define GR_AUDIT_TRAIL_ADD_OP(audit_trail, op, rt_id) \ - GR_AUDIT_TRAIL_INVOKE_GUARD(audit_trail, addOp, op, rt_id); +#define GR_AUDIT_TRAIL_ADD_OP(audit_trail, op, resource_id, proxy_id) \ + GR_AUDIT_TRAIL_INVOKE_GUARD(audit_trail, addOp, op, resource_id, proxy_id); #define GR_AUDIT_TRAIL_OPS_RESULT_COMBINED(audit_trail, combineWith, op) \ GR_AUDIT_TRAIL_INVOKE_GUARD(audit_trail, opsCombined, combineWith, op); |