1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2020 Google LLC 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 SKSL_MEMORYPOOL 9cb93a386Sopenharmony_ci#define SKSL_MEMORYPOOL 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include <memory> 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci#include "include/core/SkTypes.h" 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_ci#if SK_SUPPORT_GPU 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ci#include "src/gpu/GrMemoryPool.h" 18cb93a386Sopenharmony_ci 19cb93a386Sopenharmony_cinamespace SkSL { 20cb93a386Sopenharmony_ciusing MemoryPool = ::GrMemoryPool; 21cb93a386Sopenharmony_ci} 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ci#else 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_ci// When Ganesh is disabled, GrMemoryPool is not linked in. We include a minimal class which mimics 26cb93a386Sopenharmony_ci// the GrMemoryPool interface but simply redirects to the system allocator. 27cb93a386Sopenharmony_cinamespace SkSL { 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ciclass MemoryPool { 30cb93a386Sopenharmony_cipublic: 31cb93a386Sopenharmony_ci static std::unique_ptr<MemoryPool> Make(size_t, size_t) { 32cb93a386Sopenharmony_ci return std::make_unique<MemoryPool>(); 33cb93a386Sopenharmony_ci } 34cb93a386Sopenharmony_ci void resetScratchSpace() {} 35cb93a386Sopenharmony_ci void reportLeaks() const {} 36cb93a386Sopenharmony_ci bool isEmpty() const { return true; } 37cb93a386Sopenharmony_ci void* allocate(size_t size) { return ::operator new(size); } 38cb93a386Sopenharmony_ci void release(void* p) { ::operator delete(p); } 39cb93a386Sopenharmony_ci}; 40cb93a386Sopenharmony_ci 41cb93a386Sopenharmony_ci} // namespace SkSL 42cb93a386Sopenharmony_ci 43cb93a386Sopenharmony_ci#endif // SK_SUPPORT_GPU 44cb93a386Sopenharmony_ci#endif // SKSL_MEMORYPOOL 45