Line data Source code
1 : /*
2 : * Copyright 2016 Google Inc.
3 : *
4 : * Use of this source code is governed by a BSD-style license that can be
5 : * found in the LICENSE file.
6 : */
7 :
8 : #ifndef GrTextureRenderTargetProxy_DEFINED
9 : #define GrTextureRenderTargetProxy_DEFINED
10 :
11 : #include "GrRenderTargetProxy.h"
12 : #include "GrTextureProxy.h"
13 :
14 : #ifdef SK_BUILD_FOR_WIN
15 : // Windows gives warnings about inheriting asTextureProxy/asRenderTargetProxy via dominance.
16 : #pragma warning(push)
17 : #pragma warning(disable: 4250)
18 : #endif
19 :
20 : // This class delays the acquisition of RenderTargets that are also textures until
21 : // they are actually required
22 : // Beware: the uniqueID of the TextureRenderTargetProxy will usually be different than
23 : // the uniqueID of the RenderTarget/Texture it represents!
24 0 : class GrTextureRenderTargetProxy : public GrTextureProxy, public GrRenderTargetProxy {
25 : private:
26 : friend class GrSurfaceProxy; // for ctors
27 :
28 : // Deferred version
29 : GrTextureRenderTargetProxy(const GrCaps&, const GrSurfaceDesc&,
30 : SkBackingFit, SkBudgeted, uint32_t flags);
31 :
32 : // Wrapped version
33 : GrTextureRenderTargetProxy(sk_sp<GrSurface>);
34 :
35 : size_t onGpuMemorySize() const override;
36 : };
37 :
38 : #ifdef SK_BUILD_FOR_WIN
39 : #pragma warning(pop)
40 : #endif
41 :
42 : #endif
|