ReactOS  0.4.14-dev-614-gbfd8a84
gdiplus_private.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2007 Google (Evan Stade)
3  *
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.
8  *
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.
13  *
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
17  */
18 
19 #ifndef __WINE_GP_PRIVATE_H_
20 #define __WINE_GP_PRIVATE_H_
21 
22 #include <math.h>
23 #include <stdarg.h>
24 
25 #include "windef.h"
26 #include "wingdi.h"
27 #include "winbase.h"
28 #include "winuser.h"
29 
30 #include "objbase.h"
31 #include "ocidl.h"
32 #include "wincodecsdk.h"
33 #include "wine/heap.h"
34 #include "wine/list.h"
35 
36 #include "gdiplus.h"
37 
38 #define GP_DEFAULT_PENSTYLE (PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_FLAT | PS_JOIN_MITER)
39 #define MAX_ARC_PTS (13)
40 #define MAX_DASHLEN (16) /* this is a limitation of gdi */
41 #define INCH_HIMETRIC (2540)
42 
43 #define VERSION_MAGIC 0xdbc01001
44 #define VERSION_MAGIC2 0xdbc01002
45 #define VALID_MAGIC(x) (((x) & 0xfffff000) == 0xdbc01000)
46 #define TENSION_CONST (0.3)
47 
48 #define GIF_DISPOSE_UNSPECIFIED 0
49 #define GIF_DISPOSE_DO_NOT_DISPOSE 1
50 #define GIF_DISPOSE_RESTORE_TO_BKGND 2
51 #define GIF_DISPOSE_RESTORE_TO_PREV 3
52 
53 
57  REAL startAngle, REAL sweepAngle) DECLSPEC_HIDDEN;
63 
64 #define WineCoordinateSpaceGdiDevice ((GpCoordinateSpace)4)
65 
66 extern GpStatus gdi_transform_acquire(GpGraphics *graphics);
67 extern GpStatus gdi_transform_release(GpGraphics *graphics);
72 
75 
93  GDIPCONST GpRectF *srcrect, GpUnit unit, DWORD StackIndex) DECLSPEC_HIDDEN;
100  GDIPCONST GpPointF *points, INT count, REAL srcx, REAL srcy, REAL srcwidth,
101  REAL srcheight, GpUnit srcUnit, GDIPCONST GpImageAttributes* imageAttributes,
107 
108 extern void calc_curve_bezier(const GpPointF *pts, REAL tension, REAL *x1,
110 extern void calc_curve_bezier_endp(REAL xend, REAL yend, REAL xadj, REAL yadj,
111  REAL tension, REAL *x, REAL *y) DECLSPEC_HIDDEN;
112 
113 extern void free_installed_fonts(void) DECLSPEC_HIDDEN;
114 
116 
117 extern DWORD write_region_data(const GpRegion *region, void *data) DECLSPEC_HIDDEN;
119 
121 
124 
125 extern GpStatus get_hatch_data(GpHatchStyle hatchstyle, const char **result) DECLSPEC_HIDDEN;
126 
127 static inline INT gdip_round(REAL x)
128 {
129  return (INT) floorf(x + 0.5);
130 }
131 
132 static inline INT ceilr(REAL x)
133 {
134  return (INT) ceilf(x);
135 }
136 
137 static inline REAL deg2rad(REAL degrees)
138 {
139  return M_PI * degrees / 180.0;
140 }
141 
142 static inline ARGB color_over(ARGB bg, ARGB fg)
143 {
144  BYTE b, g, r, a;
145  BYTE bg_alpha, fg_alpha;
146 
147  fg_alpha = (fg>>24)&0xff;
148 
149  if (fg_alpha == 0xff) return fg;
150 
151  if (fg_alpha == 0) return bg;
152 
153  bg_alpha = (((bg>>24)&0xff) * (0xff-fg_alpha)) / 0xff;
154 
155  if (bg_alpha == 0) return fg;
156 
157  a = bg_alpha + fg_alpha;
158  b = ((bg&0xff)*bg_alpha + (fg&0xff)*fg_alpha)/a;
159  g = (((bg>>8)&0xff)*bg_alpha + ((fg>>8)&0xff)*fg_alpha)/a;
160  r = (((bg>>16)&0xff)*bg_alpha + ((fg>>16)&0xff)*fg_alpha)/a;
161 
162  return (a<<24)|(r<<16)|(g<<8)|b;
163 }
164 
165 /* fg is premult, bg and return value are not */
166 static inline ARGB color_over_fgpremult(ARGB bg, ARGB fg)
167 {
168  BYTE b, g, r, a;
169  BYTE bg_alpha, fg_alpha;
170 
171  fg_alpha = (fg>>24)&0xff;
172 
173  if (fg_alpha == 0) return bg;
174 
175  bg_alpha = (((bg>>24)&0xff) * (0xff-fg_alpha)) / 0xff;
176 
177  a = bg_alpha + fg_alpha;
178  b = ((bg&0xff)*bg_alpha + (fg&0xff)*0xff)/a;
179  g = (((bg>>8)&0xff)*bg_alpha + ((fg>>8)&0xff)*0xff)/a;
180  r = (((bg>>16)&0xff)*bg_alpha + ((fg>>16)&0xff)*0xff)/a;
181 
182  return (a<<24)|(r<<16)|(g<<8)|b;
183 }
184 
185 extern const char *debugstr_rectf(const RectF* rc) DECLSPEC_HIDDEN;
186 
187 extern const char *debugstr_pointf(const PointF* pt) DECLSPEC_HIDDEN;
188 
190  BYTE *dst_bits, INT dst_stride, const BYTE *src_bits, INT src_stride) DECLSPEC_HIDDEN;
191 
193  INT dst_stride, BYTE *dst_bits, PixelFormat dst_format,
194  INT src_stride, const BYTE *src_bits, PixelFormat src_format, ColorPalette *palette) DECLSPEC_HIDDEN;
195 
198 
199 struct GpMatrix{
201 };
202 
203 struct GpPen{
217  REAL offset; /* dash offset */
221 };
222 
223 struct GpGraphics{
236  GpUnit unit; /* page unit */
237  REAL scale; /* page scale */
239  GpMatrix worldtrans; /* world transform */
240  BOOL busy; /* hdc handle obtained by GdipGetDC */
241  GpRegion *clip; /* in device coords */
242  UINT textcontrast; /* not used yet. get/set only */
243  struct list containers;
244  GraphicsContainer contid; /* last-issued container ID */
248  HRGN gdi_clip;
249  /* For giving the caller an HDC when we technically can't: */
255 };
256 
257 struct GpBrush{
259 };
260 
261 struct GpHatch{
266 };
267 
268 struct GpSolidFill{
271 };
272 
281  REAL* blendfac; /* blend factors */
282  REAL* blendpos; /* blend positions */
286  ARGB* pblendcolor; /* preset blend colors */
287  REAL* pblendpos; /* preset blend positions */
290 };
291 
299  REAL* blendfac; /* blend factors */
300  REAL* blendpos; /* blend positions */
302  ARGB* pblendcolor; /* preset blend colors */
303  REAL* pblendpos; /* preset blend positions */
306 };
307 
308 struct GpTexture{
313  BYTE *bitmap_bits; /* image bits converted to ARGB and run through imageattributes */
314 };
315 
316 struct GpPath{
319  BOOL newfigure; /* whether the next drawing action starts a new figure */
320  INT datalen; /* size of the arrays in pathdata */
321 };
322 
325  INT subpath_pos; /* for NextSubpath methods */
326  INT marker_pos; /* for NextMarker methods */
327  INT pathtype_pos; /* for NextPathType methods */
328 };
329 
333  BOOL fill; /* TRUE for fill, FALSE for stroke */
334  GpLineCap cap; /* as far as I can tell, this value is ignored */
335  REAL inset; /* how much to adjust the end of the line */
338 };
339 
345 };
346 
347 struct GpImage{
356 };
357 
358 #define EmfPlusObjectTableSize 64
359 
360 typedef enum EmfPlusObjectType
361 {
374 
375 /* Deserialized EmfPlusObject record. */
378  union {
386  void *object;
387  } u;
388 };
389 
390 struct GpMetafile{
395  HENHMETAFILE hemf;
396  int preserve_hemf; /* if true, hemf belongs to the app and should not be deleted */
397 
398  /* recording */
405  BOOL auto_frame; /* If true, determine the frame automatically */
408 
409  /* playback */
420  GpRegion *base_clip; /* clip region in device space for all metafile output */
421  GpRegion *clip; /* clip region within the metafile */
422  struct list containers;
424 };
425 
426 struct GpBitmap{
432  BYTE *bitmapbits; /* pointer to the buffer we passed in BitmapLockBits */
435  BYTE *bits; /* actual image bits if this is a DIB */
436  INT stride; /* stride of bits if this is a DIB */
437  BYTE *own_bits; /* image bits that need to be freed with this object */
438  INT lockx, locky; /* X and Y coordinates of the rect when a bitmap is locked for writing. */
439  IWICMetadataReader *metadata_reader; /* NULL if there is no metadata */
441  PropertyItem *prop_item; /* cached image properties */
442 };
443 
446 };
447 
448 struct color_key{
452 };
453 
459 };
460 
465 };
466 
471 };
472 
483 };
484 
485 struct GpFont{
488  REAL emSize; /* in font units */
490 };
491 
493 
509 };
510 
513 
518 };
519 
522  UINT16 em_height, ascent, descent, line_spacing; /* in font units */
523  int dpi;
524 };
525 
526 /* internal use */
527 typedef enum RegionType
528 {
529  RegionDataRect = 0x10000000,
530  RegionDataPath = 0x10000001,
531  RegionDataEmptyRect = 0x10000002,
533 } RegionType;
534 
536 {
537  DWORD type; /* Rectangle, Path, SpecialRectangle, or CombineMode */
538  union
539  {
542  struct
543  {
544  struct region_element *left; /* the original region */
545  struct region_element *right; /* what *left was combined with */
546  } combine;
547  } elementdata;
548 };
549 
550 struct GpRegion{
553 };
554 
556 {
557  const BYTE *buffer;
559 };
560 
561 static inline void init_memory_buffer(struct memory_buffer *mbuf, const BYTE *buffer, INT size)
562 {
563  mbuf->buffer = buffer;
564  mbuf->size = size;
565  mbuf->pos = 0;
566 }
567 
568 static inline const void *buffer_read(struct memory_buffer *mbuf, INT size)
569 {
570  if (mbuf->size - mbuf->pos >= size)
571  {
572  const void *data = mbuf->buffer + mbuf->pos;
573  mbuf->pos += size;
574  return data;
575  }
576  return NULL;
577 }
578 
582  INT lineno, const RectF *bounds, INT *underlined_indexes,
583  INT underlined_index_count, void *user_data);
584 
587  GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, int ignore_empty_clip,
589 
591 
592 static inline BOOL image_lock(GpImage *image, BOOL *unlock)
593 {
594  LONG tid = GetCurrentThreadId(), owner_tid;
595  owner_tid = InterlockedCompareExchange(&image->busy, tid, 0);
596  *unlock = !owner_tid;
597  return !owner_tid || owner_tid==tid;
598 }
599 
600 static inline void image_unlock(GpImage *image, BOOL unlock)
601 {
602  if (unlock) image->busy = 0;
603 }
604 
605 #endif
struct color_remap_table colorremaptables[ColorAdjustTypeCount]
struct color_matrix colormatrices[ColorAdjustTypeCount]
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
GpStatus gdip_transform_points(GpGraphics *graphics, GpCoordinateSpace dst_space, GpCoordinateSpace src_space, GpPointF *points, INT count) DECLSPEC_HIDDEN
Definition: graphics.c:6948
GpStatus METAFILE_MultiplyWorldTransform(GpMetafile *metafile, GDIPCONST GpMatrix *matrix, MatrixOrder order) DECLSPEC_HIDDEN
Definition: metafile.c:1284
GpUnit unit
GpFontFamily ** FontFamilies
GpStatus METAFILE_AddSimpleProperty(GpMetafile *metafile, SHORT prop, SHORT val) DECLSPEC_HIDDEN
Definition: metafile.c:4269
BYTE * bitmap_bits
GLint GLint GLsizei width
Definition: gl.h:1546
GpStatus METAFILE_BeginContainerNoParams(GpMetafile *metafile, DWORD StackIndex) DECLSPEC_HIDDEN
Definition: metafile.c:1400
GLuint GLdouble GLdouble GLint GLint order
Definition: glext.h:11194
HBITMAP hbitmap
HBITMAP temp_hbitmap
HatchStyle
Definition: gdiplusenums.h:387
Status GpStatus
ColorMatrix colormatrix
GpFillMode fill
#define LF_FACESIZE
Definition: dimm.idl:39
GpStatus METAFILE_ScaleWorldTransform(GpMetafile *metafile, REAL sx, REAL sy, MatrixOrder order) DECLSPEC_HIDDEN
Definition: metafile.c:1260
PenAlignment
Definition: gdiplusenums.h:152
GpStatus METAFILE_RotateWorldTransform(GpMetafile *metafile, REAL angle, MatrixOrder order) DECLSPEC_HIDDEN
Definition: metafile.c:1307
region_element node
GpPathData pathdata
ImageType image_type
WCHAR FamilyName[LF_FACESIZE]
GpLineCap startcap
static void init_memory_buffer(struct memory_buffer *mbuf, const BYTE *buffer, INT size)
GpStatus METAFILE_TranslateWorldTransform(GpMetafile *metafile, REAL dx, REAL dy, MatrixOrder order) DECLSPEC_HIDDEN
Definition: metafile.c:1330
GpStatus METAFILE_SetClipRect(GpMetafile *metafile, REAL x, REAL y, REAL width, REAL height, CombineMode mode) DECLSPEC_HIDDEN
Definition: metafile.c:1141
Unit
Definition: gdiplusenums.h:25
PropertyItem * prop_item
static const char * dst_format
Definition: dib.c:1133
GpCustomLineCap * customend
GpRectF src_rect
#define ceilf(x)
Definition: mymath.h:62
WrapMode
Definition: gdiplusenums.h:203
HANDLETABLE * handle_table
Definition: mk_font.cpp:20
InterpolationMode
Definition: gdiplusenums.h:139
struct region_element::@397::@398 combine
ImageLockMode
#define pt(x, y)
Definition: drawing.c:79
GpDashStyle dash
GLuint GLenum matrix
Definition: glext.h:9407
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
IWICBitmapDecoder * decoder
GLuint GLuint GLsizei count
Definition: gl.h:1545
GpStatus METAFILE_RestoreGraphics(GpMetafile *metafile, DWORD StackIndex) DECLSPEC_HIDDEN
Definition: metafile.c:1469
GLint dy
Definition: linetemp.h:97
GpUnit page_unit
GpStatus hresult_to_status(HRESULT res) DECLSPEC_HIDDEN
Definition: gdiplus.c:312
static ARGB color_over(ARGB bg, ARGB fg)
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
BYTE * bitmapbits
const struct GpStringFormat default_drawstring_format DECLSPEC_HIDDEN
ImageLockMode lockmode
static HDC
Definition: imagelist.c:92
INT gdi_transform_save
GpPathData pathdata
GpStatus METAFILE_SaveGraphics(GpMetafile *metafile, DWORD StackIndex) DECLSPEC_HIDDEN
Definition: metafile.c:1446
DashCap
Definition: gdiplusenums.h:168
int temp_hbitmap_height
#define InterlockedCompareExchange
Definition: interlocked.h:104
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GpStatus METAFILE_EndContainer(GpMetafile *metafile, DWORD StackIndex) DECLSPEC_HIDDEN
Definition: metafile.c:1423
GraphicsContainer contid
UINT frame_count
DWORD num_children
enum imageattr_noop noop[ColorAdjustTypeCount]
GLuint buffer
Definition: glext.h:5915
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LineJoin
Definition: gdiplusenums.h:103
GpStatus METAFILE_FillRectangles(GpMetafile *metafile, GpBrush *brush, GDIPCONST GpRectF *rects, INT count) DECLSPEC_HIDDEN
Definition: metafile.c:1051
DWORD write_region_data(const GpRegion *region, void *data) DECLSPEC_HIDDEN
Definition: region.c:696
HotkeyPrefix
Definition: gdiplusenums.h:309
BOOL newfigure
GpStatus gdi_transform_acquire(GpGraphics *graphics)
Definition: graphics.c:6842
const char * debugstr_rectf(const RectF *rc) DECLSPEC_HIDDEN
Definition: gdiplus.c:476
UINT GraphicsContainer
Definition: gdiplusenums.h:23
WORD LANGID
Definition: typedefs.h:79
GpStatus METAFILE_SetClipRegion(GpMetafile *metafile, GpRegion *region, CombineMode mode) DECLSPEC_HIDDEN
Definition: metafile.c:1189
static void image_unlock(GpImage *image, BOOL unlock)
GLfloat angle
Definition: glext.h:10853
GpStatus trace_path(GpGraphics *graphics, GpPath *path) DECLSPEC_HIDDEN
Definition: graphics.c:2087
CompositingMode compmode
ColorMatrixFlags
static REAL deg2rad(REAL degrees)
#define GDIPCONST
Definition: gdiplusflat.h:24
int temp_hbitmap_width
void delete_element(region_element *element) DECLSPEC_HIDDEN
Definition: gdiplus.c:455
GpBrushType bt
int32_t INT
Definition: typedefs.h:56
& rect
Definition: startmenu.cpp:1413
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
static const unsigned char metafile[]
Definition: olepicture.c:138
REAL width
UINT style
GpStatus METAFILE_DrawImagePointsRect(GpMetafile *metafile, GpImage *image, GDIPCONST GpPointF *points, INT count, REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, GpUnit srcUnit, GDIPCONST GpImageAttributes *imageAttributes, DrawImageAbort callback, VOID *callbackData) DECLSPEC_HIDDEN
Definition: metafile.c:4190
ImageType type
StringAlignment
Definition: gdiplusenums.h:261
struct emfplus_object objtable[EmfPlusObjectTableSize]
GpCustomLineCap cap
PixelFormat apply_image_attributes(const GpImageAttributes *attributes, LPBYTE data, UINT width, UINT height, INT stride, ColorAdjustType type, PixelFormat fmt) DECLSPEC_HIDDEN
Definition: graphics.c:710
FillMode
Definition: gdiplusenums.h:53
CombineMode
Definition: gdiplusenums.h:347
InterpolationMode interpolation
PixelOffsetMode
Definition: gdiplusenums.h:158
GpStatus gdip_format_string(HDC hdc, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, int ignore_empty_clip, gdip_format_string_callback callback, void *user_data) DECLSPEC_HIDDEN
Definition: graphics.c:5201
static INT ceilr(REAL x)
DWORD write_path_data(GpPath *path, void *data) DECLSPEC_HIDDEN
struct list containers
unsigned char * LPBYTE
Definition: typedefs.h:52
HotkeyPrefix hkprefix
ColorAdjustType
GpRegion * base_clip
GpHatchStyle hatchstyle
GLenum const GLfloat * params
Definition: glext.h:5645
GpImageAttributes * imageattributes
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
GLuint color
Definition: glext.h:6243
#define a
Definition: ke_i.h:78
short SHORT
Definition: pedump.c:59
StringTrimming trimming
GpStatus METAFILE_GraphicsDeleted(GpMetafile *metafile) DECLSPEC_HIDDEN
Definition: metafile.c:1500
GpStatus METAFILE_GetDC(GpMetafile *metafile, HDC *hdc) DECLSPEC_HIDDEN
Definition: metafile.c:927
REAL gamma[ColorAdjustTypeCount]
GpStatus get_graphics_transform(GpGraphics *graphics, GpCoordinateSpace dst_space, GpCoordinateSpace src_space, GpMatrix *matrix) DECLSPEC_HIDDEN
Definition: graphics.c:6871
GpStatus convert_pixels(INT width, INT height, INT dst_stride, BYTE *dst_bits, PixelFormat dst_format, INT src_stride, const BYTE *src_bits, PixelFormat src_format, ColorPalette *palette) DECLSPEC_HIDDEN
Definition: image.c:562
BYTE * temp_bits
png_const_structrp png_const_inforp int * unit
Definition: png.h:2161
static BOOL image_lock(GpImage *image, BOOL *unlock)
PixelOffsetMode pixeloffset
EmfPlusObjectType
smooth NULL
Definition: ftsmooth.c:416
GpPointF auto_frame_max
GpGraphics * record_graphics
StringAlignment line_align
CompositingQuality
Definition: gdiplusenums.h:129
StringAlignment align
GpLineCap endcap
GpRegion * clip
REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi) DECLSPEC_HIDDEN
Definition: gdiplus.c:327
GpGraphics * playback_graphics
static INT gdip_round(REAL x)
SmoothingMode smoothing
EmfPlusObjectType type
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
#define b
Definition: ke_i.h:79
REAL * dashes
REAL units_scale(GpUnit from, GpUnit to, REAL dpi) DECLSPEC_HIDDEN
Definition: gdiplus.c:372
const GpStringFormat default_drawstring_format
Definition: stringformat.c:35
MatrixOrder
Definition: gdiplusenums.h:185
GLuint GLfloat * val
Definition: glext.h:7180
XFORM gdiworldtransform
union emfplus_object::@396 u
INT gdi_transform_acquire_count
GpMatrix transform
GpBrush brush
#define dpi
Definition: sysparams.c:22
GLboolean GLboolean g
Definition: glext.h:6204
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
HBITMAP ARGB2BMP(ARGB color) DECLSPEC_HIDDEN
Definition: gdiplus.c:272
GLsizei stride
Definition: glext.h:5848
GLsizeiptr size
Definition: glext.h:5919
#define floorf(x)
Definition: mymath.h:65
#define EmfPlusObjectTableSize
CustomLineCapType type
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
StringTrimming
Definition: gdiplusenums.h:289
DWORD COLORREF
Definition: windef.h:300
LineCap
Definition: gdiplusenums.h:59
CharacterRange * character_ranges
GpStatus(* gdip_format_string_callback)(HDC hdc, GDIPCONST WCHAR *string, INT index, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, INT lineno, const RectF *bounds, INT *underlined_indexes, INT underlined_index_count, void *user_data)
PixelFormat format
GpStatus METAFILE_ReleaseDC(GpMetafile *metafile, HDC hdc) DECLSPEC_HIDDEN
Definition: metafile.c:1492
CompositingMode
Definition: gdiplusenums.h:245
unsigned long DWORD
Definition: ntddk_ex.h:95
GpBrush brush
const char * debugstr_pointf(const PointF *pt) DECLSPEC_HIDDEN
Definition: gdiplus.c:482
GpStatus graphics_from_image(GpImage *image, GpGraphics **graphics) DECLSPEC_HIDDEN
Definition: graphics.c:2484
DWORD comment_data_length
GpRectF bounds
struct region_element * right
GpImageAttributes * image_attributes
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GpStatus METAFILE_SetPageTransform(GpMetafile *metafile, GpUnit unit, REAL scale) DECLSPEC_HIDDEN
Definition: metafile.c:1214
GLsizei const GLfloat * points
Definition: glext.h:8112
GpStatus METAFILE_FillPath(GpMetafile *metafile, GpBrush *brush, GpPath *path) DECLSPEC_HIDDEN
Definition: metafile.c:4505
void get_log_fontW(const GpFont *, GpGraphics *, LOGFONTW *) DECLSPEC_HIDDEN
Definition: graphics.c:2305
INT PixelFormat
#define index(s, c)
Definition: various.h:29
Definition: parse.h:22
HDC hdc
Definition: main.c:9
GpImage * image
GpPenAlignment align
SmoothingMode
Definition: gdiplusenums.h:119
void calc_curve_bezier(const GpPointF *pts, REAL tension, REAL *x1, REAL *y1, REAL *x2, REAL *y2) DECLSPEC_HIDDEN
Definition: gdiplus.c:379
GLenum GLsizei len
Definition: glext.h:6722
unsigned char BYTE
Definition: mem.h:68
GpRegion * clip
TextRenderingHint
Definition: gdiplusenums.h:251
Definition: _list.h:228
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
GLenum mode
Definition: glext.h:6217
BYTE * own_bits
GpMatrix worldtrans
static HPALETTE palette
Definition: clipboard.c:1345
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
INT numdashes
char string[160]
Definition: util.h:11
Status
Definition: gdiplustypes.h:24
BYTE * comment_data
INT arc2polybezier(GpPointF *points, REAL x1, REAL y1, REAL x2, REAL y2, REAL startAngle, REAL sweepAngle) DECLSPEC_HIDDEN
Definition: gdiplus.c:223
COLORREF ARGB2COLORREF(ARGB color) DECLSPEC_HIDDEN
Definition: gdiplus.c:259
struct color_key colorkeys[ColorAdjustTypeCount]
ColorPalette * palette
REAL gdiplus_atan2(REAL dy, REAL dx) DECLSPEC_HIDDEN
Definition: gdiplus.c:304
GpFontFamily * family
BOOL gamma_enabled[ColorAdjustTypeCount]
GpRegion * region
GpStatus METAFILE_BeginContainer(GpMetafile *metafile, GDIPCONST GpRectF *dstrect, GDIPCONST GpRectF *srcrect, GpUnit unit, DWORD StackIndex) DECLSPEC_HIDDEN
Definition: metafile.c:1376
GpPointF playback_points[3]
MetafileType metafile_type
DashStyle
Definition: gdiplusenums.h:175
void init_generic_string_formats(void) DECLSPEC_HIDDEN
Definition: stringformat.c:56
GpPathData pathdata
GpStatus METAFILE_GraphicsClear(GpMetafile *metafile, ARGB color) DECLSPEC_HIDDEN
Definition: metafile.c:949
REAL miterlimit
GpLineJoin join
TextRenderingHint texthint
IWICMetadataReader * metadata_reader
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: gl.h:1546
GpBrush * brush
GpMatrix * world_transform
#define M_PI
Definition: macros.h:263
unsigned short UINT16
ImageAbort DrawImageAbort
Definition: gdiplustypes.h:55
GpDashCap dashcap
StringDigitSubstitute
Definition: gdiplusenums.h:268
unsigned int UINT
Definition: ndis.h:50
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint dx
Definition: linetemp.h:97
void calc_curve_bezier_endp(REAL xend, REAL yend, REAL xadj, REAL yadj, REAL tension, REAL *x, REAL *y) DECLSPEC_HIDDEN
Definition: gdiplus.c:396
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
struct list containers
GpStatus gdi_transform_release(GpGraphics *graphics)
Definition: graphics.c:6856
StringDigitSubstitute digitsub
ImageType
Definition: gdiplusenums.h:191
BOOL lengthen_path(GpPath *path, INT len) DECLSPEC_HIDDEN
Definition: gdiplus.c:405
GpMatrix gdi_transform
GpStatus METAFILE_GetGraphicsContext(GpMetafile *metafile, GpGraphics **result) DECLSPEC_HIDDEN
Definition: metafile.c:908
GLuint res
Definition: glext.h:9613
void free_generic_string_formats(void) DECLSPEC_HIDDEN
Definition: stringformat.c:67
UINT current_frame
struct region_element * left
GpCustomLineCap * customstart
GLuint GLenum GLenum transform
Definition: glext.h:9407
GpStatus get_hatch_data(GpHatchStyle hatchstyle, const char **result) DECLSPEC_HIDDEN
Definition: brush.c:262
CustomLineCapType
Definition: gdiplusenums.h:76
CoordinateSpace
Definition: gdiplusenums.h:363
void convert_32bppARGB_to_32bppPARGB(UINT width, UINT height, BYTE *dst_bits, INT dst_stride, const BYTE *src_bits, INT src_stride) DECLSPEC_HIDDEN
Definition: gdiplus.c:435
static HBITMAP
Definition: button.c:44
GpPointF auto_frame_min
IStream * record_stream
void free_installed_fonts(void) DECLSPEC_HIDDEN
Definition: font.c:1608
GpStatus METAFILE_SetWorldTransform(GpMetafile *metafile, GDIPCONST GpMatrix *transform) DECLSPEC_HIDDEN
Definition: metafile.c:1237
GpStatus METAFILE_DrawPath(GpMetafile *metafile, GpPen *pen, GpPath *path) DECLSPEC_HIDDEN
Definition: metafile.c:4476
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
BrushType
Definition: gdiplusenums.h:36
RegionType
static const void * buffer_read(struct memory_buffer *mbuf, INT size)
float REAL
Definition: types.h:41
CardRegion * from
Definition: spigame.cpp:19
union region_element::@397 elementdata
GLfloat units
Definition: glext.h:11727
HENHMETAFILE hemf
REAL offset
GLuint64EXT * result
Definition: glext.h:11304
ColorMatrix graymatrix
imageattr_noop
DWORD next_object_id
GpStatus encode_image_png(GpImage *image, IStream *stream, GDIPCONST EncoderParameters *params) DECLSPEC_HIDDEN
Definition: image.c:4602
static TfClientId tid
CompositingQuality compqual
Definition: dsound.c:943
OUTLINETEXTMETRICW otm
const BYTE * buffer
GpMatrix transform
MetafileType
Definition: gdiplusenums.h:212
static ARGB color_over_fgpremult(ARGB bg, ARGB fg)
GpImage image
void METAFILE_Free(GpMetafile *metafile) DECLSPEC_HIDDEN
Definition: metafile.c:590
REAL pixels_to_units(REAL pixels, GpUnit unit, REAL dpi) DECLSPEC_HIDDEN
Definition: gdiplus.c:350
GpImage * image
GpStatus METAFILE_ResetWorldTransform(GpMetafile *metafile) DECLSPEC_HIDDEN
Definition: metafile.c:1354
DWORD comment_data_size
DWORD ARGB
ColorMatrixFlags flags