reactos/win32ss/gdi/ntgdi
Oleg Dubinskiy 114bc2b96e
[NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551)
CORE-18221

Load the DirectX graphics kernel driver (dxg.sys) by win32k at WINSRV
initialization time, in NtUserInitialize(). Keep it always loaded in
memory, as on Windows, instead of loading it only by DirectX dlls.

This fixes the problem of acessing this driver: we need only to call
DxDdEnableDirectDraw() and do other stuff when DirectDraw/Direct3D is
required by anything. In other cases, it is called from win32k PDEV
functions when changing display mode (as in Windows). Since it's used
by other things too, it needs to be always loaded.

Otherwise, if it's not loaded, its APIs are not accessible when needed,
and execution fails.

For example, it fixes display mode change problem in VMWare, when a
new mode fails to be applied. Indeed, when it manages DirectDraw stuff,
it calls DXG routines, and therefore fails if dxg.sys isn't loaded
in memory at this moment.

- Implement InitializeGreCSRSS() initialization routine, that initializes
  supplemental NTGDI/GRE data once CSRSS and WINSRV are loaded:
  * Call DxDdStartupDxGraphics() inside it, which loads dxg.sys.
  * Additionally, move fonts and language ID initialization there, from
   win32k!DriverEntry. Confirmed by analysis on Windows.

- Call InitializeGreCSRSS() in NtUserInitialize() main initialization routine
  (called by WINSRV initialization).

Moved to NTGDI from previously NTUSER place:

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2023-06-11 13:44:56 +02:00
..
arc.c
baseobj.hpp
bezier.c
bitblt.c [WIN32SS] Use the DCFLAGS and DCTYPE flags defined in ntgdi/dc.h instead of the old ones in include/ntgdihdl.h 2022-03-19 17:26:09 +01:00
bitmaps.c [WIN32K] Add missing NULL checks 2022-08-04 16:15:24 +02:00
bitmaps.h [WIN32SS][NTGDI] Fix UnsafeSetBitmapBits (#1310) 2019-01-27 15:32:52 +09:00
brush.cpp [NtGDI] Fix brush attribute transfer. 2021-09-28 19:08:45 -05:00
brush.h [NTGDI][NTUSER][INCLUDE] Add 'See also:' comments for structures (#4872) 2022-11-12 20:27:50 +09:00
brush.hpp [NtGDI] Fix brush attribute transfer. 2021-09-28 19:08:45 -05:00
cliprgn.c [WIN32SS] Use the DCFLAGS and DCTYPE flags defined in ntgdi/dc.h instead of the old ones in include/ntgdihdl.h 2022-03-19 17:26:09 +01:00
cliprgn.h [NtGDI] Fix ExtSelectClipRgn Tests 2019-05-09 12:33:21 -05:00
color.h
coord.c [WIN32K] More cleanup & improvements 2021-03-31 18:35:31 +02:00
coord.h [WIN32K] More cleanup & improvements 2021-03-31 18:35:31 +02:00
dc.h [NTGDI][NTUSER][INCLUDE] Add 'See also:' comments for structures (#4872) 2022-11-12 20:27:50 +09:00
dcattr.c
dclife.c [WIN32SS] Introduce the MDEVOBJ structure 2022-04-15 23:09:16 +02:00
dcobjs.c [WIN32SS] Use the DCFLAGS and DCTYPE flags defined in ntgdi/dc.h instead of the old ones in include/ntgdihdl.h 2022-03-19 17:26:09 +01:00
dcstate.c [WIN32SS] Use the DCFLAGS and DCTYPE flags defined in ntgdi/dc.h instead of the old ones in include/ntgdihdl.h 2022-03-19 17:26:09 +01:00
dcutil.c [WIN32SS] Use the DCFLAGS and DCTYPE flags defined in ntgdi/dc.h instead of the old ones in include/ntgdihdl.h 2022-03-19 17:26:09 +01:00
device.c [WIN32SS][NTDDRAW][NTGDI] Implement some DxEng* callbacks (#3638) 2022-06-01 00:58:35 +03:00
dib.h
dibobj.c [WIN32K] Fix missing NULL check in IntCreateDIBitmap 2022-12-01 20:17:40 +02:00
drawing.c
fillshap.c [NTGDI] Follow-up of #4137 2021-12-07 08:08:46 +09:00
font.c [NTGDI] Fix pool memory disclosure in NtGdiGetGlyphOutline (#3021) 2020-08-25 19:14:23 +03:00
font.h [NTGDI][FREETYPE] lfWidth for GetTextMetrics and GetCharWidth (#4919) 2022-12-01 08:54:39 +09:00
freetype.c [NTGDI] Check if face->charmap is not zero before accessing its encoding (#4390) 2023-01-18 21:24:40 +03:00
gdibatch.c [NtGDI] Fix ExtSelectClipRgn Tests 2019-05-09 12:33:21 -05:00
gdidbg.c [WIN32K:NTUSER] Implement security infrastructure for NTUSER component 2022-05-06 10:09:48 +02:00
gdidebug.h
gdikdbgext.c
gdiobj.c [NtGDI] Set owner after changing object type. 2021-09-27 23:49:35 -05:00
gdiobj.h [Win32SS|GDI] Implement seldom used API and update types for local DC's. 2021-09-25 11:57:26 -05:00
gdipool.c
icm.c
init.c [NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551) 2023-06-11 13:44:56 +02:00
intgdi.h [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
line.c [NTGDI] Follow-up of #4137 2021-12-07 08:08:46 +09:00
metafile.c [Win32SS] Support Clipboard Metafile 2019-05-31 21:44:17 -05:00
misc.h [NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551) 2023-06-11 13:44:56 +02:00
paint.h
palette.c [WIN32SS] Use GDI_HANDLE_* macros for readability (#4797) 2022-10-26 02:17:01 +02:00
palette.h [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build 2021-05-12 11:04:29 +02:00
path.c [WIN32K:NTGDI] PATH_PathToRegion(): Update documentation (#4941) 2022-12-22 01:27:51 +01:00
path.h [NTGDI] Support the wide pen (#4137) 2021-12-06 20:44:06 +09:00
pen.c [NTGDI] Strictly check pen style (#4164) 2021-12-16 10:47:57 +09:00
pen.h [NTGDI] Support the wide pen (#4137) 2021-12-06 20:44:06 +09:00
polyfill.c
print.c [WIN32SS] 2017-11-18 12:15:45 +01:00
rect.c
rect.h [WIN32K] Rewrite DIB1BPP -> DIB1BPP copy 2021-03-22 22:40:33 +01:00
region.c [WIN32K] Fix memory leak on failure in REGION_SetPolyPolygonRgn 2022-12-13 07:18:24 +01:00
region.h [NtGDI] Update Region code 2019-04-17 14:43:24 -05:00
stockobj.c [WIN32SS][FONT] Fix the system logical stock font data (#709) 2018-08-10 15:37:37 +02:00
text.c [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
text.h [WIN32SS][FONT] Fix registry-based management (#1879) 2019-09-10 20:39:52 +09:00
wingl.c
xformobj.c [WIN32SS][NTGDI] Strictly check in XFORMOBJ_iSetXform (#1676) 2019-06-24 21:32:40 +09:00
xformobj.h [WIN32SS][NTGDI][GDI32] Fix DPtoLP and NtGdiTransformPoints etc. (#1540) 2019-04-29 14:45:44 +09:00