Subversion Repositories Scribus

Rev

Rev 24464 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20019 avox 1
//
2
//  sfnt.h
3
//  Scribus
4
//
5
//  Created by Andreas Vox on 18.04.15.
6
//
7
//
8
 
9
#ifndef Scribus_sfnt_h
10
#define Scribus_sfnt_h
11
 
12
#include "scribusapi.h"
13
 
14
#include <QByteArray>
15
#include <QList>
16
#include <QMap>
17
#include <QString>
18
 
19
#include <ft2build.h>
20
#include FT_FREETYPE_H
21
 
23377 craig 22
namespace sfnt
23
{
20113 jghali 24
        uchar byte(QByteArray const & bb, uint pos);
25
        quint32  word(QByteArray const & bb, uint pos);
26
        void  putWord(QByteArray & bb, uint pos, quint32 val);
27
        void  appendWord(QByteArray& bb, quint32 val);
28
        quint16  word16(QByteArray const & bb, uint pos);
29
        void  putWord16(QByteArray & bb, uint pos, quint16 val);
30
        void  appendWord16(QByteArray& bb, quint16 val);
31
        bool  copy(QByteArray & dst, uint to, const QByteArray & src, uint from, uint len);
23880 craig 32
        QByteArray tag(QByteArray const & bb, uint pos);
33
        QByteArray getTable(const QByteArray& ttf, const QByteArray& ttfTag);
24464 jghali 34
 
20113 jghali 35
        QByteArray extractFace(const QByteArray& ttfColl, int faceIndex);
24464 jghali 36
        QByteArray subsetFace(const QByteArray& ttf, QList<uint>& glyphs, QMap<uint, uint>& glyphMap);
24471 jghali 37
        QByteArray subsetFaceWithHB(const QByteArray& fontData, QList<uint> glyphs, int faceIndex, QMap<uint, uint>& glyphMap);
20019 avox 38
 
24464 jghali 39
        bool canSubsetOpenTypeFonts();
23377 craig 40
 
24464 jghali 41
        /**
42
         This class checks the post table of a ttf font.
43
         */
44
        class SCRIBUS_API PostTable
45
        {
46
                public:
47
                        PostTable() = default;
48
                        uint numberOfGlyphs() const;
49
                        QString nameFor(uint glyphId) const;
50
                        void readFrom(FT_Face face);
51
                        bool usable() const;
52
                        void setUsable(bool usable);
53
                        QString errorMsg() const;
54
                        void setErrorMsg(const QString& errorMsg);
20019 avox 55
 
24464 jghali 56
                private:
57
                        QList<QString> m_names;
58
                        bool m_usable {false};
59
                        QString m_errorMsg;
60
        };
61
 
20019 avox 62
} //namespace
63
#endif
20103 avox 64