summaryrefslogtreecommitdiff
path: root/src/cairo-region-private.h
Commit message (Collapse)AuthorAgeFilesLines
* Add preliminary damage trackingChris Wilson2012-02-151-0/+6
| | | | | | | | This is initially based around the requirements for handling internal fallbacks to the image compositor and reducing the number of pixels required to be transferred. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* region: _cairo_region_create_in_error()Chris Wilson2010-05-101-0/+3
| | | | | Avoid leaks when reporting memfault associated with constructing regions.
* Update FSF addressAndrea Canciani2010-04-271-1/+1
| | | | | | | | | | | I updated the Free Software Foundation address using the following script. for i in $(git grep Temple | cut -d: -f1 ) do sed -e 's/59 Temple Place[, -]* Suite 330, Boston, MA *02111-1307[, ]* USA/51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA/' -i "$i" done Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21356
* [traps] Compute extents on demand.Chris Wilson2009-08-291-5/+0
|
* Remove clip handling from generic surface layer.Chris Wilson2009-07-231-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handling clip as part of the surface state, as opposed to being part of the operation state, is cumbersome and a hindrance to providing true proxy surface support. For example, the clip must be copied from the surface onto the fallback image, but this was forgotten causing undue hassle in each backend. Another example is the contortion the meta surface endures to ensure the clip is correctly recorded. By contrast passing the clip along with the operation is quite simple and enables us to write generic handlers for providing surface wrappers. (And in the future, we should be able to write more esoteric wrappers, e.g. automatic 2x FSAA, trivially.) In brief, instead of the surface automatically applying the clip before calling the backend, the backend can call into a generic helper to apply clipping. For raster surfaces, clip regions are handled automatically as part of the composite interface. For vector surfaces, a clip helper is introduced to replay and callback into an intersect_clip_path() function as necessary. Whilst this is not primarily a performance related change (the change should just move the computation of the clip from the moment it is applied by the user to the moment it is required by the backend), it is important to track any potential regression: ppc: Speedups ======== image-rgba evolution-20090607-0 1026085.22 0.18% -> 672972.07 0.77%: 1.52x speedup ▌ image-rgba evolution-20090618-0 680579.98 0.12% -> 573237.66 0.16%: 1.19x speedup ▎ image-rgba swfdec-fill-rate-4xaa-0 460296.92 0.36% -> 407464.63 0.42%: 1.13x speedup ▏ image-rgba swfdec-fill-rate-2xaa-0 128431.95 0.47% -> 115051.86 0.42%: 1.12x speedup ▏ Slowdowns ========= image-rgba firefox-periodic-table-0 56837.61 0.78% -> 66055.17 3.20%: 1.09x slowdown ▏
* [region] Move region function prototypes to cairo.h along with helper types.Søren Sandmann2009-03-281-128/+0
| | | | | | Move struct _cairo_region to cairoint.h and delete cairo-region-private.h. Delete cairo_private from the function definitions that had it.
* [region] Remove underscores from _cairo_region_*Søren Sandmann2009-03-281-18/+18
|
* [region] Add _cairo_region_contains_point()Søren Sandmann2009-03-281-1/+4
|
* [region] Add _cairo_region_unionSøren Sandmann Pedersen2009-03-281-0/+4
|
* [region] Add a cairo_region_overlap_t typeSøren Sandmann Pedersen2009-03-281-1/+7
|
* [region] Consistently use rectangles in the API of regionsSøren Sandmann Pedersen2009-03-281-7/+7
| | | | | | | | | | | Usually, rectangles are more useful than boxes, so regions should only expose rectangles in their public API. Specifically, _cairo_region_num_boxes becomes _cairo_region_num_rectangles _cairo_region_get_box becomes _cairo_region_get_rectangle Remove the cairo_box_int_t type
* [region] Change sense of _cairo_region_not_empty() to _cairo_region_empty()Søren Sandmann2009-03-281-1/+1
| | | | Having "not" in the name causes double negatives.
* [region] Make cairo_region_t a malloced object.Søren Sandmann2009-03-281-20/+22
|
* Delete _cairo_region_get_boxes() in favor of _cairo_region_get_box()Søren Sandmann2009-02-151-7/+3
| | | | | | | The _cairo_region_get_boxes() interface was difficult to use and often caused unnecessary memory allocation. With _cairo_region_get_box() it is possible to access the boxes of a region without allocating a big temporary array.
* Review users of cairo_rectangle_int_t for incorrect unsigned promotion.Chris Wilson2008-10-301-1/+2
| | | | | | Adrian Johnson discovered cases where we mistakenly compared the result of unsigned arithmetic where we need signed quantities. Look for similar cases in the users of cairo_rectangle_int_t.
* Make sure (and check) that all private headers include some cairo header firstBehdad Esfahbod2008-09-191-2/+6
| | | | | | | | | | | | | | | The macros CAIRO_BEGIN_DECLS and CAIRO_END_DECLS are declared in two places: config.h and cairo.h. On Win32 build there is no config.h. So, we can't rely on pulling CAIRO_BEGIN_DECLS from there. Hence, we now: * Not add those declarations to config.h anymore, * Test that every cairo private header includes some other cairo header before any other includes. These two are fairly enough to ensure that cairo.h is seen from all private headers. There's still the case of headers not including any header file at all. I'll fix that later.
* Revamp the build system.Behdad Esfahbod2008-09-021-0/+1
| | | | | | | | | | | | | | | | | Quick summary of changes: - Move list of cairo source files out of src/Makefile.am and into src/Sources.mk, - Generate files src/Config.mk and src/Config.mk.win32 that choose the right set of source files and headers based on configured backends and features. This drastically simplifies building using other build systems. The src/Makefile.win32 file needs to be updated to reflect these changes. - Add README files to various directories, - Add toplevel HACKING file.
* Use 32 bit pixman regions for cairo_region_tSøren Sandmann2008-06-101-1/+1
|
* [doc] Stricter syntax check for type names, update testBehdad Esfahbod2008-01-281-1/+1
|
* Move GCC attributes wrapping into a separate header.Chris Wilson2007-09-251-0/+2
| | | | | | | The wrapping of GCC attributes (such as cairo_private) needs to be visible to any header file, including those that avoid cairoint.h such as cairo-boilerplate. To achieve this we move the pre-processor magic to its own header file and include it as required.
* Remove include of cairoint.h from *-private.h header files.Carl Worth2007-08-231-2/+0
| | | | | | | | | | | | These were recently added, (as part of sparse integration?), but they break boilerplate which reaches into at least cairo-types-private.h and cairo-scaled-font-private.h. But boilerplate cannot see cairoint.h or else it gets the internal sybol renaming, (with the INT_ prefix), and then all the test suite tests refuse to link. If this change reverts some recently-added functionality, (or cleanliness), then we'll just need to find some other way to add that back again without the breakage.
* [Makefile.am] Add target sparse to run sparse static source code analyzerBehdad Esfahbod2007-08-221-0/+2
| | | | There are still some bits not quite working.
* PS: Add finer-grained image fallback supportAdrian Johnson2007-08-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | The analysis surface now keeps track of two regions: supported operations, and unsupported operations. If the target surface returns CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY, the analysis surface will check if any previous operation intersects with this operation. If there is nothing previously drawn under the operation, the status is changed to supported. The meta surface has two new functions: _cairo_meta_surface_replay_region() _cairo_meta_surface_replay_and_create_regions() During the analysis stage, the paginated surface replays the meta surface using _cairo_meta_surface_replay_and_create_regions(). The return status from each analyzed operation is saved in the meta surface. The _cairo_meta_surface_replay_region() function allows only operations from either the supported or unsupported region to be replayed. This allows the paginated surface to replay only the supported operations before emitting a fallback image for each rectangle in the unsupported region.
* Bump pixman dependency to 0.9.4Søren Sandmann Pedersen2007-08-061-1/+1
| | | | Also print the download location if the library wasn't found.
* [fixpt] Fix up compilation post pixman mergeVladimir Vukicevic2007-07-181-1/+1
|
* [fixpt] Create cairo_region wrapper around pixman_region16_tVladimir Vukicevic2007-07-181-0/+105
Insulate region-using code from implementation details; at some point we'll want to switch to using 32-bit regions.