~ubuntu-branches/debian/experimental/cups-filters/experimental

« back to all changes in this revision

Viewing changes to pdftoopvp/opvp/opvp_0_2_0.h

  • Committer: Package Import Robot
  • Author(s): Till Kamppeter
  • Date: 2012-07-28 11:54:32 UTC
  • mfrom: (1.1.17) (22 sid)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: package-import@ubuntu.com-20120728115432-p5fgn9hv6du22cqa
Tags: 1.0.20-1
* New upstream release
   - pdftops: Added another workaround for Kyocera printers: Some
     models get very slow on images which request interpolation,
     so now we remove the image interpolation requests by additional
     PostScript code only inserted for Kyocera printers (LP: #1026974).
   - Made the Poppler-based filters pdftopdf and pdftoopvp build with
     both Poppler 0.18.x and 0.20.x (Upstream bug #1055).
   - Fixes according to Coverity scan results (Upstream bug #1054).
   - Switched build system to autotools. This especially fixes several
     build problems in Gentoo. Also build-tested with CUPS 1.6.0b1.
   - Fixes for compatibility with clang/gcc-4.7.
   - textonly: Filter did not work as a pipe with copies=1 (Upstream bug
     #1032).
   - texttopdf: Avoid trimming the results of FcFontSort(), as this may
     miss some reasonable candidates under certain circumstances. BTW,
     fix passing a non-pointer as a pointer to "result" (Closes: #670055).
   - Corrected documentation. The option for the maximum image rendering
     resolution in pdftops is "pdftops-max-image-resolution", not
     "pdftops-max-image-resolution-default".
* debian/patches/fcfontsort-no-trim.patch: Removed, fixed upstream.
* debian/rules: Updated options for ./configure and make for the new autotools
  build system.
* debian/watch: Switched to bz2 upstream packages.
* debian/rules, debian/copyright, debian/cups-filters.docs: Updated for
  renamed documentation files.
* debian/control, debian/libfontembed1.install,
  debian/libfontembed-dev.install: Added new binary packages for libfontembed.
* debian/copyright: Updated for recent file additions, and rearrangement of
  directories.
* debian/control: Added missing build dependency on libpoppler-cpp-dev.
* debian/copyright: Corrections (Closes: #682752).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 
3
 
Copyright (c) 2003-2004, AXE, Inc.  All rights reserved.
4
 
 
5
 
Permission is hereby granted, free of charge, to any person obtaining
6
 
a copy of this software and associated documentation files (the
7
 
"Software"), to deal in the Software without restriction, including
8
 
without limitation the rights to use, copy, modify, merge, publish,
9
 
distribute, sublicense, and/or sell copies of the Software, and to
10
 
permit persons to whom the Software is furnished to do so, subject to
11
 
the following conditions:
12
 
 
13
 
The above copyright notice and this permission notice shall be included
14
 
in all copies or substantial portions of the Software.
15
 
 
16
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
 
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
 
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
 
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
 
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
 
 
24
 
*/
25
 
/* $Id: opvp_0_2_0.h 85 2007-02-15 08:48:56Z sho-otani $ */
26
 
/* opvp_common.h  ver.1.00 rel.1.0  26 Nov 2004 */
27
 
/* OpenPrinting Vector Printer Driver Glue Code */
28
 
 
29
 
#ifndef _FSGPD_0_2_0_H
30
 
#define _FSGPD_0_2_0_H
31
 
 
32
 
#define _PDAPI_VERSION_MAJOR_   0
33
 
#define _PDAPI_VERSION_MINOR_   2
34
 
 
35
 
/* Return Values */
36
 
#define OPVP_OK                 0       /* error is -1 */
37
 
 
38
 
/* Error Codes */
39
 
#define OPVP_FATALERROR         -101    /* unrecoverable error occurred within the */
40
 
                                                                        /* library */
41
 
#define OPVP_BADREQUEST         -102    /* invalid function parameters */
42
 
#define OPVP_BADCONTEXT         -103    /* bad parameter precontext */
43
 
#define OPVP_NOTSUPPORTED       -104    /* printer or driver request not supported */
44
 
#define OPVP_JOBCANCELED        -105    /* job cancelled */
45
 
#define OPVP_PARAMERROR         -106    /* illegal parameter combination */
46
 
 
47
 
/* Info params */
48
 
#define OPVP_INFO_PREFIX        "updf:"
49
 
 
50
 
/* Fix */
51
 
#define OPVP_FIX_FRACT_WIDTH    8
52
 
#define OPVP_FIX_FRACT_DENOM    (1<<OPVP_FIX_FRACT_WIDTH)
53
 
#define OPVP_FIX_FLOOR_WIDTH    (sizeof(int)*8-OPVP_FIX_FRACT_WIDTH)
54
 
#if 0
55
 
typedef struct {
56
 
        unsigned int    fract   : OPVP_FIX_FRACT_WIDTH;
57
 
        signed int      floor   : OPVP_FIX_FLOOR_WIDTH;
58
 
} OPVP_Fix;
59
 
#define OPVP_i2Fix(i,fix)       (fix.fract=0,fix.floor=i)
60
 
#define OPVP_Fix2f(fix,f)       (f=(double)fix.floor\
61
 
                                  +(double)(fix.fract)/OPVP_FIX_FRACT_DENOM)
62
 
#define OPVP_f2Fix(f,fix)       (fix.fract=(f-floor(f))*OPVP_FIX_FRACT_DENOM,\
63
 
                                 fix.floor=floor(f))
64
 
#else
65
 
typedef int     OPVP_Fix;
66
 
#define OPVP_i2Fix(i,fix)       (fix=(i)<<8)
67
 
#define OPVP_f2Fix(f,fix)       (fix=((int)floor(f)<<8)\
68
 
                                   |((int)(((f)-floor(f))*OPVP_FIX_FRACT_DENOM)\
69
 
                                      &0x000000ff))
70
 
#endif
71
 
 
72
 
/* Basic Types */
73
 
typedef struct  _OPVP_Point {
74
 
        OPVP_Fix        x;
75
 
        OPVP_Fix        y;
76
 
} OPVP_Point;
77
 
 
78
 
typedef struct  _OPVP_Rectangle {
79
 
        OPVP_Point      p0;             /* start point */
80
 
        OPVP_Point      p1;             /* end point */
81
 
} OPVP_Rectangle;
82
 
 
83
 
typedef struct  _OPVP_RoundRectangle {
84
 
        OPVP_Point      p0;             /* start point */
85
 
        OPVP_Point      p1;             /* end point */
86
 
        OPVP_Fix        xellipse;
87
 
        OPVP_Fix        yellipse;
88
 
} OPVP_RoundRectangle;
89
 
 
90
 
/* Image Formats */
91
 
typedef enum    _OPVP_ImageFormat {
92
 
        OPVP_iformatRaw                 = 0,
93
 
        OPVP_iformatRLE                 = 1,
94
 
        OPVP_iformatJPEG                = 2,
95
 
        OPVP_iformatPNG                 = 3
96
 
} OPVP_ImageFormat;
97
 
 
98
 
/* Color Presentation */
99
 
typedef enum    _OPVP_ColorMapping {
100
 
        OPVP_cmapDirect                 = 0,
101
 
        OPVP_cmapIndexed                = 1
102
 
} OPVP_ColorMapping;
103
 
 
104
 
typedef enum    _OPVP_ColorSpace {
105
 
        OPVP_cspaceBW                   = 0,
106
 
        OPVP_cspaceDeviceGray           = 1,
107
 
        OPVP_cspaceDeviceCMY            = 2,
108
 
        OPVP_cspaceDeviceCMYK           = 3,
109
 
        OPVP_cspaceDeviceRGB            = 4,
110
 
        OPVP_cspaceStandardRGB          = 5,
111
 
        OPVP_cspaceStandardRGB64        = 6
112
 
} OPVP_ColorSpace;
113
 
 
114
 
/* Raster Operation modes */
115
 
typedef enum    _OPVP_ROP {
116
 
        OPVP_ropPset                    = 0,
117
 
        OPVP_ropPreset                  = 1,
118
 
        OPVP_ropOr                      = 2,
119
 
        OPVP_ropAnd                     = 3,
120
 
        OPVP_ropXor                     = 4
121
 
} OPVP_ROP;
122
 
 
123
 
/* Fill, Paint, Clip */
124
 
typedef enum    _OPVP_FillMode {
125
 
        OPVP_fillModeEvenOdd            = 0,
126
 
        OPVP_fillModeWinding            = 1
127
 
} OPVP_FillMode;
128
 
 
129
 
typedef enum    _OPVP_PaintMode {
130
 
        OPVP_paintModeOpaque            = 0,
131
 
        OPVP_paintModeTransparent       = 1
132
 
} OPVP_PaintMode;
133
 
 
134
 
typedef enum    _OPVP_ClipRule {
135
 
        OPVP_clipRuleEvenOdd            = 0,
136
 
        OPVP_clipRuleWinding            = 1
137
 
} OPVP_ClipRule;
138
 
 
139
 
/* Line */
140
 
typedef enum    _OPVP_LineStyle {
141
 
        OPVP_lineStyleSolid             = 0,
142
 
        OPVP_lineStyleDash              = 1
143
 
} OPVP_LineStyle;
144
 
 
145
 
typedef enum    _OPVP_LineCap {
146
 
        OPVP_lineCapButt                = 0,
147
 
        OPVP_lineCapRound               = 1,
148
 
        OPVP_lineCapSquare              = 2
149
 
} OPVP_LineCap;
150
 
 
151
 
typedef enum    _OPVP_LineJoin {
152
 
        OPVP_lineJoinMiter              = 0,
153
 
        OPVP_lineJoinRound              = 1,
154
 
        OPVP_lineJoinBevel              = 2
155
 
} OPVP_LineJoin;
156
 
 
157
 
/* Brush */
158
 
typedef enum    _OPVP_BrushDataType {
159
 
        OPVP_bdtypeNormal               = 0
160
 
} OPVP_BrushDataType;
161
 
 
162
 
typedef struct  _OPVP_BrushData {
163
 
        OPVP_BrushDataType      type;
164
 
        int             width;
165
 
        int             height;
166
 
        int             pitch;
167
 
#if (_PDAPI_VERSION_MAJOR_ == 0 && _PDAPI_VERSION_MINOR_ < 2)
168
 
        void            *data;          /* pointer to actual data */
169
 
#else
170
 
        char            data[1];
171
 
#endif
172
 
} OPVP_BrushData;
173
 
 
174
 
typedef struct  _OPVP_Brush {
175
 
        OPVP_ColorSpace colorSpace;
176
 
        int             color[4];       /* aRGB quadruplet */
177
 
#if (_PDAPI_VERSION_MAJOR_ == 0 && _PDAPI_VERSION_MINOR_ < 2)
178
 
        OPVP_BrushData  *pbrush;        /* pointer to brush data */
179
 
                                        /* solid brush used, if null */
180
 
        int             xorg;           /* brush origin */
181
 
        int             yorg;           /* ignored for SetBgColor */
182
 
#else
183
 
        int             xorg;           /* brush origin */
184
 
        int             yorg;           /* ignored for SetBgColor */
185
 
        OPVP_BrushData  *pbrush;        /* pointer to brush data */
186
 
                                        /* solid brush used, if null */
187
 
#endif
188
 
} OPVP_Brush;
189
 
 
190
 
/* Misc. Flags */
191
 
#define OPVP_Arc                0       /* circular arc */
192
 
#define OPVP_Chord              1       /* arch */
193
 
#define OPVP_Pie                2       /* pie section */
194
 
#define OPVP_Clockwise          0       /* clockwise */
195
 
#define OPVP_Counterclockwise   1       /* counter-clockwise */
196
 
#define OPVP_PathClose          0       /* Close path when using LinePath */
197
 
#define OPVP_PathOpen           1       /* Do not close path when using LinePath */
198
 
 
199
 
/* CTM */
200
 
typedef struct  _OPVP_CTM {
201
 
        float           a;
202
 
        float           b;
203
 
        float           c;
204
 
        float           d;
205
 
        float           e;
206
 
        float           f;
207
 
} OPVP_CTM;
208
 
 
209
 
/* Vector Driver API Proc. Entries */
210
 
typedef struct  _OPVP_api_procs {
211
 
        int     (*OpenPrinter)(int,char *,int *,struct _OPVP_api_procs **);
212
 
        int     (*ClosePrinter)(int);
213
 
        int     (*StartJob)(int,char *);
214
 
        int     (*EndJob)(int);
215
 
        int     (*StartDoc)(int,char *);
216
 
        int     (*EndDoc)(int);
217
 
        int     (*StartPage)(int,char *);
218
 
        int     (*EndPage)(int);
219
 
#if (_PDAPI_VERSION_MAJOR_ > 0 || _PDAPI_VERSION_MINOR_ >= 2)
220
 
        int     (*QueryDeviceCapability)(int,int,int,char *);
221
 
        int     (*QueryDeviceInfo)(int,int,int,char *);
222
 
#endif
223
 
        int     (*ResetCTM)(int);
224
 
        int     (*SetCTM)(int,OPVP_CTM *);
225
 
        int     (*GetCTM)(int,OPVP_CTM *);
226
 
        int     (*InitGS)(int);
227
 
        int     (*SaveGS)(int);
228
 
        int     (*RestoreGS)(int);
229
 
        int     (*QueryColorSpace)(int,OPVP_ColorSpace *,int *);
230
 
        int     (*SetColorSpace)(int,OPVP_ColorSpace);
231
 
        int     (*GetColorSpace)(int,OPVP_ColorSpace *);
232
 
        int     (*QueryROP)(int,int *,int *);
233
 
        int     (*SetROP)(int,int);
234
 
        int     (*GetROP)(int,int *);
235
 
        int     (*SetFillMode)(int,OPVP_FillMode);
236
 
        int     (*GetFillMode)(int,OPVP_FillMode *);
237
 
        int     (*SetAlphaConstant)(int,float);
238
 
        int     (*GetAlphaConstant)(int,float *);
239
 
        int     (*SetLineWidth)(int,OPVP_Fix);
240
 
        int     (*GetLineWidth)(int,OPVP_Fix *);
241
 
        int     (*SetLineDash)(int,OPVP_Fix *,int);
242
 
        int     (*GetLineDash)(int,OPVP_Fix *,int *);
243
 
        int     (*SetLineDashOffset)(int,OPVP_Fix);
244
 
        int     (*GetLineDashOffset)(int,OPVP_Fix *);
245
 
        int     (*SetLineStyle)(int,OPVP_LineStyle);
246
 
        int     (*GetLineStyle)(int,OPVP_LineStyle *);
247
 
        int     (*SetLineCap)(int,OPVP_LineCap);
248
 
        int     (*GetLineCap)(int,OPVP_LineCap *);
249
 
        int     (*SetLineJoin)(int,OPVP_LineJoin);
250
 
        int     (*GetLineJoin)(int,OPVP_LineJoin *);
251
 
        int     (*SetMiterLimit)(int,OPVP_Fix);
252
 
        int     (*GetMiterLimit)(int,OPVP_Fix *);
253
 
        int     (*SetPaintMode)(int,OPVP_PaintMode);
254
 
        int     (*GetPaintMode)(int,OPVP_PaintMode *);
255
 
        int     (*SetStrokeColor)(int,OPVP_Brush *);
256
 
        int     (*SetFillColor)(int,OPVP_Brush *);
257
 
        int     (*SetBgColor)(int,OPVP_Brush *);
258
 
        int     (*NewPath)(int);
259
 
        int     (*EndPath)(int);
260
 
        int     (*StrokePath)(int);
261
 
        int     (*FillPath)(int);
262
 
        int     (*StrokeFillPath)(int);
263
 
        int     (*SetClipPath)(int,OPVP_ClipRule);
264
 
#if (_PDAPI_VERSION_MAJOR_ > 0 || _PDAPI_VERSION_MINOR_ >= 2)
265
 
        int     (*ResetClipPath)(int);
266
 
#endif
267
 
        int     (*SetCurrentPoint)(int,OPVP_Fix,OPVP_Fix);
268
 
        int     (*LinePath)(int,int,int,OPVP_Point *);
269
 
        int     (*PolygonPath)(int,int,int *,OPVP_Point *);
270
 
        int     (*RectanglePath)(int,int,OPVP_Rectangle *);
271
 
        int     (*RoundRectanglePath)(int,int,OPVP_RoundRectangle *);
272
 
#if (_PDAPI_VERSION_MAJOR_ == 0 && _PDAPI_VERSION_MINOR_ < 2)
273
 
        int     (*BezierPath)(int,int *,OPVP_Point *);
274
 
#else
275
 
        int     (*BezierPath)(int,int,OPVP_Point *);
276
 
#endif
277
 
        int     (*ArcPath)(int,int,int,OPVP_Fix,OPVP_Fix,OPVP_Fix,OPVP_Fix,
278
 
                           OPVP_Fix,OPVP_Fix,OPVP_Fix,OPVP_Fix);
279
 
        int     (*DrawBitmapText)(int,int,int,int,void *);
280
 
        int     (*DrawImage)(int,int,int,int,
281
 
                             OPVP_ImageFormat,OPVP_Rectangle,int,void *);
282
 
        int     (*StartDrawImage)(int,int,int,int,
283
 
                                  OPVP_ImageFormat,OPVP_Rectangle);
284
 
        int     (*TransferDrawImage)(int,int,void *);
285
 
        int     (*EndDrawImage)(int);
286
 
        int     (*StartScanline)(int,int);
287
 
        int     (*Scanline)(int,int,int *);
288
 
        int     (*EndScanline)(int);
289
 
        int     (*StartRaster)(int,int);
290
 
        int     (*TransferRasterData)(int,int,unsigned char *);
291
 
        int     (*SkipRaster)(int,int);
292
 
        int     (*EndRaster)(int);
293
 
        int     (*StartStream)(int);
294
 
        int     (*TransferStreamData)(int,int,void *);
295
 
        int     (*EndStream)(int);
296
 
} OPVP_api_procs;
297
 
 
298
 
#endif  /* _OPVP_COMMON_H_ */
299