diff options
| author | Kees Cook <kees@outflux.net> | 2007-12-10 05:29:23 +0000 |
|---|---|---|
| committer | keescook <keescook@users.sourceforge.net> | 2007-12-10 05:29:23 +0000 |
| commit | 3bbfb29347465809918421d6dafcd5c0816935e1 (patch) | |
| tree | eb280d39803051efd86b1f496bfe130afa42787f /src/extension | |
| parent | always build cairo backend; add interface for setting cairo surface to renderer (diff) | |
| download | inkscape-3bbfb29347465809918421d6dafcd5c0816935e1.tar.gz inkscape-3bbfb29347465809918421d6dafcd5c0816935e1.zip | |
Implement cross-architecture print dialog using cairo and PNG backends.
(bzr r4199)
Diffstat (limited to 'src/extension')
| -rw-r--r-- | src/extension/internal/cairo-render-context.cpp | 9 | ||||
| -rw-r--r-- | src/extension/internal/cairo-render-context.h | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 8f106f55f..8511973e4 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -647,6 +647,10 @@ CairoRenderContext::addClippingRect(double x, double y, double width, double hei bool CairoRenderContext::setupSurface(double width, double height) { + // Is the surface already set up? + if (_is_valid) + return true; + if (_vector_based_target && _stream == NULL) return false; @@ -674,11 +678,12 @@ CairoRenderContext::setupSurface(double width, double height) } bool -CairoRenderContext::setSurface(cairo_surface_t *surface) +CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector) { if (_is_valid || !surface) return false; + _vector_based_target = is_vector; bool ret = _finishSurfaceSetup (surface); if (ret) cairo_surface_reference (surface); @@ -724,7 +729,7 @@ CairoRenderContext::finish(void) _is_valid = FALSE; - if (_vector_based_target) { + if (_vector_based_target && _stream) { /* Flush stream to be sure. */ (void) fflush(_stream); diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h index ff7ebec7f..e3cbbad8a 100644 --- a/src/extension/internal/cairo-render-context.h +++ b/src/extension/internal/cairo-render-context.h @@ -83,13 +83,13 @@ public: bool setImageTarget(cairo_format_t format); bool setPdfTarget(gchar const *utf8_fn); bool setPsTarget(gchar const *utf8_fn); + /** Set the cairo_surface_t from an external source */ + bool setSurfaceTarget(cairo_surface_t *surface, bool is_vector); /** Creates the cairo_surface_t for the context with the given width, height and with the currently set target surface type. */ bool setupSurface(double width, double height); - /** Set the cairo_surface_t from an external source */ - bool setSurface(cairo_surface_t *surface); cairo_surface_t *getSurface(void); |
