aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-05-03 06:44:49 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-03 06:44:50 -0700
commit89d09a1f70280cd0317d8a8d4e8973e5fa43182c (patch)
treeaf8c673655a49b07975354ab648e9e089f8185b1 /include
parent444f1ba1b7fcca7eca9fda839ca6b613ff31135e (diff)
Revert of Add Gr*Proxy classes (patchset #9 id:160001 of https://codereview.chromium.org/1937553002/ )
Reason for revert: Seems to be breaking N7 & ANGLE bots Original issue's description: > Add Gr*Proxy classes > > This isn't wired in anywhere yet. > > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1937553002 > > Committed: https://skia.googlesource.com/skia/+/de5bf0cfeca908b81a28cc50065f7bc2da3d2fd1 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1949463002
Diffstat (limited to 'include')
-rw-r--r--include/core/SkTypes.h9
-rw-r--r--include/gpu/GrContext.h7
-rw-r--r--include/gpu/GrRenderTarget.h3
-rw-r--r--include/private/GrRenderTargetProxy.h123
-rw-r--r--include/private/GrSurfaceProxy.h72
-rw-r--r--include/private/GrTextureProxy.h49
6 files changed, 6 insertions, 257 deletions
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index f99bb01949..f9d0c533d3 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -442,15 +442,6 @@ enum class SkBudgeted : bool {
kYes = true
};
-/**
- * Indicates whether a backing store needs to be an exact match or can be larger
- * than is strictly necessary
- */
-enum class SkBackingFit {
- kApprox,
- kExact
-};
-
///////////////////////////////////////////////////////////////////////////////
/** Use to combine multiple bits in a bitmask in a type safe way.
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 6f5ca981e5..cb407aa5bf 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -194,11 +194,16 @@ public:
*/
sk_sp<GrDrawContext> drawContext(sk_sp<GrRenderTarget> rt, const SkSurfaceProps* = nullptr);
+ enum BackingFit {
+ kTight_BackingFit,
+ kLoose_BackingFit
+ };
+
/**
* Create both a GrRenderTarget and a matching GrDrawContext to wrap it.
* The created GrRenderTarget will always be budgeted.
*/
- sk_sp<GrDrawContext> newDrawContext(SkBackingFit fit,
+ sk_sp<GrDrawContext> newDrawContext(BackingFit fit,
int width, int height,
GrPixelConfig config,
int sampleCnt = 0,
diff --git a/include/gpu/GrRenderTarget.h b/include/gpu/GrRenderTarget.h
index ff75af37e8..eb9f142211 100644
--- a/include/gpu/GrRenderTarget.h
+++ b/include/gpu/GrRenderTarget.h
@@ -11,7 +11,6 @@
#include "GrSurface.h"
#include "SkRect.h"
-class GrCaps;
class GrDrawTarget;
class GrStencilAttachment;
class GrRenderTargetPriv;
@@ -156,8 +155,6 @@ public:
void setLastDrawTarget(GrDrawTarget* dt);
GrDrawTarget* getLastDrawTarget() { return fLastDrawTarget; }
- static SampleConfig ComputeSampleConfig(const GrCaps& caps, int sampleCnt);
-
protected:
GrRenderTarget(GrGpu* gpu, const GrSurfaceDesc& desc,
SampleConfig sampleConfig, GrStencilAttachment* stencil = nullptr)
diff --git a/include/private/GrRenderTargetProxy.h b/include/private/GrRenderTargetProxy.h
deleted file mode 100644
index 287aa017f0..0000000000
--- 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
diff --git a/include/private/GrSurfaceProxy.h b/include/private/GrSurfaceProxy.h
deleted file mode 100644
index 63e646b7d3..0000000000
--- a/include/private/GrSurfaceProxy.h
+++ /dev/null
@@ -1,72 +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 GrSurfaceProxy_DEFINED
-#define GrSurfaceProxy_DEFINED
-
-#include "GrGpuResource.h"
-
-class GrTextureProxy;
-class GrRenderTargetProxy;
-
-class GrSurfaceProxy : public GrIORef<GrSurfaceProxy> {
-public:
- const GrSurfaceDesc& desc() const { return fDesc; }
-
- GrSurfaceOrigin origin() const {
- SkASSERT(kTopLeft_GrSurfaceOrigin == fDesc.fOrigin ||
- kBottomLeft_GrSurfaceOrigin == fDesc.fOrigin);
- return fDesc.fOrigin;
- }
- int width() const { return fDesc.fWidth; }
- int height() const { return fDesc.fWidth; }
- GrPixelConfig config() const { return fDesc.fConfig; }
-
- uint32_t uniqueID() const { return fUniqueID; }
-
- /**
- * @return the texture proxy associated with the surface proxy, may be NULL.
- */
- virtual GrTextureProxy* asTextureProxy() { return nullptr; }
- virtual const GrTextureProxy* asTextureProxy() const { return nullptr; }
-
- /**
- * @return the render target proxy associated with the surface proxy, may be NULL.
- */
- virtual GrRenderTargetProxy* asRenderTargetProxy() { return nullptr; }
- virtual const GrRenderTargetProxy* asRenderTargetProxy() const { return nullptr; }
-
-protected:
- GrSurfaceProxy(const GrSurfaceDesc& desc, SkBackingFit fit, SkBudgeted budgeted)
- : fDesc(desc)
- , fFit(fit)
- , fBudgeted(budgeted)
- , fUniqueID(CreateUniqueID()) {
- }
-
- virtual ~GrSurfaceProxy() {}
-
- // For wrapped resources, 'fDesc' will always be filled in from the wrapped resource.
- const GrSurfaceDesc fDesc;
- const SkBackingFit fFit; // always exact for wrapped resources
- const SkBudgeted fBudgeted; // set from the backing resource for wrapped resources
- const uint32_t fUniqueID;
-
-private:
- static uint32_t CreateUniqueID();
-
- // See comment in GrGpuResource.h.
- void notifyAllCntsAreZero(CntType) const {}
- bool notifyRefCountIsZero() const { return false; }
-
- typedef GrIORef<GrSurfaceProxy> INHERITED;
-
- // to access notifyAllCntsAreZero and notifyRefCntIsZero.
- friend class GrIORef<GrSurfaceProxy>;
-};
-
-#endif
diff --git a/include/private/GrTextureProxy.h b/include/private/GrTextureProxy.h
deleted file mode 100644
index eb82ca7581..0000000000
--- a/include/private/GrTextureProxy.h
+++ /dev/null
@@ -1,49 +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 GrTextureProxy_DEFINED
-#define GrTextureProxy_DEFINED
-
-#include "GrSurfaceProxy.h"
-#include "GrTexture.h"
-
-class GrTextureProvider;
-
-// This class delays the acquisition of textures until they are actually required
-class GrTextureProxy : public GrSurfaceProxy {
-public:
- // TODO: need to refine ownership semantics of 'srcData' if we're in completely
- // deferred mode
- static sk_sp<GrTextureProxy> Make(const GrSurfaceDesc&, SkBackingFit, SkBudgeted,
- const void* srcData = nullptr, size_t rowBytes = 0);
- static sk_sp<GrTextureProxy> Make(sk_sp<GrTexture>);
-
- // TODO: add asRenderTargetProxy variants
- GrTextureProxy* asTextureProxy() override { return this; }
- const GrTextureProxy* asTextureProxy() const override { return this; }
-
- // Actually instantiate the backing texture, if necessary
- GrTexture* instantiate(GrTextureProvider* texProvider);
-
-private:
- GrTextureProxy(const GrSurfaceDesc& desc, SkBackingFit fit, SkBudgeted budgeted,
- const void* /*srcData*/, size_t /*rowBytes*/)
- : INHERITED(desc, fit, budgeted) {
- // TODO: Handle 'srcData' here
- }
-
- // Wrapped version
- GrTextureProxy(sk_sp<GrTexture> tex);
-
- // For wrapped textures we store it here.
- // For deferred proxies we will fill this in when we need to instantiate the deferred resource
- sk_sp<GrTexture> fTexture;
-
- typedef GrSurfaceProxy INHERITED;
-};
-
-#endif