Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 284073 Details for
Bug 380013
x11-libs/cairo-1.10.x fails with Qt 4.8
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Fix pango with Qt 4.8.
pango-qt-4.8-compat.patch (text/plain), 3.11 KB, created by
Georg Rudoy
on 2011-08-20 22:55:11 UTC
(
hide
)
Description:
Fix pango with Qt 4.8.
Filename:
MIME Type:
Creator:
Georg Rudoy
Created:
2011-08-20 22:55:11 UTC
Size:
3.11 KB
patch
obsolete
>--- a/src/cairo-qt-surface.cpp >+++ b/src/cairo-qt-surface.cpp >@@ -54,21 +54,17 @@ > #include <QtGui/QPaintEngine> > #include <QtGui/QPaintDevice> > #include <QtGui/QImage> > #include <QtGui/QPixmap> > #include <QtGui/QBrush> > #include <QtGui/QPen> > #include <QtGui/QWidget> > #include <QtGui/QX11Info> >-#include <QtCore/QVarLengthArray> >- >-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) >-extern void qt_draw_glyphs(QPainter *, const quint32 *glyphs, const QPointF *positions, int count); >-#endif >+#include <QtGui/QGlyphRun> > > #include <sys/time.h> > > /* Enable workaround slow regional Qt paths */ > #define ENABLE_FAST_FILL 0 > #define ENABLE_FAST_CLIP 0 > > #if 0 >@@ -1365,45 +1361,46 @@ _cairo_qt_surface_show_glyphs (void *abs > cairo_operator_t op, > const cairo_pattern_t *source, > cairo_glyph_t *glyphs, > int num_glyphs, > cairo_scaled_font_t *scaled_font, > cairo_clip_t *clip, > int *remaining_glyphs) > { >-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) >+#if (QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && !defined(QT_NO_RAWFONT) > cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; > > // pick out the colour to use from the cairo source > cairo_solid_pattern_t *solid = (cairo_solid_pattern_t*) source; >- cairo_scaled_glyph_t* glyph; > // documentation says you have to freeze the cache, but I don't believe it > _cairo_scaled_font_freeze_cache(scaled_font); > > QColor tempColour(solid->color.red * 255, solid->color.green * 255, solid->color.blue * 255); >- QVarLengthArray<QPointF> positions(num_glyphs); >- QVarLengthArray<unsigned int> glyphss(num_glyphs); >+ QVector<QPointF> positions(num_glyphs); >+ QVector<unsigned int> glyphss(num_glyphs); > FT_Face face = cairo_ft_scaled_font_lock_face (scaled_font); > const FT_Size_Metrics& ftMetrics = face->size->metrics; > QFont font(face->family_name); > font.setStyleStrategy(QFont::NoFontMerging); > font.setBold(face->style_flags & FT_STYLE_FLAG_BOLD); > font.setItalic(face->style_flags & FT_STYLE_FLAG_ITALIC); > font.setKerning(face->face_flags & FT_FACE_FLAG_KERNING); > font.setPixelSize(ftMetrics.y_ppem); > cairo_ft_scaled_font_unlock_face(scaled_font); > qs->p->setFont(font); > qs->p->setPen(tempColour); > for (int currentGlyph = 0; currentGlyph < num_glyphs; currentGlyph++) { >- positions[currentGlyph].setX(glyphs[currentGlyph].x); >- positions[currentGlyph].setY(glyphs[currentGlyph].y); >- glyphss[currentGlyph] = glyphs[currentGlyph].index; >+ positions.append(QPointF(glyphs[currentGlyph].x, glyphs[currentGlyph].y)); >+ glyphss.append(glyphs[currentGlyph].index); > } >- qt_draw_glyphs(qs->p, glyphss.data(), positions.data(), num_glyphs); >+ QGlyphRun qglyphs; >+ qglyphs.setGlyphIndexes(glyphss); >+ qglyphs.setPositions(positions); >+ qs->p->drawGlyphRun(QPointF(), qglyphs); > _cairo_scaled_font_thaw_cache(scaled_font); > return CAIRO_INT_STATUS_SUCCESS; > #else > return CAIRO_INT_STATUS_UNSUPPORTED; > #endif > } > > static cairo_int_status_t
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 380013
:
284073