| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "SkAnnotation.h" | 9 #include "SkAnnotation.h" |
| 10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 writer->writePad(data->data(), size); | 64 writer->writePad(data->data(), size); |
| 65 } | 65 } |
| 66 return 4 + SkAlign4(size); | 66 return 4 + SkAlign4(size); |
| 67 } | 67 } |
| 68 | 68 |
| 69 /////////////////////////////////////////////////////////////////////////////// | 69 /////////////////////////////////////////////////////////////////////////////// |
| 70 | 70 |
| 71 class FlattenableHeap : public SkFlatController { | 71 class FlattenableHeap : public SkFlatController { |
| 72 public: | 72 public: |
| 73 FlattenableHeap(int numFlatsToKeep, SkNamedFactorySet* fset, bool isCrossPro
cess) | 73 FlattenableHeap(int numFlatsToKeep, SkNamedFactorySet* fset, bool isCrossPro
cess) |
| 74 : fNumFlatsToKeep(numFlatsToKeep) { | 74 : INHERITED(isCrossProcess ? SkWriteBuffer::kCrossProcess_Flag : 0) |
| 75 , fNumFlatsToKeep(numFlatsToKeep) { |
| 75 SkASSERT((isCrossProcess && fset != NULL) || (!isCrossProcess && NULL ==
fset)); | 76 SkASSERT((isCrossProcess && fset != NULL) || (!isCrossProcess && NULL ==
fset)); |
| 76 if (isCrossProcess) { | 77 if (isCrossProcess) { |
| 77 this->setNamedFactorySet(fset); | 78 this->setNamedFactorySet(fset); |
| 78 this->setWriteBufferFlags(SkWriteBuffer::kCrossProcess_Flag); | |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 | 81 |
| 82 ~FlattenableHeap() { | 82 ~FlattenableHeap() { |
| 83 fPointers.freeAll(); | 83 fPointers.freeAll(); |
| 84 } | 84 } |
| 85 | 85 |
| 86 virtual void* allocThrow(size_t bytes) SK_OVERRIDE; | 86 virtual void* allocThrow(size_t bytes) SK_OVERRIDE; |
| 87 | 87 |
| 88 virtual void unalloc(void* ptr) SK_OVERRIDE; | 88 virtual void unalloc(void* ptr) SK_OVERRIDE; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 102 void markAllFlatsSafeToDelete() { | 102 void markAllFlatsSafeToDelete() { |
| 103 fFlatsThatMustBeKept.reset(); | 103 fFlatsThatMustBeKept.reset(); |
| 104 } | 104 } |
| 105 | 105 |
| 106 private: | 106 private: |
| 107 // Keep track of the indices (i.e. the result of SkFlatData::index()) of | 107 // Keep track of the indices (i.e. the result of SkFlatData::index()) of |
| 108 // flats that must be kept, since they are on the current paint. | 108 // flats that must be kept, since they are on the current paint. |
| 109 SkTDArray<int> fFlatsThatMustBeKept; | 109 SkTDArray<int> fFlatsThatMustBeKept; |
| 110 SkTDArray<void*> fPointers; | 110 SkTDArray<void*> fPointers; |
| 111 const int fNumFlatsToKeep; | 111 const int fNumFlatsToKeep; |
| 112 |
| 113 typedef SkFlatController INHERITED; |
| 112 }; | 114 }; |
| 113 | 115 |
| 114 void FlattenableHeap::unalloc(void* ptr) { | 116 void FlattenableHeap::unalloc(void* ptr) { |
| 115 int indexToRemove = fPointers.rfind(ptr); | 117 int indexToRemove = fPointers.rfind(ptr); |
| 116 if (indexToRemove >= 0) { | 118 if (indexToRemove >= 0) { |
| 117 sk_free(ptr); | 119 sk_free(ptr); |
| 118 fPointers.remove(indexToRemove); | 120 fPointers.remove(indexToRemove); |
| 119 } | 121 } |
| 120 } | 122 } |
| 121 | 123 |
| (...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1233 return fCanvas->shuttleBitmap(bitmap, slot); | 1235 return fCanvas->shuttleBitmap(bitmap, slot); |
| 1234 } | 1236 } |
| 1235 | 1237 |
| 1236 void BitmapShuttle::removeCanvas() { | 1238 void BitmapShuttle::removeCanvas() { |
| 1237 if (NULL == fCanvas) { | 1239 if (NULL == fCanvas) { |
| 1238 return; | 1240 return; |
| 1239 } | 1241 } |
| 1240 fCanvas->unref(); | 1242 fCanvas->unref(); |
| 1241 fCanvas = NULL; | 1243 fCanvas = NULL; |
| 1242 } | 1244 } |
| OLD | NEW |