summaryrefslogtreecommitdiff
path: root/boilerplate
AgeCommit message (Collapse)AuthorFilesLines
2010-02-12boilerplate: Include X11.h for GL/GLXChris Wilson1-0/+3
2010-02-11gl: Remove eagle supportChris Wilson1-10/+0
Eagle is no more, Kristian has superseded it with true EGL support. He is so happy...
2010-02-05[gl] When making a boilerplate GLX window, ensure it has alpha.Eric Anholt1-8/+9
cairo_gl_surface_create_for_window assumes CONTENT_COLOR_ALPHA, so make sure the fbconfig we choose is good enough. Fixes gl-window testcase results to basically match the non-window testcases.
2010-01-27build: Remove glitz surfaceBenjamin Otte6-672/+0
glitz is unmaintained and the GL surface is far superior anyway.
2010-01-25xcb: Make shm optionalChris Wilson1-0/+10
Trying to build xcb on a system without SHM wrapped by xcb. The right answer would be to build libxcb-shm. The quick answer is to compile out shm support.
2010-01-22xcb: Refresh.Chris Wilson2-25/+517
Still an experimental backend, it's now a little too late to stabilise for 1.10, but this should represent a major step forward in its feature set and an attempt to catch up with all the bug fixes that have been performed on xlib. Notably not tested yet (and expected to be broken) are mixed-endian connections and low bitdepth servers (the dithering support has not been copied over for instance). However, it seems robust enough for daily use... Of particular note in this update is that the xcb surface is now capable of subverting the xlib surface through the ./configure --enable-xlib-xcb option. This replaces the xlib surface with a proxy that forwards all operations to an equivalent xcb surface whilst preserving the cairo-xlib API that is required for compatibility with the existing applications, for instance GTK+ and Mozilla. Also you can experiment with enabling a DRM bypass, though you need to be extremely foolhardy to do so.
2010-01-22drm: Add backends for i915 and i965.Chris Wilson1-1/+1
As proof-of-principle add the nearly working demonstrations of using DRM to render directly with the GPU bypassing both RENDER and GL for performance whilst preserving high quality rendering. The basis behind developing these chip specific backends is that this is the idealised interface that we desire for this chips, and so a target for cairo-gl as we continue to develop both it and our GL stack. Note that this backends do not yet fully pass the test suite, so only use if you are brave and willing to help develop them further.
2010-01-22qt: Trivial compile fix for boilerplate.Chris Wilson1-0/+2
2010-01-22gl: Exercise Window destinations with boilerplateChris Wilson1-0/+99
Add a gl-window boilerplate target to exercise using GL to render to a visible Drawable -- for instance, a window has a different coordinate system to a framebuffer...
2010-01-22gl: Port to cairo_device_tChris Wilson1-10/+18
2010-01-22script: Port cairo_script_context_t to cairo_device_tChris Wilson2-6/+6
Use the unifying cairo_device_t for cairo_script_context_t and replace.
2010-01-22configure: Globally define AC_GNU_SOURCEChris Wilson2-0/+8
We were using _GNU_SOURCE throughout the codebase, so simply define it once during configure. This is the easiest method to enable recursive mutexes using pthreads, as required in a pending patch.
2009-11-29[dirty] Add more missing surface dirtying notifications.M Joonas Pihlaja1-0/+1
Now that the image surface actually cares about cairo_surface_mark_dirty() we're hitting cases where we've forgotten to mark surfaces dirty.
2009-10-22[meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.M Joonas Pihlaja8-44/+44
The new name is more descriptive than the rather opaque meta surface. Discussed with vigour on the mailing list and #cairo: http://lists.cairographics.org/archives/cairo/2009-July/017571.html
2009-09-30[boilerplate/xcb] Fix pixmap depthChris Wilson1-3/+16
All the error checking, finally pointed out that I was creating a pixmap with the wrong depth! Oops.
2009-09-30[xcb] Deferred error checking.Chris Wilson1-0/+17
XCB avoids the dreaded abort on XError mechanism by forcing the client to perform deferred error checking. So do so. This allows us to combine the fire-and-forget rendering model with accurate error checking, without killing the client or mixing our errors with theirs. XCB for the win!
2009-09-30[boilerplate/xcb] Check for connection errors during testChris Wilson1-11/+40
2009-09-14[build] Check for dlsym in both libdl and libc.M Joonas Pihlaja1-2/+2
The BSDs have dlsym() in libc rather than libdl.
2009-09-14[build] Add a default message for when GLEW isn't builtChris Wilson1-8/+0
And it appears I touched the build system again and autoregenerated the feature headers.
2009-09-14Add a private copy of GLEWChris Wilson1-0/+8
This appears to be the simplest mechanism to build libglew at the moment - should a system copy be unavailable. Fortunately libglew is now distributed under a permissive licence. If you want to pass 'make -C src check' you have to use the system copy, or spend quite a bit of time cairo-fying libglew.
2009-09-13[configure] --enable-symbol-lookupChris Wilson1-0/+7
There you go Joonas, I don't always ignore your suggestions! This is simple patch to allow the user to disable symbol loops in case the auto-detection fails on some obscure (perhaps OpenBSD) platform. Or in case the user really wants to trim a few bytes from a library only used during tracing!
2009-09-08[build] Improve handling of missing test apparatusChris Wilson4-0/+13
Improve detection, reporting and disabling of test backends when we lack the required libraries and utilities.
2009-09-05[configure] Add option to disable trace.Chris Wilson1-0/+7
Some environments may be broken beyond our capabilities to detect, or maybe the user is just insane and doesn't want to build my nice shiny cairo-trace. Whatever, give them the option to choose: $ ./configure --disable-trace
2009-09-05[boilerplate] Support wildcard ? in CAIRO_TEST_TARGET{,_EXCLUDE}.M Joonas Pihlaja1-4/+6
Useful for running tests only for a given content type.
2009-09-05[boilerplate] Support giving content in CAIRO_TEST_TARGET{,_EXCLUDE}.M Joonas Pihlaja1-4/+57
Sometimes it's convenient to run the regression or performance tests against a given target with a given content. Now we accept an optional content specifier as a suffix .<content> on a target name, where <content> is rgb or rgba.
2009-09-03[boilerplate] Handle errors whilst creating GL surfaceChris Wilson1-5/+6
2009-09-02[boilerplate/test] Use numerical equality not string equalityChris Wilson1-1/+1
test == != -eq
2009-09-02[constructors] Guard against being called without any input files.M Joonas Pihlaja1-1/+6
The make-cairo-(test|boilerplate)-constructors scripts ought never to be called without arguments lest we are left constructorless.
2009-09-01[boilerplate] Use xlib as fallback reference for xcbChris Wilson1-1/+12
And exercise RGB code-paths.
2009-08-29[boilerplate] Runtime library checkChris Wilson21-3/+78
For the purposes of benchmarking it is useful to run cairo-perf against a different library from the one it was compiled against. In order to do so, we need to check that the runtime library contains the required entry points for our targets - which we can check by using dlsym.
2009-08-29Add skia backendVladimir Vukicevic3-0/+61
Originally written by Vladimir Vukicevic to investigate using Skia for Mozilla, it provides a nice integration with a rather interesting code base. By hooking Skia underneath Cairo it allows us to directly compare code paths... which is interesting. [updated by Chris Wilson]
2009-08-29Add xml surfaceChris Wilson1-0/+10
A very simple surface that produces a hierarchical DAG in a simple XML format. It is intended to be used whilst debugging, for example with the automatic regression finding tools of cairo-sphinx, and with test suites that just want to verify that their code made a particular Cairo call.
2009-08-29Introduce cairo_tee_surface_tChris Wilson1-0/+8
Add a new surface type that multiplies it input onto several output surfaces. The only limitation is that it requires a master surface that is used whenever we need to query surface options, such as font options and extents.
2009-08-29[script] Emit surface contentChris Wilson1-1/+1
Include the desired content with the creation info.
2009-08-29[script] Introduce cairo_script_context_tChris Wilson2-23/+8
cairo_script_context_t is an encapsulation object for interfacing with the output - multiple surfaces can share the same context, meaning that they write to the same destination file/stream.
2009-08-06[boilerplate/test] Convert make-*-constructors to shellChris Wilson3-176/+28
Remove the intermediate C program that was a nuisance whilst cross-compiling and replace it with a simple shell script that is just a combination of cat + sed.
2009-07-31[boilerplate] Conditionally tweak the xlib surfaceChris Wilson1-2/+8
Prior to introduction of the buggy members to the surface, we obviously cannot set them. However, the boilerplate code is meant to compile against older revisions of the library so we need to check for the existence prior to use.
2009-07-31[boilerplate] Update fallbacks after disabling RENDERChris Wilson1-0/+5
The xlib surface caches flags based on RENDER version, so after disabling render to force fallbacks, we need to ensure that the flags are reset.
2009-07-24[boilerplate] Fix compilation against old revisions (as old as 1.9.2!)Chris Wilson6-16/+44
2009-07-23[drm] Add an accelerated image surface.Chris Wilson3-0/+113
Use the DRM interface to h/w accelerate composition on image surfaces. The purpose of the backend is simply to explore what such a hardware interface might look like and what benefits we might expect. The use case that might justify writing such custom backends are embedded devices running a drm compositor like wayland - which would, for example, allow one to write applications that seamlessly integrated accelerated, dynamic, high quality 2D graphics using Cairo with advanced interaction (e.g. smooth animations in the UI) driven by a clutter framework... In this first step we introduce the fundamental wrapping of GEM for intel and radeon chipsets, and, for comparison, gallium. No acceleration, all we do is use buffer objects (that is use the kernel memory manager) to allocate images and simply use the fallback mechanism. This provides a suitable base to start writing chip specific drivers.
2009-07-23Remove clip handling from generic surface layer.Chris Wilson8-105/+128
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 ▏
2009-07-23[vg] Compile fixes for EGL boilerplateChris Wilson1-10/+9
2009-07-21Merge commit 'anholt/gl'Chris Wilson3-1/+183
Conflicts: boilerplate/Makefile.sources boilerplate/cairo-boilerplate.c build/configure.ac.features src/cairo.h util/cairo-script/Makefile.am
2009-07-20Cross-compilation fix for boilerplate/testPierre Tardy1-1/+1
2009-07-17Add OpenVG backend.Chris Wilson3-0/+381
Based on the work by Øyvind Kolås and Pierre Tardy -- many thanks to Pierre for pushing this backend for inclusion as well as testing and reviewing my initial patch. And many more thanks to pippin for writing the backend in the first place! Hacked and chopped by myself into a suitable basis for a backend. Quite a few issues remain open, but would seem to be ready for testing on suitable hardware.
2009-07-15Fix build under distcheckChris Wilson2-11/+18
Need to play a little dance to get the sources included and paths correct whilst building source files with objdir != srcdir under distcheck.
2009-07-14[boilerplate] Add make-...-constructors to .gitignoreChris Wilson1-0/+1
2009-07-05[boilerplate] Add missing header file.Chris Wilson1-0/+49
Deleted so many, and forgot to add just this little one. Sigh.
2009-07-04Remove the defunct test-meta surfaceChris Wilson2-38/+35
Replace the internal test-meta surface will the freshly exported, real meta-surface.
2009-07-04[boilerpate] Move target definition to backends.Chris Wilson35-1579/+931
By moving the backend target definition out of the massive amlagamated block in cairo-boilerplate.c and into each of the cairo-boilerplate-backend.c, we make it much easier to add new targets as the information need only be entered in a single file and not scattered across three. However, updating the target interface means trawling across all the files -- except given that I found it difficult maintaining the single massive array I do not see this as an increase in the maintenance burden.