| Index: src/gpu/vk/GrVkResource.h
|
| diff --git a/src/gpu/vk/GrVkResource.h b/src/gpu/vk/GrVkResource.h
|
| index 83e82fb5b1ac908f7e564c1ff6421946e759eb0e..190ee36b1a2476814dde942d2a4da8a55266d8f1 100644
|
| --- a/src/gpu/vk/GrVkResource.h
|
| +++ b/src/gpu/vk/GrVkResource.h
|
| @@ -191,5 +191,21 @@ private:
|
| typedef SkNoncopyable INHERITED;
|
| };
|
|
|
| +// This subclass allows for recycling
|
| +class GrVkRecycledResource : public GrVkResource {
|
| +public:
|
| + // When recycle is called and there is only one ref left on the resource, we will signal that
|
| + // the resource can be recycled for reuse. This function will always unref the object. Thus
|
| + // if the object is recycled it should be ref'd inside the onRecycle call.
|
| + void recycle(GrVkGpu* gpu) const {
|
| + if (this->unique()) {
|
| + this->onRecycle(gpu);
|
| + }
|
| + this->unref(gpu);
|
| + }
|
| +
|
| +private:
|
| + virtual void onRecycle(GrVkGpu* gpu) const = 0;
|
| +};
|
|
|
| #endif
|
|
|