Coverage Report

Created: 2024-05-20 07:14

/src/skia/src/core/SkFontScanner.h
Line
Count
Source
1
/*
2
* Copyright 2024 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
8
#ifndef SKFONTSCANNER_H_
9
#define SKFONTSCANNER_H_
10
11
#include "include/core/SkFontArguments.h"
12
#include "include/core/SkTypes.h"
13
#include "include/private/base/SkFixed.h"
14
#include "include/private/base/SkNoncopyable.h"
15
#include "include/private/base/SkTArray.h"
16
class SkFontStyle;
17
class SkStreamAsset;
18
class SkString;
19
20
class SkFontScanner : public SkNoncopyable {
21
public:
22
3
    virtual ~SkFontScanner() = default;
23
    struct AxisDefinition {
24
        SkFourByteTag fTag;
25
        SkScalar fMinimum;
26
        SkScalar fDefault;
27
        SkScalar fMaximum;
28
    };
29
    typedef skia_private::STArray<4, AxisDefinition, true> AxisDefinitions;
30
31
    virtual bool scanFile(SkStreamAsset* stream, int* numFaces) const = 0;
32
    virtual bool scanFace(SkStreamAsset* stream, int faceIndex, int* numInstances) const = 0;
33
    /* instanceIndex 0 is the default instance, 1 to numInstances are the named instances. */
34
    virtual bool scanInstance(SkStreamAsset* stream,
35
                              int faceIndex,
36
                              int instanceIndex,
37
                              SkString* name,
38
                              SkFontStyle* style,
39
                              bool* isFixedPitch,
40
                              AxisDefinitions* axes) const = 0;
41
};
42
43
#endif // SKFONTSCANNER_H_