| Index: src/gpu/GrTextureProvider.cpp
|
| diff --git a/src/gpu/GrTextureProvider.cpp b/src/gpu/GrTextureProvider.cpp
|
| index cb652f7a7fd8c2e27b46fb7a4c802a4031b900e1..b2d172f36f1407292f19317e782e6190935ac540 100644
|
| --- a/src/gpu/GrTextureProvider.cpp
|
| +++ b/src/gpu/GrTextureProvider.cpp
|
| @@ -10,6 +10,10 @@
|
| #include "GrTexturePriv.h"
|
| #include "GrResourceCache.h"
|
| #include "GrGpu.h"
|
| +#include "../private/GrSingleOwner.h"
|
| +
|
| +#define ASSERT_SINGLE_OWNER \
|
| + SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(fSingleOwner);)
|
|
|
| enum ScratchTextureFlags {
|
| kExact_ScratchTextureFlag = 0x1,
|
| @@ -19,6 +23,7 @@ enum ScratchTextureFlags {
|
|
|
| GrTexture* GrTextureProvider::createTexture(const GrSurfaceDesc& desc, bool budgeted,
|
| const void* srcData, size_t rowBytes) {
|
| + ASSERT_SINGLE_OWNER
|
| if (this->isAbandoned()) {
|
| return nullptr;
|
| }
|
| @@ -44,11 +49,13 @@ GrTexture* GrTextureProvider::createTexture(const GrSurfaceDesc& desc, bool budg
|
| }
|
|
|
| GrTexture* GrTextureProvider::createApproxTexture(const GrSurfaceDesc& desc) {
|
| + ASSERT_SINGLE_OWNER
|
| return this->internalCreateApproxTexture(desc, 0);
|
| }
|
|
|
| GrTexture* GrTextureProvider::internalCreateApproxTexture(const GrSurfaceDesc& desc,
|
| uint32_t scratchFlags) {
|
| + ASSERT_SINGLE_OWNER
|
| if (this->isAbandoned()) {
|
| return nullptr;
|
| }
|
| @@ -62,6 +69,7 @@ GrTexture* GrTextureProvider::internalCreateApproxTexture(const GrSurfaceDesc& d
|
|
|
| GrTexture* GrTextureProvider::refScratchTexture(const GrSurfaceDesc& inDesc,
|
| uint32_t flags) {
|
| + ASSERT_SINGLE_OWNER
|
| SkASSERT(!this->isAbandoned());
|
| SkASSERT(!GrPixelConfigIsCompressed(inDesc.fConfig));
|
|
|
| @@ -108,6 +116,7 @@ GrTexture* GrTextureProvider::refScratchTexture(const GrSurfaceDesc& inDesc,
|
|
|
| GrTexture* GrTextureProvider::wrapBackendTexture(const GrBackendTextureDesc& desc,
|
| GrWrapOwnership ownership) {
|
| + ASSERT_SINGLE_OWNER
|
| if (this->isAbandoned()) {
|
| return nullptr;
|
| }
|
| @@ -115,11 +124,13 @@ GrTexture* GrTextureProvider::wrapBackendTexture(const GrBackendTextureDesc& des
|
| }
|
|
|
| GrRenderTarget* GrTextureProvider::wrapBackendRenderTarget(const GrBackendRenderTargetDesc& desc) {
|
| + ASSERT_SINGLE_OWNER
|
| return this->isAbandoned() ? nullptr : fGpu->wrapBackendRenderTarget(desc,
|
| - kBorrow_GrWrapOwnership);
|
| + kBorrow_GrWrapOwnership);
|
| }
|
|
|
| void GrTextureProvider::assignUniqueKeyToResource(const GrUniqueKey& key, GrGpuResource* resource) {
|
| + ASSERT_SINGLE_OWNER
|
| if (this->isAbandoned() || !resource) {
|
| return;
|
| }
|
| @@ -127,9 +138,11 @@ void GrTextureProvider::assignUniqueKeyToResource(const GrUniqueKey& key, GrGpuR
|
| }
|
|
|
| bool GrTextureProvider::existsResourceWithUniqueKey(const GrUniqueKey& key) const {
|
| + ASSERT_SINGLE_OWNER
|
| return this->isAbandoned() ? false : fCache->hasUniqueKey(key);
|
| }
|
|
|
| GrGpuResource* GrTextureProvider::findAndRefResourceByUniqueKey(const GrUniqueKey& key) {
|
| + ASSERT_SINGLE_OWNER
|
| return this->isAbandoned() ? nullptr : fCache->findAndRefUniqueResource(key);
|
| }
|
|
|