4 * Copyright 2007 Dmitry Timoshkov
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
28 /***********************************************************************
29 * WinGCreateDC (WING32.@)
31 HDC WINAPI
WinGCreateDC( void )
33 return CreateCompatibleDC( 0 );
36 /***********************************************************************
37 * WinGRecommendDIBFormat (WING32.@)
39 BOOL WINAPI
WinGRecommendDIBFormat( BITMAPINFO
*bmi
)
41 if (!bmi
) return FALSE
;
43 bmi
->bmiHeader
.biSize
= sizeof(BITMAPINFOHEADER
);
44 bmi
->bmiHeader
.biWidth
= 320;
45 bmi
->bmiHeader
.biHeight
= 1;
46 bmi
->bmiHeader
.biPlanes
= 1;
47 bmi
->bmiHeader
.biBitCount
= 8;
48 bmi
->bmiHeader
.biCompression
= BI_RGB
;
49 bmi
->bmiHeader
.biSizeImage
= 0;
50 bmi
->bmiHeader
.biXPelsPerMeter
= 0;
51 bmi
->bmiHeader
.biYPelsPerMeter
= 0;
52 bmi
->bmiHeader
.biClrUsed
= 0;
53 bmi
->bmiHeader
.biClrImportant
= 0;
58 /***********************************************************************
59 * WinGCreateBitmap (WING32.@)
61 HBITMAP WINAPI
WinGCreateBitmap( HDC hdc
, BITMAPINFO
*bmi
, void **bits
)
63 return CreateDIBSection( hdc
, bmi
, DIB_RGB_COLORS
, bits
, 0, 0 );
66 /***********************************************************************
67 * WinGGetDIBPointer (WING32.@)
69 void * WINAPI
WinGGetDIBPointer( HBITMAP hbmp
, BITMAPINFO
*bmi
)
73 if (GetObjectW( hbmp
, sizeof(ds
), &ds
) == sizeof(ds
))
75 memcpy( &bmi
->bmiHeader
, &ds
.dsBmih
, sizeof(*bmi
) );
76 return ds
.dsBm
.bmBits
;
81 /***********************************************************************
82 * WinGSetDIBColorTable (WING32.@)
84 UINT WINAPI
WinGSetDIBColorTable( HDC hdc
, UINT start
, UINT end
, RGBQUAD
*colors
)
86 return SetDIBColorTable( hdc
, start
, end
, colors
);
89 /***********************************************************************
90 * WinGGetDIBColorTable (WING32.@)
92 UINT WINAPI
WinGGetDIBColorTable( HDC hdc
, UINT start
, UINT end
, RGBQUAD
*colors
)
94 return GetDIBColorTable( hdc
, start
, end
, colors
);
97 /***********************************************************************
98 * WinGCreateHalftonePalette (WING32.@)
100 HPALETTE WINAPI
WinGCreateHalftonePalette( void )
106 hpal
= CreateHalftonePalette( hdc
);
112 /***********************************************************************
113 * WinGCreateHalftoneBrush (WING32.@)
115 HBRUSH WINAPI
WinGCreateHalftoneBrush( HDC hdc
, COLORREF color
, INT type
)
117 return CreateSolidBrush( color
);
120 /***********************************************************************
121 * WinGStretchBlt (WING32.@)
123 BOOL WINAPI
WinGStretchBlt( HDC hdcDst
, INT xDst
, INT yDst
, INT widthDst
, INT heightDst
,
124 HDC hdcSrc
, INT xSrc
, INT ySrc
, INT widthSrc
, INT heightSrc
)
129 old_blt_mode
= SetStretchBltMode( hdcDst
, COLORONCOLOR
);
130 ret
= StretchBlt( hdcDst
, xDst
, yDst
, widthDst
, heightDst
,
131 hdcSrc
, xSrc
, ySrc
, widthSrc
, heightSrc
, SRCCOPY
);
132 SetStretchBltMode( hdcDst
, old_blt_mode
);
136 /***********************************************************************
137 * WinGBitBlt (WING32.@)
139 BOOL WINAPI
WinGBitBlt( HDC hdcDst
, INT xDst
, INT yDst
, INT width
,
140 INT height
, HDC hdcSrc
, INT xSrc
, INT ySrc
)
142 return BitBlt( hdcDst
, xDst
, yDst
, width
, height
, hdcSrc
, xSrc
, ySrc
, SRCCOPY
);