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 GrVkManagedResource_DEFINED 9cb93a386Sopenharmony_ci#define GrVkManagedResource_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "src/gpu/GrManagedResource.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ciclass GrVkGpu; 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_ciclass GrVkManagedResource : public GrManagedResource { 16cb93a386Sopenharmony_cipublic: 17cb93a386Sopenharmony_ci GrVkManagedResource(const GrVkGpu* gpu) : fGpu(gpu) {} 18cb93a386Sopenharmony_ci 19cb93a386Sopenharmony_ciprotected: 20cb93a386Sopenharmony_ci const GrVkGpu* fGpu; // pointer to gpu object that can be used 21cb93a386Sopenharmony_ci // in subclass's freeGPUData() 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ciprivate: 24cb93a386Sopenharmony_ci using INHERITED = GrManagedResource; 25cb93a386Sopenharmony_ci}; 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_ciclass GrVkRecycledResource : public GrRecycledResource { 28cb93a386Sopenharmony_cipublic: 29cb93a386Sopenharmony_ci GrVkRecycledResource(GrVkGpu* gpu) : fGpu(gpu) {} 30cb93a386Sopenharmony_ci 31cb93a386Sopenharmony_ciprotected: 32cb93a386Sopenharmony_ci GrVkGpu* fGpu; // pointer to gpu object that can be used 33cb93a386Sopenharmony_ci // in subclass's freeGPUData() and onRecycle(). 34cb93a386Sopenharmony_ci // mustn't be const 35cb93a386Sopenharmony_ci}; 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci#endif 38