aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/core/SkRect.h3
-rw-r--r--include/private/GrAuditTrail.h39
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);