LCOV - code coverage report
Current view: top level - gfx/cairo/cairo/src - cairo-gstate-private.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 8 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* cairo - a vector graphics library with display and print output
       2             :  *
       3             :  * Copyright © 2005 Red Hat, Inc.
       4             :  *
       5             :  * This library is free software; you can redistribute it and/or
       6             :  * modify it either under the terms of the GNU Lesser General Public
       7             :  * License version 2.1 as published by the Free Software Foundation
       8             :  * (the "LGPL") or, at your option, under the terms of the Mozilla
       9             :  * Public License Version 1.1 (the "MPL"). If you do not alter this
      10             :  * notice, a recipient may use your version of this file under either
      11             :  * the MPL or the LGPL.
      12             :  *
      13             :  * You should have received a copy of the LGPL along with this library
      14             :  * in the file COPYING-LGPL-2.1; if not, write to the Free Software
      15             :  * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
      16             :  * You should have received a copy of the MPL along with this library
      17             :  * in the file COPYING-MPL-1.1
      18             :  *
      19             :  * The contents of this file are subject to the Mozilla Public License
      20             :  * Version 1.1 (the "License"); you may not use this file except in
      21             :  * compliance with the License. You may obtain a copy of the License at
      22             :  * http://www.mozilla.org/MPL/
      23             :  *
      24             :  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
      25             :  * OF ANY KIND, either express or implied. See the LGPL or the MPL for
      26             :  * the specific language governing rights and limitations.
      27             :  *
      28             :  * The Original Code is the cairo graphics library.
      29             :  *
      30             :  * The Initial Developer of the Original Code is Red Hat, Inc.
      31             :  *
      32             :  * Contributor(s):
      33             :  *      Carl D. Worth <cworth@redhat.com>
      34             :  */
      35             : 
      36             : #ifndef CAIRO_GSTATE_PRIVATE_H
      37             : #define CAIRO_GSTATE_PRIVATE_H
      38             : 
      39             : #include "cairo-clip-private.h"
      40             : 
      41             : struct _cairo_gstate {
      42             :     cairo_operator_t op;
      43             : 
      44             :     double tolerance;
      45             :     cairo_antialias_t antialias;
      46             : 
      47             :     cairo_stroke_style_t stroke_style;
      48             : 
      49             :     cairo_fill_rule_t fill_rule;
      50             : 
      51             :     cairo_font_face_t *font_face;
      52             :     cairo_scaled_font_t *scaled_font;   /* Specific to the current CTM */
      53             :     cairo_scaled_font_t *previous_scaled_font;  /* holdover */
      54             :     cairo_matrix_t font_matrix;
      55             :     cairo_font_options_t font_options;
      56             : 
      57             :     cairo_clip_t clip;
      58             : 
      59             :     cairo_surface_t *target;            /* The target to which all rendering is directed */
      60             :     cairo_surface_t *parent_target;     /* The previous target which was receiving rendering */
      61             :     cairo_surface_t *original_target;   /* The original target the initial gstate was created with */
      62             : 
      63             :     /* the user is allowed to update the device after we have cached the matrices... */
      64             :     cairo_observer_t device_transform_observer;
      65             : 
      66             :     cairo_matrix_t ctm;
      67             :     cairo_matrix_t ctm_inverse;
      68             :     cairo_matrix_t source_ctm_inverse; /* At the time ->source was set */
      69             :     cairo_bool_t is_identity;
      70             : 
      71             :     cairo_pattern_t *source;
      72             : 
      73             :     struct _cairo_gstate *next;
      74             : };
      75             : 
      76             : /* cairo-gstate.c */
      77             : cairo_private cairo_status_t
      78             : _cairo_gstate_init (cairo_gstate_t  *gstate,
      79             :                     cairo_surface_t *target);
      80             : 
      81             : cairo_private void
      82             : _cairo_gstate_fini (cairo_gstate_t *gstate);
      83             : 
      84             : cairo_private cairo_status_t
      85             : _cairo_gstate_save (cairo_gstate_t **gstate, cairo_gstate_t **freelist);
      86             : 
      87             : cairo_private cairo_status_t
      88             : _cairo_gstate_restore (cairo_gstate_t **gstate, cairo_gstate_t **freelist);
      89             : 
      90             : cairo_private cairo_bool_t
      91             : _cairo_gstate_is_redirected (cairo_gstate_t *gstate);
      92             : 
      93             : cairo_private cairo_status_t
      94             : _cairo_gstate_redirect_target (cairo_gstate_t *gstate, cairo_surface_t *child);
      95             : 
      96             : cairo_private cairo_surface_t *
      97             : _cairo_gstate_get_target (cairo_gstate_t *gstate);
      98             : 
      99             : cairo_private cairo_surface_t *
     100             : _cairo_gstate_get_parent_target (cairo_gstate_t *gstate);
     101             : 
     102             : cairo_private cairo_surface_t *
     103             : _cairo_gstate_get_original_target (cairo_gstate_t *gstate);
     104             : 
     105             : cairo_private cairo_clip_t *
     106             : _cairo_gstate_get_clip (cairo_gstate_t *gstate);
     107             : 
     108             : cairo_private cairo_status_t
     109             : _cairo_gstate_set_source (cairo_gstate_t *gstate, cairo_pattern_t *source);
     110             : 
     111             : cairo_private cairo_pattern_t *
     112             : _cairo_gstate_get_source (cairo_gstate_t *gstate);
     113             : 
     114             : cairo_private cairo_status_t
     115             : _cairo_gstate_set_operator (cairo_gstate_t *gstate, cairo_operator_t op);
     116             : 
     117             : cairo_private cairo_operator_t
     118             : _cairo_gstate_get_operator (cairo_gstate_t *gstate);
     119             : 
     120             : cairo_private cairo_status_t
     121             : _cairo_gstate_set_tolerance (cairo_gstate_t *gstate, double tolerance);
     122             : 
     123             : cairo_private double
     124             : _cairo_gstate_get_tolerance (cairo_gstate_t *gstate);
     125             : 
     126             : cairo_private cairo_status_t
     127             : _cairo_gstate_set_fill_rule (cairo_gstate_t *gstate, cairo_fill_rule_t fill_rule);
     128             : 
     129             : cairo_private cairo_fill_rule_t
     130             : _cairo_gstate_get_fill_rule (cairo_gstate_t *gstate);
     131             : 
     132             : cairo_private cairo_status_t
     133             : _cairo_gstate_set_line_width (cairo_gstate_t *gstate, double width);
     134             : 
     135             : cairo_private double
     136             : _cairo_gstate_get_line_width (cairo_gstate_t *gstate);
     137             : 
     138             : cairo_private cairo_status_t
     139             : _cairo_gstate_set_line_cap (cairo_gstate_t *gstate, cairo_line_cap_t line_cap);
     140             : 
     141             : cairo_private cairo_line_cap_t
     142             : _cairo_gstate_get_line_cap (cairo_gstate_t *gstate);
     143             : 
     144             : cairo_private cairo_status_t
     145             : _cairo_gstate_set_line_join (cairo_gstate_t *gstate, cairo_line_join_t line_join);
     146             : 
     147             : cairo_private cairo_line_join_t
     148             : _cairo_gstate_get_line_join (cairo_gstate_t *gstate);
     149             : 
     150             : cairo_private cairo_status_t
     151             : _cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dashes, double offset);
     152             : 
     153             : cairo_private void
     154             : _cairo_gstate_get_dash (cairo_gstate_t *gstate, double *dash, int *num_dashes, double *offset);
     155             : 
     156             : cairo_private cairo_status_t
     157             : _cairo_gstate_set_miter_limit (cairo_gstate_t *gstate, double limit);
     158             : 
     159             : cairo_private double
     160             : _cairo_gstate_get_miter_limit (cairo_gstate_t *gstate);
     161             : 
     162             : cairo_private void
     163             : _cairo_gstate_get_matrix (cairo_gstate_t *gstate, cairo_matrix_t *matrix);
     164             : 
     165             : cairo_private cairo_status_t
     166             : _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty);
     167             : 
     168             : cairo_private cairo_status_t
     169             : _cairo_gstate_scale (cairo_gstate_t *gstate, double sx, double sy);
     170             : 
     171             : cairo_private cairo_status_t
     172             : _cairo_gstate_rotate (cairo_gstate_t *gstate, double angle);
     173             : 
     174             : cairo_private cairo_status_t
     175             : _cairo_gstate_transform (cairo_gstate_t       *gstate,
     176             :                          const cairo_matrix_t *matrix);
     177             : 
     178             : cairo_private cairo_status_t
     179             : _cairo_gstate_set_matrix (cairo_gstate_t       *gstate,
     180             :                           const cairo_matrix_t *matrix);
     181             : 
     182             : cairo_private void
     183             : _cairo_gstate_identity_matrix (cairo_gstate_t *gstate);
     184             : 
     185             : cairo_private void
     186             : _cairo_gstate_user_to_device (cairo_gstate_t *gstate, double *x, double *y);
     187             : 
     188             : cairo_private void
     189             : _cairo_gstate_user_to_device_distance (cairo_gstate_t *gstate, double *dx, double *dy);
     190             : 
     191             : cairo_private void
     192             : _cairo_gstate_device_to_user (cairo_gstate_t *gstate, double *x, double *y);
     193             : 
     194             : cairo_private void
     195             : _cairo_gstate_device_to_user_distance (cairo_gstate_t *gstate, double *dx, double *dy);
     196             : 
     197             : cairo_private void
     198             : _do_cairo_gstate_user_to_backend (cairo_gstate_t *gstate, double *x, double *y);
     199             : 
     200             : static inline void
     201           0 : _cairo_gstate_user_to_backend (cairo_gstate_t *gstate, double *x, double *y)
     202             : {
     203           0 :     if (! gstate->is_identity)
     204           0 :         _do_cairo_gstate_user_to_backend (gstate, x, y);
     205           0 : }
     206             : 
     207             : cairo_private void
     208             : _do_cairo_gstate_backend_to_user (cairo_gstate_t *gstate, double *x, double *y);
     209             : 
     210             : static inline void
     211           0 : _cairo_gstate_backend_to_user (cairo_gstate_t *gstate, double *x, double *y)
     212             : {
     213           0 :     if (! gstate->is_identity)
     214           0 :         _do_cairo_gstate_backend_to_user (gstate, x, y);
     215           0 : }
     216             : 
     217             : cairo_private void
     218             : _cairo_gstate_backend_to_user_rectangle (cairo_gstate_t *gstate,
     219             :                                          double *x1, double *y1,
     220             :                                          double *x2, double *y2,
     221             :                                          cairo_bool_t *is_tight);
     222             : 
     223             : cairo_private void
     224             : _cairo_gstate_path_extents (cairo_gstate_t     *gstate,
     225             :                             cairo_path_fixed_t *path,
     226             :                             double *x1, double *y1,
     227             :                             double *x2, double *y2);
     228             : 
     229             : cairo_private cairo_status_t
     230             : _cairo_gstate_paint (cairo_gstate_t *gstate);
     231             : 
     232             : cairo_private cairo_status_t
     233             : _cairo_gstate_mask (cairo_gstate_t  *gstate,
     234             :                     cairo_pattern_t *mask);
     235             : 
     236             : cairo_private cairo_status_t
     237             : _cairo_gstate_stroke (cairo_gstate_t *gstate, cairo_path_fixed_t *path);
     238             : 
     239             : cairo_private cairo_status_t
     240             : _cairo_gstate_fill (cairo_gstate_t *gstate, cairo_path_fixed_t *path);
     241             : 
     242             : cairo_private cairo_status_t
     243             : _cairo_gstate_copy_page (cairo_gstate_t *gstate);
     244             : 
     245             : cairo_private cairo_status_t
     246             : _cairo_gstate_show_page (cairo_gstate_t *gstate);
     247             : 
     248             : cairo_private cairo_status_t
     249             : _cairo_gstate_stroke_extents (cairo_gstate_t     *gstate,
     250             :                               cairo_path_fixed_t *path,
     251             :                               double *x1, double *y1,
     252             :                               double *x2, double *y2);
     253             : 
     254             : cairo_private cairo_status_t
     255             : _cairo_gstate_fill_extents (cairo_gstate_t     *gstate,
     256             :                             cairo_path_fixed_t *path,
     257             :                             double *x1, double *y1,
     258             :                             double *x2, double *y2);
     259             : 
     260             : cairo_private cairo_status_t
     261             : _cairo_gstate_in_stroke (cairo_gstate_t     *gstate,
     262             :                          cairo_path_fixed_t *path,
     263             :                          double              x,
     264             :                          double              y,
     265             :                          cairo_bool_t       *inside_ret);
     266             : 
     267             : cairo_private cairo_bool_t
     268             : _cairo_gstate_in_fill (cairo_gstate_t     *gstate,
     269             :                        cairo_path_fixed_t *path,
     270             :                        double              x,
     271             :                        double              y);
     272             : 
     273             : cairo_private cairo_bool_t
     274             : _cairo_gstate_in_clip (cairo_gstate_t     *gstate,
     275             :                        double              x,
     276             :                        double              y);
     277             : 
     278             : cairo_private cairo_status_t
     279             : _cairo_gstate_clip (cairo_gstate_t *gstate, cairo_path_fixed_t *path);
     280             : 
     281             : cairo_private cairo_status_t
     282             : _cairo_gstate_reset_clip (cairo_gstate_t *gstate);
     283             : 
     284             : cairo_private cairo_bool_t
     285             : _cairo_gstate_clip_extents (cairo_gstate_t *gstate,
     286             :                             double         *x1,
     287             :                             double         *y1,
     288             :                             double         *x2,
     289             :                             double         *y2);
     290             : 
     291             : cairo_private cairo_rectangle_list_t*
     292             : _cairo_gstate_copy_clip_rectangle_list (cairo_gstate_t *gstate);
     293             : 
     294             : cairo_private cairo_status_t
     295             : _cairo_gstate_show_surface (cairo_gstate_t      *gstate,
     296             :                             cairo_surface_t     *surface,
     297             :                             double               x,
     298             :                             double               y,
     299             :                             double              width,
     300             :                             double              height);
     301             : 
     302             : cairo_private cairo_status_t
     303             : _cairo_gstate_select_font_face (cairo_gstate_t *gstate,
     304             :                                 const char *family,
     305             :                                 cairo_font_slant_t slant,
     306             :                                 cairo_font_weight_t weight);
     307             : 
     308             : cairo_private cairo_status_t
     309             : _cairo_gstate_set_font_size (cairo_gstate_t *gstate,
     310             :                              double          size);
     311             : 
     312             : cairo_private void
     313             : _cairo_gstate_get_font_matrix (cairo_gstate_t *gstate,
     314             :                                cairo_matrix_t *matrix);
     315             : 
     316             : cairo_private cairo_status_t
     317             : _cairo_gstate_set_font_matrix (cairo_gstate_t       *gstate,
     318             :                                const cairo_matrix_t *matrix);
     319             : 
     320             : cairo_private void
     321             : _cairo_gstate_get_font_options (cairo_gstate_t       *gstate,
     322             :                                 cairo_font_options_t *options);
     323             : 
     324             : cairo_private void
     325             : _cairo_gstate_set_font_options (cairo_gstate_t             *gstate,
     326             :                                 const cairo_font_options_t *options);
     327             : 
     328             : cairo_private cairo_status_t
     329             : _cairo_gstate_get_font_face (cairo_gstate_t     *gstate,
     330             :                              cairo_font_face_t **font_face);
     331             : 
     332             : cairo_private cairo_status_t
     333             : _cairo_gstate_get_scaled_font (cairo_gstate_t       *gstate,
     334             :                                cairo_scaled_font_t **scaled_font);
     335             : 
     336             : cairo_private cairo_status_t
     337             : _cairo_gstate_get_font_extents (cairo_gstate_t *gstate,
     338             :                                 cairo_font_extents_t *extents);
     339             : 
     340             : cairo_private cairo_status_t
     341             : _cairo_gstate_set_font_face (cairo_gstate_t    *gstate,
     342             :                              cairo_font_face_t *font_face);
     343             : 
     344             : cairo_private cairo_status_t
     345             : _cairo_gstate_text_to_glyphs (cairo_gstate_t             *gstate,
     346             :                               double                      x,
     347             :                               double                      y,
     348             :                               const char                 *utf8,
     349             :                               int                         utf8_len,
     350             :                               cairo_glyph_t             **glyphs,
     351             :                               int                        *num_glyphs,
     352             :                               cairo_text_cluster_t      **clusters,
     353             :                               int                        *num_clusters,
     354             :                               cairo_text_cluster_flags_t *cluster_flags);
     355             : 
     356             : cairo_private cairo_status_t
     357             : _cairo_gstate_glyph_extents (cairo_gstate_t *gstate,
     358             :                              const cairo_glyph_t *glyphs,
     359             :                              int num_glyphs,
     360             :                              cairo_text_extents_t *extents);
     361             : 
     362             : cairo_private cairo_status_t
     363             : _cairo_gstate_show_text_glyphs (cairo_gstate_t             *gstate,
     364             :                                 const char                 *utf8,
     365             :                                 int                         utf8_len,
     366             :                                 const cairo_glyph_t        *glyphs,
     367             :                                 int                         num_glyphs,
     368             :                                 const cairo_text_cluster_t *clusters,
     369             :                                 int                         num_clusters,
     370             :                                 cairo_text_cluster_flags_t  cluster_flags);
     371             : 
     372             : cairo_private cairo_status_t
     373             : _cairo_gstate_glyph_path (cairo_gstate_t      *gstate,
     374             :                           const cairo_glyph_t *glyphs,
     375             :                           int                  num_glyphs,
     376             :                           cairo_path_fixed_t  *path);
     377             : 
     378             : cairo_private cairo_status_t
     379             : _cairo_gstate_set_antialias (cairo_gstate_t *gstate,
     380             :                              cairo_antialias_t antialias);
     381             : 
     382             : cairo_private cairo_antialias_t
     383             : _cairo_gstate_get_antialias (cairo_gstate_t *gstate);
     384             : 
     385             : #endif /* CAIRO_GSTATE_PRIVATE_H */

Generated by: LCOV version 1.13