| /* |
| * 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 GrContextPriv_DEFINED |
| #define GrContextPriv_DEFINED |
| |
| #include "GrContext.h" |
| |
| /** Class that adds methods to GrContext that are only intended for use internal to Skia. |
| This class is purely a privileged window into GrContext. It should never have additional |
| data members or virtual methods. */ |
| class GrContextPriv { |
| public: |
| GrDrawingManager* drawingManager() { return fContext->fDrawingManager; } |
| |
| // Create a drawContext that wraps an existing renderTarget |
| sk_sp<GrDrawContext> makeWrappedDrawContext(sk_sp<GrRenderTarget> rt, |
| sk_sp<SkColorSpace> colorSpace, |
| const SkSurfaceProps* = nullptr); |
| |
| sk_sp<GrDrawContext> makeBackendTextureDrawContext(const GrBackendTextureDesc& desc, |
| sk_sp<SkColorSpace> colorSpace, |
| const SkSurfaceProps* = nullptr, |
| GrWrapOwnership = kBorrow_GrWrapOwnership); |
| |
| sk_sp<GrDrawContext> makeBackendRenderTargetDrawContext(const GrBackendRenderTargetDesc& desc, |
| sk_sp<SkColorSpace> colorSpace, |
| const SkSurfaceProps* = nullptr); |
| |
| sk_sp<GrDrawContext> makeBackendTextureAsRenderTargetDrawContext( |
| const GrBackendTextureDesc& desc, |
| sk_sp<SkColorSpace> colorSpace, |
| const SkSurfaceProps* = nullptr); |
| |
| private: |
| explicit GrContextPriv(GrContext* context) : fContext(context) {} |
| GrContextPriv(const GrContextPriv&) {} // unimpl |
| GrContextPriv& operator=(const GrContextPriv&); // unimpl |
| |
| // No taking addresses of this type. |
| const GrContextPriv* operator&() const; |
| GrContextPriv* operator&(); |
| |
| GrContext* fContext; |
| |
| friend class GrContext; // to construct/copy this type. |
| }; |
| |
| inline GrContextPriv GrContext::contextPriv() { return GrContextPriv(this); } |
| |
| inline const GrContextPriv GrContext::contextPriv () const { |
| return GrContextPriv(const_cast<GrContext*>(this)); |
| } |
| |
| #endif |