| Index: src/gpu/GrRenderTargetProxy.cpp
|
| diff --git a/src/gpu/GrRenderTargetProxy.cpp b/src/gpu/GrRenderTargetProxy.cpp
|
| index 6c422c09cdec5b78dc362e32865fc6ddd8c07025..fb9c34660dc4f7c9a3ac8b5c92cdb5641158b510 100644
|
| --- a/src/gpu/GrRenderTargetProxy.cpp
|
| +++ b/src/gpu/GrRenderTargetProxy.cpp
|
| @@ -7,14 +7,29 @@
|
|
|
| #include "GrRenderTargetProxy.h"
|
|
|
| +#include "GrCaps.h"
|
| #include "GrDrawTarget.h"
|
| #include "GrGpuResourcePriv.h"
|
| -#include "GrRenderTargetPriv.h"
|
|
|
| -GrRenderTargetProxy::GrRenderTargetProxy(sk_sp<GrRenderTarget> rt)
|
| +// Deferred version
|
| +// TODO: we can probably munge the 'desc' in both the wrapped and deferred
|
| +// cases to make the sampleConfig/numSamples stuff more rational.
|
| +GrRenderTargetProxy::GrRenderTargetProxy(const GrCaps& caps, const GrSurfaceDesc& desc,
|
| + SkBackingFit fit, SkBudgeted budgeted)
|
| + : INHERITED(desc, fit, budgeted)
|
| + , fTarget(nullptr)
|
| + , fFlags(GrRenderTargetPriv::Flags::kOffscreen)
|
| + , fLastDrawTarget(nullptr) {
|
| + if (fDesc.fSampleCnt > 0 && caps.usesMixedSamples()) {
|
| + fFlags |= GrRenderTargetPriv::Flags::kMixedSampled;
|
| + }
|
| +}
|
| +
|
| +// Wrapped version
|
| +GrRenderTargetProxy::GrRenderTargetProxy(const GrCaps& caps, sk_sp<GrRenderTarget> rt)
|
| : INHERITED(rt->desc(), SkBackingFit::kExact, rt->resourcePriv().isBudgeted())
|
| , fTarget(std::move(rt))
|
| - , fSampleConfig(fTarget->renderTargetPriv().sampleConfig())
|
| + , fFlags(fTarget->renderTargetPriv().flags())
|
| , fLastDrawTarget(nullptr) {
|
| }
|
|
|
| @@ -47,7 +62,7 @@ GrRenderTarget* GrRenderTargetProxy::instantiate(GrTextureProvider* texProvider)
|
| fTarget = sk_ref_sp(tex->asRenderTarget());
|
|
|
| // Check that our a priori computation matched the ultimate reality
|
| - SkASSERT(fSampleConfig == fTarget->renderTargetPriv().sampleConfig());
|
| + SkASSERT(fFlags == fTarget->renderTargetPriv().flags());
|
|
|
| return fTarget.get();
|
| }
|
| @@ -71,7 +86,7 @@ sk_sp<GrRenderTargetProxy> GrRenderTargetProxy::Make(const GrCaps& caps,
|
| return sk_sp<GrRenderTargetProxy>(new GrRenderTargetProxy(caps, desc, fit, budgeted));
|
| }
|
|
|
| -sk_sp<GrRenderTargetProxy> GrRenderTargetProxy::Make(sk_sp<GrRenderTarget> rt) {
|
| - return sk_sp<GrRenderTargetProxy>(new GrRenderTargetProxy(rt));
|
| +sk_sp<GrRenderTargetProxy> GrRenderTargetProxy::Make(const GrCaps& caps, sk_sp<GrRenderTarget> rt) {
|
| + return sk_sp<GrRenderTargetProxy>(new GrRenderTargetProxy(caps, rt));
|
| }
|
|
|
|
|