ReactOS 0.4.16-dev-329-g9223134
wing32.c
Go to the documentation of this file.
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 */
32{
33 return CreateCompatibleDC( 0 );
34}
35
36/***********************************************************************
37 * WinGRecommendDIBFormat (WING32.@)
38 */
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;
49 bmi->bmiHeader.biSizeImage = 0;
52 bmi->bmiHeader.biClrUsed = 0;
54
55 return TRUE;
56}
57
58/***********************************************************************
59 * WinGCreateBitmap (WING32.@)
60 */
62{
63 return CreateDIBSection( hdc, bmi, DIB_RGB_COLORS, bits, 0, 0 );
64}
65
66/***********************************************************************
67 * WinGGetDIBPointer (WING32.@)
68 */
70{
72
73 if (GetObjectW( hbmp, sizeof(ds), &ds ) == sizeof(ds))
74 {
75 bmi->bmiHeader = ds.dsBmih;
76 return ds.dsBm.bmBits;
77 }
78 return NULL;
79}
80
81/***********************************************************************
82 * WinGSetDIBColorTable (WING32.@)
83 */
85{
86 return SetDIBColorTable( hdc, start, end, colors );
87}
88
89/***********************************************************************
90 * WinGGetDIBColorTable (WING32.@)
91 */
93{
94 return GetDIBColorTable( hdc, start, end, colors );
95}
96
97/***********************************************************************
98 * WinGCreateHalftonePalette (WING32.@)
99 */
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 */
116{
117 return CreateSolidBrush( color );
118}
119
120/***********************************************************************
121 * WinGStretchBlt (WING32.@)
122 */
123BOOL 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 */
140 INT height, HDC hdcSrc, INT xSrc, INT ySrc )
141{
142 return BitBlt( hdcDst, xDst, yDst, width, height, hdcSrc, xSrc, ySrc, SRCCOPY );
143}
HBITMAP hbmp
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:57
#define BI_RGB
Definition: precomp.h:56
ULONG RGBQUAD
Definition: precomp.h:59
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint start
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint GLuint end
Definition: gl.h:1545
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLuint color
Definition: glext.h:6243
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
#define ds
Definition: i386-dis.c:443
HDC hdc
Definition: main.c:9
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:88
unsigned int UINT
Definition: ndis.h:50
ULONG biClrImportant
Definition: precomp.h:52
USHORT biBitCount
Definition: precomp.h:46
LONG biYPelsPerMeter
Definition: precomp.h:50
ULONG biCompression
Definition: precomp.h:47
LONG biXPelsPerMeter
Definition: precomp.h:49
BITMAPINFOHEADER bmiHeader
Definition: wingdi.h:1476
int32_t INT
Definition: typedefs.h:58
int ret
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
Definition: bitmap.c:245
UINT WINAPI GetDIBColorTable(HDC hDC, UINT iStartIndex, UINT cEntries, RGBQUAD *pColors)
Definition: palette.c:123
DWORD COLORREF
Definition: windef.h:300
#define WINAPI
Definition: msvc.h:6
HPALETTE WINAPI WinGCreateHalftonePalette(void)
Definition: wing32.c:100
HBITMAP WINAPI WinGCreateBitmap(HDC hdc, BITMAPINFO *bmi, void **bits)
Definition: wing32.c:61
void *WINAPI WinGGetDIBPointer(HBITMAP hbmp, BITMAPINFO *bmi)
Definition: wing32.c:69
HDC WINAPI WinGCreateDC(void)
Definition: wing32.c:31
BOOL WINAPI WinGBitBlt(HDC hdcDst, INT xDst, INT yDst, INT width, INT height, HDC hdcSrc, INT xSrc, INT ySrc)
Definition: wing32.c:139
HBRUSH WINAPI WinGCreateHalftoneBrush(HDC hdc, COLORREF color, INT type)
Definition: wing32.c:115
UINT WINAPI WinGSetDIBColorTable(HDC hdc, UINT start, UINT end, RGBQUAD *colors)
Definition: wing32.c:84
BOOL WINAPI WinGRecommendDIBFormat(BITMAPINFO *bmi)
Definition: wing32.c:39
BOOL WINAPI WinGStretchBlt(HDC hdcDst, INT xDst, INT yDst, INT widthDst, INT heightDst, HDC hdcSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc)
Definition: wing32.c:123
UINT WINAPI WinGGetDIBColorTable(HDC hdc, UINT start, UINT end, RGBQUAD *colors)
Definition: wing32.c:92
#define DIB_RGB_COLORS
Definition: wingdi.h:367
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
#define COLORONCOLOR
Definition: wingdi.h:954
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
#define SRCCOPY
Definition: wingdi.h:333
UINT WINAPI SetDIBColorTable(_In_ HDC hdc, _In_ UINT iStart, _In_ UINT cEntries, _In_reads_(cEntries) const RGBQUAD *prgbq)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
int WINAPI SetStretchBltMode(_In_ HDC, _In_ int)
Definition: dc.c:1373
HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)
static HDC hdcSrc
Definition: xlate.c:32
static HDC hdcDst
Definition: xlate.c:32