Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkClusterator.h
Go to the documentation of this file.
1/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7#ifndef SkClusterator_DEFINED
8#define SkClusterator_DEFINED
9
10#include <cstdint>
11#include <vector>
12
13namespace sktext {
14class GlyphRun;
15}
16
17/** Given the m-to-n glyph-to-character mapping data (as returned by
18 harfbuzz), iterate over the clusters. */
20public:
22 uint32_t glyphCount() const { return fGlyphCount; }
23 bool reversedChars() const { return fReversedChars; }
24 struct Cluster {
25 const char* fUtf8Text;
27 uint32_t fGlyphIndex;
28 uint32_t fGlyphCount;
29 explicit operator bool() const { return fGlyphCount != 0; }
36 };
37 Cluster next();
38
39private:
40 uint32_t const * const fClusters;
41 char const * const fUtf8Text;
42 uint32_t const fGlyphCount;
43 uint32_t const fTextByteLength;
44 bool const fReversedChars;
45 uint32_t fCurrentGlyphIndex = 0;
46};
47#endif // SkClusterator_DEFINED
uint32_t glyphCount() const
bool reversedChars() const
Definition run.py:1
bool operator==(const SkClusterator::Cluster &o)