|  | /* | 
|  | * Copyright 2019 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #include "src/gpu/dawn/GrDawnRenderTarget.h" | 
|  |  | 
|  | #include "include/gpu/GrBackendSurface.h" | 
|  | #include "src/gpu/dawn/GrDawnGpu.h" | 
|  | #include "src/gpu/dawn/GrDawnUtil.h" | 
|  |  | 
|  | GrDawnRenderTarget::GrDawnRenderTarget(GrDawnGpu* gpu, | 
|  | const SkISize& size, | 
|  | GrPixelConfig config, | 
|  | int sampleCnt, | 
|  | const GrDawnImageInfo& info) | 
|  | : GrSurface(gpu, size, config, GrProtected::kNo) | 
|  | , GrRenderTarget(gpu, size, config, sampleCnt, GrProtected::kNo) | 
|  | , fInfo(info) { | 
|  | } | 
|  |  | 
|  | sk_sp<GrDawnRenderTarget> | 
|  | GrDawnRenderTarget::MakeWrapped(GrDawnGpu* gpu, | 
|  | const SkISize& size, | 
|  | GrPixelConfig config, | 
|  | int sampleCnt, | 
|  | const GrDawnImageInfo& info) { | 
|  | sk_sp<GrDawnRenderTarget> rt(new GrDawnRenderTarget(gpu, size, config, sampleCnt, info)); | 
|  | rt->registerWithCacheWrapped(GrWrapCacheable::kNo); | 
|  | return rt; | 
|  | } | 
|  |  | 
|  | size_t GrDawnRenderTarget::onGpuMemorySize() const { | 
|  | // The plus 1 is to account for the resolve texture or if not using msaa the RT itself | 
|  | int numSamples = this->numSamples() + 1; | 
|  | const GrCaps& caps = *getGpu()->caps(); | 
|  | return GrSurface::ComputeSize(caps, this->backendFormat(), this->width(), this->height(), | 
|  | numSamples, GrMipMapped::kNo); | 
|  | } | 
|  |  | 
|  | bool GrDawnRenderTarget::completeStencilAttachment() { | 
|  | return true; | 
|  | } | 
|  |  | 
|  | GrDawnRenderTarget::~GrDawnRenderTarget() { | 
|  | } | 
|  |  | 
|  | void GrDawnRenderTarget::onRelease() { | 
|  | INHERITED::onRelease(); | 
|  | } | 
|  |  | 
|  | void GrDawnRenderTarget::onAbandon() { | 
|  | INHERITED::onAbandon(); | 
|  | } | 
|  |  | 
|  | GrBackendRenderTarget GrDawnRenderTarget::getBackendRenderTarget() const { | 
|  | return GrBackendRenderTarget(this->width(), this->height(), this->numSamples(), | 
|  | this->numSamples(), fInfo); | 
|  | } | 
|  |  | 
|  | GrBackendFormat GrDawnRenderTarget::backendFormat() const { | 
|  | return GrBackendFormat::MakeDawn(fInfo.fFormat); | 
|  | } |