diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2013-08-10 23:17:36 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-14 22:47:19 +0200 |
commit | fe3c34c2595cfbf466d899b5431ee1de03ce52a7 (patch) | |
tree | 29a263a4e1492de405a9010dd0d34742d928b5db /src/gui/text/qtextengine_p.h | |
parent | cb7921a4331c523a9843a2d825ed9e58b24bf26d (diff) |
Don't allocate QGlyphLayout data, when possible
...and operate directly on a passed array pointers,
without having to copy the input and output data.
Calling QFontEngine:: stringToCMap()/recalcAdvances() with
partially-constructed QGlyphLayout is completely safe
iff `glyphs` and `advances_?` members were initialized.
Also get rid of QGlyphLayoutInstance that was used just in a single place
and never was really needed.
Change-Id: I48fab246fd69fc869f948220a553c3574d93c772
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/text/qtextengine_p.h')
-rw-r--r-- | src/gui/text/qtextengine_p.h | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index 6d46231c67..b3ab9a42d8 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -188,15 +188,6 @@ struct QGlyphJustification }; Q_DECLARE_TYPEINFO(QGlyphJustification, Q_PRIMITIVE_TYPE); -struct QGlyphLayoutInstance -{ - QFixedPoint offset; - QFixedPoint advance; - glyph_t glyph; - QGlyphJustification justification; - QGlyphAttributes attributes; -}; - struct QGlyphLayout { // init to 0 not needed, done when shaping @@ -251,28 +242,6 @@ struct QGlyphLayout inline QFixed effectiveAdvance(int item) const { return (advances_x[item] + QFixed::fromFixed(justifications[item].space_18d6)) * !attributes[item].dontPrint; } - inline QGlyphLayoutInstance instance(int position) const { - QGlyphLayoutInstance g; - g.offset.x = offsets[position].x; - g.offset.y = offsets[position].y; - g.glyph = glyphs[position]; - g.advance.x = advances_x[position]; - g.advance.y = advances_y[position]; - g.justification = justifications[position]; - g.attributes = attributes[position]; - return g; - } - - inline void setInstance(int position, const QGlyphLayoutInstance &g) { - offsets[position].x = g.offset.x; - offsets[position].y = g.offset.y; - glyphs[position] = g.glyph; - advances_x[position] = g.advance.x; - advances_y[position] = g.advance.y; - justifications[position] = g.justification; - attributes[position] = g.attributes; - } - inline void clear(int first = 0, int last = -1) { if (last == -1) last = numGlyphs; |