mshtml.idl: Added some missing attributes.
[wine.git] / dlls / gdiplus / gdiplus_private.h
blobf20ea3d36b61ddd6983f8dc440addfcb4e7c2ca8
1 /*
2 * Copyright (C) 2007 Google (Evan Stade)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_GP_PRIVATE_H_
20 #define __WINE_GP_PRIVATE_H_
22 #include <math.h>
23 #include "windef.h"
24 #include "wingdi.h"
25 #include "gdiplus.h"
27 #define GP_DEFAULT_PENSTYLE (PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_FLAT | PS_JOIN_MITER)
28 #define MAX_ARC_PTS (13)
30 COLORREF ARGB2COLORREF(ARGB color);
31 extern INT arc2polybezier(GpPointF * points, REAL x1, REAL y1, REAL x2, REAL y2,
32 REAL startAngle, REAL sweepAngle);
33 extern FLOAT gdiplus_atan2(FLOAT dy, FLOAT dx);
35 static inline INT roundr(REAL x)
37 return (INT) floorf(x + 0.5);
40 static inline REAL deg2rad(REAL degrees)
42 return M_PI * degrees / 180.0;
45 struct GpPen{
46 UINT style;
47 GpUnit unit;
48 REAL width;
49 GpLineCap endcap;
50 GpLineCap startcap;
51 GpDashCap dashcap;
52 GpCustomLineCap *customstart;
53 GpCustomLineCap *customend;
54 GpLineJoin join;
55 REAL miterlimit;
56 GpDashStyle dash;
57 REAL *dashes;
58 INT numdashes;
59 GpBrush *brush;
62 struct GpGraphics{
63 HDC hdc;
64 HWND hwnd;
65 SmoothingMode smoothing;
66 CompositingQuality compqual;
67 InterpolationMode interpolation;
68 PixelOffsetMode pixeloffset;
69 GpUnit unit; /* page unit */
70 REAL scale; /* page scale */
71 GpMatrix * worldtrans; /* world transform */
74 struct GpBrush{
75 HBRUSH gdibrush;
76 GpBrushType bt;
77 LOGBRUSH lb;
80 struct GpSolidFill{
81 GpBrush brush;
82 ARGB color;
85 struct GpPath{
86 GpFillMode fill;
87 GpPathData pathdata;
88 BOOL newfigure; /* whether the next drawing action starts a new figure */
89 INT datalen; /* size of the arrays in pathdata */
92 struct GpMatrix{
93 REAL matrix[6];
96 struct GpPathIterator{
97 GpPathData pathdata;
98 INT subpath_pos; /* for NextSubpath methods */
99 INT marker_pos; /* for NextMarker methods */
100 INT pathtype_pos; /* for NextPathType methods */
103 struct GpCustomLineCap{
104 GpPathData pathdata;
105 BOOL fill; /* TRUE for fill, FALSE for stroke */
106 GpLineCap cap; /* as far as I can tell, this value is ignored */
107 REAL inset; /* how much to adjust the end of the line */
110 #endif