1 /* 2 * Copyright 2017 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrMockBuffer_DEFINED 9 #define GrMockBuffer_DEFINED 10 11 #include "GrCaps.h" 12 #include "GrGpuBuffer.h" 13 #include "GrMockGpu.h" 14 15 class GrMockBuffer : public GrGpuBuffer { 16 public: GrMockBuffer(GrMockGpu * gpu,size_t sizeInBytes,GrGpuBufferType type,GrAccessPattern accessPattern)17 GrMockBuffer(GrMockGpu* gpu, size_t sizeInBytes, GrGpuBufferType type, 18 GrAccessPattern accessPattern) 19 : INHERITED(gpu, sizeInBytes, type, accessPattern) { 20 this->registerWithCache(SkBudgeted::kYes); 21 } 22 23 private: onMap()24 void onMap() override { 25 if (GrCaps::kNone_MapFlags != this->getGpu()->caps()->mapBufferFlags()) { 26 fMapPtr = sk_malloc_throw(this->size()); 27 } 28 } onUnmap()29 void onUnmap() override { sk_free(fMapPtr); } onUpdateData(const void * src,size_t srcSizeInBytes)30 bool onUpdateData(const void* src, size_t srcSizeInBytes) override { return true; } 31 32 typedef GrGpuBuffer INHERITED; 33 }; 34 35 #endif 36