1 /*
2 * WinG support
3 *
4 * Copyright 2007 Dmitry Timoshkov
5 *
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.
10 *
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.
15 *
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
19 */
20
21 #include <stdarg.h>
22
23 #include "windef.h"
24 #include "winbase.h"
25 #include "wingdi.h"
26 #include "winuser.h"
27
28 /***********************************************************************
29 * WinGCreateDC (WING32.@)
30 */
31 HDC WINAPI WinGCreateDC( void )
32 {
33 return CreateCompatibleDC( 0 );
34 }
35
36 /***********************************************************************
37 * WinGRecommendDIBFormat (WING32.@)
38 */
39 BOOL WINAPI WinGRecommendDIBFormat( BITMAPINFO *bmi )
40 {
41 if (!bmi) return FALSE;
42
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;
54
55 return TRUE;
56 }
57
58 /***********************************************************************
59 * WinGCreateBitmap (WING32.@)
60 */
61 HBITMAP WINAPI WinGCreateBitmap( HDC hdc, BITMAPINFO *bmi, void **bits )
62 {
63 return CreateDIBSection( hdc, bmi, 0, bits, 0, 0 );
64 }
65
66 /***********************************************************************
67 * WinGGetDIBPointer (WING32.@)
68 */
69 void * WINAPI WinGGetDIBPointer( HBITMAP hbmp, BITMAPINFO *bmi )
70 {
71 DIBSECTION ds;
72
73 if (GetObjectW( hbmp, sizeof(ds), &ds ) == sizeof(ds))
74 {
75 memcpy( &bmi->bmiHeader, &ds.dsBmih, sizeof(*bmi) );
76 return ds.dsBm.bmBits;
77 }
78 return NULL;
79 }
80
81 /***********************************************************************
82 * WinGSetDIBColorTable (WING32.@)
83 */
84 UINT WINAPI WinGSetDIBColorTable( HDC hdc, UINT start, UINT end, RGBQUAD *colors )
85 {
86 return SetDIBColorTable( hdc, start, end, colors );
87 }
88
89 /***********************************************************************
90 * WinGGetDIBColorTable (WING32.@)
91 */
92 UINT WINAPI WinGGetDIBColorTable( HDC hdc, UINT start, UINT end, RGBQUAD *colors )
93 {
94 return GetDIBColorTable( hdc, start, end, colors );
95 }
96
97 /***********************************************************************
98 * WinGCreateHalftonePalette (WING32.@)
99 */
100 HPALETTE WINAPI WinGCreateHalftonePalette( void )
101 {
102 HDC hdc;
103 HPALETTE hpal;
104
105 hdc = GetDC( 0 );
106 hpal = CreateHalftonePalette( hdc );
107 ReleaseDC( 0, hdc );
108
109 return hpal;
110 }
111
112 /***********************************************************************
113 * WinGCreateHalftoneBrush (WING32.@)
114 */
115 HBRUSH WINAPI WinGCreateHalftoneBrush( HDC hdc, COLORREF color, INT type )
116 {
117 return CreateSolidBrush( color );
118 }
119
120 /***********************************************************************
121 * WinGStretchBlt (WING32.@)
122 */
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 )
125 {
126 INT old_blt_mode;
127 BOOL ret;
128
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 );
133 return ret;
134 }
135
136 /***********************************************************************
137 * WinGBitBlt (WING32.@)
138 */
139 BOOL WINAPI WinGBitBlt( HDC hdcDst, INT xDst, INT yDst, INT width,
140 INT height, HDC hdcSrc, INT xSrc, INT ySrc )
141 {
142 return BitBlt( hdcDst, xDst, yDst, width, height, hdcSrc, xSrc, ySrc, SRCCOPY );
143 }
144
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.