source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/gdiplus/gdipluspixelformats.h@ 1181

Last change on this file since 1181 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.5 KB
Line 
1/*
2 * gdipluspixelformats.h
3 *
4 * GDI+ pixel formats
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Markus Koenig <markus@stber-koenig.de>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifndef __GDIPLUS_PIXELFORMATS_H
24#define __GDIPLUS_PIXELFORMATS_H
25#if __GNUC__ >=3
26#pragma GCC system_header
27#endif
28
29typedef DWORD ARGB;
30typedef INT PixelFormat;
31
32#define PixelFormatIndexed ((INT) 0x00010000)
33#define PixelFormatGDI ((INT) 0x00020000)
34#define PixelFormatAlpha ((INT) 0x00040000)
35#define PixelFormatPAlpha ((INT) 0x00080000)
36#define PixelFormatExtended ((INT) 0x00100000)
37#define PixelFormatCanonical ((INT) 0x00200000)
38#define PixelFormatUndefined ((INT) 0)
39#define PixelFormatDontCare ((INT) 0)
40#define PixelFormat1bppIndexed ((INT) \
41 (1 | (1<<8) | PixelFormatIndexed | PixelFormatGDI))
42#define PixelFormat4bppIndexed ((INT) \
43 (2 | (4<<8) | PixelFormatIndexed | PixelFormatGDI))
44#define PixelFormat8bppIndexed ((INT) \
45 (3 | (8<<8) | PixelFormatIndexed | PixelFormatGDI))
46#define PixelFormat16bppGrayScale ((INT) \
47 (4 | (16<<8) | PixelFormatExtended))
48#define PixelFormat16bppRGB555 ((INT) \
49 (5 | (16<<8) | PixelFormatGDI))
50#define PixelFormat16bppRGB565 ((INT) \
51 (6 | (16<<8) | PixelFormatGDI))
52#define PixelFormat16bppARGB1555 ((INT) \
53 (7 | (16<<8) | PixelFormatAlpha | PixelFormatGDI))
54#define PixelFormat24bppRGB ((INT) \
55 (8 | (24<<8) | PixelFormatGDI))
56#define PixelFormat32bppRGB ((INT) \
57 (9 | (32<<8) | PixelFormatGDI))
58#define PixelFormat32bppARGB ((INT) \
59 (10 | (32<<8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical))
60#define PixelFormat32bppPARGB ((INT) \
61 (11 | (32<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI))
62#define PixelFormat48bppRGB ((INT) \
63 (12 | (48<<8) | PixelFormatExtended))
64#define PixelFormat64bppARGB ((INT) \
65 (13 | (64<<8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended))
66#define PixelFormat64bppPARGB ((INT) \
67 (14 | (64<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended))
68#define PixelFormatMax ((INT) 15)
69
70typedef enum PaletteFlags {
71 PaletteFlagsHasAlpha = 1,
72 PaletteFlagsGrayScale = 2,
73 PaletteFlagsHalftone = 4
74} PaletteFlags;
75
76typedef enum PaletteType {
77 PaletteTypeCustom = 0,
78 PaletteTypeOptimal = 1,
79 PaletteTypeFixedBW = 2,
80 PaletteTypeFixedHalftone8 = 3,
81 PaletteTypeFixedHalftone27 = 4,
82 PaletteTypeFixedHalftone64 = 5,
83 PaletteTypeFixedHalftone125 = 6,
84 PaletteTypeFixedHalftone216 = 7,
85 PaletteTypeFixedHalftone252 = 8,
86 PaletteTypeFixedHalftone256 = 9
87} PaletteType;
88
89typedef struct ColorPalette {
90 UINT Flags;
91 UINT Count;
92 ARGB Entries[1];
93} ColorPalette;
94
95static __inline__ UINT GetPixelFormatSize(PixelFormat pixfmt)
96{
97 return (((UINT) pixfmt) & 0xff00U) >> 8;
98}
99
100static __inline__ BOOL IsAlphaPixelFormat(PixelFormat pixfmt)
101{
102 return (pixfmt & PixelFormatAlpha) != 0;
103}
104
105static __inline__ BOOL IsCanonicalPixelFormat(PixelFormat pixfmt)
106{
107 return (pixfmt & PixelFormatCanonical) != 0;
108}
109
110static __inline__ BOOL IsExtendedPixelFormat(PixelFormat pixfmt)
111{
112 return (pixfmt & PixelFormatExtended) != 0;
113}
114
115static __inline__ BOOL IsIndexedPixelFormat(PixelFormat pixfmt)
116{
117 return (pixfmt & PixelFormatIndexed) != 0;
118}
119
120#endif /* __GDIPLUS_PIXELFORMATS_H */
Note: See TracBrowser for help on using the repository browser.