| /* |
| * Copyright 2017 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkAtlasTextContext_DEFINED |
| #define SkAtlasTextContext_DEFINED |
| |
| #include "SkRefCnt.h" |
| |
| class SkAtlasTextRenderer; |
| class SkInternalAtlasTextContext; |
| |
| SkAtlasTextRenderer* SkGetAtlasTextRendererFromInternalContext(class SkInternalAtlasTextContext&); |
| |
| /** |
| * Class that Atlas Text client uses to register their SkAtlasTextRenderer implementation and |
| * to create one or more SkAtlasTextTargets (destination surfaces for text rendering). |
| */ |
| class SK_API SkAtlasTextContext : public SkRefCnt { |
| public: |
| static sk_sp<SkAtlasTextContext> Make(sk_sp<SkAtlasTextRenderer>); |
| |
| SkAtlasTextRenderer* renderer() const { |
| return SkGetAtlasTextRendererFromInternalContext(*fInternalContext); |
| } |
| |
| SkInternalAtlasTextContext& internal() { return *fInternalContext; } |
| |
| private: |
| SkAtlasTextContext() = delete; |
| SkAtlasTextContext(const SkAtlasTextContext&) = delete; |
| SkAtlasTextContext& operator=(const SkAtlasTextContext&) = delete; |
| |
| SkAtlasTextContext(sk_sp<SkAtlasTextRenderer>); |
| |
| std::unique_ptr<SkInternalAtlasTextContext> fInternalContext; |
| }; |
| |
| #endif |