"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "base/gxcpath.h" between
ghostscript-9.26.tar.xz and ghostscript-9.27.tar.xz

About: Ghostscript is an interpreter and rendering engine for the PostScript language and for PDF (GPL release).

gxcpath.h  (ghostscript-9.26.tar.xz):gxcpath.h  (ghostscript-9.27.tar.xz)
/* Copyright (C) 2001-2018 Artifex Software, Inc. /* Copyright (C) 2001-2019 Artifex Software, Inc.
All Rights Reserved. All Rights Reserved.
This software is provided AS-IS with no warranty, either express or This software is provided AS-IS with no warranty, either express or
implied. implied.
This software is distributed under license and may not be copied, This software is distributed under license and may not be copied,
modified or distributed except as expressly authorized under the terms modified or distributed except as expressly authorized under the terms
of the license contained in the file LICENSE in this distribution. of the license contained in the file LICENSE in this distribution.
Refer to licensing information at http://www.artifex.com or contact Refer to licensing information at http://www.artifex.com or contact
Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
CA 94945, U.S.A., +1(415)492-9861, for further information. CA 94945, U.S.A., +1(415)492-9861, for further information.
*/ */
/* Definitions for clipping lists and devices */ /* Definitions for clipping lists and devices */
/* Requires gxdevice.h */ /* Requires gxdevice.h */
#ifndef gxcpath_INCLUDED #ifndef gxcpath_INCLUDED
# define gxcpath_INCLUDED # define gxcpath_INCLUDED
#include "gxdevcli.h"
/* We expose the implementation of clipping lists so that clients */ /* We expose the implementation of clipping lists so that clients */
/* can allocate clipping lists or devices on the stack. */ /* can allocate clipping lists or devices on the stack. */
/* /*
* For clipping, a path is represented as a list of rectangles. * For clipping, a path is represented as a list of rectangles.
* Normally, a path is created as a list of segments; * Normally, a path is created as a list of segments;
* installing it as a clipping path creates the rectangle list. * installing it as a clipping path creates the rectangle list.
* However, when the clipping path originates in some other way * However, when the clipping path originates in some other way
* (e.g., from initclip, or for clipping a cached character), * (e.g., from initclip, or for clipping a cached character),
* or if it is a non-trivial intersection of two paths, * or if it is a non-trivial intersection of two paths,
skipping to change at line 65 skipping to change at line 67
clip_rect_enum_ptrs, clip_rect_reloc_ptrs, next, prev) clip_rect_enum_ptrs, clip_rect_reloc_ptrs, next, prev)
#define st_clip_rect_max_ptrs 2 #define st_clip_rect_max_ptrs 2
/* /*
* A clip list may consist either of a single rectangle, * A clip list may consist either of a single rectangle,
* with null head and tail, or a list of rectangles. In the latter case, * with null head and tail, or a list of rectangles. In the latter case,
* there is a dummy head entry with p.x = q.x to cover Y values * there is a dummy head entry with p.x = q.x to cover Y values
* starting at min_int, and a dummy tail entry to cover Y values * starting at min_int, and a dummy tail entry to cover Y values
* ending at max_int. This eliminates the need for end tests. * ending at max_int. This eliminates the need for end tests.
*/ */
#ifndef gx_clip_list_DEFINED
# define gx_clip_list_DEFINED
typedef struct gx_clip_list_s gx_clip_list;
#endif
struct gx_clip_list_s { struct gx_clip_list_s {
gx_clip_rect single; /* (has next = prev = 0) */ gx_clip_rect single; /* (has next = prev = 0) */
gx_clip_rect *head; gx_clip_rect *head;
gx_clip_rect *tail; gx_clip_rect *tail;
gx_clip_rect *insert; gx_clip_rect *insert;
int xmin, xmax; /* min and max X over all but head/tail */ int xmin, xmax; /* min and max X over all but head/tail */
int count; /* # of rectangles not counting */ int count; /* # of rectangles not counting */
/* head or tail */ /* head or tail */
bool transpose; /* Transpose x / y */ bool transpose; /* Transpose x / y */
}; };
skipping to change at line 96 skipping to change at line 94
/* /*
* Clipping devices provide for translation before clipping. * Clipping devices provide for translation before clipping.
* This ability, a late addition, currently is used only in a few * This ability, a late addition, currently is used only in a few
* situations that require breaking up a transfer into pieces, * situations that require breaking up a transfer into pieces,
* but we suspect it could be used more widely. * but we suspect it could be used more widely.
* *
* Note that clipping devices cache their clipping box, so the target's * Note that clipping devices cache their clipping box, so the target's
* clipping box and the clip list must be const after the clipping device * clipping box and the clip list must be const after the clipping device
* is opened. * is opened.
*/ */
#ifndef gx_device_clip_DEFINED
# define gx_device_clip_DEFINED
typedef struct gx_device_clip_s gx_device_clip; typedef struct gx_device_clip_s gx_device_clip;
#endif
struct gx_device_clip_s { struct gx_device_clip_s {
gx_device_forward_common; /* target is set by client */ gx_device_forward_common; /* target is set by client */
gx_clip_list list; /* set by client */ gx_clip_list list; /* set by client */
gx_clip_rect *current; /* cursor in list */ gx_clip_rect *current; /* cursor in list */
gs_int_point translation; gs_int_point translation;
gs_fixed_rect clipping_box; gs_fixed_rect clipping_box;
bool clipping_box_set; bool clipping_box_set;
const gx_clip_path *cpath; const gx_clip_path *cpath;
}; };
 End of changes. 5 change blocks. 
8 lines changed or deleted 3 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)