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