| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 #ifndef SkRecord_DEFINED | 8 #ifndef SkRecord_DEFINED |
| 9 #define SkRecord_DEFINED | 9 #define SkRecord_DEFINED |
| 10 | 10 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 SkASSERT(Existing::kType == fRecords[i].type()); | 104 SkASSERT(Existing::kType == fRecords[i].type()); |
| 105 SkASSERT(proofOfAdoption == fRecords[i].ptr()); | 105 SkASSERT(proofOfAdoption == fRecords[i].ptr()); |
| 106 | 106 |
| 107 return fRecords[i].set(this->allocCommand<T>()); | 107 return fRecords[i].set(this->allocCommand<T>()); |
| 108 } | 108 } |
| 109 | 109 |
| 110 // Does not return the bytes in any pointers embedded in the Records; caller
s | 110 // Does not return the bytes in any pointers embedded in the Records; caller
s |
| 111 // need to iterate with a visitor to measure those they care for. | 111 // need to iterate with a visitor to measure those they care for. |
| 112 size_t bytesUsed() const; | 112 size_t bytesUsed() const; |
| 113 | 113 |
| 114 // Rearrange and resize this record to eliminate any NoOps. |
| 115 // May change count() and the indices of ops, but preserves their order. |
| 116 void defrag(); |
| 117 |
| 114 private: | 118 private: |
| 115 // An SkRecord is structured as an array of pointers into a big chunk of mem
ory where | 119 // An SkRecord is structured as an array of pointers into a big chunk of mem
ory where |
| 116 // records representing each canvas draw call are stored: | 120 // records representing each canvas draw call are stored: |
| 117 // | 121 // |
| 118 // fRecords: [*][*][*]... | 122 // fRecords: [*][*][*]... |
| 119 // | | | | 123 // | | | |
| 120 // | | | | 124 // | | | |
| 121 // | | +---------------------------------------+ | 125 // | | +---------------------------------------+ |
| 122 // | +-----------------+ | | 126 // | +-----------------+ | |
| 123 // | | | | 127 // | | | |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 int fCount, fReserved; | 193 int fCount, fReserved; |
| 190 SkAutoSTMalloc<kInlineRecords, Record> fRecords; | 194 SkAutoSTMalloc<kInlineRecords, Record> fRecords; |
| 191 | 195 |
| 192 // fAlloc needs to be a data structure which can append variable length data
in contiguous | 196 // fAlloc needs to be a data structure which can append variable length data
in contiguous |
| 193 // chunks, returning a stable handle to that data for later retrieval. | 197 // chunks, returning a stable handle to that data for later retrieval. |
| 194 SkVarAlloc fAlloc; | 198 SkVarAlloc fAlloc; |
| 195 char fInlineAlloc[1 << kInlineAllocLgBytes]; | 199 char fInlineAlloc[1 << kInlineAllocLgBytes]; |
| 196 }; | 200 }; |
| 197 | 201 |
| 198 #endif//SkRecord_DEFINED | 202 #endif//SkRecord_DEFINED |
| OLD | NEW |