Closed Bug 561891 Opened 12 years ago Closed 12 years ago

QPainter is is busted after last cairo merge (12d521df8acc483b2daa844d4f05dc2fe2765ba6)

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dougt, Assigned: romaxa)

References

Details

Attachments

(3 files, 1 obsolete file)

gfx/cairo/cairo/src/cairo-qpainter-surface.cpp

fails to compile.

cairo_surface_backend_t has been redefined.  there are both functions that need to be dropped and new function prototypes.

_cairo_surface_reset_clip has been renamed
the qt backend may need some surgery for the clipping changes.
I'll try to look into this tomorrow.
I would suggest to remove xlib-similar surface from cairo-qt backend...
see bug https://bugzilla.mozilla.org/show_bug.cgi?id=550673
There is the patch which is removing hack for fonts painting and using slower but more compatible way to render fonts, also if we are using QT 4.7 or qt with glyph API backport for 4.6 then we can use qt_draw_glyphs API too.
https://bugzilla.mozilla.org/attachment.cgi?id=430828
Blocks: 542605
It would be nice to apply glyphs API update on qpainter surface first
Depends on: 550673
Attachment #441750 - Flags: review?(jmuizelaar)
I'd really like us to switch to the upstream qt backend instead of having to go through this every time. Do you think you could investigate that?
" switch to the upstream qt backend" - do you mean use cairo-qt-surface.cpp ?
http://cgit.freedesktop.org/cairo/tree/src/cairo-qt-surface.cpp ?

I was assuming that it happen with cairo update automatically...
I would suggest to fix bustage fix, because qpainter surface is not default backend for now...

And create bug about updating qpainter-surface... also I think it should be updated in upstream too...
Before using qpainter-surface by default, we must stabilize qt glyphs rendering API (not sure how soon it will happen :( )
Comment on attachment 441750 [details] [diff] [review]
Simple build fix for qpainter surface

>@@ -1212,7 +1212,7 @@
> _cairo_qpainter_surface_paint (void *abstract_surface,
>                                cairo_operator_t op,
>                                const cairo_pattern_t *source,
>-                               cairo_rectangle_int_t *extends)
>+                               cairo_clip_t *extends)
> {
>     Q_UNUSED(extends);

Ignoring the clip will do us no good. The upstream qt backend has had all of the clipping already fixed.
Attachment #441750 - Flags: review?(jmuizelaar) → review-
Attachment #442314 - Flags: review?(jmuizelaar)
Attachment #442313 - Flags: review?(jmuizelaar) → review+
Comment on attachment 442314 [details] [diff] [review]
small compilation fix for upstream cairo-qt.cpp

Please include a patch against upstream and note in the README for this one.
Attachment #442314 - Flags: review?(jmuizelaar) → review+
Assignee: nobody → romaxa
Status: NEW → ASSIGNED
Attachment #442315 - Flags: review+
Pushed in:
http://hg.mozilla.org/mozilla-central/rev/b4bd16d4abe1
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.