Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(632)

Side by Side Diff: src/gpu/GrAuditTrail.cpp

Issue 1745063002: Render batch bounds as stroke rects (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: tweaks Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/private/GrAuditTrail.h ('k') | tools/debugger/SkDebugCanvas.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrAuditTrail.h" 8 #include "GrAuditTrail.h"
9 #include "batches/GrBatch.h" 9 #include "batches/GrBatch.h"
10 10
(...skipping 22 matching lines...) Expand all
33 fCurrentBatch->fChildID = 0; 33 fCurrentBatch->fChildID = 0;
34 34
35 // We use the batch pointer as a key to find the batchnode we are 'glomming' batches onto 35 // We use the batch pointer as a key to find the batchnode we are 'glomming' batches onto
36 fIDLookup.set(batch, fCurrentBatch->fBatchListID); 36 fIDLookup.set(batch, fCurrentBatch->fBatchListID);
37 BatchNode* batchNode = new BatchNode; 37 BatchNode* batchNode = new BatchNode;
38 batchNode->fBounds = fCurrentBatch->fBounds; 38 batchNode->fBounds = fCurrentBatch->fBounds;
39 batchNode->fChildren.push_back(fCurrentBatch); 39 batchNode->fChildren.push_back(fCurrentBatch);
40 fBatchList.emplace_back(batchNode); 40 fBatchList.emplace_back(batchNode);
41 } 41 }
42 42
43 void GrAuditTrail::getBoundsByClientID(SkTArray<BatchInfo>* outInfo, int clientI D) {
44 Batches** batchesLookup = fClientIDLookup.find(clientID);
45 if (batchesLookup) {
46 // We track which batchlistID we're currently looking at. If it changes , then we
47 // need to push back a new batch info struct. We happen to know that ba tches are
48 // in sequential order in the batchlist, otherwise we'd have to do more bookkeeping
49 int currentBatchListID = kGrAuditTrailInvalidID;
50 for (int i = 0; i < (*batchesLookup)->count(); i++) {
51 const Batch* batch = (**batchesLookup)[i];
52
53 // Because we will copy out all of the batches associated with a giv en
54 // batch list id everytime the id changes, we only have to update ou r struct
55 // when the id changes.
56 if (kGrAuditTrailInvalidID == currentBatchListID ||
57 batch->fBatchListID != currentBatchListID) {
58 BatchInfo& outBatchInfo = outInfo->push_back();
59 currentBatchListID = batch->fBatchListID;
60
61 // copy out all of the batches so the client can display them ev en if
62 // they have a different clientID
63 const BatchNode* bn = fBatchList[currentBatchListID];
64 outBatchInfo.fBounds = bn->fBounds;
65 for (int j = 0; j < bn->fChildren.count(); j++) {
66 BatchInfo::Batch& outBatch = outBatchInfo.fBatches.push_back ();
67 const Batch* currentBatch = bn->fChildren[j];
68 outBatch.fBounds = currentBatch->fBounds;
69 outBatch.fClientID = currentBatch->fClientID;
70 }
71 }
72 }
73 }
74 }
75
76
43 template <typename T> 77 template <typename T>
44 void GrAuditTrail::JsonifyTArray(SkString* json, const char* name, const T& arra y, 78 void GrAuditTrail::JsonifyTArray(SkString* json, const char* name, const T& arra y,
45 bool addComma) { 79 bool addComma) {
46 if (array.count()) { 80 if (array.count()) {
47 if (addComma) { 81 if (addComma) {
48 json->appendf(","); 82 json->appendf(",");
49 } 83 }
50 json->appendf("\"%s\": [", name); 84 json->appendf("\"%s\": [", name);
51 for (int i = 0; i < array.count(); i++) { 85 for (int i = 0; i < array.count(); i++) {
52 json->append(array[i]->toJson()); 86 json->append(array[i]->toJson());
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 210 }
177 211
178 SkString GrAuditTrail::BatchNode::toJson() const { 212 SkString GrAuditTrail::BatchNode::toJson() const {
179 SkString json; 213 SkString json;
180 json.append("{"); 214 json.append("{");
181 skrect_to_json(&json, "Bounds", fBounds); 215 skrect_to_json(&json, "Bounds", fBounds);
182 JsonifyTArray(&json, "Batches", fChildren, true); 216 JsonifyTArray(&json, "Batches", fChildren, true);
183 json.append("}"); 217 json.append("}");
184 return json; 218 return json;
185 } 219 }
OLDNEW
« no previous file with comments | « include/private/GrAuditTrail.h ('k') | tools/debugger/SkDebugCanvas.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698