diff options
author | mh0310.choi <mh0310.choi@samsung.com> | 2015-07-28 10:46:57 +0900 |
---|---|---|
committer | mh0310.choi <mh0310.choi@samsung.com> | 2015-07-28 13:08:12 +0900 |
commit | 5e67a6f721eaedda61300baf0799199c7771ebd0 (patch) | |
tree | 6cd50b52498aab50e79b966cdccc2a137db316d9 /src/cairo-skia-surface.cpp | |
parent | d3aeffba37161d2b76b29c4ea13369bd67a47a8e (diff) | |
download | cairo-5e67a6f721eaedda61300baf0799199c7771ebd0.tar.gz cairo-5e67a6f721eaedda61300baf0799199c7771ebd0.tar.bz2 cairo-5e67a6f721eaedda61300baf0799199c7771ebd0.zip |
Cairo version Upgrade for Tizen3.0submit/tizen_tv/20150728.091927submit/tizen_mobile/20150728.091912submit/tizen_common/20150728.091859accepted/tizen/tv/20150729.011254accepted/tizen/mobile/20150729.011230
- from 1.12.14 to 1.14.2
Change-Id: I3b62d212041b337bbb926d579f9ce74f42a45c3b
Diffstat (limited to 'src/cairo-skia-surface.cpp')
-rw-r--r--[-rwxr-xr-x] | src/cairo-skia-surface.cpp | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/src/cairo-skia-surface.cpp b/src/cairo-skia-surface.cpp index bf6b14a5e..0282c2b51 100755..100644 --- a/src/cairo-skia-surface.cpp +++ b/src/cairo-skia-surface.cpp @@ -51,6 +51,27 @@ #include <SkGradientShader.h> #include <SkDashPathEffect.h> +/** + * SECTION:cairo-skia + * @Title: Skia Surfaces + * @Short_Description: Rendering to Skia surfaces + * @See_Also: #cairo_surface_t + * + * 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. + **/ + +/** + * CAIRO_HAS_SKIA_SURFACE: + * + * Defined if the Skia surface backend is available. + * This macro can be used to conditionally compile backend-specific code. + * + * Since: 1.10 + **/ + #if (CAIRO_FIXED_BITS == 32) && (CAIRO_FIXED_FRAC_BITS == 16) && defined(SK_SCALAR_IS_FIXED) # define CAIRO_FIXED_TO_SK_SCALAR(x) (x) #elif defined(SK_SCALAR_IS_FIXED) @@ -64,13 +85,20 @@ # define CAIRO_INT_STATUS_SUCCESS ((cairo_int_status_t) CAIRO_STATUS_SUCCESS) #endif -#define CAIRO_MAYBE_UNSUPPORTED CAIRO_INT_STATUS_UNSUPPORTED -//#define CAIRO_MAYBE_UNSUPPORTED _skia_unsupported () +#define DEBUG_SKIA 0 + +#if DEBUG_SKIA +#define UNSUPPORTED(reason) ({ \ + fprintf (stderr, \ + "cairo-skia : hit unsupported operation in %s(), line %d: %s\n", \ + __FUNCTION__, __LINE__, reason); \ + return CAIRO_INT_STATUS_UNSUPPORTED; \ +}) +#else +#define UNSUPPORTED(reason) ({ \ + return CAIRO_INT_STATUS_UNSUPPORTED; \ +})#endif -static cairo_int_status_t _skia_unsupported () { - printf ("unsupported!\n"); - return CAIRO_INT_STATUS_UNSUPPORTED; -} typedef struct cairo_skia_surface { cairo_surface_t base; @@ -542,8 +570,7 @@ _cairo_skia_surface_create_similar (void *asurface, if (! format_to_sk_config (_cairo_format_from_content (content), config, opaque)) { - _skia_unsupported (); - return NULL; + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); } return &_cairo_skia_surface_create_internal (config, opaque, @@ -781,7 +808,7 @@ _cairo_skia_surface_paint (void *asurface, shader = pattern_to_sk_shader (surface, source, &image, &image_extra); if (!bitmap && !shader) - return CAIRO_MAYBE_UNSUPPORTED; + return UNSUPPORTED("pattern to bitmap and shader conversion"); SkPaint paint; paint.setFilterBitmap (pattern_filter_to_sk (source)); @@ -838,7 +865,7 @@ _cairo_skia_surface_stroke (void *asurface, SkShader *shader = pattern_to_sk_shader (surface, source, &image, &image_extra); if (shader == NULL) - return CAIRO_MAYBE_UNSUPPORTED; + return UNSUPPORTED("pattern to shader conversion"); paint.setShader (shader); shader->unref (); @@ -941,7 +968,7 @@ _cairo_skia_surface_fill (void *asurface, SkShader *shader = pattern_to_sk_shader (surface, source, &image, &image_extra); if (shader == NULL) - return CAIRO_MAYBE_UNSUPPORTED; + return UNSUPPORTED("pattern to shader conversion"); paint.setShader (shader); shader->unref (); |