Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Unified Diff: include/private/GrRenderTargetProxy.h

Issue 1944953002: Revert of Add Gr*Proxy classes (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/gpu/GrRenderTarget.h ('k') | include/private/GrSurfaceProxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/private/GrRenderTargetProxy.h
diff --git a/include/private/GrRenderTargetProxy.h b/include/private/GrRenderTargetProxy.h
deleted file mode 100644
index 287aa017f0b7645afcba3a8160466ae91c8e0159..0000000000000000000000000000000000000000
--- a/include/private/GrRenderTargetProxy.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef GrRenderTargetProxy_DEFINED
-#define GrRenderTargetProxy_DEFINED
-
-#include "GrRenderTarget.h"
-#include "GrSurfaceProxy.h"
-#include "GrTypes.h"
-
-class GrTextureProvider;
-
-// This class delays the acquisition of RenderTargets until they are actually
-// required
-// Beware: the uniqueID of the RenderTargetProxy will usually be different than
-// the uniqueID of the RenderTarget it represents!
-class GrRenderTargetProxy : public GrSurfaceProxy {
-public:
- /**
- * The caller gets the creation ref.
- */
- static sk_sp<GrRenderTargetProxy> Make(const GrCaps&, const GrSurfaceDesc&,
- SkBackingFit, SkBudgeted);
- static sk_sp<GrRenderTargetProxy> Make(sk_sp<GrRenderTarget> rt);
-
- ~GrRenderTargetProxy() override;
-
- // TODO: add asTextureProxy variants
- GrRenderTargetProxy* asRenderTargetProxy() override { return this; }
- const GrRenderTargetProxy* asRenderTargetProxy() const override { return this; }
-
- // Actually instantiate the backing rendertarget, if necessary.
- GrRenderTarget* instantiate(GrTextureProvider* texProvider);
-
- /**
- * @return true if the surface is multisampled in all buffers,
- * false otherwise
- */
- bool isUnifiedMultisampled() const {
- if (fSampleConfig != GrRenderTarget::kUnified_SampleConfig) {
- return false;
- }
- return 0 != fDesc.fSampleCnt;
- }
-
- /**
- * @return true if the surface is multisampled in the stencil buffer,
- * false otherwise
- */
- bool isStencilBufferMultisampled() const {
- return 0 != fDesc.fSampleCnt;
- }
-
- /**
- * @return the number of color samples-per-pixel, or zero if non-MSAA or
- * multisampled in the stencil buffer only.
- */
- int numColorSamples() const {
- if (fSampleConfig == GrRenderTarget::kUnified_SampleConfig) {
- return fDesc.fSampleCnt;
- }
- return 0;
- }
-
- /**
- * @return the number of stencil samples-per-pixel, or zero if non-MSAA.
- */
- int numStencilSamples() const {
- return fDesc.fSampleCnt;
- }
-
- /**
- * @return true if the surface is mixed sampled, false otherwise.
- */
- bool hasMixedSamples() const {
- SkASSERT(GrRenderTarget::kStencil_SampleConfig != fSampleConfig ||
- this->isStencilBufferMultisampled());
- return GrRenderTarget::kStencil_SampleConfig == fSampleConfig;
- }
-
- void setLastDrawTarget(GrDrawTarget* dt);
- GrDrawTarget* getLastDrawTarget() { return fLastDrawTarget; }
-
-private:
- // TODO: we can probably munge the 'desc' in both the wrapped and deferred
- // cases to make the sampleConfig/numSamples stuff more rational.
- GrRenderTargetProxy(const GrCaps& caps, const GrSurfaceDesc& desc,
- SkBackingFit fit, SkBudgeted budgeted)
- : INHERITED(desc, fit, budgeted)
- , fTarget(nullptr)
- , fSampleConfig(GrRenderTarget::ComputeSampleConfig(caps, desc.fSampleCnt))
- , fLastDrawTarget(nullptr) {
- }
-
- // Wrapped version
- GrRenderTargetProxy(sk_sp<GrRenderTarget> rt);
-
- // For wrapped render targets we store it here.
- // For deferred proxies we will fill this in when we need to instantiate the deferred resource
- sk_sp<GrRenderTarget> fTarget;
-
- // The sample config doesn't usually get computed until the render target is instantiated but
- // the render target proxy may need to answer queries about it before then. For this reason
- // we precompute it in the deferred case. In the wrapped case we just copy the wrapped
- // rendertarget's info here.
- GrRenderTarget::SampleConfig fSampleConfig;
-
- // The last drawTarget that wrote to or is currently going to write to this renderTarget
- // The drawTarget can be closed (e.g., no draw context is currently bound
- // to this renderTarget).
- // This back-pointer is required so that we can add a dependancy between
- // the drawTarget used to create the current contents of this renderTarget
- // and the drawTarget of a destination renderTarget to which this one is being drawn.
- GrDrawTarget* fLastDrawTarget;
-
- typedef GrSurfaceProxy INHERITED;
-};
-
-#endif
« no previous file with comments | « include/gpu/GrRenderTarget.h ('k') | include/private/GrSurfaceProxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698