4#ifndef QDISTANCEFIELD_H
5#define QDISTANCEFIELD_H
18#include <QtGui/private/qtguiglobal_p.h>
20#include <private/qfontengine_p.h>
21#include <QtCore/qshareddata.h>
22#include <QtCore/qglobal.h>
23#include <QLoggingCategory>
27bool Q_GUI_EXPORT qt_fontHasNarrowOutlines(
const QRawFont &f);
28bool Q_GUI_EXPORT qt_fontHasNarrowOutlines(QFontEngine *fontEngine);
30int Q_GUI_EXPORT QT_DISTANCEFIELD_BASEFONTSIZE(
bool narrowOutlineFont);
32int Q_GUI_EXPORT QT_DISTANCEFIELD_SCALE(
bool narrowOutlineFont);
33int Q_GUI_EXPORT QT_DISTANCEFIELD_RADIUS(
bool narrowOutlineFont);
39 QDistanceFieldData() : glyph(0), width(0), height(0), nbytes(0), data(
nullptr) {}
40 QDistanceFieldData(
const QDistanceFieldData &other);
41 ~QDistanceFieldData();
43 static QDistanceFieldData *create(
const QSize &size);
44 static QDistanceFieldData *create(
const QPainterPath &path,
bool doubleResolution);
45 static QDistanceFieldData *create(QSize size,
const QPainterPath &path,
bool doubleResolution);
58 QDistanceField(
int width,
int height);
59 QDistanceField(
const QRawFont &font, glyph_t glyph,
bool doubleResolution =
false);
60 QDistanceField(QFontEngine *fontEngine, glyph_t glyph,
bool doubleResolution =
false);
61 QDistanceField(
const QPainterPath &path, glyph_t glyph,
bool doubleResolution =
false);
62 QDistanceField(QSize size,
const QPainterPath &path, glyph_t glyph,
bool doubleResolution =
false);
66 glyph_t glyph()
const;
67 void setGlyph(
const QRawFont &font, glyph_t glyph,
bool doubleResolution =
false);
68 void setGlyph(QFontEngine *fontEngine, glyph_t glyph,
bool doubleResolution =
false);
73 QDistanceField copy(
const QRect &rect = QRect())
const;
74 inline QDistanceField copy(
int x,
int y,
int w,
int h)
const
75 {
return copy(QRect(x, y, w, h)); }
78 const uchar *bits()
const;
79 const uchar *constBits()
const;
82 const uchar *scanLine(
int)
const;
83 const uchar *constScanLine(
int)
const;
85 QImage toImage(QImage::Format format = QImage::Format_ARGB32_Premultiplied)
const;
88 QDistanceField(QDistanceFieldData *data);
89 QSharedDataPointer<QDistanceFieldData> d;
91 friend class QDistanceFieldData;
The QRawFont class provides access to a single physical instance of a font.
Combined button and popup list for selecting options.
Q_STATIC_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core")
static void makeDistanceField(QDistanceFieldData *data, const QPainterPath &path, int dfScale, int offs)
int QT_DISTANCEFIELD_HIGHGLYPHCOUNT()
bool qt_fontHasNarrowOutlines(const QRawFont &f)
void fillLines(qint32 *bits, int width, int height, int upperY, int lowerY, int &lx, int ldx, int &rx, int rdx, qint32 &d, qint32 ddy, qint32 ddx)
static int QT_DISTANCEFIELD_DEFAULT_BASEFONTSIZE
static void drawPolygons(qint32 *bits, int width, int height, const QPoint *vertices, const quint32 *indices, int indexCount, qint32 value)
static int QT_DISTANCEFIELD_DEFAULT_HIGHGLYPHCOUNT
void drawRectangle(qint32 *bits, int width, int height, const QPoint *int1, const QPoint *center1, const QPoint *ext1, const QPoint *int2, const QPoint *center2, const QPoint *ext2, qint32 extValue)
void fillLine(qint32 *, int, int, int, qint32, qint32)
static int QT_DISTANCEFIELD_DEFAULT_RADIUS
bool qt_fontHasNarrowOutlines(QFontEngine *fontEngine)
int QT_DISTANCEFIELD_RADIUS(bool narrowOutlineFont)
int QT_DISTANCEFIELD_SCALE(bool narrowOutlineFont)
static int QT_DISTANCEFIELD_DEFAULT_SCALE
void fillLine< Clip, LeftToRight >(qint32 *line, int width, int lx, int rx, qint32 d, qint32 dd)
static void initialDistanceFieldFactor()
void drawTriangle(qint32 *bits, int width, int height, const QPoint *center, const QPoint *v1, const QPoint *v2, qint32 value)
int QT_DISTANCEFIELD_BASEFONTSIZE(bool narrowOutlineFont)
static bool imageHasNarrowOutlines(const QImage &im)
void fillLine< Clip, RightToLeft >(qint32 *line, int width, int lx, int rx, qint32 d, qint32 dd)
QDebug Q_GUI_EXPORT & operator<<(QDebug &s, const QVectorPath &path)