Commit graph

3435 commits

Author SHA1 Message Date
Chris Wilson
0549fcfd85 [pdf-operators] Propagate status from end_text().
Check for an error status after end_text().
2008-08-17 15:19:19 +01:00
Chris Wilson
96d45cfeee [pdf-operators] Propagate error from emit_glyph_string*().
Do not overwrite the error status if returned by either of the
emit_glyph_string*() routines.
2008-08-17 15:19:12 +01:00
Chris Wilson
63f64ff336 [pdf-operators] Propagate error from begin_actualtext().
Check the status return from begin_actualtext().
2008-08-17 14:53:55 +01:00
Chris Wilson
56c5f9954a [pdf] Propagate error from open_stream() failure.
Check status return for _cairo_pdf_surface_open_stream().
2008-08-17 14:51:48 +01:00
Chris Wilson
311464ad50 [pdf] Propagate status return.
Check status return from type3_glyph_surface_emit_glyph().
2008-08-17 14:50:35 +01:00
Chris Wilson
b14c6ac685 [pdf] dead code elimination.
Value stored to 'matrix' is never read.
2008-08-17 14:49:02 +01:00
Chris Wilson
97a2038c76 [ps] Dead store elimination.
Value stored to 'matrix' is never read.
2008-08-17 14:47:27 +01:00
Chris Wilson
e3b6a0c89a [cairo-output-stream] Dead store.
Value stored to 'p' is never read.
2008-08-17 14:44:44 +01:00
Chris Wilson
4517ef0520 [cairo-image-surface] Dead store.
Value stored to 'ret' is never read.
Value stored to 'mask_bpp' is never read.
2008-08-17 14:35:45 +01:00
Chris Wilson
4114a7bf06 [cairo-clip] Dead store.
Value stored to 'status' is never read.
2008-08-17 14:33:38 +01:00
Chris Wilson
32843260ae [cairo-scaled-font] Dead store.
Value stored to 'status' is never read.
2008-08-17 14:31:12 +01:00
Chris Wilson
6c0da32b06 [cairo-scaled-font] Actually use bytes_per_row.
bytes_per_row was precomputed but not actually used in the inner loop.
2008-08-17 14:30:04 +01:00
Chris Wilson
c7d803fc91 [cairo-surface] Add the lcd_filter default to the nil surfaces.
The nil surfaces did not correctly initialize the lcd filter font option
to the default value.
2008-08-17 14:08:28 +01:00
Chris Wilson
3b2d49e567 Ensure ranges of wideint types are always defined.
Define the range of the fixed types (int16, int32 etc) if the standard
headers fail to provide the definitions.
2008-08-17 14:08:28 +01:00
Chris Wilson
3501eef698 [cairo-cache] Fixup doc comment.
Missing % before the macro name in the comment.
2008-08-17 12:13:59 +01:00
Peter O'Gorman
586dbaafe6 Compile with old compilers
Some compilers fail to compile non-constant struct initializers.
2008-08-17 11:42:48 +01:00
Chris Wilson
3998040c11 [cairo-cache] Simplify a status return to boolean.
_cairo_cache_remove_random() just returned whether it found an entry to
remove and so the code can be simplified by returning a boolean as opposed
to a status code.
2008-08-17 11:39:56 +01:00
Chris Wilson
841fe91c0e [ps] Promote char to an int to avoid valgrind warnings.
valgrind warns about an uninitialized read after a single char is promoted
to an int when passed to the printf. Silence the warning by using a
explicitly promoting the output byte to a full int.
2008-08-17 11:39:56 +01:00
Chris Wilson
db7e3cb854 [Makefile.am] Delete intermediates
Clean up after calling 'gcc -save-temps'.
2008-08-17 11:39:56 +01:00
Chris Wilson
67326b728b [gitignore] Ignore *.[is]
Playing with 'gcc -save-temps' understandably leaves behind large amounts
of clutter.
2008-08-17 11:39:56 +01:00
Chris Wilson
bafcbc633a [cairo-scaled-font] Check the most recently used font used first.
When searching for a matching font, check the most recently used font
first. This optimizes the common case where pango calls save() and restore()
around rendering each layout, but almost all consecutive layouts use the
same font.
2008-08-17 11:39:56 +01:00
Behdad Esfahbod
a1e5d40376 [doc] Another typo fix 2008-08-17 00:11:34 -04:00
Behdad Esfahbod
20d178c1c2 [doc] Fix typo 2008-08-16 21:27:03 -04:00
Chris Wilson
63befc6ab1 [xlib] Remove the key parameter from the close display hook.
By inspecting all the users of the close display hooks, we can see that
(a) the key is redundant and (b) the data is unique to the hook. This
means we can trim the interface and stop the linear searches as soon as
we've found the correct element.
2008-08-14 09:14:51 +01:00
Chris Wilson
84a541a041 [cairo-xlib-surface] Remove status return for SUCCESS only function.
Convert _cairo_xlib_surface_set_repeat() to a void return type, and
update caller, as the function can only return CAIRO_STATUS_SUCCESS.
2008-08-14 09:06:24 +01:00
Chris Wilson
2699a986d3 [cairo-gstate] Guard against unsetting the font unnecessary.
Only unset the current font if we change any of the font settings, i.e.
font_face, font_options, font_matrix and ctm.
2008-08-14 08:59:14 +01:00
Chris Wilson
8552e76ee5 [xlib] Fix leak of pending_free_glyphs on CloseDisplay.
Missing free of the pending_free_glyphs array in
_cairo_xlib_surface_remove_scaled_font.
2008-08-14 08:25:58 +01:00
Chris Wilson
c73b3e43e1 [cairo-surface] Check for the error surface in _get_font_options()
cairo_surface_get_font_options() has the side effect of initialising the
font options on the surface, but fails to check that the surface is
valid first. Therefore if we are passed a read-only error object, we will
trigger a segmentation fault.

Most likely this is the bug behind:
http://bugs.freedesktop.org/show_bug.cgi?id=17096.
2008-08-12 21:30:51 +01:00
Adrian Johnson
922df7fc23 Win32: Fix uninitialized variable 2008-08-12 07:34:24 +09:30
Chris Wilson
31565677db [pattern] Unbounded patterns should have infinite extents.
Fix a slight typo that produced negative sized extents instead of the
maximum.
2008-08-11 20:43:14 +01:00
Behdad Esfahbod
2c53acea0b [src/Makefile.am] Include missing header file 2008-08-11 13:54:26 -04:00
Behdad Esfahbod
6e4ed9ce84 Fix doc syntax 2008-08-11 01:44:54 -04:00
Behdad Esfahbod
f2db80bf9e [gstate] Revert Check for NULL font_face in _cairo_gstate_set_font_face
Revert commit b67d34e960.
cairo_set_font_face() is documented to accept NULL to restore default
font face.  Revert commit that made it reject NULL.
2008-08-10 23:39:44 -04:00
Chris Wilson
fef03ef98a [xlib] Check for depth == 0 in create_surface_internal().
Validate that we find an appropriate depth for the Xlib surface, before
attempting to create the surface. This was manifesting itself with
XInitImage() failures during _draw_image_surface() (actually detected as
a segmentation fault in XPutPixel() due to an incomplete XImage).  So we
also add a couple of asserts to ensure that XInitImage() is successful -
which to the best of our knowledge, they should always be.
2008-08-10 08:44:45 +01:00
Vladimir Vukicevic
ac2781ec08 [dfb] fix crashes due to cached glyphs going away during operation 2008-08-09 22:10:10 -07:00
Vladimir Vukicevic
7fbda72137 [dfb] optimize DirectFB blits 2008-08-09 22:10:06 -07:00
Vladimir Vukicevic
a097bafd28 [dfb] correctly handle case of 0 boxes in clip region 2008-08-09 22:10:05 -07:00
Vladimir Vukicevic
a0cfd9962f [dfb] Propagate clip correctly to surface returned from acquire_dest_image
If the internal buffer is wrapped in an image surface in acquire_dest_image,
that image surface needs the current clip region propagated to it.  If not,
then the clip needs to be applied at release_dest_image time.
2008-08-09 22:10:04 -07:00
Vladimir Vukicevic
71f010bb52 [dfb] convert RUN_CLIPPED macro to function with helpers
This helps with debugging and prepares the way for some future
code cleanup.
2008-08-09 22:10:02 -07:00
Adrian Johnson
bc4635f077 Update _cairo_scaled_font_subsets_map_glyph() docs 2008-08-10 14:24:48 +09:30
Adrian Johnson
4c83179418 Win32-printing: Fix Type 1 font printing so fallback is not used
Using glyph indices with Type 1 fonts on a printer DC does not work.
Previously there was a temporary fix where Type 1 fonts were printed
as filled paths.

Now that _cairo_scaled_font_subsets_map_glyph() provides the reverse
mapping of the glyph index fix this by converting the glyph indices
back to the unicode values when printing Type 1 fonts.
2008-08-10 14:24:16 +09:30
Adrian Johnson
b34c248b92 Fix _cairo_sub_font_map_glyph() to return correct unicode value 2008-08-10 14:18:52 +09:30
Adrian Johnson
d1c619bc7d win32-font: Make cairo_show_text() work again
For now implement _ucs4_to_index() and leave _text_to_glyphs()
disabled.
2008-08-10 14:17:01 +09:30
Behdad Esfahbod
5227897b17 Add note about zero-glyph clusters 2008-08-08 17:13:27 -04:00
Chris Wilson
49fb0e834e [matrix] Prefer a return parameter for _compute_determinant().
Returning a double tends to be slightly more efficient than passing a
pointer to fill, and is a lot easier to read.
2008-08-08 09:11:10 +01:00
Behdad Esfahbod
eabe572981 Document all new API
Also validate clusters generated by font backends.
2008-08-08 03:04:38 -04:00
Behdad Esfahbod
38c5f0d49b [scaled-font-subsets] Fix UTF-8 mapping
Prevously all show_text_glyphs() clusters were using ActualText.  This
fixes that.

I have a feeling that the following scenario is broken still though:

  - show_text_glyphs maps glyph 1 to some utf8 text different from
    what index_to_ucs4 will give for glyph 1.  This will assign the
    utf8 text to glyph 1's ToUnicode.

  - show_glyphs shows glyph 1.  Since cluster has no utf8 text, we
    won't use ActualText and fall back to ToUnicode.  But the ToUnicode
    value assigned to glyph 1 is non-standard now.  We should use
    ActualText.

I have not verified this hypothesis though.
2008-08-08 03:01:18 -04:00
Behdad Esfahbod
bc4d363e92 [pdf-operators] Add note about clusters with no glyphs 2008-08-08 03:01:18 -04:00
Behdad Esfahbod
1bc404e346 Make utf8 handling in font subsets more consistent 2008-08-08 03:01:17 -04:00
Behdad Esfahbod
849159ddd1 [truetype] Fix gcc warning about possibly-infinite-loops 2008-08-08 03:01:17 -04:00