DIB Engine: initial pass-through implementation
[wine/hacks.git] / dlls / winedib.drv / dc.c
blobe0ffb4d0f791d02a908c1f57df0ee070c323a4ee
1 /*
2 * DIB driver initialization functions
4 * Copyright 2009 Massimo Del Fedele
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
21 #include "config.h"
22 #include "wine/port.h"
24 #include "dibdrv.h"
26 WINE_DEFAULT_DEBUG_CHANNEL(dibdrv);
28 /**********************************************************************
29 * DIBDRV_CreateDC
31 BOOL DIBDRV_CreateDC( HDC hdc, DIBDRVPHYSDEV **pdev, LPCWSTR driver, LPCWSTR device,
32 LPCWSTR output, const DEVMODEW* initData )
34 DIBDRVPHYSDEV *physDev;
35 PHYSDEV X11PhysDev;
37 TRACE("hdc:%p, pdev:%p, driver:%s, device:%s, output:%s, initData:%p\n",
38 hdc, pdev, debugstr_w(driver), debugstr_w(device), debugstr_w(output), initData);
40 /* allocates physical device */
41 physDev = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DIBDRVPHYSDEV) );
42 if (!physDev)
43 return FALSE;
45 /* creates X11 physical device */
46 if(!_DIBDRV_GetDisplayDriver()->pCreateDC(hdc, &X11PhysDev, driver, device, output, initData))
48 HeapFree(GetProcessHeap(), 0, physDev);
49 return FALSE;
52 /* sets X11 Device pointer in DIB Engine device */
53 physDev->X11PhysDev = X11PhysDev;
55 /* sets the result value and returns */
56 *pdev = physDev;
58 ONCE(FIXME("stub\n"));
59 return TRUE;
62 /**********************************************************************
63 * DIBDRV_DeleteDC
65 BOOL DIBDRV_DeleteDC( DIBDRVPHYSDEV *physDev )
67 BOOL res;
69 TRACE("physDev:%p\n", physDev);
71 /* frees X11 device */
72 res = _DIBDRV_GetDisplayDriver()->pDeleteDC(physDev->X11PhysDev);
73 physDev->X11PhysDev = NULL;
75 /* frees DIB Engine device */
76 HeapFree(GetProcessHeap(), 0, physDev);
78 ONCE(FIXME("stub\n"));
79 return res;
82 /**********************************************************************
83 * DIBDRV_ExtEscape
85 INT DIBDRV_ExtEscape( DIBDRVPHYSDEV *physDev, INT escape, INT in_count, LPCVOID in_data,
86 INT out_count, LPVOID out_data )
88 TRACE("physDev:%p, escape:%d, in_count:%d, in_data:%p, out_count:%d, out_data:%p\n",
89 physDev, escape, in_count, in_data, out_count, out_data);
91 ONCE(FIXME("stub\n"));
92 return _DIBDRV_GetDisplayDriver()->pExtEscape(physDev->X11PhysDev, escape, in_count, in_data, out_count, out_data);
95 /***********************************************************************
96 * DIBDRV_GetDeviceCaps
98 INT DIBDRV_GetDeviceCaps( DIBDRVPHYSDEV *physDev, INT cap )
100 TRACE("physDev:%p, cap:%d\n", physDev, cap);
102 ONCE(FIXME("stub\n"));
103 return _DIBDRV_GetDisplayDriver()->pGetDeviceCaps(physDev->X11PhysDev, cap);