2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: Native driver enumate of dxeng implementation
5 * FILE: subsys/win32k/ntddraw/dxeng.c
6 * PROGRAMER: Magnus olsen (magnus@greatlord.com)
8 * 15/10-2007 Magnus Olsen
16 ULONG gcEngFuncs
= DXENG_INDEX_DxEngLoadImage
+ 1;
20 {DXENG_INDEX_DxEngNUIsTermSrv
, (PFN
)DxEngNUIsTermSrv
},
21 // {DXENG_INDEX_DxEngScreenAccessCheck, (PFN)DxEngScreenAccessCheck},
22 {0, (PFN
) NULL
}, // hack for now
23 {DXENG_INDEX_DxEngRedrawDesktop
, (PFN
)DxEngRedrawDesktop
},
24 {DXENG_INDEX_DxEngDispUniq
, (PFN
)DxEngDispUniq
},
25 // {DXENG_INDEX_DxEngIncDispUniq, (PFN)DxEngIncDispUniq},
26 {0, (PFN
) NULL
}, // hack for now
27 {DXENG_INDEX_DxEngVisRgnUniq
, (PFN
)DxEngVisRgnUniq
},
28 // {DXENG_INDEX_DxEngLockShareSem, (PFN)DxEngLockShareSem},
29 {0, (PFN
) NULL
}, // hack for now
30 // {DXENG_INDEX_DxEngUnlockShareSem, (PFN)DxEngUnlockShareSem},
31 {0, (PFN
) NULL
}, // hack for now
32 {DXENG_INDEX_DxEngEnumerateHdev
, (PFN
)DxEngEnumerateHdev
},
33 // {DXENG_INDEX_DxEngLockHdev, (PFN)DxEngLockHdev},
34 {0, (PFN
) NULL
}, // hack for now
35 // {DXENG_INDEX_DxEngUnlockHdev, (PFN)DxEngUnlockHdev},
36 {0, (PFN
) NULL
}, // hack for now
37 // {DXENG_INDEX_DxEngIsHdevLockedByCurrentThread, (PFN)DxEngIsHdevLockedByCurrentThread},
38 {0, (PFN
) NULL
}, // hack for now
39 // {DXENG_INDEX_DxEngReferenceHdev, (PFN)DxEngReferenceHdev},
40 {0, (PFN
) NULL
}, // hack for now
41 // {DXENG_INDEX_DxEngUnreferenceHdev, (PFN)DxEngUnreferenceHdev},
42 {0, (PFN
) NULL
}, // hack for now
43 {DXENG_INDEX_DxEngGetDeviceGammaRamp
, (PFN
)DxEngGetDeviceGammaRamp
},
44 // {DXENG_INDEX_DxEngSetDeviceGammaRamp, (PFN)DxEngSetDeviceGammaRamp},
45 {0, (PFN
) NULL
}, // hack for now
46 // {DXENG_INDEX_DxEngSpTearDownSprites, (PFN)DxEngSpTearDownSprites},
47 {0, (PFN
) NULL
}, // hack for now
48 // {DXENG_INDEX_DxEngSpUnTearDownSprites, (PFN)DxEngSpUnTearDownSprites},
49 {0, (PFN
) NULL
}, // hack for now
50 // {DXENG_INDEX_DxEngSpSpritesVisible, (PFN)DxEngSpSpritesVisible},
51 {0, (PFN
) NULL
}, // hack for now
52 // {DXENG_INDEX_DxEngGetHdevData, (PFN)DxEngGetHdevData},
53 {0, (PFN
) NULL
}, // hack for now
54 // {DXENG_INDEX_DxEngSetHdevData, (PFN)DxEngSetHdevData},
55 {0, (PFN
) NULL
}, // hack for now
56 // {DXENG_INDEX_DxEngCreateMemoryDC, (PFN)DxEngCreateMemoryDC},
57 {0, (PFN
) NULL
}, // hack for now
58 // {DXENG_INDEX_DxEngGetDesktopDC, (PFN)DxEngGetDesktopDC},
59 {0, (PFN
) NULL
}, // hack for now
60 // {DXENG_INDEX_DxEngDeleteDC, (PFN)DxEngDeleteDC},
61 {0, (PFN
) NULL
}, // hack for now
62 // {DXENG_INDEX_DxEngCleanDC, (PFN)DxEngCleanDC},
63 {0, (PFN
) NULL
}, // hack for now
64 // {DXENG_INDEX_DxEngSetDCOwner, (PFN)DxEngSetDCOwner},
65 {0, (PFN
) NULL
}, // hack for now
66 {DXENG_INDEX_DxEngLockDC
, (PFN
)DxEngLockDC
},
67 {DXENG_INDEX_DxEngUnlockDC
, (PFN
)DxEngUnlockDC
},
68 // {DXENG_INDEX_DxEngSetDCState, (PFN)DxEngGetDCState},
69 {0, (PFN
) NULL
}, // hack for now
70 // {DXENG_INDEX_DxEngGetDCState, (PFN)DxEngGetDCState},
71 {0, (PFN
) NULL
}, // hack for now
72 // {DXENG_INDEX_DxEngSelectBitmap, (PFN)DxEngSelectBitmap},
73 {0, (PFN
) NULL
}, // hack for now
74 // {DXENG_INDEX_DxEngSetBitmapOwner, (PFN)DxEngSetBitmapOwner},
75 {0, (PFN
) NULL
}, // hack for now
76 // {DXENG_INDEX_DxEngDeleteSurface, (PFN)DxEngDeleteSurface},
77 {0, (PFN
) NULL
}, // hack for now
78 // {DXENG_INDEX_DxEngGetSurfaceData, (PFN)DxEngGetSurfaceData},
79 {0, (PFN
) NULL
}, // hack for now
80 // {DXENG_INDEX_DxEngAltLockSurface, (PFN)DxEngAltLockSurface},
81 {0, (PFN
) NULL
}, // hack for now
82 // {DXENG_INDEX_DxEngUploadPaletteEntryToSurface, (PFN)DxEngUploadPaletteEntryToSurface},
83 {0, (PFN
) NULL
}, // hack for now
84 // {DXENG_INDEX_DxEngMarkSurfaceAsDirectDraw, (PFN)DxEngMarkSurfaceAsDirectDraw},
85 {0, (PFN
) NULL
}, // hack for now
86 // {DXENG_INDEX_DxEngSelectPaletteToSurface, (PFN)DxEngSelectPaletteToSurface},
87 {0, (PFN
) NULL
}, // hack for now
88 // {DXENG_INDEX_DxEngSyncPaletteTableWithDevice, (PFN)DxEngSyncPaletteTableWithDevice},
89 {0, (PFN
) NULL
}, // hack for now
90 // {DXENG_INDEX_DxEngSetPaletteState, (PFN)DxEngSetPaletteState},
91 {0, (PFN
) NULL
}, // hack for now
92 // {DXENG_INDEX_DxEngGetRedirectionBitmap, (PFN)DxEngGetRedirectionBitmap},
93 {0, (PFN
) NULL
}, // hack for now
94 // {DXENG_INDEX_DxEngLoadImage, (PFN)DxEngLoadImage}
95 {0, (PFN
) NULL
} // hack for now
98 /************************************************************************/
99 /* DxEngNUIsTermSrv */
100 /************************************************************************/
102 /* Notes : Check see if termal server got a connections or not */
106 /* FIXME ReactOS does not suport terminal server yet, we can not check if we got a connections or not */
111 /************************************************************************/
112 /* DxEngRedrawDesktop */
113 /************************************************************************/
115 /* Notes : it always return TRUE, and it update whole the screen (redaw current desktop) */
119 /* FIXME add redraw code */
125 /************************************************************************/
127 /************************************************************************/
129 /* Notes : return the DisplayUniqVisrgn counter from gdishare memory */
133 /* FIXME DisplayUniqVisrgn from gdishare memory */
138 /************************************************************************/
139 /* DxEngVisRgnUniq */
140 /************************************************************************/
141 /* Notes : return the VisRgnUniq counter for win32k */
145 /* FIXME DisplayUniqVisrgn from gdishare memory */
150 /************************************************************************/
151 /* DxEngEnumerateHdev */
152 /************************************************************************/
153 /* Enumate all drivers in win32k */
155 DxEngEnumerateHdev(HDEV
*hdev
)
157 /* FIXME Enumate all drivers in win32k */
162 /************************************************************************/
163 /* DxEngGetDeviceGammaRamp */
164 /************************************************************************/
165 /* same protypes NtGdiEngGetDeviceGammaRamp, diffent is we skipp the user mode checks and seh */
167 DxEngGetDeviceGammaRamp(HDC hDC
, LPVOID lpRamp
)
169 /* FIXME redirect it to NtGdiEngGetDeviceGammaRamp internal call */
179 * The function DxEngLockDC lock a hdc from dxg.sys
182 * The handle we need want lock
185 * This api return PDC or NULL depns if it sussess lock the hdc or not
194 return DC_LockDc(hDC
);
199 * @name DxEngUnlockDC
202 * The function DxEngUnlockDC Unlock a pDC (hdc) from dxg.sys
205 * The handle we need unlock
208 * This api always return TRUE if it sussess or not
215 DxEngUnlockDC(PDC pDC
)
222 /************************************************************************/
223 /* DxEngCreateMemoryDC */
224 /************************************************************************/
225 DWORD
DxEngCreateMemoryDC(DWORD x1
)
231 /************************************************************************/
232 /* DxEngScreenAccessCheck */
233 /************************************************************************/
234 DWORD
DxEngScreenAccessCheck()
240 /************************************************************************/
241 /* DxEngLockShareSem */
242 /************************************************************************/
243 DWORD
DxEngLockShareSem()
249 /************************************************************************/
250 /* DxEngUnlockShareSem */
251 /************************************************************************/
252 DWORD
DxEngUnlockShareSem()
258 /************************************************************************/
260 /************************************************************************/
261 DWORD
DxEngLockHdev(DWORD x1
)
267 /************************************************************************/
268 /* DxEngUnlockHdev */
269 /************************************************************************/
270 DWORD
DxEngUnlockHdev(DWORD x1
)
276 /************************************************************************/
277 /* DxEngReferenceHdev */
278 /************************************************************************/
279 DWORD
DxEngReferenceHdev(DWORD x1
)
285 /************************************************************************/
286 /* DxEngIsHdevLockedByCurrentThread */
287 /************************************************************************/
288 DWORD
DxEngIsHdevLockedByCurrentThread(DWORD x1
)
295 /************************************************************************/
296 /* DxEngUnreferenceHdev */
297 /************************************************************************/
298 DWORD
DxEngUnreferenceHdev(DWORD x1
)
304 /************************************************************************/
305 /* DxEngSetDeviceGammaRamp */
306 /************************************************************************/
307 DWORD
DxEngSetDeviceGammaRamp(DWORD x1
, DWORD x2
, DWORD x3
)
313 /************************************************************************/
314 /* DxEngSpTearDownSprites */
315 /************************************************************************/
316 DWORD
DxEngSpTearDownSprites(DWORD x1
, DWORD x2
, DWORD x3
)
322 /************************************************************************/
323 /* DxEngSpUnTearDownSprites */
324 /************************************************************************/
325 DWORD
DxEngSpUnTearDownSprites(DWORD x1
, DWORD x2
, DWORD x3
)
331 /************************************************************************/
332 /* DxEngSpSpritesVisible */
333 /************************************************************************/
334 DWORD
DxEngSpSpritesVisible(DWORD x1
)
340 /************************************************************************/
341 /* DxEngGetHdevData */
342 /************************************************************************/
343 DWORD
DxEngGetHdevData(DWORD x1
, DWORD x2
)
349 /************************************************************************/
350 /* DxEngSetHdevData */
351 /************************************************************************/
352 DWORD
DxEngSetHdevData(DWORD x1
, DWORD x2
, DWORD x3
)
358 /************************************************************************/
359 /* DxEngGetDesktopDC */
360 /************************************************************************/
361 DWORD
DxEngGetDesktopDC(DWORD x1
, DWORD x2
, DWORD x3
)
367 /************************************************************************/
369 /************************************************************************/
370 DWORD
DxEngDeleteDC(DWORD x1
, DWORD x2
)
376 /************************************************************************/
378 /************************************************************************/
379 DWORD
DxEngCleanDC(DWORD x1
)
385 /************************************************************************/
386 /* DxEngSetDCOwner */
387 /************************************************************************/
388 DWORD
DxEngSetDCOwner(DWORD x1
, DWORD x2
)
394 /************************************************************************/
395 /* DxEngSetDCState */
396 /************************************************************************/
397 DWORD
DxEngSetDCState(DWORD x1
, DWORD x2
, DWORD x3
)
403 /************************************************************************/
404 /* DxEngGetDCState */
405 /************************************************************************/
406 DWORD
DxEngGetDCState(DWORD x1
, DWORD x2
)
412 /************************************************************************/
413 /* DxEngSelectBitmap */
414 /************************************************************************/
415 DWORD
DxEngSelectBitmap(DWORD x1
, DWORD x2
)
421 /************************************************************************/
422 /* DxEngSetBitmapOwner */
423 /************************************************************************/
424 DWORD
DxEngSetBitmapOwner(DWORD x1
, DWORD x2
)
430 /************************************************************************/
431 /* DxEngDeleteSurface */
432 /************************************************************************/
433 DWORD
DxEngDeleteSurface(DWORD x1
)
439 /************************************************************************/
440 /* DxEngGetSurfaceData */
441 /************************************************************************/
442 DWORD
DxEngGetSurfaceData(DWORD x1
, DWORD x2
)
448 /************************************************************************/
449 /* DxEngAltLockSurface */
450 /************************************************************************/
451 DWORD
DxEngAltLockSurface(DWORD x1
)
457 /************************************************************************/
458 /* DxEngUploadPaletteEntryToSurface */
459 /************************************************************************/
460 DWORD
DxEngUploadPaletteEntryToSurface(DWORD x1
, DWORD x2
,DWORD x3
, DWORD x4
)
466 /************************************************************************/
467 /* DxEngMarkSurfaceAsDirectDraw */
468 /************************************************************************/
469 DWORD
DxEngMarkSurfaceAsDirectDraw(DWORD x1
, DWORD x2
)
475 /************************************************************************/
476 /* DxEngSelectPaletteToSurface */
477 /************************************************************************/
478 DWORD
DxEngSelectPaletteToSurface(DWORD x1
, DWORD x2
)
484 /************************************************************************/
485 /* DxEngSyncPaletteTableWithDevice */
486 /************************************************************************/
487 DWORD
DxEngSyncPaletteTableWithDevice(DWORD x1
, DWORD x2
)
493 /************************************************************************/
494 /* DxEngSetPaletteState */
495 /************************************************************************/
496 DWORD
DxEngSetPaletteState(DWORD x1
, DWORD x2
, DWORD x3
)
502 /************************************************************************/
503 /* DxEngGetRedirectionBitmap */
504 /************************************************************************/
505 DWORD
DxEngGetRedirectionBitmap(DWORD x1
)
511 /************************************************************************/
513 /************************************************************************/
514 DWORD
DxEngLoadImage(DWORD x1
,DWORD x2
)