/* * 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