| /* | |
| * Copyright 2018 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef GrRenderTargetProxyPriv_DEFINED | |
| #define GrRenderTargetProxyPriv_DEFINED | |
| #include "GrRenderTargetProxy.h" | |
| /** | |
| * This class hides the more specialized capabilities of GrRenderTargetProxy. | |
| */ | |
| class GrRenderTargetProxyPriv { | |
| public: | |
| void setGLRTFBOIDIs0() { | |
| fRenderTargetProxy->setGLRTFBOIDIs0(); | |
| } | |
| bool glRTFBOIDIs0() const { | |
| return fRenderTargetProxy->glRTFBOIDIs0(); | |
| } | |
| private: | |
| explicit GrRenderTargetProxyPriv(GrRenderTargetProxy* renderTargetProxy) | |
| : fRenderTargetProxy(renderTargetProxy) {} | |
| GrRenderTargetProxyPriv(const GrRenderTargetProxyPriv&) {} // unimpl | |
| GrRenderTargetProxyPriv& operator=(const GrRenderTargetProxyPriv&); // unimpl | |
| // No taking addresses of this type. | |
| const GrRenderTargetProxyPriv* operator&() const; | |
| GrRenderTargetProxyPriv* operator&(); | |
| GrRenderTargetProxy* fRenderTargetProxy; | |
| friend class GrRenderTargetProxy; // to construct/copy this type. | |
| }; | |
| inline GrRenderTargetProxyPriv GrRenderTargetProxy::rtPriv() { | |
| return GrRenderTargetProxyPriv(this); | |
| } | |
| inline const GrRenderTargetProxyPriv GrRenderTargetProxy::rtPriv() const { | |
| return GrRenderTargetProxyPriv(const_cast<GrRenderTargetProxy*>(this)); | |
| } | |
| #endif | |