2017-11-19 18:20:13 +00:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
|
2019-04-23 17:05:21 +00:00
|
|
|
#include "include/core/SkRefCnt.h"
|
2017-11-19 18:20:13 +00:00
|
|
|
|
|
|
|
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
|