Back to index

lightning-sunbird  0.9+nobinonly
cairo-path-fixed-private.h
Go to the documentation of this file.
00001 /* cairo - a vector graphics library with display and print output
00002  *
00003  * Copyright © 2005 Red Hat, Inc.
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it either under the terms of the GNU Lesser General Public
00007  * License version 2.1 as published by the Free Software Foundation
00008  * (the "LGPL") or, at your option, under the terms of the Mozilla
00009  * Public License Version 1.1 (the "MPL"). If you do not alter this
00010  * notice, a recipient may use your version of this file under either
00011  * the MPL or the LGPL.
00012  *
00013  * You should have received a copy of the LGPL along with this library
00014  * in the file COPYING-LGPL-2.1; if not, write to the Free Software
00015  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00016  * You should have received a copy of the MPL along with this library
00017  * in the file COPYING-MPL-1.1
00018  *
00019  * The contents of this file are subject to the Mozilla Public License
00020  * Version 1.1 (the "License"); you may not use this file except in
00021  * compliance with the License. You may obtain a copy of the License at
00022  * http://www.mozilla.org/MPL/
00023  *
00024  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
00025  * OF ANY KIND, either express or implied. See the LGPL or the MPL for
00026  * the specific language governing rights and limitations.
00027  *
00028  * The Original Code is the cairo graphics library.
00029  *
00030  * The Initial Developer of the Original Code is Red Hat, Inc.
00031  *
00032  * Contributor(s):
00033  *     Carl D. Worth <cworth@redhat.com>
00034  */
00035 
00036 #ifndef CAIRO_PATH_FIXED_PRIVATE_H
00037 #define CAIRO_PATH_FIXED_PRIVATE_H
00038 
00039 typedef enum cairo_path_op {
00040     CAIRO_PATH_OP_MOVE_TO = 0,
00041     CAIRO_PATH_OP_LINE_TO = 1,
00042     CAIRO_PATH_OP_CURVE_TO = 2,
00043     CAIRO_PATH_OP_CLOSE_PATH = 3
00044 } __attribute__ ((packed)) cairo_path_op_t; /* Don't want 32 bits if we can avoid it. */
00045 
00046 #define CAIRO_PATH_BUF_SIZE 64
00047 
00048 typedef struct _cairo_path_op_buf {
00049     int num_ops;
00050     cairo_path_op_t op[CAIRO_PATH_BUF_SIZE];
00051 
00052     struct _cairo_path_op_buf *next, *prev;
00053 } cairo_path_op_buf_t;
00054 
00055 typedef struct _cairo_path_arg_buf {
00056     int num_points;
00057     cairo_point_t points[CAIRO_PATH_BUF_SIZE];
00058 
00059     struct _cairo_path_arg_buf *next, *prev;
00060 } cairo_path_arg_buf_t;
00061 
00062 struct _cairo_path_fixed {
00063     cairo_path_op_buf_t *op_buf_head;
00064     cairo_path_op_buf_t *op_buf_tail;
00065 
00066     cairo_path_arg_buf_t *arg_buf_head;
00067     cairo_path_arg_buf_t *arg_buf_tail;
00068 
00069     cairo_point_t last_move_point;
00070     cairo_point_t current_point;
00071     int has_current_point;
00072 };
00073 
00074 #endif /* CAIRO_PATH_FIXED_PRIVATE_H */