Commit graph

5502 commits

Author SHA1 Message Date
Chris Wilson
f85a4aec1f [test] Export a function to check whether a target is enabled.
Allow individuals tests to check whether a test target is enabled -
useful for those tests that circumvent cairo_test() and perform
feature testing.
2008-08-13 21:55:09 +01:00
Chris Wilson
436c0c8be2 [test] Preparatory work for running under memfault.
In order to run under memfault, the framework is first extended to handle
running concurrent tests - i.e. multi-threading. (Not that this is a
requirement for memfault, instead it shares a common goal of storing
per-test data).  To that end all the global data is moved into a per-test
context and the targets are adjusted to avoid overlap on shared, global
resources (such as output files and frame buffers). In order to preserve
the simplicity of the standard draw routines, the context is not passed
explicitly as a parameter to the routines, but is instead attached to the
cairo_t via the user_data.

For the masochist, to enable the tests to be run across multiple threads
simply set the environment variable CAIRO_TEST_NUM_THREADS to the desired
number.

In the long run, we can hope the need for memfault (runtime testing of
error paths) will be mitigated by static analysis. A promising candidate
for this task would appear to be http://hal.cs.berkeley.edu/cil/.
2008-08-13 21:54:59 +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
Chris Wilson
5ace0cb17a [cairo-test] Exclude lcd-filter tests for vector targets.
Add text-lcd-filter-* to vector_ignored_tests.
2008-08-11 20:43:14 +01:00
Behdad Esfahbod
52a8e52869 [RELEASING] Document how to release with failing tests 2008-08-11 15:28:04 -04:00
Behdad Esfahbod
75acb51a09 [configure.in] Post release version increment to 1.7.5 2008-08-11 15:19:28 -04:00
Behdad Esfahbod
012a12a67b [configure.in,NEWS] Release 1.7.4 2008-08-11 15:06:31 -04:00
Behdad Esfahbod
b176b5c29d [test/get-xrender-format.c] Don't fail if DISPLAY is not set 2008-08-11 15:06:31 -04:00
Behdad Esfahbod
bbd5f03fd8 [test/xlib-surface-source] Skip test if DISPLAY not set 2008-08-11 14:28:28 -04:00
Behdad Esfahbod
5d307b58b9 [doc] More template changes. Donno why they keep changing. 2008-08-11 13:54:39 -04:00
Behdad Esfahbod
2c53acea0b [src/Makefile.am] Include missing header file 2008-08-11 13:54:26 -04:00
Behdad Esfahbod
0e8afe87ec [RELEASING] Mention git-shortlog 2008-08-11 13:09:46 -04:00
Behdad Esfahbod
c627356460 [configure.in] Increment version to 1.7.3 post release 2008-08-11 12:12:32 -04:00
Behdad Esfahbod
057a832f9e [configure.in,NEWS] Release 1.7.2 2008-08-11 11:51:18 -04:00
Behdad Esfahbod
3dc2fc4cd9 [doc] Update templates 2008-08-11 04:46:20 -04:00
Chris Wilson
d266648276 [configure.in] Revert addition of MACRO_DIR()
Without it we get a three line warning under Ubuntu. However, it just
causes more problems than it is worth with older autoconf/automake.
2008-08-11 08:40:22 +01:00
Behdad Esfahbod
d073b6f145 [RELEASING] Update for cairo-features-win32.h 2008-08-11 01:58:32 -04:00
Behdad Esfahbod
177729ba93 [ChangeLog.mk] Revert 21ab44f11d
That commit made the ChangeLog regenration rule to depend on .git/HEAD,
not .git/.  However, the contents and timestamp of that file does not
change when you commit something locally.  Hence, ChangeLog could remain
stale.  Depending on .git/ does the job.
2008-08-11 01:54:21 -04:00
Behdad Esfahbod
650a6a3276 [RELEASING] Easier to see API diff than log 2008-08-11 01:48:10 -04:00
Behdad Esfahbod
6e4ed9ce84 Fix doc syntax 2008-08-11 01:44:54 -04:00
Behdad Esfahbod
591d5160f8 [RELEASING] Update for external pixman 2008-08-11 01:41:37 -04:00
Behdad Esfahbod
549dd9adb5 [test] Update ref image list 2008-08-11 01:40:27 -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
Behdad Esfahbod
e797f6791e [test/Makefil.am] Cosmetic 2008-08-10 23:39:28 -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
Adrian Johnson
c014e51dc9 NEWS: Win32 font backend has been fixed 2008-08-10 14:49:30 +09:30
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
e9933ba28c [NEWS] Add some notes about recent happenings 2008-08-08 17:13:27 -04:00
Behdad Esfahbod
8f6e52b068 [doc] Add short user-font section docs 2008-08-08 17:13:27 -04:00
Behdad Esfahbod
5227897b17 Add note about zero-glyph clusters 2008-08-08 17:13:27 -04:00
Chris Wilson
322c3ef7f9 [.gitignore] Update list of tests 2008-08-08 10:09:55 +01:00
Chris Wilson
893b50a980 [test] Update reference image for leaky-dashed-rectangle.
Bah, it seems someone fixed the code and the error lay in discrepancies
with the antialiasing in the reference image.
2008-08-08 10:09:37 +01: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
08e8a42ea1 [test/user-font] Fix comments 2008-08-08 03:01:18 -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
Behdad Esfahbod
178789c37a [cairo-scaled-font-subsets] Make utf8 handling more robust 2008-08-08 03:01:17 -04:00