| Index: src/gpu/GrAuditTrail.cpp
|
| diff --git a/src/gpu/GrAuditTrail.cpp b/src/gpu/GrAuditTrail.cpp
|
| index d46387315eba1f0dbbeaab7f28a6700a2593653e..568b8789c38c303c61a88f325c059576ef599b37 100644
|
| --- a/src/gpu/GrAuditTrail.cpp
|
| +++ b/src/gpu/GrAuditTrail.cpp
|
| @@ -67,6 +67,19 @@ void GrAuditTrail::batchingResultNew(GrBatch* batch) {
|
| fBatchList.emplace_back(batchNode);
|
| }
|
|
|
| +void GrAuditTrail::copyOutFromBatchList(BatchInfo* outBatchInfo, int batchListID) {
|
| + SkASSERT(batchListID < fBatchList.count());
|
| + const BatchNode* bn = fBatchList[batchListID];
|
| + outBatchInfo->fBounds = bn->fBounds;
|
| + outBatchInfo->fRenderTargetUniqueID = bn->fRenderTargetUniqueID;
|
| + for (int j = 0; j < bn->fChildren.count(); j++) {
|
| + BatchInfo::Batch& outBatch = outBatchInfo->fBatches.push_back();
|
| + const Batch* currentBatch = bn->fChildren[j];
|
| + outBatch.fBounds = currentBatch->fBounds;
|
| + outBatch.fClientID = currentBatch->fClientID;
|
| + }
|
| +}
|
| +
|
| void GrAuditTrail::getBoundsByClientID(SkTArray<BatchInfo>* outInfo, int clientID) {
|
| Batches** batchesLookup = fClientIDLookup.find(clientID);
|
| if (batchesLookup) {
|
| @@ -83,24 +96,19 @@ void GrAuditTrail::getBoundsByClientID(SkTArray<BatchInfo>* outInfo, int clientI
|
| if (kGrAuditTrailInvalidID == currentBatchListID ||
|
| batch->fBatchListID != currentBatchListID) {
|
| BatchInfo& outBatchInfo = outInfo->push_back();
|
| - currentBatchListID = batch->fBatchListID;
|
|
|
| // copy out all of the batches so the client can display them even if
|
| // they have a different clientID
|
| - const BatchNode* bn = fBatchList[currentBatchListID];
|
| - outBatchInfo.fBounds = bn->fBounds;
|
| - outBatchInfo.fRenderTargetUniqueID = bn->fRenderTargetUniqueID;
|
| - for (int j = 0; j < bn->fChildren.count(); j++) {
|
| - BatchInfo::Batch& outBatch = outBatchInfo.fBatches.push_back();
|
| - const Batch* currentBatch = bn->fChildren[j];
|
| - outBatch.fBounds = currentBatch->fBounds;
|
| - outBatch.fClientID = currentBatch->fClientID;
|
| - }
|
| + this->copyOutFromBatchList(&outBatchInfo, batch->fBatchListID);
|
| }
|
| }
|
| }
|
| }
|
|
|
| +void GrAuditTrail::getBoundsByBatchListID(BatchInfo* outInfo, int batchListID) {
|
| + this->copyOutFromBatchList(outInfo, batchListID);
|
| +}
|
| +
|
| void GrAuditTrail::fullReset() {
|
| SkASSERT(fEnabled);
|
| fBatchList.reset();
|
|
|