├── .gitignore ├── COPYING.txt ├── Help ├── Doxyfile ├── Doxyfile.debug ├── Help.vcxproj ├── Help.vcxproj.filters ├── Index.hhk ├── dxgl.css ├── dxgl.hhp ├── html │ ├── .gitignore │ ├── config │ │ ├── 3dgraphics │ │ │ ├── anisotropicfiltering.htmlbody │ │ │ ├── anisotropicfiltering.htmltitle │ │ │ ├── antialiasing.htmlbody │ │ │ ├── antialiasing.htmltitle │ │ │ ├── enabledithering.htmlbody │ │ │ ├── enabledithering.htmltitle │ │ │ ├── limitd3dtextureformats.htmlbody │ │ │ ├── limitd3dtextureformats.htmltitle │ │ │ ├── lowcolorrendering.htmlbody │ │ │ ├── lowcolorrendering.htmltitle │ │ │ ├── rendereraspectratio.htmlbody │ │ │ ├── rendereraspectratio.htmltitle │ │ │ ├── texturefilter.htmlbody │ │ │ └── texturefilter.htmltitle │ │ ├── 3dgraphicstab.htmlbody │ │ ├── 3dgraphicstab.htmltitle │ │ ├── abouttab.htmlbody │ │ ├── abouttab.htmltitle │ │ ├── advanced │ │ │ ├── capturemouseinwindowmode.htmlbody │ │ │ ├── capturemouseinwindowmode.htmltitle │ │ │ ├── defaultwindowposition.htmlbody │ │ │ ├── defaultwindowposition.htmltitle │ │ │ ├── dontautosizewindow.htmlbody │ │ │ ├── dontautosizewindow.htmltitle │ │ │ ├── installationpath.htmlbody │ │ │ ├── installationpath.htmltitle │ │ │ ├── rememberedwindowposition.htmlbody │ │ │ ├── rememberedwindowposition.htmltitle │ │ │ ├── rememberedwindowsize.htmlbody │ │ │ ├── rememberedwindowsize.htmltitle │ │ │ ├── rememberwindowposition.htmlbody │ │ │ ├── rememberwindowposition.htmltitle │ │ │ ├── rememberwindowsize.htmlbody │ │ │ ├── rememberwindowsize.htmltitle │ │ │ ├── startresizablewindowmaximized.htmlbody │ │ │ ├── startresizablewindowmaximized.htmltitle │ │ │ ├── textureaccessmethod.htmlbody │ │ │ ├── textureaccessmethod.htmltitle │ │ │ ├── textureformat.htmlbody │ │ │ ├── textureformat.htmltitle │ │ │ ├── writeinifile.htmlbody │ │ │ └── writeinifile.htmltitle │ │ ├── advancedtab.htmlbody │ │ ├── advancedtab.htmltitle │ │ ├── debug │ │ │ ├── debugblenddestinationcolor.htmlbody │ │ │ ├── debugblenddestinationcolor.htmltitle │ │ │ ├── disablearbdirectstateaccess.htmlbody │ │ │ ├── disablearbdirectstateaccess.htmltitle │ │ │ ├── disablearbframebuffers.htmlbody │ │ │ ├── disablearbframebuffers.htmltitle │ │ │ ├── disabledrawonpalettechange.htmlbody │ │ │ ├── disabledrawonpalettechange.htmltitle │ │ │ ├── disableextdirectstateaccess.htmlbody │ │ │ ├── disableextdirectstateaccess.htmltitle │ │ │ ├── disableextframebuffers.htmlbody │ │ │ ├── disableextframebuffers.htmltitle │ │ │ ├── disableextgpushader4.htmlbody │ │ │ ├── disableextgpushader4.htmltitle │ │ │ ├── disablegles2compatibility.htmlbody │ │ │ ├── disablegles2compatibility.htmltitle │ │ │ ├── disableglsl130support.htmlbody │ │ │ ├── disableglsl130support.htmltitle │ │ │ ├── disablemousecursorhooks.htmlbody │ │ │ ├── disablemousecursorhooks.htmltitle │ │ │ ├── disablesamplerobjects.htmlbody │ │ │ ├── disablesamplerobjects.htmltitle │ │ │ ├── maximumopenglversion.htmlbody │ │ │ ├── maximumopenglversion.htmltitle │ │ │ ├── uploadsurfacecontentsonunlock.htmlbody │ │ │ └── uploadsurfacecontentsonunlock.htmltitle │ │ ├── debugtab.htmlbody │ │ ├── debugtab.htmltitle │ │ ├── display │ │ │ ├── addcolordepths.htmlbody │ │ │ ├── addcolordepths.htmltitle │ │ │ ├── additionaldisplaymodes.htmlbody │ │ │ ├── additionaldisplaymodes.htmltitle │ │ │ ├── changedisplaycolordepth.htmlbody │ │ │ ├── changedisplaycolordepth.htmltitle │ │ │ ├── customresolution.htmlbody │ │ │ ├── customresolution.htmltitle │ │ │ ├── dpiscalingmode.htmlbody │ │ │ ├── dpiscalingmode.htmltitle │ │ │ ├── fixedscaling.htmlbody │ │ │ ├── fixedscaling.htmltitle │ │ │ ├── fullscreenwindowmode.htmlbody │ │ │ ├── fullscreenwindowmode.htmltitle │ │ │ ├── scalingmethod.htmlbody │ │ │ ├── scalingmethod.htmltitle │ │ │ ├── screenaspectratio.htmlbody │ │ │ ├── screenaspectratio.htmltitle │ │ │ ├── setdisplayconfig.htmlbody │ │ │ ├── setdisplayconfig.htmltitle │ │ │ ├── singlebuffereddisplay.htmlbody │ │ │ ├── singlebuffereddisplay.htmltitle │ │ │ ├── sortvideomodes.htmlbody │ │ │ ├── sortvideomodes.htmltitle │ │ │ ├── verticalsync.htmlbody │ │ │ ├── verticalsync.htmltitle │ │ │ ├── videomode.htmlbody │ │ │ ├── videomode.htmltitle │ │ │ ├── windowmodescaling.htmlbody │ │ │ └── windowmodescaling.htmltitle │ │ ├── displaytab.htmlbody │ │ ├── displaytab.htmltitle │ │ ├── effects │ │ │ ├── bltscalingfilter.htmlbody │ │ │ ├── bltscalingfilter.htmltitle │ │ │ ├── postprocessinputmultiplier.htmlbody │ │ │ ├── postprocessinputmultiplier.htmltitle │ │ │ ├── postprocessscaler.htmlbody │ │ │ ├── postprocessscaler.htmltitle │ │ │ ├── primarybufferscaling.htmlbody │ │ │ └── primarybufferscaling.htmltitle │ │ ├── effectstab.htmlbody │ │ ├── effectstab.htmltitle │ │ ├── gfxtest │ │ │ ├── bltfast.htmlbody │ │ │ ├── bltfast.htmltitle │ │ │ ├── bltraster.htmlbody │ │ │ ├── bltraster.htmltitle │ │ │ ├── colorfill.htmlbody │ │ │ ├── colorfill.htmltitle │ │ │ ├── colorpalette.htmlbody │ │ │ ├── colorpalette.htmltitle │ │ │ ├── destkeyoverride.htmlbody │ │ │ ├── destkeyoverride.htmltitle │ │ │ ├── drawindexedprimitive.htmlbody │ │ │ ├── drawindexedprimitive.htmltitle │ │ │ ├── drawprimitivetextured.htmlbody │ │ │ ├── drawprimitivetextured.htmltitle │ │ │ ├── gditest.htmlbody │ │ │ ├── gditest.htmltitle │ │ │ ├── largebatchblt.htmlbody │ │ │ ├── largebatchblt.htmltitle │ │ │ ├── mirrorrotate.htmlbody │ │ │ ├── mirrorrotate.htmltitle │ │ │ ├── mousetest.htmlbody │ │ │ ├── mousetest.htmltitle │ │ │ ├── randomgdi.htmlbody │ │ │ ├── randomgdi.htmltitle │ │ │ ├── randomnoise.htmlbody │ │ │ ├── randomnoise.htmltitle │ │ │ ├── rasterop.htmlbody │ │ │ ├── rasterop.htmltitle │ │ │ ├── setcursorpos.htmlbody │ │ │ ├── setcursorpos.htmltitle │ │ │ ├── srckeyoverride.htmlbody │ │ │ ├── srckeyoverride.htmltitle │ │ │ ├── surfaceformat.htmlbody │ │ │ ├── surfaceformat.htmltitle │ │ │ ├── texturestageshaders.htmlbody │ │ │ ├── texturestageshaders.htmltitle │ │ │ ├── vertexshaders.htmlbody │ │ │ ├── vertexshaders.htmltitle │ │ │ ├── windowapitest.htmlbody │ │ │ └── windowapitest.htmltitle │ │ ├── gfxtesttab.htmlbody │ │ ├── gfxtesttab.htmltitle │ │ ├── hacks │ │ │ ├── automaticallyexpandviewport.htmlbody │ │ │ ├── automaticallyexpandviewport.htmltitle │ │ │ ├── automaticexpandcomparisonmethod.htmlbody │ │ │ ├── automaticexpandcomparisonmethod.htmltitle │ │ │ ├── automaticexpandcomparisonvalue.htmlbody │ │ │ ├── automaticexpandcomparisonvalue.htmltitle │ │ │ ├── crop640480to640400.htmlbody │ │ │ ├── crop640480to640400.htmltitle │ │ │ ├── palettedrawdelayms.htmlbody │ │ │ ├── palettedrawdelayms.htmltitle │ │ │ ├── removetvcompatiblerefreshrates.htmlbody │ │ │ ├── removetvcompatiblerefreshrates.htmltitle │ │ │ ├── setcursorhidevisibility.htmlbody │ │ │ ├── setcursorhidevisibility.htmltitle │ │ │ ├── syncpaletteupdatetovsync.htmlbody │ │ │ └── syncpaletteupdatetovsync.htmltitle │ │ ├── hackstab.htmlbody │ │ └── hackstab.htmltitle │ ├── configuration.htmlbody │ ├── configuration.htmltitle │ ├── introduction.htmlbody │ ├── introduction.htmltitle │ ├── licenses.htmlbody │ ├── licenses.htmltitle │ ├── licenses │ │ ├── crc32.htmlbody │ │ ├── crc32.htmltitle │ │ ├── dxgl.htmlbody │ │ ├── dxgl.htmltitle │ │ ├── inih.htmlbody │ │ ├── inih.htmltitle │ │ ├── mesa.htmlbody │ │ ├── mesa.htmltitle │ │ ├── minhook.htmlbody │ │ ├── minhook.htmltitle │ │ ├── sha.htmlbody │ │ ├── sha.htmltitle │ │ ├── wine.htmlbody │ │ └── wine.htmltitle │ ├── troubleshooting.htmlbody │ └── troubleshooting.htmltitle ├── html5.js ├── images │ ├── bltfast.png │ ├── bltrop.png │ ├── colorfill-random.png │ ├── destkeyoverride.png │ ├── drawindexedprimitive.png │ ├── drawprimitivetextured.png │ ├── dxgl-header.png │ ├── dxglcfg-3dgraphics.png │ ├── dxglcfg-about.png │ ├── dxglcfg-advanced.png │ ├── dxglcfg-debug.png │ ├── dxglcfg-display.png │ ├── dxglcfg-effects.png │ ├── dxglcfg-hacks.png │ ├── dxglcfg-saveini.png │ ├── dxglcfg-tests.png │ ├── gdi-pattern.png │ ├── gdi-random.png │ ├── gradients-15bpp.png │ ├── gradients-16bpp.png │ ├── gradients-24bpp.png │ ├── gradients-8bpp.png │ ├── large-batch-blt.png │ ├── mirror-rotate.png │ ├── mouse-test.png │ ├── palette-8bpp.png │ ├── random-noise.jpg │ ├── rop-patterns.png │ ├── setcursorpos.png │ ├── srckeyoverride.png │ ├── surfaceformat.png │ ├── textureshader.png │ ├── vertexshader.png │ ├── windowapitest1.png │ └── windowapitest2.png ├── template.html └── toc.hhc ├── Installer ├── .gitignore ├── Installer.vcxproj ├── Installer.vcxproj.filters └── dxgl.nsi ├── ReadMe.md ├── ThirdParty.txt ├── buildtool ├── buildtool.c ├── buildtool.rc ├── buildtool.vcxproj ├── buildtool.vcxproj.filters ├── resource.h └── xp.manifest ├── cfgmgr ├── LibSha256.c ├── LibSha256.h ├── ReadMe.txt ├── cfgmgr.c ├── cfgmgr.cbp ├── cfgmgr.depend ├── cfgmgr.h ├── cfgmgr.vcxproj ├── cfgmgr.vcxproj.filters ├── crc32.c ├── crc32.h └── inih │ ├── .github │ ├── FUNDING.yml │ └── workflows │ │ ├── cifuzz.yml │ │ └── tests.yml │ ├── .gitignore │ ├── LICENSE.txt │ ├── README.md │ ├── cpp │ ├── INIReader.cpp │ └── INIReader.h │ ├── examples │ ├── INIReaderExample.cpp │ ├── config.def │ ├── cpptest.sh │ ├── cpptest.txt │ ├── ini_dump.c │ ├── ini_example.c │ ├── ini_xmacros.c │ └── test.ini │ ├── fuzzing │ ├── OSS-FUZZ.MD │ ├── build.sh │ ├── fuzz.sh │ ├── inihfuzz.c │ ├── oss-fuzz.sh │ └── testcases │ │ └── case1.ini │ ├── ini.c │ ├── ini.h │ ├── meson.build │ ├── meson_options.txt │ └── tests │ ├── bad_comment.ini │ ├── bad_multi.ini │ ├── bad_section.ini │ ├── baseline_alloc.txt │ ├── baseline_allow_no_value.txt │ ├── baseline_call_handler_on_new_section.txt │ ├── baseline_disallow_inline_comments.txt │ ├── baseline_handler_lineno.txt │ ├── baseline_heap.txt │ ├── baseline_heap_max_line.txt │ ├── baseline_heap_realloc.txt │ ├── baseline_heap_realloc_max_line.txt │ ├── baseline_heap_string.txt │ ├── baseline_multi.txt │ ├── baseline_multi_max_line.txt │ ├── baseline_single.txt │ ├── baseline_stop_on_first_error.txt │ ├── baseline_string.txt │ ├── bom.ini │ ├── duplicate_sections.ini │ ├── multi_line.ini │ ├── no_value.ini │ ├── normal.ini │ ├── unittest.bat │ ├── unittest.c │ ├── unittest.sh │ ├── unittest_alloc.c │ ├── unittest_string.c │ └── user_error.ini ├── common ├── common.cbp ├── common.depend ├── common.vcxproj ├── common.vcxproj.filters ├── dxgl.ico ├── dxgl.png ├── dxgl48.ico ├── dxglicon-shadow.svg ├── dxglicon.svg ├── dxglinv.bmp ├── dxglinv64.bmp ├── dxglsm.ico ├── releasever.h ├── rev.in ├── star.ico ├── version.h.in ├── version.nsh.in └── x16.ico ├── ddraw ├── BufferObject.c ├── BufferObject.h ├── DXGLQueue.h ├── DXGLRenderer.c ├── DXGLRenderer.h ├── DXGLRendererGL.c ├── DXGLRendererGL.h ├── DXGLTexture.h ├── ShaderGen2D.c ├── ShaderGen2D.h ├── ShaderGen3D.cpp ├── ShaderGen3D.h ├── ShaderManager.c ├── ShaderManager.h ├── colorconv.c ├── colorconv.h ├── common.h ├── const.c ├── const.h ├── ddraw.cpp ├── ddraw.def ├── ddraw.h ├── ddraw.rc ├── ddraw.vcxproj ├── ddraw.vcxproj.filters ├── dllmain.cpp ├── dxglDirectDrawSurface.cpp ├── dxglDirectDrawSurface.h ├── dxguid.c ├── fourcc.c ├── fourcc.h ├── glClassFactory.cpp ├── glClassFactory.h ├── glDirect3D.cpp ├── glDirect3D.h ├── glDirect3DDevice.cpp ├── glDirect3DDevice.h ├── glDirect3DExecuteBuffer.cpp ├── glDirect3DExecuteBuffer.h ├── glDirect3DLight.cpp ├── glDirect3DLight.h ├── glDirect3DMaterial.cpp ├── glDirect3DMaterial.h ├── glDirect3DTexture.cpp ├── glDirect3DTexture.h ├── glDirect3DVertexBuffer.cpp ├── glDirect3DVertexBuffer.h ├── glDirect3DViewport.cpp ├── glDirect3DViewport.h ├── glDirectDraw.cpp ├── glDirectDraw.h ├── glDirectDrawClipper.cpp ├── glDirectDrawClipper.h ├── glDirectDrawGammaControl.cpp ├── glDirectDrawGammaControl.h ├── glDirectDrawPalette.c ├── glDirectDrawPalette.h ├── glExtensions.c ├── glExtensions.h ├── glRenderWindow.cpp ├── glRenderWindow.h ├── glRenderer.cpp ├── glRenderer.h ├── glTexture.c ├── glTexture.h ├── glUtil.cpp ├── glUtil.h ├── hooks.c ├── hooks.h ├── include │ ├── GL │ │ ├── glext.h │ │ └── wglext.h │ ├── KHR │ │ └── khrplatform.h │ ├── d3d.h │ ├── d3dcaps.h │ ├── d3dtypes.h │ ├── d3dvec.inl │ ├── ddraw.h │ ├── mingw-setdisplayconfig.h │ └── winedef.h ├── matrix.c ├── matrix.h ├── precomp.cpp ├── resource.h ├── scalers.c ├── scalers.h ├── string.c ├── string.h ├── struct.h ├── timer.c ├── timer.h ├── trace.c ├── trace.h ├── util.c └── util.h ├── dxgl-example.ini ├── dxgl-nsis ├── LibSha512.c ├── LibSha512.h ├── api.h ├── dxgl-nsis.c ├── dxgl-nsis.vcxproj ├── dxgl-nsis.vcxproj.filters ├── pluginapi.c ├── pluginapi.h └── stdint.h ├── dxgl.sln ├── dxgl.workspace ├── dxglcfg-old ├── dxglcfg-old.c ├── dxglcfg-old.cbp ├── dxglcfg-old.depend ├── dxglcfg-old.rc ├── dxglcfg-old.vcxproj ├── dxglcfg-old.vcxproj.filters ├── resource.h └── xp.manifest ├── dxglcfg ├── MultiDD.cpp ├── MultiDD.h ├── common.h ├── dxglcfg.cpp ├── dxglcfg.rc ├── dxglcfg.vcxproj ├── dxglcfg.vcxproj.filters ├── dxgltest.cpp ├── dxgltest.h ├── dxguid.cpp ├── include │ └── vsstyle.h ├── misc.h ├── palette.cpp ├── palette.h ├── precomp.cpp ├── resource.h ├── surfacegen.cpp ├── surfacegen.h ├── tests.cpp ├── tests.h ├── timer.cpp ├── timer.h └── xp.manifest ├── minhook ├── .editorconfig ├── .github │ └── workflows │ │ └── msbuild.yml ├── .gitignore ├── AUTHORS.txt ├── CMakeLists.txt ├── LICENSE.txt ├── README.md ├── build │ ├── DXGL │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── MinGW │ │ ├── Makefile │ │ ├── make.bat │ │ └── make.sh │ ├── VC10 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC10.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC11 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC11.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC12 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC12.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC14 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC14.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC15 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC15.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC16 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC16.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ ├── VC17 │ │ ├── MinHook.vcxproj │ │ ├── MinHookVC17.sln │ │ ├── libMinHook.vcxproj │ │ └── libMinHook.vcxproj.filters │ └── VC9 │ │ ├── MinHook.vcproj │ │ ├── MinHookVC9.sln │ │ └── libMinHook.vcproj ├── cmake │ └── minhook-config.cmake.in ├── dll_resources │ ├── MinHook.def │ └── MinHook.rc ├── include │ └── MinHook.h └── src │ ├── buffer.c │ ├── buffer.h │ ├── hde │ ├── hde32.c │ ├── hde32.h │ ├── hde64.c │ ├── hde64.h │ ├── pstdint.h │ ├── table32.h │ └── table64.h │ ├── hook.c │ ├── trampoline.c │ └── trampoline.h ├── patches ├── SetCursorPos hack.patch └── readme.txt ├── vs8 ├── Help │ └── Help.vcproj ├── Installer │ └── Installer.vcproj ├── buildtool │ └── buildtool.vcproj ├── cfgmgr │ └── cfgmgr.vcproj ├── common │ └── common.vcproj ├── ddraw │ └── ddraw.vcproj ├── dxgl-nsis │ └── dxgl-nsis.vcproj ├── dxgl-vs8.sln ├── dxglcfg │ └── dxglcfg.vcproj └── libMinHook │ └── libMinHook.vcproj └── vs9 ├── Help └── Help.vcproj ├── Installer └── Installer.vcproj ├── buildtool └── buildtool.vcproj ├── cfgmgr └── cfgmgr.vcproj ├── common └── common.vcproj ├── ddraw └── ddraw.vcproj ├── dxgl-nsis └── dxgl-nsis.vcproj ├── dxgl-vs9.sln ├── dxglcfg └── dxglcfg.vcproj └── libMinHook └── libMinHook.vcproj /Help/Index.hhk: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /Help/dxgl.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/dxgl.css -------------------------------------------------------------------------------- /Help/html/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/anisotropicfiltering.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/anisotropicfiltering.htmltitle: -------------------------------------------------------------------------------- 1 | Anisotropic filtering -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/antialiasing.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented.

2 |

Valid settings are dependent on the graphics card.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/antialiasing.htmltitle: -------------------------------------------------------------------------------- 1 | Antialiasing (MSAA) -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/enabledithering.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/enabledithering.htmltitle: -------------------------------------------------------------------------------- 1 | Enable dithering -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/limitd3dtextureformats.htmlbody: -------------------------------------------------------------------------------- 1 |

Limits the surface formats exposed as Direct3D texture formats. This may help prevent buffer overruns in older applications that expect a limited number of texture formats. Default is to limit formats in Direct3D 5.0 and lower APIs.

2 |

The following options are available:

3 |

Disabled

4 |

Exposes all supported pixel formats as texture formats.

5 |

Enabled for DX5 and below

6 |

Exposes all supported pixel formats when using Direct3D 6.0 or above APIs; when Direct3D 5.0 or below APIs exposes a limited subset of supported pixel formats.

7 |

Enabled always

8 |

Always exposes a limited set of supported pixel formats to Direct3D APIs. This setting is not recommended.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/limitd3dtextureformats.htmltitle: -------------------------------------------------------------------------------- 1 | Limit D3D Texture Formats -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/lowcolorrendering.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/lowcolorrendering.htmltitle: -------------------------------------------------------------------------------- 1 | Low color rendering -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/rendereraspectratio.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/rendereraspectratio.htmltitle: -------------------------------------------------------------------------------- 1 | Renderer aspect ratio -------------------------------------------------------------------------------- /Help/html/config/3dgraphics/texturefilter.htmlbody: -------------------------------------------------------------------------------- 1 |

Specifies the filter to use when rendering 3D graphics.

2 |

The following options are available:

3 |

Application default

4 |

Uses the mode specified by the application for filtering textures.

5 |

Nearest

6 |

Uses nearest-neighbor scaling for all textures.

7 |

Bilinear

8 |

Uses bilinear filtering for all textures.

9 |

10 | Nearest, nearest mipmap
11 | Nearest, linear mipmap
12 | Bilinear, nearest mipmap
13 | Bilinear, linear mipmap 14 |

15 |

These options are currently not implemented.

-------------------------------------------------------------------------------- /Help/html/config/3dgraphics/texturefilter.htmltitle: -------------------------------------------------------------------------------- 1 | Texture filter -------------------------------------------------------------------------------- /Help/html/config/3dgraphicstab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 | The 3D Graphics tab adjusts various settings specific to 3D graphics.  At this time, most options are not yet available. 4 |

5 |

6 | Texture filter 7 |

8 |

9 | Anisotropic filtering 10 |

11 |

12 | Antialiasing (MSAA) 13 |

14 |

15 | Renderer aspect ratio 16 |

17 |

18 | Low color rendering 19 |

20 |

21 | Enable dithering 22 |

23 |

24 | Limit D3D Texture Formats 25 |

-------------------------------------------------------------------------------- /Help/html/config/3dgraphicstab.htmltitle: -------------------------------------------------------------------------------- 1 | 3D Graphics tab -------------------------------------------------------------------------------- /Help/html/config/abouttab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 |
3 | Displays copyright and licensing information for DXGL, as well as the current version of the DXGL ddraw.dll file. 4 |

-------------------------------------------------------------------------------- /Help/html/config/abouttab.htmltitle: -------------------------------------------------------------------------------- 1 | About tab -------------------------------------------------------------------------------- /Help/html/config/advanced/capturemouseinwindowmode.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is available in DXGL 0.5.14 and newer.

2 |

Captures the mouse when you first click inside the application window in forced window mode. You can exit mouse capture by pressing and releasing the Ctrl and Alt keys together.

-------------------------------------------------------------------------------- /Help/html/config/advanced/capturemouseinwindowmode.htmltitle: -------------------------------------------------------------------------------- 1 | Capture mouse in window mode (Press Ctrl+Alt to release) -------------------------------------------------------------------------------- /Help/html/config/advanced/defaultwindowposition.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Selects the default position for forced-window mode.
3 | The following options are available: 4 |

5 |

Centered

6 |

Locates the window in the center of the display.

7 |

Saved position

8 |

Uses the position stored in “Remembered window position” to position the window, using logical window coordinates.

9 |

Top left

10 |

Locates the window at the top left of the display.

11 |

Windows default

12 |

13 | Allows Windows to select the position to place the window.
14 | 15 | Top left and Windows default options are available in DXGL 0.5.14 and later. 16 | 17 |

-------------------------------------------------------------------------------- /Help/html/config/advanced/defaultwindowposition.htmltitle: -------------------------------------------------------------------------------- 1 | Default window position -------------------------------------------------------------------------------- /Help/html/config/advanced/dontautosizewindow.htmlbody: -------------------------------------------------------------------------------- 1 |

If resizable window mode is selected and this is enabled, display mode changes will not resize the window.

-------------------------------------------------------------------------------- /Help/html/config/advanced/dontautosizewindow.htmltitle: -------------------------------------------------------------------------------- 1 | Don’t auto-size window in resizable window mode -------------------------------------------------------------------------------- /Help/html/config/advanced/installationpath.htmlbody: -------------------------------------------------------------------------------- 1 |

Displays the path the current application profile is installed in.

-------------------------------------------------------------------------------- /Help/html/config/advanced/installationpath.htmltitle: -------------------------------------------------------------------------------- 1 | Installation path -------------------------------------------------------------------------------- /Help/html/config/advanced/rememberedwindowposition.htmlbody: -------------------------------------------------------------------------------- 1 |

If Default window position is set to Saved position, this will be the position to use when forced-window mode starts.

-------------------------------------------------------------------------------- /Help/html/config/advanced/rememberedwindowposition.htmltitle: -------------------------------------------------------------------------------- 1 | Remembered window position -------------------------------------------------------------------------------- /Help/html/config/advanced/rememberedwindowsize.htmlbody: -------------------------------------------------------------------------------- 1 |

If set, these values will be used to size the window in forced-window mode on startup. If not set, 640×480 will be used until the window is either resized or overridden by a display mode change.

-------------------------------------------------------------------------------- /Help/html/config/advanced/rememberedwindowsize.htmltitle: -------------------------------------------------------------------------------- 1 | Remembered window size -------------------------------------------------------------------------------- /Help/html/config/advanced/rememberwindowposition.htmlbody: -------------------------------------------------------------------------------- 1 |

If enabled, in forced-window mode, saves the last known position of the window in the registry, under the current application’s profile.

-------------------------------------------------------------------------------- /Help/html/config/advanced/rememberwindowposition.htmltitle: -------------------------------------------------------------------------------- 1 | Remember window position -------------------------------------------------------------------------------- /Help/html/config/advanced/rememberwindowsize.htmlbody: -------------------------------------------------------------------------------- 1 |

If enabled, in forced-window mode, saves the last known size and maximized state of the window in the registry, under the current application’s profile.

-------------------------------------------------------------------------------- /Help/html/config/advanced/rememberwindowsize.htmltitle: -------------------------------------------------------------------------------- 1 | Remember window size -------------------------------------------------------------------------------- /Help/html/config/advanced/startresizablewindowmaximized.htmlbody: -------------------------------------------------------------------------------- 1 |

If resizable window mode is enabled, checking this will start a resizable window in maximized mode, and use the remembered window size when the window is restored.

-------------------------------------------------------------------------------- /Help/html/config/advanced/startresizablewindowmaximized.htmltitle: -------------------------------------------------------------------------------- 1 | Start resizable window maximized -------------------------------------------------------------------------------- /Help/html/config/advanced/textureaccessmethod.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not available, and currently the only option available is Automatic.

-------------------------------------------------------------------------------- /Help/html/config/advanced/textureaccessmethod.htmltitle: -------------------------------------------------------------------------------- 1 | Texture access method -------------------------------------------------------------------------------- /Help/html/config/advanced/textureformat.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is currently not implemented, and the only option available is “Automatic”

-------------------------------------------------------------------------------- /Help/html/config/advanced/textureformat.htmltitle: -------------------------------------------------------------------------------- 1 | Texture format -------------------------------------------------------------------------------- /Help/html/config/advanced/writeinifile.htmltitle: -------------------------------------------------------------------------------- 1 | Write INI file... -------------------------------------------------------------------------------- /Help/html/config/advancedtab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 | The Advanced tab adjusts internal options for DXGL as well as specifying window behavior in forced-window mode. 4 |

5 |

6 | Texture format 7 |

8 |

9 | Texture access method 10 |

11 |

12 | Default window position 13 |

14 |

15 | Remember window position 16 |

17 |

18 | Remember window size 19 |

20 |

21 | Remembered window position 22 |

23 |

24 | Remembered window size 25 |

26 |

27 | Start resizable window maximized 28 |

29 |

30 | Don't auto-size window in resizable window mode 31 |

32 |

33 | Capture mouse in window mode (Press Ctrl+Alt to release) 34 |

35 |

36 | Installation path 37 |

38 |

39 | Write INI file... 40 |

-------------------------------------------------------------------------------- /Help/html/config/advancedtab.htmltitle: -------------------------------------------------------------------------------- 1 | Advanced tab -------------------------------------------------------------------------------- /Help/html/config/debug/debugblenddestinationcolor.htmlbody: -------------------------------------------------------------------------------- 1 |

This option is used for debugging destination color keying. If enabled, then the destination texture sampled for the color key operation will be blended with the source pixels, in order to determine of the shader is properly sampling the destination pixels. This option should normally be left off.

-------------------------------------------------------------------------------- /Help/html/config/debug/debugblenddestinationcolor.htmltitle: -------------------------------------------------------------------------------- 1 | DEBUG: Blend destination color key texture with source -------------------------------------------------------------------------------- /Help/html/config/debug/disablearbdirectstateaccess.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_ARB_direct_state_access extension. If GL_EXT_direct_state_access is not available this will fall back to using classic OpenGL object manipulation functions.

-------------------------------------------------------------------------------- /Help/html/config/debug/disablearbdirectstateaccess.htmltitle: -------------------------------------------------------------------------------- 1 | Disable ARB direct state access -------------------------------------------------------------------------------- /Help/html/config/debug/disablearbframebuffers.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_ARB_framebuffer_object extension. If the GL_EXT_framebuffer_object extension is not available DXGL will fail to load.

-------------------------------------------------------------------------------- /Help/html/config/debug/disablearbframebuffers.htmltitle: -------------------------------------------------------------------------------- 1 | Disable ARB framebuffers -------------------------------------------------------------------------------- /Help/html/config/debug/disabledrawonpalettechange.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Disables redrawing the screen when the primary color palette is changed. If this is enabled, the palette will be updated the next time another DirectDraw API draws to the screen or flips the primary buffer. 3 |

-------------------------------------------------------------------------------- /Help/html/config/debug/disabledrawonpalettechange.htmltitle: -------------------------------------------------------------------------------- 1 | Disable draw on palette change -------------------------------------------------------------------------------- /Help/html/config/debug/disableextdirectstateaccess.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_EXT_direct_state_access extension. If GL_ARB_direct_state_access is not available this will fall back to using classic OpenGL object manipulation functions.

-------------------------------------------------------------------------------- /Help/html/config/debug/disableextdirectstateaccess.htmltitle: -------------------------------------------------------------------------------- 1 | Disable EXT direct state access -------------------------------------------------------------------------------- /Help/html/config/debug/disableextframebuffers.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_EXT_framebuffer_object extension. If the GL_ARB_framebuffer_object extension is not available DXGL will fail to load.

-------------------------------------------------------------------------------- /Help/html/config/debug/disableextframebuffers.htmltitle: -------------------------------------------------------------------------------- 1 | Disable EXT framebuffers -------------------------------------------------------------------------------- /Help/html/config/debug/disableextgpushader4.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables support for the GL_EXT_gpu_shader4 extension. This is one of two methods used for supporting integer operations in shaders. If this is enabled and GLSL 1.30 is not available, then this will limit the availability of ROP operations and may make some operations less accurate.

-------------------------------------------------------------------------------- /Help/html/config/debug/disableextgpushader4.htmltitle: -------------------------------------------------------------------------------- 1 | Disable EXT_gpu_shader4 extension -------------------------------------------------------------------------------- /Help/html/config/debug/disablegles2compatibility.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_ARB_ES2_compatibility extension. Disabling this will disable native support for 16 bit color mode, and fall back to an emulated mode.

-------------------------------------------------------------------------------- /Help/html/config/debug/disablegles2compatibility.htmltitle: -------------------------------------------------------------------------------- 1 | Disable GLES2 compatibility extension -------------------------------------------------------------------------------- /Help/html/config/debug/disableglsl130support.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables support for version 1.30 of the OpenGL Shading Language. This is one of two methods used for supporting integer operations in shaders. If this is enabled and GL_EXT_gpu_shader4 is not available, then this will limit the availability of ROP operations and may make some operations less accurate.

-------------------------------------------------------------------------------- /Help/html/config/debug/disableglsl130support.htmltitle: -------------------------------------------------------------------------------- 1 | Disable GLSL 1.30 support -------------------------------------------------------------------------------- /Help/html/config/debug/disablemousecursorhooks.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | This option is available in DXGL 0.5.14 and newer. 3 |

4 |

Disables all API hooks for translating the mouse cursor position in scaled and forced-window modes, such as GetCursorPos().

-------------------------------------------------------------------------------- /Help/html/config/debug/disablemousecursorhooks.htmltitle: -------------------------------------------------------------------------------- 1 | Disable mosue cursor hooks -------------------------------------------------------------------------------- /Help/html/config/debug/disablesamplerobjects.htmlbody: -------------------------------------------------------------------------------- 1 |

Disables the GL_ARB_sampler_objects extension. This will revert to attaching texture filtering modes to the texture objects themselves, and will result in inaccuracies in Direct3D mode if the same texture is used in different texture units.

-------------------------------------------------------------------------------- /Help/html/config/debug/disablesamplerobjects.htmltitle: -------------------------------------------------------------------------------- 1 | Disable sampler objects -------------------------------------------------------------------------------- /Help/html/config/debug/maximumopenglversion.htmlbody: -------------------------------------------------------------------------------- 1 |

Overrides the maximum core OpenGL version detected by DXGL. If your version of OpenGL is lower than the selected version, then your OpenGL version will be used instead.

2 |

This option can be used to limit the OpenGL functionality available to DXGL.

-------------------------------------------------------------------------------- /Help/html/config/debug/maximumopenglversion.htmltitle: -------------------------------------------------------------------------------- 1 | Maximum OpenGL version -------------------------------------------------------------------------------- /Help/html/config/debug/uploadsurfacecontentsonunlock.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | This option is available in DXGL 0.5.14 and newer. 3 |

4 |

Immediately uploads the contents of a surface when it is unlocked by the program. This can help with debugging, but can also cause a reduction in performance.

-------------------------------------------------------------------------------- /Help/html/config/debug/uploadsurfacecontentsonunlock.htmltitle: -------------------------------------------------------------------------------- 1 | Upload surface contents on unlock -------------------------------------------------------------------------------- /Help/html/config/debugtab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 | The Debug tab contains several options for testing purposes only. 4 |

5 |

6 | Disable EXT framebuffers 7 |

8 |

9 | Disable ARB framebuffers 10 |

11 |

12 | Disable GLES2 compatibility extension 13 |

14 |

15 | Disable EXT direct state access 16 |

17 |

18 | Disable ARB direct state access 19 |

20 |

21 | Disable sampler objects 22 |

23 |

24 | Disable EXT_gpu_shader4 extension 25 |

26 |

27 | Disable GLSL 1.30 support 28 |

29 |

30 | Upload surface contents on unlock 31 |

32 |

33 | Disable mouse cursor hooks 34 |

35 |

36 | Disable draw on palette change 37 |

38 |

39 | DEBUG: Blend destination color key texture with source 40 |

41 |

42 | Maximum OpenGL version 43 |

-------------------------------------------------------------------------------- /Help/html/config/debugtab.htmltitle: -------------------------------------------------------------------------------- 1 | Debug tab -------------------------------------------------------------------------------- /Help/html/config/display/addcolordepths.htmltitle: -------------------------------------------------------------------------------- 1 | Add color depths -------------------------------------------------------------------------------- /Help/html/config/display/additionaldisplaymodes.htmltitle: -------------------------------------------------------------------------------- 1 | Additional display modes -------------------------------------------------------------------------------- /Help/html/config/display/changedisplaycolordepth.htmlbody: -------------------------------------------------------------------------------- 1 |

Determines whether to change the color depth of the desktop if requested by the application. Use only for testing purposes, leave off otherwise.

-------------------------------------------------------------------------------- /Help/html/config/display/changedisplaycolordepth.htmltitle: -------------------------------------------------------------------------------- 1 | Change display color depth -------------------------------------------------------------------------------- /Help/html/config/display/customresolution.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Defines a custom resolution for the Custom display mode or Custom size, centered modes.
3 | For specific applications, the refresh rate is optional. 4 |

-------------------------------------------------------------------------------- /Help/html/config/display/customresolution.htmltitle: -------------------------------------------------------------------------------- 1 | Custom resolution -------------------------------------------------------------------------------- /Help/html/config/display/dpiscalingmode.htmlbody: -------------------------------------------------------------------------------- 1 |

Fixes errors caused by Windows High DPI scaling in Windows Vista and greater. This option is always set to Per-monitor on older operating systems, as these operating systems apply high DPI modes to all applications.

2 |

Disabled

3 |

Disables the DPI scaling fix, unless specified by the program.

4 |

Per-monitor

5 |

Default setting. Enables the DPI scaling fix during program initialization. On Windows 8.1 or higher this sets DPI scaling to per-monitor DPI aware.

6 |

Windows AppCompat

7 |

Sets a compatibility flag to tell Windows to fix High DPI scaling. Use if Enabled does not work.

8 |

System

9 |

Enables the DPI scaling fix during program initialization. On Windows 8.1 or higher this sets the DPI scaling to system DPI aware.

10 |

Per-monitor V2

11 |

Enables the DPI scaling fix during program initialization. On Windows 10 version 1703 (Creators Update) or higher this sets the DPI scaling to Per-monitor DPI aware version 2. This will attempt to adjust the DPI of programs on-the-fly, but may cause various glitches.

-------------------------------------------------------------------------------- /Help/html/config/display/dpiscalingmode.htmltitle: -------------------------------------------------------------------------------- 1 | DPI scaling mode -------------------------------------------------------------------------------- /Help/html/config/display/fixedscaling.htmlbody: -------------------------------------------------------------------------------- 1 |

For Custom size multiplier, defines the amount to multiply the size of the display by, in the X and Y coordinates. You may use whole or partial number amounts.

-------------------------------------------------------------------------------- /Help/html/config/display/fixedscaling.htmltitle: -------------------------------------------------------------------------------- 1 | Fixed scaling -------------------------------------------------------------------------------- /Help/html/config/display/fullscreenwindowmode.htmlbody: -------------------------------------------------------------------------------- 1 |

Sets the mode to be used when creating a window for fullscreen mode.

2 |

Exclusive fullscreen

3 |

Sets the display to fullscreen mode. For Windows Vista and greater, causes the Windows graphics to be temporarily suspended, giving the GPU exclusive control of the screen. This mode is the default and may have the best fullscreen performance.

4 |

Non-exclusive fullscreen

5 |

6 | Creates a window that fills the screen but tells the display driver not to take exclusive control of the screen. Try this mode if the application mixes DirectDraw with GDI and some graphics elements are missing.
7 | In Windows Vista and greater, this mode may have reduced performance, increased lag, or choppy graphics. In Windows 8 and 8.1, this performance reduction may be significant due to an operating system flaw. 8 |

9 |

Non-resizable window

10 |

Forces the fullscreen application to display in a floating window. Please note that some applications may capture the mouse and thus may cause compatibility issues.

11 |

Resizable window

12 |

Forces the fullscreen application to display in a floating window that can be resized or maximized. Please note that some applications may capture the mouse and thus may cause compatibility issues.

13 |

Borderless window

14 |

Forces the application to display in a borderless pop-up window. If the application is not running at the same resolution as the display, the window will be the same size as the application’s display resolution.

15 |

Borderless window (scaled)

16 |

17 | Forces the application to display in a borderless pop-up window. Sizes the window to fill the screen. Similar to Non-exclusive fullscreen except that the window does not minimize when focus is lost.
18 | Depending on the “Video mode” setting, the graphics resolution may be changed to accomodate the application. 19 |

-------------------------------------------------------------------------------- /Help/html/config/display/fullscreenwindowmode.htmltitle: -------------------------------------------------------------------------------- 1 | Fullscreen window mode -------------------------------------------------------------------------------- /Help/html/config/display/scalingmethod.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Selects the filter to use for scaling the output when the resolution is different than the desktop resolution, or when the optional postprocess scaling is in effect, the scaled resolution is different from the desktop resolution, as well as for blitting operations.
3 | As of DXGL 0.5.13, this no longer sets the scaling method for Blt commands. 4 |

5 |

The following methods are available:

6 |

Nearest

7 |

Uses nearest-neighbor scaling.

8 |

Bilinear

9 |

Uses bilinear scaling. Reduces jagged edges, but may create visual artifacts in some applications.

-------------------------------------------------------------------------------- /Help/html/config/display/scalingmethod.htmltitle: -------------------------------------------------------------------------------- 1 | Scaling method -------------------------------------------------------------------------------- /Help/html/config/display/screenaspectratio.htmlbody: -------------------------------------------------------------------------------- 1 |

Overrides the aspect ratio for “Aspect corrected stretch” and “Scale if mode not found”. Enter as x:y or as a floating point ratio, for example 4:3 or 1.333333, or select a preset from the dropdown list. Default uses a square pixel ratio, with the aspect ratio depending on the dimensions of the current display mode.

-------------------------------------------------------------------------------- /Help/html/config/display/screenaspectratio.htmltitle: -------------------------------------------------------------------------------- 1 | Screen aspect ratio -------------------------------------------------------------------------------- /Help/html/config/display/setdisplayconfig.htmlbody: -------------------------------------------------------------------------------- 1 |

Uses the SetDisplayConfig() API in Windows if available to switch fullscreen modes. In Windows 10, this can cause display modes to change instantly without causing the display to flicker.

2 |

Note that if the application crashes, the display mode will not be automatically restored to its previous settings.

-------------------------------------------------------------------------------- /Help/html/config/display/setdisplayconfig.htmltitle: -------------------------------------------------------------------------------- 1 | Use SetDisplayConfig API -------------------------------------------------------------------------------- /Help/html/config/display/singlebuffereddisplay.htmlbody: -------------------------------------------------------------------------------- 1 |

If checked, creates an OpenGL device that does not have double buffering. This will disable vertical sync and exclusive fullscreen mode. This may effect certain third party programs, for example Fraps will no longer display the FPS overlay.

-------------------------------------------------------------------------------- /Help/html/config/display/singlebuffereddisplay.htmltitle: -------------------------------------------------------------------------------- 1 | Single buffered display -------------------------------------------------------------------------------- /Help/html/config/display/sortvideomodes.htmlbody: -------------------------------------------------------------------------------- 1 |

Determines how to sort the video modes returned by IDirectDraw::EnumDisplayModes

2 |

Use system order

3 |

Lists modes by the order generated by the system and/or DXGL.

4 |

Group by color depth

5 |

Lists modes in groups of color depth, each group sorted by resolution.

6 |

Group by resolution

7 |

Lists modes sorted by resolution, with color depths listed in order for each resolution.

-------------------------------------------------------------------------------- /Help/html/config/display/sortvideomodes.htmltitle: -------------------------------------------------------------------------------- 1 | Sort video modes -------------------------------------------------------------------------------- /Help/html/config/display/verticalsync.htmlbody: -------------------------------------------------------------------------------- 1 |

Adjusts the vertical sync mode for DXGL. This can reduce or eliminate tearing or stutter at the cost of performance. The following modes are currently available:

2 |

Application default

3 |

Uses the application defined vertical sync mode, allowing the application to turn on or off vertical sync at will.

4 |

Disabled

5 |

Completely disables vertical sync. This may cause tearing and/or stutter, and may cause the application to run faster than expected.

6 |

Enabled every flip or primary Blt

7 |

Syncs every buffer flip or Blt operation to the primary buffer to the vertical retrace. This eliminates tearing, but may result in slow painting if the application writes or performs Blt operations directly to the primary buffer.

-------------------------------------------------------------------------------- /Help/html/config/display/verticalsync.htmltitle: -------------------------------------------------------------------------------- 1 | Vertical sync -------------------------------------------------------------------------------- /Help/html/config/display/videomode.htmltitle: -------------------------------------------------------------------------------- 1 | Video mode -------------------------------------------------------------------------------- /Help/html/config/display/windowmodescaling.htmlbody: -------------------------------------------------------------------------------- 1 |

Selects the scaling amount used when a DirectDraw application is in windowed mode.

2 |

This mode is currently experimental and will not work with all applications, and graphics drawn using GDI or another API other than DirectDraw will not be scaled.

-------------------------------------------------------------------------------- /Help/html/config/display/windowmodescaling.htmltitle: -------------------------------------------------------------------------------- 1 | Windowed mode scaling -------------------------------------------------------------------------------- /Help/html/config/displaytab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | DXGL Config (Display tab) 3 | The Display tab sets basic options to adjust the appearance of the display output. 4 |

5 |

6 | Select one of the following options for more information: 7 |

8 |

9 | Video mode 10 |

11 |

12 | Add color depths 13 |

14 |

15 | Scaling method 16 |

17 |

18 | Additional display modes 19 |

20 |

21 | Screen aspect ratio 22 |

23 |

24 | Sort video modes 25 |

26 |

27 | DPI scaling mode 28 |

29 |

30 | Vertical sync 31 |

32 |

33 | Fullscreen window mode 34 |

35 |

36 | Fixed scaling 37 |

38 |

39 | Custom resolution 40 |

41 |

42 | Change display color depth 43 |

44 |

45 | Windowed mode scaling 46 |

47 |

48 | Single buffered display 49 |

50 |

51 | Use SetDisplayConfig API 52 |

-------------------------------------------------------------------------------- /Help/html/config/displaytab.htmltitle: -------------------------------------------------------------------------------- 1 | Display tab -------------------------------------------------------------------------------- /Help/html/config/effects/bltscalingfilter.htmlbody: -------------------------------------------------------------------------------- 1 |

Selects the method used for scaling Blt commands. The following modes are available:

2 |

Nearest

3 |

Uses nearest-neighbor scaling.

4 |

Bilinear

5 |

Uses bilinear scaling. Reduces jagged edges, but may create visual artifacts in some applications. This mode does not work in 8-bit color mode.

-------------------------------------------------------------------------------- /Help/html/config/effects/bltscalingfilter.htmltitle: -------------------------------------------------------------------------------- 1 | Blt scaling filter -------------------------------------------------------------------------------- /Help/html/config/effects/postprocessinputmultiplier.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Selects the amount to scale the display on the first pass. There is an Auto preset as well as presets for fixed 1x, 2×1, 2x, 3x, and 4x ratios. In addition, a ratio can manually be set anywhere from 0.25×0.25 to 16×16. The Auto preset will automatically double pixels horizontally if the horizontal resolution is 400 pixels or less, and will double pixels vertically if the vertical resolution is 300 or less.
3 | In addition, if Video mode is set to Change desktop resolution and Add extra display modes is enabled, a subset of low resolution pixel doubled modes will be added, providing support for low resolution modes even if not supported by your graphics card.
4 | If Primary buffer scaling is set to Scale to screen, typing 0.5 in the box will enable 2×2 supersampling for Direct3D applications. This will also modify the behavior of “Change desktop resolution” in the Display tab. 5 |

-------------------------------------------------------------------------------- /Help/html/config/effects/postprocessinputmultiplier.htmltitle: -------------------------------------------------------------------------------- 1 | Postprocess input multiplier -------------------------------------------------------------------------------- /Help/html/config/effects/postprocessscaler.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Scaling method for an optional image scaling pass. This can be used to create a pixelated effect while still preserving the ability to have filtered display scaling.
3 | In addition, it can be used to set the scaling filter for a postprocess pass, to be implemented in the future.
4 | The following methods are available: 5 |

6 |

Nearest

7 |

Uses nearest-neighbor scaling.

8 |

Bilinear

9 |

Uses bilinear scaling. 8-bit display modes will always use nearest scaling for this pass.

-------------------------------------------------------------------------------- /Help/html/config/effects/postprocessscaler.htmltitle: -------------------------------------------------------------------------------- 1 | Postprocess scaler -------------------------------------------------------------------------------- /Help/html/config/effects/primarybufferscaling.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Selects an amount to scale the primary buffer by. May cause slowdowns in certain applications or on certain computers.
3 | Can enhance the resolution of 3D applications. 4 |

5 |

The following options are available:

6 |

1x scale

7 |

Disables primary buffer scaling.

8 |

Scale to screen

9 |

Scales the primary buffer to the current screen resolution. May cause significant artifacts.

10 |

Maximum integer scaling

11 |

Scales the primary buffer to an automatic amount, by a whole number amount. This may reduce artifacts compared to Scale to screen.

12 |

13 | 1.5x scale
14 | 2x scale
15 | 2.5x scale
16 | 3x scale
17 | 4x scale
18 | 5x SCALE
19 | 6X scale
20 | 7X scale
21 | 8x scale 22 |

23 |

Scales the primary buffer by the specified amount. Note that this may fail if the selected mode scales the primary beyond your graphics card’s capability.

24 |

Custom scale

25 |

Scales the primary buffer by a custom amount. This amount can be entered in X and Y dimensions and may be an integer or floating point using the boxes provided. The default scaling is 1×1, disabling scaling.

-------------------------------------------------------------------------------- /Help/html/config/effects/primarybufferscaling.htmltitle: -------------------------------------------------------------------------------- 1 | Primary buffer scaling -------------------------------------------------------------------------------- /Help/html/config/effectstab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Effects tab 3 | The Effects tab adjusts the scaling and filtering of the graphics, and allows the increasing of the resolution of the primary buffer. 4 |

5 |

6 | Postprocess scaler 7 |

8 |

9 | Postprocess input multiplier 10 |

11 |

12 | Primary buffer scaling 13 |

14 |

15 | Blt scaling filter 16 |

-------------------------------------------------------------------------------- /Help/html/config/effectstab.htmltitle: -------------------------------------------------------------------------------- 1 | Effects tab -------------------------------------------------------------------------------- /Help/html/config/gfxtest/bltfast.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws gradients in the background, with every other pixel left black, and draws several objects to the foreground. Two of the objects are drawn behind the dithered background (using a destination color key) and one of the objects drawn on the foreground has one of the colors of its palette not drawn due to using a color key. Everything is drawn using the BltFast() API, which has limited functionality compared to the Blt() API. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/bltfast.htmltitle: -------------------------------------------------------------------------------- 1 | BltFast background and sprites -------------------------------------------------------------------------------- /Help/html/config/gfxtest/bltraster.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws a background consisting of gradients, and then draws three objects using three different common Win32 raster operations, specifically SRCCOPY, DSTINVERT, and PATCOPY. The SRCCOPY should be a color palette, the DSTINVERT should invert the background, and the PATCOPY should show a pattern revealed under the object (the object moves, the pattern doesn’t). 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/bltraster.htmltitle: -------------------------------------------------------------------------------- 1 | Blt background, Raster operation Blt sprites -------------------------------------------------------------------------------- /Help/html/config/gfxtest/colorfill.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws randomly colored rectangles to the primary buffer, using the Blt() API with the DDBLT_COLORFILL option. Please note that on some graphics cards this can result in up to thousands of frames per second. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/colorfill.htmltitle: -------------------------------------------------------------------------------- 1 | Random color fill Blt() patterns -------------------------------------------------------------------------------- /Help/html/config/gfxtest/colorpalette.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test displays a color palette and one or more screens of gradients, whose smoothness is dependent on the color depth selected for this test.
6 | Since DXGL Test uses a “default” palette there is very little smoothness for the 8-bit mode.
For 15, 16, and 24/32 bit modes, the palette is generated mathematically to display as many of the possible colors as possible on the screen. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/colorpalette.htmltitle: -------------------------------------------------------------------------------- 1 | Color palette and gradient screens -------------------------------------------------------------------------------- /Help/html/config/gfxtest/destkeyoverride.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws a set of gradients (or a color palette in 8-bit mode), then draws another set of gradients or a color palette on top, while cycling the color key on the second set. This test is similar to the source color key override test, except only one color from the second surface should appear at a time as it shows through the first surface.
6 | This uses the _DDBLT_KEYDESTOVERRIDE flag to set the color key. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/destkeyoverride.htmltitle: -------------------------------------------------------------------------------- 1 | Destination color key override test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/drawindexedprimitive.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws a colored cube, with a single directional light, using the DrawIndexedPrimitive() API.
6 | Please note, the Direct3D tests do not work correctly under 8-bit color as proper support is not yet implemented in DXGL. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/drawindexedprimitive.htmltitle: -------------------------------------------------------------------------------- 1 | DrawIndexedPrimitive cube with directional light -------------------------------------------------------------------------------- /Help/html/config/gfxtest/drawprimitivetextured.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws a cube using the DrawPrimitive() API, using 4 different textures for 4 sides, with color formats RGBA4444, RGBA1555, RGB565, and RGBA8888. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/drawprimitivetextured.htmltitle: -------------------------------------------------------------------------------- 1 | DrawPrimitive textured cube -------------------------------------------------------------------------------- /Help/html/config/gfxtest/gditest.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws various patterns using Windows GDI functions. It displays text, lines, beziers, polygons, rectangles, gradients, and bitmaps.
The gradients in this test, unlike the color palette test, are drawn dithered, resulting in greater smoothness. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/gditest.htmltitle: -------------------------------------------------------------------------------- 1 | GDI Test patterns -------------------------------------------------------------------------------- /Help/html/config/gfxtest/largebatchblt.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws cycling colors in single pixels using color fill Blt() commands, to a 256×256 back buffer, then uses Blt() to stretch that buffer to the screen.
6 | Due to the current design of DXGL, this test takes several seconds per frame, but in the future may become much faster. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/largebatchblt.htmltitle: -------------------------------------------------------------------------------- 1 | Large batch color fill Blt() operations -------------------------------------------------------------------------------- /Help/html/config/gfxtest/mirrorrotate.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test displays the DXGL logo using various combinations of flipping and 60 degree rotation, using combinations of DDBLTFX_MIRRORLEFTRIGHT, DDBLTFX_MIRRORUPDOWN, DDBLTFX_ROTATE90, DDBLTFX_ROTATE180, and DDBLTFX_ROTATE270. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/mirrorrotate.htmltitle: -------------------------------------------------------------------------------- 1 | Mirrored and rotated Blt() test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/mousetest.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws colored mouse pointers, displays the last few mouse related events to be posted to the test window, and the results of GetCursorPos().
6 | The colored pointers should follow the mouse pointer (which is a cross) and the events at the top of the screen should represent the current activity of the mouse. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/mousetest.htmltitle: -------------------------------------------------------------------------------- 1 | Mouse pointer event test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/randomgdi.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test paints random GDI commands to the primary buffer, unlocking and displaying it after each command.
6 | On some systems, this may be slow due to the method GDI access is currently implemented. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/randomgdi.htmltitle: -------------------------------------------------------------------------------- 1 | Random GDI patterns -------------------------------------------------------------------------------- /Help/html/config/gfxtest/randomnoise.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test generates a pseudorandom noise pattern and copies it to the primary (or back) buffer.
6 | Depending on your graphics driver some color depths may be slow. For example, 15-bit color is slow on the VMWare SVGA3D driver. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/randomnoise.htmltitle: -------------------------------------------------------------------------------- 1 | Random noise -------------------------------------------------------------------------------- /Help/html/config/gfxtest/rasterop.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws all 256 ternary raster operations supported by Windows, first using DirectDraw API and second using Windows GDI. The source is a 16×16 version of the DXGL logo, the destination is a checkerboard pattern, and the pattern is a different checkerboard.
6 | The DDraw screen should look exactly the same as the GDI screen, indicating the raster operations are working correctly.
7 | On graphics cards that do not support OpenGL 3, many of the DirectDraw raster operations will be replaced with a red X, indicating they cannot be drawn, as the necessary shader hardware is not detected to simulate the raster operations. 8 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/rasterop.htmltitle: -------------------------------------------------------------------------------- 1 | Raster operation Blt() test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/setcursorpos.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test moves the mouse cursor, then reads back its position.
6 | In scaled modes, it is currently expected for a slight offset to be detected.
7 | The mouse cursor drawn by this test should follow the real cursor, which is a cross.
8 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/setcursorpos.htmltitle: -------------------------------------------------------------------------------- 1 | SetCursorPos test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/srckeyoverride.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test draws a set of gradients (or a color palette in 8-bit mode), then draws another set of gradients or a color palette on top, while cycling the color key on the second set. You should see only that color change as it cycles. This uses the _DDBLT_KEYSRCOVERRIDE flag to set the color key. 6 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/srckeyoverride.htmltitle: -------------------------------------------------------------------------------- 1 | Source color key override test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/surfaceformat.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This test is designed to display the surface formats currently available to DXGL. As an interactive test, you can select the format to be used as a Blt source or Direct3D texture and the format to act as a render target. 6 |

7 |

8 | Currently, this test supports Blt() from a video memory surface, Blt() from a system memory surface (there is currently no difference between video and system memory in DXGL), or drawing a Direct3D texture. 9 |

10 |

11 | Please note that not all combinations of source and destination format are currently supported, and unsupported combinations will result in either no image or distorted colors. 12 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/surfaceformat.htmltitle: -------------------------------------------------------------------------------- 1 | Surface/Texture format test -------------------------------------------------------------------------------- /Help/html/config/gfxtest/texturestageshaders.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This is an interactive test, which allows the user to experiment with the Direct3D7 texture stage pipeline.
6 | Please note this test is currently incomplete. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/texturestageshaders.htmltitle: -------------------------------------------------------------------------------- 1 | Texture stage shaders -------------------------------------------------------------------------------- /Help/html/config/gfxtest/vertexshaders.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

5 | This is an interactive test, which allows the user to experiment with the Direct3D7 vertex pipeline, aka the T&L pipeline.
6 | This test is currently far from completion, and several parts do not work. 7 |

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/vertexshaders.htmltitle: -------------------------------------------------------------------------------- 1 | Vertex shaders -------------------------------------------------------------------------------- /Help/html/config/gfxtest/windowapitest.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 |
4 | 5 |

6 |

The Window API test displays status regarding the size and position of the DirectDraw window, and opens a dialog allowing you to manipulate the characteristics of the window.

7 |

The numbers displayed within the window should represent the geometry of the window, and the green border should be just inside the border of the window. If windowed mode scaling is enabled, the numbers should be scaled accordingly.

8 |

Use the dialog box to manipulate the style, position, and size of the test window.

-------------------------------------------------------------------------------- /Help/html/config/gfxtest/windowapitest.htmltitle: -------------------------------------------------------------------------------- 1 | Window API test -------------------------------------------------------------------------------- /Help/html/config/gfxtesttab.htmltitle: -------------------------------------------------------------------------------- 1 | Graphics Tests tab -------------------------------------------------------------------------------- /Help/html/config/hacks/automaticallyexpandviewport.htmlbody: -------------------------------------------------------------------------------- 1 |

If the display is set to 640×480, this hack will test if there is a border around the display using the comparison function and value specified, and if so, expands the inner 512×448 pixels to the 640×480 screen. In addition, if the display is set to 320×240, this will expand the inner 256×224 pixels to the display.

2 |

This hack is intended for emulators and similar applications that render at 256×224 or 512×448 resolution, while allowing menus to continue to display properly.

3 |

For best quality, use a scaled display mode when using this hack.

4 |

Currently, this hack only reads the upper-left pixel of the display.

5 |

The following options are available:

6 |

512×448 to 640×480

7 |

Expands 512×448 resolutions to the 640×480 display.

8 |

512×480 to 640×480

9 |

Expands 512×480 resolutions to the 640×480 display (scaling only in the horizontal direction). This can be useful for displaying all 480 lines in NES emulation, or when outputting to a CRT display.

-------------------------------------------------------------------------------- /Help/html/config/hacks/automaticallyexpandviewport.htmltitle: -------------------------------------------------------------------------------- 1 | Automatically expand viewport -------------------------------------------------------------------------------- /Help/html/config/hacks/automaticexpandcomparisonmethod.htmlbody: -------------------------------------------------------------------------------- 1 |

Determines the method to use for comparing pixels when determining whether to expand the viewport.

2 |

The following options are available:

3 |

Match color

4 |

Uses an exact match of the RGB value of the pixel’s color. When in 8-bit mode this will perform a palette lookup and use the RGB value of the palette entry to perform the comparison. In 16 or 15 bit mode this will convert the pixel to 32-bit color before comparing.

5 |

Color less than or equal

6 |

Matches if all of the R, G, and B channels match or are less than the comparison value, converting the pixel as described in “Match color.”

7 |

Color greater than or equal

8 |

Matches if all of the R, G, and B channels match or are less than the comparison value, converting the pixel as described in “Match color.”

9 |

Match palette entry

10 |

In 8-bit mode, uses the palette index of the pixel for comparison. In other modes, uses the numeric value of the pixel for comparison, matching at most 24 bits.

11 |

Palette less than or equal

12 |

Matches if the palette index or pixel’s numeric value matches or is less than the comparison value.

13 |

Palette greater than or equal

14 |

Matches if the palette index or pixel’s numeric value matches or is greater than the comparison value.

15 |

Match 3 palette entries (8-bit only)

16 |

17 | In 8-bit color mode, matches up to 3 palette entries. These should be packed in the comparison value. For instance to match palette entries 1, 5, and 12, use value 01050C. If you need to match only 1 or 2 palette entries, duplicate the numbers, for instance to match entries 15 or 127 use 0F0F7F.
18 | In other color modes, functions the same as “Match palette entry.” 19 |

-------------------------------------------------------------------------------- /Help/html/config/hacks/automaticexpandcomparisonmethod.htmltitle: -------------------------------------------------------------------------------- 1 | Automatic expand comparison method -------------------------------------------------------------------------------- /Help/html/config/hacks/automaticexpandcomparisonvalue.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Value to use, in hexadecimal, for the comparison value to use when comparing border pixels. For more details on the value to use, see Automatic expand comparison method. 3 |

4 |

In DXGL Config, enter the number, up to 6 hexadecimal digits, without any prefix. In a dxgl.ini file, prefix the number with 0x.

-------------------------------------------------------------------------------- /Help/html/config/hacks/automaticexpandcomparisonvalue.htmltitle: -------------------------------------------------------------------------------- 1 | Automatic expand comparison value -------------------------------------------------------------------------------- /Help/html/config/hacks/crop640480to640400.htmlbody: -------------------------------------------------------------------------------- 1 |

If enabled, crops the 640×480 mode to a 640×400 display size.
2 | If the Video mode is set to Change desktop resolution this will attempt to switch the display to 640×400 mode.

3 |

This hack is intended for some older games that render at 640×400 resolution, but switch the display to 640×480 due to limitations in early 3D accelerator cards.

-------------------------------------------------------------------------------- /Help/html/config/hacks/crop640480to640400.htmltitle: -------------------------------------------------------------------------------- 1 | Crop 640×480 to 640×400 -------------------------------------------------------------------------------- /Help/html/config/hacks/palettedrawdelayms.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Sets the time delay in milliseconds since the last frame was drawn before SetPalette or SetEntries causes the screen to be drawn. Setting this too low can generate excessive frames. Setting this too high can cause palette effects to be missed. The default is set to a reasonable delay for a 60Hz monitor. 3 |

-------------------------------------------------------------------------------- /Help/html/config/hacks/palettedrawdelayms.htmltitle: -------------------------------------------------------------------------------- 1 | Palette draw delay (ms) -------------------------------------------------------------------------------- /Help/html/config/hacks/removetvcompatiblerefreshrates.htmlbody: -------------------------------------------------------------------------------- 1 |

Removes TV-compatible refresh rates that may be added by Windows 7 and above. If a rounded refresh rate is not available it will be added. This may fix some games that may run at a reduced framerate due to these compatible refresh rates operating above the integer refresh rate.

-------------------------------------------------------------------------------- /Help/html/config/hacks/removetvcompatiblerefreshrates.htmltitle: -------------------------------------------------------------------------------- 1 | Remove TV-compatible refresh rates -------------------------------------------------------------------------------- /Help/html/config/hacks/setcursorhidevisibility.htmlbody: -------------------------------------------------------------------------------- 1 |

Applies a hook to the SetCursor() API to fix a flickering mouse cursor in some instances. Try enabling this hack if your mouse cursor is flickering in-game when it should be invisible.

-------------------------------------------------------------------------------- /Help/html/config/hacks/setcursorhidevisibility.htmltitle: -------------------------------------------------------------------------------- 1 | SetCursor hide visibility -------------------------------------------------------------------------------- /Help/html/config/hacks/syncpaletteupdatetovsync.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | Determines whether to wait for Vsync before drawing the screen due to a palette change. Setting to true can reduce tearing (or flickering on NVIDIA drivers) but may reduce framerate. Try adjusting the delay before changing this. 3 |

-------------------------------------------------------------------------------- /Help/html/config/hacks/syncpaletteupdatetovsync.htmltitle: -------------------------------------------------------------------------------- 1 | Sync palette update to Vsync -------------------------------------------------------------------------------- /Help/html/config/hackstab.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 | This tab contains several rendering hacks, which should only be enabled in specific circumstances. 4 |

5 |

6 | Crop 640×480 to 640×400 7 |

8 |

9 | Automatically expand viewport 10 |

11 |

12 | Automatic expand comparison method 13 |

14 |

15 | Automatic expand comparison value 16 |

17 |

18 | Remove TV-compatible refresh rates 19 |

20 |

21 | SetCursor hide visibility 22 |

23 |

24 | Palette draw delay (ms) 25 |

26 |

27 | Sync palette update to Vsync 28 |

-------------------------------------------------------------------------------- /Help/html/config/hackstab.htmltitle: -------------------------------------------------------------------------------- 1 | Hacks tab -------------------------------------------------------------------------------- /Help/html/configuration.htmlbody: -------------------------------------------------------------------------------- 1 |

2 | 3 | The DXGL Config application provides many options for customizing DXGL. 4 |

5 |

6 | Display tab 7 |

8 |

9 | Effects tab 10 |

11 |

12 | 3D Graphics tab 13 |

14 |

15 | Advanced tab 16 |

17 |

18 | Debug tab 19 |

20 |

21 | Hacks tab 22 |

23 |

24 | Graphics Tests tab 25 |

26 |

27 | About tab 28 |

-------------------------------------------------------------------------------- /Help/html/configuration.htmltitle: -------------------------------------------------------------------------------- 1 | Configuration -------------------------------------------------------------------------------- /Help/html/introduction.htmltitle: -------------------------------------------------------------------------------- 1 | Introduction -------------------------------------------------------------------------------- /Help/html/licenses.htmltitle: -------------------------------------------------------------------------------- 1 | Licenses -------------------------------------------------------------------------------- /Help/html/licenses/crc32.htmlbody: -------------------------------------------------------------------------------- 1 |

Contains CRC-32 version 2.0.0 by Craig Bruce, 2006-04-29, under the following declaration:

2 |

THIS PROGRAM IS PUBLIC-DOMAIN SOFTWARE.
3 | Based on the byte-oriented implementation "File Verification Using CRC" 4 | by Mark R. Nelson in Dr. Dobb's Journal, May 1992, pp. 64-67.

-------------------------------------------------------------------------------- /Help/html/licenses/crc32.htmltitle: -------------------------------------------------------------------------------- 1 | CRC-32 Public Domain Declaration -------------------------------------------------------------------------------- /Help/html/licenses/dxgl.htmltitle: -------------------------------------------------------------------------------- 1 | DXGL License -------------------------------------------------------------------------------- /Help/html/licenses/inih.htmlbody: -------------------------------------------------------------------------------- 1 |

The "inih" library is distributed under the New BSD license:
2 |
3 | Copyright (c) 2009, Ben Hoyt
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 | * Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Ben Hoyt nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY BEN HOYT ''AS IS'' AND ANY
18 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 | DISCLAIMED. IN NO EVENT SHALL BEN HOYT BE LIABLE FOR ANY
21 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-------------------------------------------------------------------------------- /Help/html/licenses/inih.htmltitle: -------------------------------------------------------------------------------- 1 | inih License -------------------------------------------------------------------------------- /Help/html/licenses/mesa.htmlbody: -------------------------------------------------------------------------------- 1 |

SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
2 | Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a
5 | copy of this software and associated documentation files (the "Software"),
6 | to deal in the Software without restriction, including without limitation
7 | the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 | and/or sell copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice including the dates of first publication and
12 | either this permission notice or a reference to
13 | http://oss.sgi.com/projects/FreeB/
14 | shall be included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 | SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
21 | OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
24 | Except as contained in this notice, the name of Silicon Graphics, Inc.
25 | shall not be used in advertising or otherwise to promote the sale, use or
26 | other dealings in this Software without prior written authorization from
27 | Silicon Graphics, Inc.

28 | 29 |

Notice

30 |

Since the publication of this license, the link to the SGI FREE SOFTWARE LICENSE B has become broken. The license can now be viewed online at https://spdx.org/licenses/SGI-B-2.0.html

-------------------------------------------------------------------------------- /Help/html/licenses/mesa.htmltitle: -------------------------------------------------------------------------------- 1 | Mesa SGI License -------------------------------------------------------------------------------- /Help/html/licenses/minhook.htmltitle: -------------------------------------------------------------------------------- 1 | MinHook License -------------------------------------------------------------------------------- /Help/html/licenses/sha.htmlbody: -------------------------------------------------------------------------------- 1 |

This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to <http://unlicense.org/>

-------------------------------------------------------------------------------- /Help/html/licenses/sha.htmltitle: -------------------------------------------------------------------------------- 1 | WjCryptLib Unlicense -------------------------------------------------------------------------------- /Help/html/licenses/wine.htmltitle: -------------------------------------------------------------------------------- 1 | Wine License -------------------------------------------------------------------------------- /Help/html/troubleshooting.htmlbody: -------------------------------------------------------------------------------- 1 |

Problem: DXGL does not load

2 |

Cause: No application profile

3 | Solution: Open "Configure DXGL" and click the Add button. Browse to your program and double click it. 4 |

Cause: System ddraw.dll registered under absolute path

5 | Solution: Make sure the "Fix DDraw COM Registration" option is selected when installing DXGL. After upgrading to Windows 6 | 8, you may need to re-run the installer to set the registry keys. 7 |

Cause: Program does not use DirectDraw

8 | Solution: Make sure your program is configured to use DirectDraw or Direct3D up to version 7. 9 |

Problem: Program crashes

10 |

Cause: Incompatible Application Compatibility flags in registry

11 | Solution: Browse to the folder where the application is installed. Right click the program file and click Properties. 12 | Click the Compatibility tab and make sure no compatibility options are checked. If this does not solve your problem, 13 | open Registry Editor and browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 14 | and make sure there is no entry for your program. If there is, delete the entry. 15 |

Cause: Bug in DXGL

16 | Solution: Go to https://www.williamfeely.info/bugzilla and create a 17 | bug report. Please be sure to be as descriptive as possible. 18 |

Cause: Change color depth option checked

19 | Solution: Uncheck Change color depth in DXGL Config. 20 |

Problem: Graphics corruption or missing graphics

21 |

Cause: Bug in DXGL

22 | Solution: Go to https://www.williamfeely.info/bugzilla and create a 23 | bug report. Please be sure to be as descriptive as possible. 24 |

Problem: OpenGL error message on load

25 |

Cause: Incompatible drivers

26 | Solution: Make sure your graphics card supports OpenGL 2.0 and framebuffer objects. Then go to the graphics card 27 | manufacturer's website and download updated drivers. -------------------------------------------------------------------------------- /Help/html/troubleshooting.htmltitle: -------------------------------------------------------------------------------- 1 | Troubleshooting -------------------------------------------------------------------------------- /Help/images/bltfast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/bltfast.png -------------------------------------------------------------------------------- /Help/images/bltrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/bltrop.png -------------------------------------------------------------------------------- /Help/images/colorfill-random.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/colorfill-random.png -------------------------------------------------------------------------------- /Help/images/destkeyoverride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/destkeyoverride.png -------------------------------------------------------------------------------- /Help/images/drawindexedprimitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/drawindexedprimitive.png -------------------------------------------------------------------------------- /Help/images/drawprimitivetextured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/drawprimitivetextured.png -------------------------------------------------------------------------------- /Help/images/dxgl-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxgl-header.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-3dgraphics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-3dgraphics.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-about.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-advanced.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-debug.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-display.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-effects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-effects.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-hacks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-hacks.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-saveini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-saveini.png -------------------------------------------------------------------------------- /Help/images/dxglcfg-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/dxglcfg-tests.png -------------------------------------------------------------------------------- /Help/images/gdi-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gdi-pattern.png -------------------------------------------------------------------------------- /Help/images/gdi-random.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gdi-random.png -------------------------------------------------------------------------------- /Help/images/gradients-15bpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gradients-15bpp.png -------------------------------------------------------------------------------- /Help/images/gradients-16bpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gradients-16bpp.png -------------------------------------------------------------------------------- /Help/images/gradients-24bpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gradients-24bpp.png -------------------------------------------------------------------------------- /Help/images/gradients-8bpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/gradients-8bpp.png -------------------------------------------------------------------------------- /Help/images/large-batch-blt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/large-batch-blt.png -------------------------------------------------------------------------------- /Help/images/mirror-rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/mirror-rotate.png -------------------------------------------------------------------------------- /Help/images/mouse-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/mouse-test.png -------------------------------------------------------------------------------- /Help/images/palette-8bpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/palette-8bpp.png -------------------------------------------------------------------------------- /Help/images/random-noise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/random-noise.jpg -------------------------------------------------------------------------------- /Help/images/rop-patterns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/rop-patterns.png -------------------------------------------------------------------------------- /Help/images/setcursorpos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/setcursorpos.png -------------------------------------------------------------------------------- /Help/images/srckeyoverride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/srckeyoverride.png -------------------------------------------------------------------------------- /Help/images/surfaceformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/surfaceformat.png -------------------------------------------------------------------------------- /Help/images/textureshader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/textureshader.png -------------------------------------------------------------------------------- /Help/images/vertexshader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/vertexshader.png -------------------------------------------------------------------------------- /Help/images/windowapitest1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/windowapitest1.png -------------------------------------------------------------------------------- /Help/images/windowapitest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Help/images/windowapitest2.png -------------------------------------------------------------------------------- /Installer/.gitignore: -------------------------------------------------------------------------------- 1 | /*.exe 2 | -------------------------------------------------------------------------------- /Installer/Installer.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Installer/dxgl.nsi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/Installer/dxgl.nsi -------------------------------------------------------------------------------- /buildtool/buildtool.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/buildtool/buildtool.rc -------------------------------------------------------------------------------- /buildtool/buildtool.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Resource Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | 28 | 29 | Source Files 30 | 31 | 32 | -------------------------------------------------------------------------------- /buildtool/resource.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2012 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | -------------------------------------------------------------------------------- /buildtool/xp.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | DXGL Build Tool 10 | 11 | 12 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /cfgmgr/ReadMe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/cfgmgr/ReadMe.txt -------------------------------------------------------------------------------- /cfgmgr/cfgmgr.depend: -------------------------------------------------------------------------------- 1 | # depslib dependency file v1.0 2 | -------------------------------------------------------------------------------- /cfgmgr/crc32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * crc32.h 3 | */ 4 | #ifndef _CRC32_H 5 | #define _CRC32_H 6 | 7 | int Crc32_ComputeFile( FILE *file, unsigned long *outCrc32 ); 8 | 9 | unsigned long Crc32_ComputeBuf( unsigned long inCrc32, const void *buf, 10 | size_t bufLen ); 11 | 12 | #endif /* _CRC32_H */ 13 | -------------------------------------------------------------------------------- /cfgmgr/inih/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: benhoyt 2 | -------------------------------------------------------------------------------- /cfgmgr/inih/.github/workflows/cifuzz.yml: -------------------------------------------------------------------------------- 1 | name: CIFuzz 2 | on: [pull_request] 3 | permissions: {} 4 | jobs: 5 | Fuzzing: 6 | runs-on: ubuntu-latest 7 | permissions: 8 | security-events: write 9 | steps: 10 | - name: Build Fuzzers 11 | id: build 12 | uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master 13 | with: 14 | oss-fuzz-project-name: 'inih' 15 | - name: Run Fuzzers 16 | uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master 17 | with: 18 | oss-fuzz-project-name: 'inih' 19 | fuzz-seconds: 300 20 | output-sarif: true 21 | - name: Upload Crash 22 | uses: actions/upload-artifact@v3 23 | if: failure() && steps.build.outcome == 'success' 24 | with: 25 | name: artifacts 26 | path: ./out/artifacts 27 | - name: Upload Sarif 28 | if: always() && steps.build.outcome == 'success' 29 | uses: github/codeql-action/upload-sarif@v2 30 | with: 31 | # Path to SARIF file relative to the root of the repository 32 | sarif_file: cifuzz-sarif/results.sarif 33 | checkout_path: cifuzz-sarif 34 | category: CIFuzz 35 | -------------------------------------------------------------------------------- /cfgmgr/inih/.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | build-linux: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v2 15 | 16 | - name: Run Diff Tests 17 | run: | 18 | cd tests 19 | ./unittest.sh 20 | cd ../examples 21 | ./cpptest.sh 22 | git diff --exit-code 23 | -------------------------------------------------------------------------------- /cfgmgr/inih/.gitignore: -------------------------------------------------------------------------------- 1 | fuzzing/findings 2 | fuzzing/inihfuzz 3 | -------------------------------------------------------------------------------- /cfgmgr/inih/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | The "inih" library is distributed under the New BSD license: 3 | 4 | Copyright (c) 2009, Ben Hoyt 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | * Redistributions of source code must retain the above copyright 10 | notice, this list of conditions and the following disclaimer. 11 | * Redistributions in binary form must reproduce the above copyright 12 | notice, this list of conditions and the following disclaimer in the 13 | documentation and/or other materials provided with the distribution. 14 | * Neither the name of Ben Hoyt nor the names of its contributors 15 | may be used to endorse or promote products derived from this software 16 | without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY BEN HOYT ''AS IS'' AND ANY 19 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL BEN HOYT BE LIABLE FOR ANY 22 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/INIReaderExample.cpp: -------------------------------------------------------------------------------- 1 | // Example that shows simple usage of the INIReader class 2 | 3 | #include 4 | #include "../cpp/INIReader.h" 5 | 6 | int main() 7 | { 8 | INIReader reader("../examples/test.ini"); 9 | 10 | if (reader.ParseError() < 0) { 11 | std::cout << "Can't load 'test.ini'\n"; 12 | return 1; 13 | } 14 | std::cout << "Config loaded from 'test.ini': version=" 15 | << reader.GetInteger("protocol", "version", -1) << ", unsigned version=" 16 | << reader.GetUnsigned("protocol", "version", -1) << ", trillion=" 17 | << reader.GetInteger64("user", "trillion", -1) << ", unsigned trillion=" 18 | << reader.GetUnsigned64("user", "trillion", -1) << ", name=" 19 | << reader.Get("user", "name", "UNKNOWN") << ", email=" 20 | << reader.Get("user", "email", "UNKNOWN") << ", pi=" 21 | << reader.GetReal("user", "pi", -1) << ", active=" 22 | << reader.GetBoolean("user", "active", true) << "\n"; 23 | std::cout << "Has values: user.name=" << reader.HasValue("user", "name") 24 | << ", user.nose=" << reader.HasValue("user", "nose") << "\n"; 25 | std::cout << "Has sections: user=" << reader.HasSection("user") 26 | << ", fizz=" << reader.HasSection("fizz") << "\n"; 27 | return 0; 28 | } 29 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/config.def: -------------------------------------------------------------------------------- 1 | // CFG(section, name, default) 2 | 3 | CFG(protocol, version, "0") 4 | 5 | CFG(user, name, "Fatty Lumpkin") 6 | CFG(user, email, "fatty@lumpkin.com") 7 | 8 | #undef CFG 9 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/cpptest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | g++ -Wall INIReaderExample.cpp ../cpp/INIReader.cpp ../ini.c -o INIReaderExample 4 | ./INIReaderExample > cpptest.txt 5 | rm INIReaderExample 6 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/cpptest.txt: -------------------------------------------------------------------------------- 1 | Config loaded from 'test.ini': version=6, unsigned version=6, trillion=1000000000000, unsigned trillion=1000000000000, name=Bob Smith, email=bob@smith.com, pi=3.14159, active=1 2 | Has values: user.name=1, user.nose=0 3 | Has sections: user=1, fizz=0 4 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/ini_dump.c: -------------------------------------------------------------------------------- 1 | /* ini.h example that simply dumps an INI file without comments */ 2 | 3 | #include 4 | #include 5 | #include "../ini.h" 6 | 7 | static int dumper(void* user, const char* section, const char* name, 8 | const char* value) 9 | { 10 | static char prev_section[50] = ""; 11 | 12 | if (strcmp(section, prev_section)) { 13 | printf("%s[%s]\n", (prev_section[0] ? "\n" : ""), section); 14 | strncpy(prev_section, section, sizeof(prev_section)); 15 | prev_section[sizeof(prev_section) - 1] = '\0'; 16 | } 17 | printf("%s = %s\n", name, value); 18 | return 1; 19 | } 20 | 21 | int main(int argc, char* argv[]) 22 | { 23 | int error; 24 | 25 | if (argc <= 1) { 26 | printf("Usage: ini_dump filename.ini\n"); 27 | return 1; 28 | } 29 | 30 | error = ini_parse(argv[1], dumper, NULL); 31 | if (error < 0) { 32 | printf("Can't read '%s'!\n", argv[1]); 33 | return 2; 34 | } 35 | else if (error) { 36 | printf("Bad config file (first error on line %d)!\n", error); 37 | return 3; 38 | } 39 | return 0; 40 | } 41 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/ini_example.c: -------------------------------------------------------------------------------- 1 | /* Example: parse a simple configuration file */ 2 | 3 | #include 4 | #include 5 | #include 6 | #include "../ini.h" 7 | 8 | typedef struct 9 | { 10 | int version; 11 | const char* name; 12 | const char* email; 13 | } configuration; 14 | 15 | static int handler(void* user, const char* section, const char* name, 16 | const char* value) 17 | { 18 | configuration* pconfig = (configuration*)user; 19 | 20 | #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0 21 | if (MATCH("protocol", "version")) { 22 | pconfig->version = atoi(value); 23 | } else if (MATCH("user", "name")) { 24 | pconfig->name = strdup(value); 25 | } else if (MATCH("user", "email")) { 26 | pconfig->email = strdup(value); 27 | } else { 28 | return 0; /* unknown section/name, error */ 29 | } 30 | return 1; 31 | } 32 | 33 | int main(int argc, char* argv[]) 34 | { 35 | configuration config; 36 | config.version = 0; /* set defaults */ 37 | config.name = NULL; 38 | config.email = NULL; 39 | 40 | if (ini_parse("test.ini", handler, &config) < 0) { 41 | printf("Can't load 'test.ini'\n"); 42 | return 1; 43 | } 44 | printf("Config loaded from 'test.ini': version=%d, name=%s, email=%s\n", 45 | config.version, config.name, config.email); 46 | 47 | if (config.name) 48 | free((void*)config.name); 49 | if (config.email) 50 | free((void*)config.email); 51 | 52 | return 0; 53 | } 54 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/ini_xmacros.c: -------------------------------------------------------------------------------- 1 | /* Parse a configuration file into a struct using X-Macros */ 2 | 3 | #include 4 | #include 5 | #include "../ini.h" 6 | 7 | /* define the config struct type */ 8 | typedef struct { 9 | #define CFG(s, n, default) char *s##_##n; 10 | #include "config.def" 11 | } config; 12 | 13 | /* create one and fill in its default values */ 14 | config Config = { 15 | #define CFG(s, n, default) default, 16 | #include "config.def" 17 | }; 18 | 19 | /* process a line of the INI file, storing valid values into config struct */ 20 | int handler(void *user, const char *section, const char *name, 21 | const char *value) 22 | { 23 | config *cfg = (config *)user; 24 | 25 | if (0) ; 26 | #define CFG(s, n, default) else if (strcmp(section, #s)==0 && \ 27 | strcmp(name, #n)==0) cfg->s##_##n = strdup(value); 28 | #include "config.def" 29 | 30 | return 1; 31 | } 32 | 33 | /* print all the variables in the config, one per line */ 34 | void dump_config(config *cfg) 35 | { 36 | #define CFG(s, n, default) printf("%s_%s = %s\n", #s, #n, cfg->s##_##n); 37 | #include "config.def" 38 | } 39 | 40 | int main(int argc, char* argv[]) 41 | { 42 | if (ini_parse("test.ini", handler, &Config) < 0) 43 | printf("Can't load 'test.ini', using defaults\n"); 44 | dump_config(&Config); 45 | return 0; 46 | } 47 | -------------------------------------------------------------------------------- /cfgmgr/inih/examples/test.ini: -------------------------------------------------------------------------------- 1 | ; Test config file for ini_example.c and INIReaderTest.cpp 2 | 3 | [protocol] ; Protocol configuration 4 | version=6 ; IPv6 5 | 6 | [user] 7 | name = Bob Smith ; Spaces around '=' are stripped 8 | email = bob@smith.com ; And comments (like this) ignored 9 | active = true ; Test a boolean 10 | pi = 3.14159 ; Test a floating point number 11 | trillion = 1000000000000 ; Test 64-bit integers 12 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/OSS-FUZZ.MD: -------------------------------------------------------------------------------- 1 | ### oss-fuzz local build with ASAN 2 | 3 | ``` 4 | export CC=clang 5 | export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link" 6 | export LIB_FUZZING_ENGINE="-fsanitize=fuzzer" 7 | ``` 8 | 9 | ### oss-fuzz local build with MSAN 10 | 11 | ``` 12 | export CC=clang 13 | export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize-memory-track-origins -fsanitize=fuzzer-no-link" 14 | export LIB_FUZZING_ENGINE="-fsanitize=fuzzer" 15 | ``` 16 | 17 | 18 | ### oss-fuzz local build with UBSAN 19 | ``` 20 | export CC=clang 21 | export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=array-bounds,bool,builtin,enum,float-divide-by-zero,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unsigned-integer-overflow,unreachable,vla-bound,vptr -fno-sanitize-recover=array-bounds,bool,builtin,enum,float-divide-by-zero,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize=fuzzer-no-link" 22 | export LIB_FUZZING_ENGINE="-fsanitize=fuzzer" 23 | ``` 24 | 25 | ### run fuzzer 26 | ``` 27 | bash oss-fuzz.sh 28 | mkdir seed/ 29 | cp ../tests/*.ini seed/ 30 | ./inihfuzz seed/ 31 | ``` 32 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ../../afl-2.52b/afl-gcc inihfuzz.c ../ini.c -o inihfuzz 3 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/fuzz.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ../../afl-2.52b/afl-fuzz -i testcases -o findings -- ./inihfuzz @@ 3 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/inihfuzz.c: -------------------------------------------------------------------------------- 1 | /* This is a slightly tweaked copy of tests/unittest.c for fuzzing */ 2 | 3 | #include 4 | #include 5 | #include 6 | #include "../ini.h" 7 | 8 | int User; 9 | char Prev_section[50]; 10 | 11 | int dumper(void* user, const char* section, const char* name, 12 | const char* value) 13 | { 14 | User = *((int*)user); 15 | if (!name || strcmp(section, Prev_section)) { 16 | printf("... [%s]\n", section); 17 | strncpy(Prev_section, section, sizeof(Prev_section)); 18 | Prev_section[sizeof(Prev_section) - 1] = '\0'; 19 | } 20 | if (!name) { 21 | return 1; 22 | } 23 | 24 | printf("... %s%s%s;\n", name, value ? "=" : "", value ? value : ""); 25 | 26 | if (!value) { 27 | // Happens when INI_ALLOW_NO_VALUE=1 and line has no value (no '=' or ':') 28 | return 1; 29 | } 30 | 31 | return strcmp(name, "user")==0 && strcmp(value, "parse_error")==0 ? 0 : 1; 32 | } 33 | 34 | void parse(const char* fname) { 35 | static int u = 100; 36 | int e; 37 | 38 | *Prev_section = '\0'; 39 | e = ini_parse(fname, dumper, &u); 40 | printf("%s: e=%d user=%d\n", fname, e, User); 41 | u++; 42 | } 43 | 44 | #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION 45 | 46 | int main(int argc, char **argv) 47 | { 48 | if (argc < 2) { 49 | printf("usage: inihfuzz file.ini\n"); 50 | return 1; 51 | } 52 | parse(argv[1]); 53 | return 0; 54 | } 55 | 56 | #else 57 | 58 | #define kMinInputLength 20 59 | #define kMaxInputLength 1024 60 | 61 | extern int LLVMFuzzerTestOneInput(const char *Data, size_t Size) { 62 | 63 | if (Size < kMinInputLength || Size > kMaxInputLength) { 64 | return 0; 65 | } 66 | 67 | int ret; 68 | *Prev_section = '\0'; 69 | int u = 100; 70 | 71 | char *data = malloc(Size + 1); 72 | memcpy(data, Data, Size); 73 | data[Size] = '\0'; 74 | 75 | ret = ini_parse(data, dumper, &u); 76 | 77 | free(data); 78 | 79 | return ret; 80 | } 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/oss-fuzz.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | $CC $CFLAGS -c ../ini.c 3 | $CC $CFLAGS -c inihfuzz.c 4 | $CXX $CFLAGS $LIB_FUZZING_ENGINE inihfuzz.o ini.o -o inihfuzz 5 | -------------------------------------------------------------------------------- /cfgmgr/inih/fuzzing/testcases/case1.ini: -------------------------------------------------------------------------------- 1 | ; comment 2 | 3 | [foo] ; section 4 | bar=1 ; name=value 5 | 6 | [bar] 7 | name = Bob 8 | age: 42 9 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/bad_comment.ini: -------------------------------------------------------------------------------- 1 | This is an error 2 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/bad_multi.ini: -------------------------------------------------------------------------------- 1 | indented 2 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/bad_section.ini: -------------------------------------------------------------------------------- 1 | [section1] 2 | name1=value1 3 | [section2 4 | [section3 ; comment ] 5 | name2=value2 6 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_alloc.txt: -------------------------------------------------------------------------------- 1 | ini_malloc(12) 2 | ... [section] 3 | ... foo=bar; 4 | ini_realloc(24) 5 | ... bazz=buzz quxx; 6 | ini_free() 7 | basic: e=0 8 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_allow_no_value.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... name2=value2; 27 | bad_section.ini: e=3 user=102 28 | ... This is an error; 29 | bad_comment.ini: e=0 user=103 30 | ... [section] 31 | ... a=b; 32 | ... user=parse_error; 33 | ... c=d; 34 | user_error.ini: e=3 user=104 35 | ... [section1] 36 | ... single1=abc; 37 | ... multi=this is a; 38 | ... multi=multi-line value; 39 | ... single2=xyz; 40 | ... [section2] 41 | ... multi=a; 42 | ... multi=b; 43 | ... multi=c; 44 | ... [section3] 45 | ... single=ghi; 46 | ... multi=the quick; 47 | ... multi=brown fox; 48 | ... name=bob smith; 49 | ... foo=bar; 50 | ... foo=Hi World; 51 | multi_line.ini: e=0 user=105 52 | ... indented; 53 | bad_multi.ini: e=0 user=106 54 | ... [bom_section] 55 | ... bom_name=bom_value; 56 | ... key“=value“; 57 | bom.ini: e=0 user=107 58 | ... [section1] 59 | ... single1=abc; 60 | ... single2=xyz; 61 | ... single1=def; 62 | ... single2=qrs; 63 | duplicate_sections.ini: e=0 user=108 64 | ... [section_list] 65 | ... section0; 66 | ... section1; 67 | ... [section0] 68 | ... key0=val0; 69 | ... [section1] 70 | ... key1=val1; 71 | no_value.ini: e=0 user=109 72 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_call_handler_on_new_section.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [empty] 9 | ... [comment_test] 10 | ... test1=1;2;3; 11 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 12 | ... test;3=345; 13 | ... test4=4#5#6; 14 | ... test7=; 15 | ... test8=; not a comment, needs whitespace before ';'; 16 | ... [colon_tests] 17 | ... Content-Type=text/html; 18 | ... foo=bar; 19 | ... adams=42; 20 | ... funny1=with = equals; 21 | ... funny2=with : colons; 22 | ... funny3=two = equals; 23 | ... funny4=two : colons; 24 | normal.ini: e=0 user=101 25 | ... [section1] 26 | ... name1=value1; 27 | ... name2=value2; 28 | bad_section.ini: e=3 user=102 29 | bad_comment.ini: e=1 user=102 30 | ... [section] 31 | ... a=b; 32 | ... user=parse_error; 33 | ... c=d; 34 | user_error.ini: e=3 user=104 35 | ... [section1] 36 | ... single1=abc; 37 | ... multi=this is a; 38 | ... multi=multi-line value; 39 | ... single2=xyz; 40 | ... [section2] 41 | ... multi=a; 42 | ... multi=b; 43 | ... multi=c; 44 | ... [section3] 45 | ... single=ghi; 46 | ... multi=the quick; 47 | ... multi=brown fox; 48 | ... name=bob smith; 49 | ... foo=bar; 50 | ... foo=Hi World; 51 | multi_line.ini: e=0 user=105 52 | bad_multi.ini: e=1 user=105 53 | ... [bom_section] 54 | ... bom_name=bom_value; 55 | ... key“=value“; 56 | bom.ini: e=0 user=107 57 | ... [section1] 58 | ... single1=abc; 59 | ... single2=xyz; 60 | ... [section1] 61 | ... single1=def; 62 | ... single2=qrs; 63 | duplicate_sections.ini: e=0 user=108 64 | ... [section_list] 65 | ... [section0] 66 | ... key0=val0; 67 | ... [section1] 68 | ... key1=val1; 69 | no_value.ini: e=2 user=109 70 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_disallow_inline_comments.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test ; name=value comment; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3 ; only this will be a comment; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345 ; key should be "test;3"; 12 | ... test4=4#5#6 ; '#' only starts a comment at start of line; 13 | ... test7=; blank value, except if inline comments disabled; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... [section3 ; comment ] 27 | ... name2=value2; 28 | bad_section.ini: e=3 user=102 29 | bad_comment.ini: e=1 user=102 30 | ... [section] 31 | ... a=b; 32 | ... user=parse_error; 33 | ... c=d; 34 | user_error.ini: e=3 user=104 35 | ... [section1] 36 | ... single1=abc; 37 | ... multi=this is a; 38 | ... multi=multi-line value; 39 | ... single2=xyz; 40 | ... [section2] 41 | ... multi=a; 42 | ... multi=b; 43 | ... multi=c; 44 | ... [section3] 45 | ... single=ghi; 46 | ... multi=the quick; 47 | ... multi=brown fox; 48 | ... name=bob smith ; comment line 1; 49 | ... foo=bar ;c1; 50 | ... foo=Hi World ;c2; 51 | multi_line.ini: e=0 user=105 52 | bad_multi.ini: e=1 user=105 53 | ... [bom_section] 54 | ... bom_name=bom_value; 55 | ... key“=value“; 56 | bom.ini: e=0 user=107 57 | ... [section1] 58 | ... single1=abc; 59 | ... single2=xyz; 60 | ... single1=def; 61 | ... single2=qrs; 62 | duplicate_sections.ini: e=0 user=108 63 | ... [section0] 64 | ... key0=val0; 65 | ... [section1] 66 | ... key1=val1; 67 | no_value.ini: e=2 user=109 68 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_handler_lineno.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; line 3 4 | ... two=1234; line 4 5 | ... [ section 2 ] 6 | ... happy=4; line 8 7 | ... sad=; line 9 8 | ... [comment_test] 9 | ... test1=1;2;3; line 15 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; line 16 11 | ... test;3=345; line 17 12 | ... test4=4#5#6; line 18 13 | ... test7=; line 21 14 | ... test8=; not a comment, needs whitespace before ';'; line 22 15 | ... [colon_tests] 16 | ... Content-Type=text/html; line 25 17 | ... foo=bar; line 26 18 | ... adams=42; line 27 19 | ... funny1=with = equals; line 28 20 | ... funny2=with : colons; line 29 21 | ... funny3=two = equals; line 30 22 | ... funny4=two : colons; line 31 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; line 2 26 | ... name2=value2; line 5 27 | bad_section.ini: e=3 user=102 28 | bad_comment.ini: e=1 user=102 29 | ... [section] 30 | ... a=b; line 2 31 | ... user=parse_error; line 3 32 | ... c=d; line 4 33 | user_error.ini: e=3 user=104 34 | ... [section1] 35 | ... single1=abc; line 2 36 | ... multi=this is a; line 3 37 | ... multi=multi-line value; line 4 38 | ... single2=xyz; line 5 39 | ... [section2] 40 | ... multi=a; line 7 41 | ... multi=b; line 8 42 | ... multi=c; line 9 43 | ... [section3] 44 | ... single=ghi; line 11 45 | ... multi=the quick; line 12 46 | ... multi=brown fox; line 13 47 | ... name=bob smith; line 14 48 | ... foo=bar; line 16 49 | ... foo=Hi World; line 17 50 | multi_line.ini: e=0 user=105 51 | bad_multi.ini: e=1 user=105 52 | ... [bom_section] 53 | ... bom_name=bom_value; line 2 54 | ... key“=value“; line 3 55 | bom.ini: e=0 user=107 56 | ... [section1] 57 | ... single1=abc; line 2 58 | ... single2=xyz; line 3 59 | ... single1=def; line 5 60 | ... single2=qrs; line 6 61 | duplicate_sections.ini: e=0 user=108 62 | ... [section0] 63 | ... key0=val0; line 6 64 | ... [section1] 65 | ... key1=val1; line 9 66 | no_value.ini: e=2 user=109 67 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_heap.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... name2=value2; 27 | bad_section.ini: e=3 user=102 28 | bad_comment.ini: e=1 user=102 29 | ... [section] 30 | ... a=b; 31 | ... user=parse_error; 32 | ... c=d; 33 | user_error.ini: e=3 user=104 34 | ... [section1] 35 | ... single1=abc; 36 | ... multi=this is a; 37 | ... multi=multi-line value; 38 | ... single2=xyz; 39 | ... [section2] 40 | ... multi=a; 41 | ... multi=b; 42 | ... multi=c; 43 | ... [section3] 44 | ... single=ghi; 45 | ... multi=the quick; 46 | ... multi=brown fox; 47 | ... name=bob smith; 48 | ... foo=bar; 49 | ... foo=Hi World; 50 | multi_line.ini: e=0 user=105 51 | bad_multi.ini: e=1 user=105 52 | ... [bom_section] 53 | ... bom_name=bom_value; 54 | ... key“=value“; 55 | bom.ini: e=0 user=107 56 | ... [section1] 57 | ... single1=abc; 58 | ... single2=xyz; 59 | ... single1=def; 60 | ... single2=qrs; 61 | duplicate_sections.ini: e=0 user=108 62 | ... [section0] 63 | ... key0=val0; 64 | ... [section1] 65 | ... key1=val1; 66 | no_value.ini: e=2 user=109 67 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_heap_max_line.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this; 11 | ... test2=needs whitespace b; 12 | ... test;3=345; 13 | ... test4=4#5#6; 14 | ... test4=only starts a comm; 15 | ... test7=; 16 | ... test8=; not a comm; 17 | ... [colon_tests] 18 | ... Content-Type=text/; 19 | ... foo=bar; 20 | ... adams=42; 21 | ... funny1=with = equ; 22 | ... funny2=with : col; 23 | ... funny3=two = equa; 24 | ... funny4=two : colo; 25 | normal.ini: e=2 user=101 26 | ... [section1] 27 | ... name1=value1; 28 | ... name2=value2; 29 | bad_section.ini: e=3 user=102 30 | bad_comment.ini: e=1 user=102 31 | ... [section] 32 | ... a=b; 33 | ... user=parse_error; 34 | ... c=d; 35 | user_error.ini: e=3 user=104 36 | ... [section1] 37 | ... single1=abc; 38 | ... multi=this is a; 39 | ... multi=multi-line; 40 | ... single2=xyz; 41 | ... [section2] 42 | ... multi=a; 43 | ... multi=b; 44 | ... multi=c; 45 | ... [section3] 46 | ... single=ghi; 47 | ... multi=the quick; 48 | ... multi=brown fox; 49 | ... name=bob smith; 50 | ... name=comment line 1; 51 | ... name=comment line 2; 52 | ... foo=bar; 53 | ... foo=Hi World; 54 | multi_line.ini: e=5 user=105 55 | bad_multi.ini: e=1 user=105 56 | ... [bom_section] 57 | ... bom_name=bom_value; 58 | ... key“=value“; 59 | bom.ini: e=0 user=107 60 | ... [section1] 61 | ... single1=abc; 62 | ... single2=xyz; 63 | ... single1=def; 64 | ... single2=qrs; 65 | duplicate_sections.ini: e=0 user=108 66 | ... [section0] 67 | ... key0=val0; 68 | ... [section1] 69 | ... key1=val1; 70 | no_value.ini: e=2 user=109 71 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_heap_realloc.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... name2=value2; 27 | bad_section.ini: e=3 user=102 28 | bad_comment.ini: e=1 user=102 29 | ... [section] 30 | ... a=b; 31 | ... user=parse_error; 32 | ... c=d; 33 | user_error.ini: e=3 user=104 34 | ... [section1] 35 | ... single1=abc; 36 | ... multi=this is a; 37 | ... multi=multi-line value; 38 | ... single2=xyz; 39 | ... [section2] 40 | ... multi=a; 41 | ... multi=b; 42 | ... multi=c; 43 | ... [section3] 44 | ... single=ghi; 45 | ... multi=the quick; 46 | ... multi=brown fox; 47 | ... name=bob smith; 48 | ... foo=bar; 49 | ... foo=Hi World; 50 | multi_line.ini: e=0 user=105 51 | bad_multi.ini: e=1 user=105 52 | ... [bom_section] 53 | ... bom_name=bom_value; 54 | ... key“=value“; 55 | bom.ini: e=0 user=107 56 | ... [section1] 57 | ... single1=abc; 58 | ... single2=xyz; 59 | ... single1=def; 60 | ... single2=qrs; 61 | duplicate_sections.ini: e=0 user=108 62 | ... [section0] 63 | ... key0=val0; 64 | ... [section1] 65 | ... key1=val1; 66 | no_value.ini: e=2 user=109 67 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_heap_realloc_max_line.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this; 11 | ... test2=needs whitespace b; 12 | ... test;3=345; 13 | ... test4=4#5#6; 14 | ... test4=only starts a comm; 15 | ... test7=; 16 | ... test8=; not a comm; 17 | ... [colon_tests] 18 | ... Content-Type=text/; 19 | ... foo=bar; 20 | ... adams=42; 21 | ... funny1=with = equ; 22 | ... funny2=with : col; 23 | ... funny3=two = equa; 24 | ... funny4=two : colo; 25 | normal.ini: e=2 user=101 26 | ... [section1] 27 | ... name1=value1; 28 | ... name2=value2; 29 | bad_section.ini: e=3 user=102 30 | bad_comment.ini: e=1 user=102 31 | ... [section] 32 | ... a=b; 33 | ... user=parse_error; 34 | ... c=d; 35 | user_error.ini: e=3 user=104 36 | ... [section1] 37 | ... single1=abc; 38 | ... multi=this is a; 39 | ... multi=multi-line; 40 | ... single2=xyz; 41 | ... [section2] 42 | ... multi=a; 43 | ... multi=b; 44 | ... multi=c; 45 | ... [section3] 46 | ... single=ghi; 47 | ... multi=the quick; 48 | ... multi=brown fox; 49 | ... name=bob smith; 50 | ... name=comment line 1; 51 | ... name=comment line 2; 52 | ... foo=bar; 53 | ... foo=Hi World; 54 | multi_line.ini: e=5 user=105 55 | bad_multi.ini: e=1 user=105 56 | ... [bom_section] 57 | ... bom_name=bom_value; 58 | ... key“=value“; 59 | bom.ini: e=0 user=107 60 | ... [section1] 61 | ... single1=abc; 62 | ... single2=xyz; 63 | ... single1=def; 64 | ... single2=qrs; 65 | duplicate_sections.ini: e=0 user=108 66 | ... [section0] 67 | ... key0=val0; 68 | ... [section1] 69 | ... key1=val1; 70 | no_value.ini: e=2 user=109 71 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_heap_string.txt: -------------------------------------------------------------------------------- 1 | empty string: e=0 user=0 2 | ... [section] 3 | ... foo=bar; 4 | ... bazz=buzz quxx; 5 | basic: e=0 user=101 6 | ... [section] 7 | ... hello=world; 8 | ... forty_two=42; 9 | crlf: e=0 user=102 10 | ... [sec] 11 | ... foo=0123456789012; 12 | ... bar=4321; 13 | long line: e=3 user=103 14 | ... [sec] 15 | ... foo=0123456789012; 16 | ... bix=1234; 17 | long continued: e=0 user=104 18 | ... [s] 19 | ... a=1; 20 | ... c=3; 21 | error: e=3 user=105 22 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_multi.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... name2=value2; 27 | bad_section.ini: e=3 user=102 28 | bad_comment.ini: e=1 user=102 29 | ... [section] 30 | ... a=b; 31 | ... user=parse_error; 32 | ... c=d; 33 | user_error.ini: e=3 user=104 34 | ... [section1] 35 | ... single1=abc; 36 | ... multi=this is a; 37 | ... multi=multi-line value; 38 | ... single2=xyz; 39 | ... [section2] 40 | ... multi=a; 41 | ... multi=b; 42 | ... multi=c; 43 | ... [section3] 44 | ... single=ghi; 45 | ... multi=the quick; 46 | ... multi=brown fox; 47 | ... name=bob smith; 48 | ... foo=bar; 49 | ... foo=Hi World; 50 | multi_line.ini: e=0 user=105 51 | bad_multi.ini: e=1 user=105 52 | ... [bom_section] 53 | ... bom_name=bom_value; 54 | ... key“=value“; 55 | bom.ini: e=0 user=107 56 | ... [section1] 57 | ... single1=abc; 58 | ... single2=xyz; 59 | ... single1=def; 60 | ... single2=qrs; 61 | duplicate_sections.ini: e=0 user=108 62 | ... [section0] 63 | ... key0=val0; 64 | ... [section1] 65 | ... key1=val1; 66 | no_value.ini: e=2 user=109 67 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_multi_max_line.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this; 11 | ... test2=needs whitespace b; 12 | ... test;3=345; 13 | ... test4=4#5#6; 14 | ... test4=only starts a comm; 15 | ... test7=; 16 | ... test8=; not a comm; 17 | ... [colon_tests] 18 | ... Content-Type=text/; 19 | ... foo=bar; 20 | ... adams=42; 21 | ... funny1=with = equ; 22 | ... funny2=with : col; 23 | ... funny3=two = equa; 24 | ... funny4=two : colo; 25 | normal.ini: e=2 user=101 26 | ... [section1] 27 | ... name1=value1; 28 | ... name2=value2; 29 | bad_section.ini: e=3 user=102 30 | bad_comment.ini: e=1 user=102 31 | ... [section] 32 | ... a=b; 33 | ... user=parse_error; 34 | ... c=d; 35 | user_error.ini: e=3 user=104 36 | ... [section1] 37 | ... single1=abc; 38 | ... multi=this is a; 39 | ... multi=multi-line; 40 | ... single2=xyz; 41 | ... [section2] 42 | ... multi=a; 43 | ... multi=b; 44 | ... multi=c; 45 | ... [section3] 46 | ... single=ghi; 47 | ... multi=the quick; 48 | ... multi=brown fox; 49 | ... name=bob smith; 50 | ... name=comment line 1; 51 | ... name=comment line 2; 52 | ... foo=bar; 53 | ... foo=Hi World; 54 | multi_line.ini: e=5 user=105 55 | bad_multi.ini: e=1 user=105 56 | ... [bom_section] 57 | ... bom_name=bom_value; 58 | ... key“=value“; 59 | bom.ini: e=0 user=107 60 | ... [section1] 61 | ... single1=abc; 62 | ... single2=xyz; 63 | ... single1=def; 64 | ... single2=qrs; 65 | duplicate_sections.ini: e=0 user=108 66 | ... [section0] 67 | ... key0=val0; 68 | ... [section1] 69 | ... key1=val1; 70 | no_value.ini: e=2 user=109 71 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_single.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | ... name2=value2; 27 | bad_section.ini: e=3 user=102 28 | bad_comment.ini: e=1 user=102 29 | ... [section] 30 | ... a=b; 31 | ... user=parse_error; 32 | ... c=d; 33 | user_error.ini: e=3 user=104 34 | ... [section1] 35 | ... single1=abc; 36 | ... multi=this is a; 37 | ... single2=xyz; 38 | ... [section2] 39 | ... multi=a; 40 | ... [section3] 41 | ... single=ghi; 42 | ... multi=the quick; 43 | ... name=bob smith; 44 | ... foo=bar; 45 | multi_line.ini: e=4 user=105 46 | bad_multi.ini: e=1 user=105 47 | ... [bom_section] 48 | ... bom_name=bom_value; 49 | ... key“=value“; 50 | bom.ini: e=0 user=107 51 | ... [section1] 52 | ... single1=abc; 53 | ... single2=xyz; 54 | ... single1=def; 55 | ... single2=qrs; 56 | duplicate_sections.ini: e=0 user=108 57 | ... [section0] 58 | ... key0=val0; 59 | ... [section1] 60 | ... key1=val1; 61 | no_value.ini: e=2 user=109 62 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_stop_on_first_error.txt: -------------------------------------------------------------------------------- 1 | no_file.ini: e=-1 user=0 2 | ... [section1] 3 | ... one=This is a test; 4 | ... two=1234; 5 | ... [ section 2 ] 6 | ... happy=4; 7 | ... sad=; 8 | ... [comment_test] 9 | ... test1=1;2;3; 10 | ... test2=2;3;4;this won't be a comment, needs whitespace before ';'; 11 | ... test;3=345; 12 | ... test4=4#5#6; 13 | ... test7=; 14 | ... test8=; not a comment, needs whitespace before ';'; 15 | ... [colon_tests] 16 | ... Content-Type=text/html; 17 | ... foo=bar; 18 | ... adams=42; 19 | ... funny1=with = equals; 20 | ... funny2=with : colons; 21 | ... funny3=two = equals; 22 | ... funny4=two : colons; 23 | normal.ini: e=0 user=101 24 | ... [section1] 25 | ... name1=value1; 26 | bad_section.ini: e=3 user=102 27 | bad_comment.ini: e=1 user=102 28 | ... [section] 29 | ... a=b; 30 | ... user=parse_error; 31 | user_error.ini: e=3 user=104 32 | ... [section1] 33 | ... single1=abc; 34 | ... multi=this is a; 35 | ... multi=multi-line value; 36 | ... single2=xyz; 37 | ... [section2] 38 | ... multi=a; 39 | ... multi=b; 40 | ... multi=c; 41 | ... [section3] 42 | ... single=ghi; 43 | ... multi=the quick; 44 | ... multi=brown fox; 45 | ... name=bob smith; 46 | ... foo=bar; 47 | ... foo=Hi World; 48 | multi_line.ini: e=0 user=105 49 | bad_multi.ini: e=1 user=105 50 | ... [bom_section] 51 | ... bom_name=bom_value; 52 | ... key“=value“; 53 | bom.ini: e=0 user=107 54 | ... [section1] 55 | ... single1=abc; 56 | ... single2=xyz; 57 | ... single1=def; 58 | ... single2=qrs; 59 | duplicate_sections.ini: e=0 user=108 60 | no_value.ini: e=2 user=108 61 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/baseline_string.txt: -------------------------------------------------------------------------------- 1 | empty string: e=0 user=0 2 | ... [section] 3 | ... foo=bar; 4 | ... bazz=buzz quxx; 5 | basic: e=0 user=101 6 | ... [section] 7 | ... hello=world; 8 | ... forty_two=42; 9 | crlf: e=0 user=102 10 | ... [sec] 11 | ... foo=0123456789012; 12 | ... bar=4321; 13 | long line: e=3 user=103 14 | ... [sec] 15 | ... foo=0123456789012; 16 | ... bix=1234; 17 | long continued: e=0 user=104 18 | ... [s] 19 | ... a=1; 20 | ... c=3; 21 | error: e=3 user=105 22 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/bom.ini: -------------------------------------------------------------------------------- 1 | [bom_section] 2 | bom_name=bom_value 3 | key“ = value“ 4 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/duplicate_sections.ini: -------------------------------------------------------------------------------- 1 | [section1] 2 | single1 = abc 3 | single2 = xyz 4 | [section1] 5 | single1 = def 6 | single2 = qrs -------------------------------------------------------------------------------- /cfgmgr/inih/tests/multi_line.ini: -------------------------------------------------------------------------------- 1 | [section1] 2 | single1 = abc 3 | multi = this is a 4 | multi-line value 5 | single2 = xyz 6 | [section2] 7 | multi = a 8 | b 9 | c 10 | [section3] 11 | single: ghi 12 | multi: the quick 13 | brown fox 14 | name = bob smith ; comment line 1 15 | ; comment line 2 16 | foo = bar ;c1 17 | Hi World ;c2 18 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/no_value.ini: -------------------------------------------------------------------------------- 1 | [section_list] 2 | section0 3 | section1 4 | 5 | [section0] 6 | key0=val0 7 | 8 | [section1] 9 | key1=val1 10 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/normal.ini: -------------------------------------------------------------------------------- 1 | ; This is an INI file 2 | [section1] ; section comment 3 | one=This is a test ; name=value comment 4 | two = 1234 5 | ; x=y 6 | 7 | [ section 2 ] 8 | happy = 4 9 | sad = 10 | 11 | [empty] 12 | ; do nothing 13 | 14 | [comment_test] 15 | test1 = 1;2;3 ; only this will be a comment 16 | test2 = 2;3;4;this won't be a comment, needs whitespace before ';' 17 | test;3 = 345 ; key should be "test;3" 18 | test4 = 4#5#6 ; '#' only starts a comment at start of line 19 | #test5 = 567 ; entire line commented 20 | # test6 = 678 ; entire line commented, except in MULTILINE mode 21 | test7 = ; blank value, except if inline comments disabled 22 | test8 =; not a comment, needs whitespace before ';' 23 | 24 | [colon_tests] 25 | Content-Type: text/html 26 | foo:bar 27 | adams : 42 28 | funny1 : with = equals 29 | funny2 = with : colons 30 | funny3 = two = equals 31 | funny4 : two : colons 32 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/unittest.bat: -------------------------------------------------------------------------------- 1 | @call tcc ..\ini.c -I..\ -run unittest.c > baseline_multi.txt 2 | @call tcc ..\ini.c -I..\ -DINI_MAX_LINE=20 -run unittest.c > baseline_multi_max_line.txt 3 | @call tcc ..\ini.c -I..\ -DINI_ALLOW_MULTILINE=0 -run unittest.c > baseline_single.txt 4 | @call tcc ..\ini.c -I..\ -DINI_ALLOW_INLINE_COMMENTS=0 -run unittest.c > baseline_disallow_inline_comments.txt 5 | @call tcc ..\ini.c -I..\ -DINI_STOP_ON_FIRST_ERROR=1 -run unittest.c > baseline_stop_on_first_error.txt 6 | @call tcc ..\ini.c -I..\ -DINI_HANDLER_LINENO=1 -run unittest.c > baseline_handler_lineno.txt 7 | @call tcc ..\ini.c -I..\ -DINI_USE_STACK=0 -run unittest.c > baseline_heap.txt 8 | @call tcc ..\ini.c -I..\ -DINI_USE_STACK=0 -DINI_MAX_LINE=20 -DINI_INITIAL_ALLOC=20 -run unittest.c > baseline_heap_max_line.txt 9 | @call tcc ..\ini.c -I..\ -DINI_USE_STACK=0 -DINI_ALLOW_REALLOC=1 -DINI_INITIAL_ALLOC=5 -run unittest.c > baseline_heap_realloc.txt 10 | @call tcc ..\ini.c -I..\ -DINI_USE_STACK=0 -DINI_MAX_LINE=20 -DINI_ALLOW_REALLOC=1 -DINI_INITIAL_ALLOC=5 -run unittest.c > baseline_heap_realloc_max_line.txt 11 | @call tcc ..\ini.c -I..\ -DINI_USE_STACK=0 -DINI_MAX_LINE=20 -DINI_INITIAL_ALLOC=20 -run unittest.c > baseline_heap_string.txt 12 | @call tcc ..\ini.c -I..\ -DINI_CALL_HANDLER_ON_NEW_SECTION=1 -run unittest.c > baseline_call_handler_on_new_section.txt 13 | @call tcc ..\ini.c -I..\ -DINI_ALLOW_NO_VALUE=1 -run unittest.c > baseline_allow_no_value.txt 14 | @call tcc ..\ini.c -I..\ -DINI_CUSTOM_ALLOCATOR=1 -DINI_USE_STACK=0 -DINI_ALLOW_REALLOC=1 -DINI_INITIAL_ALLOC=12 -run unittest_alloc.c > baseline_alloc.txt 15 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/unittest_alloc.c: -------------------------------------------------------------------------------- 1 | /* inih -- unit tests for custom memory allocator */ 2 | 3 | #include 4 | #include 5 | #include 6 | #include "../ini.h" 7 | 8 | void* ini_malloc(size_t size) { 9 | printf("ini_malloc(%d)\n", (int)size); 10 | return malloc(size); 11 | } 12 | 13 | void ini_free(void* ptr) { 14 | printf("ini_free()\n"); 15 | free(ptr); 16 | } 17 | 18 | void* ini_realloc(void* ptr, size_t size) { 19 | printf("ini_realloc(%d)\n", (int)size); 20 | return realloc(ptr, size); 21 | } 22 | 23 | char Prev_section[50]; 24 | 25 | int dumper(void* user, const char* section, const char* name, 26 | const char* value) 27 | { 28 | if (strcmp(section, Prev_section)) { 29 | printf("... [%s]\n", section); 30 | strncpy(Prev_section, section, sizeof(Prev_section)); 31 | Prev_section[sizeof(Prev_section) - 1] = '\0'; 32 | } 33 | printf("... %s=%s;\n", name, value); 34 | return 1; 35 | } 36 | 37 | void parse(const char* name, const char* string) { 38 | int e; 39 | 40 | *Prev_section = '\0'; 41 | e = ini_parse_string(string, dumper, NULL); 42 | printf("%s: e=%d\n", name, e); 43 | } 44 | 45 | int main(void) 46 | { 47 | parse("basic", "[section]\nfoo = bar\nbazz = buzz quxx"); 48 | return 0; 49 | } 50 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/unittest_string.c: -------------------------------------------------------------------------------- 1 | /* inih -- unit tests for ini_parse_string() */ 2 | 3 | #include 4 | #include 5 | #include 6 | #include "../ini.h" 7 | 8 | int User; 9 | char Prev_section[50]; 10 | 11 | int dumper(void* user, const char* section, const char* name, 12 | const char* value) 13 | { 14 | User = *((int*)user); 15 | if (strcmp(section, Prev_section)) { 16 | printf("... [%s]\n", section); 17 | strncpy(Prev_section, section, sizeof(Prev_section)); 18 | Prev_section[sizeof(Prev_section) - 1] = '\0'; 19 | } 20 | printf("... %s=%s;\n", name, value); 21 | return 1; 22 | } 23 | 24 | void parse(const char* name, const char* string) { 25 | static int u = 100; 26 | int e; 27 | 28 | *Prev_section = '\0'; 29 | e = ini_parse_string(string, dumper, &u); 30 | printf("%s: e=%d user=%d\n", name, e, User); 31 | u++; 32 | } 33 | 34 | int main(void) 35 | { 36 | parse("empty string", ""); 37 | parse("basic", "[section]\nfoo = bar\nbazz = buzz quxx"); 38 | parse("crlf", "[section]\r\nhello = world\r\nforty_two = 42\r\n"); 39 | parse("long line", "[sec]\nfoo = 01234567890123456789\nbar=4321\n"); 40 | parse("long continued", "[sec]\nfoo = 0123456789012bix=1234\n"); 41 | parse("error", "[s]\na=1\nb\nc=3"); 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /cfgmgr/inih/tests/user_error.ini: -------------------------------------------------------------------------------- 1 | [section] 2 | a = b 3 | user = parse_error 4 | c = d 5 | -------------------------------------------------------------------------------- /common/common.depend: -------------------------------------------------------------------------------- 1 | # depslib dependency file v1.0 2 | -------------------------------------------------------------------------------- /common/common.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Resource Files 20 | 21 | 22 | Resource Files 23 | 24 | 25 | Resource Files 26 | 27 | 28 | Resource Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Resource Files 35 | 36 | 37 | Resource Files 38 | 39 | 40 | Resource Files 41 | 42 | 43 | Resource Files 44 | 45 | 46 | 47 | 48 | Header Files 49 | 50 | 51 | Header Files 52 | 53 | 54 | -------------------------------------------------------------------------------- /common/dxgl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxgl.ico -------------------------------------------------------------------------------- /common/dxgl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxgl.png -------------------------------------------------------------------------------- /common/dxgl48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxgl48.ico -------------------------------------------------------------------------------- /common/dxglinv.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxglinv.bmp -------------------------------------------------------------------------------- /common/dxglinv64.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxglinv64.bmp -------------------------------------------------------------------------------- /common/dxglsm.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/dxglsm.ico -------------------------------------------------------------------------------- /common/releasever.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __VERSION_H 3 | #define __VERSION_H 4 | 5 | /* Removed due to transition to Git - Git tags will set the version number 6 | #define DXGLMAJORVER 0 7 | #define DXGLMINORVER 5 8 | #define DXGLPOINTVER 23 9 | #define DXGLBETA 0 10 | 11 | 12 | #define STR2(x) #x 13 | #define STR(x) STR2(x) 14 | 15 | #define DXGLSTRVER STR(DXGLMAJORVER) "." STR(DXGLMINORVER) "." STR(DXGLPOINTVER) 16 | */ 17 | 18 | /* sign modes 19 | 0 - never sign 20 | 1 - sign non-beta only 21 | 2 - sign release only 22 | 3 - sign all */ 23 | #define SIGNMODE 0 24 | 25 | #endif //__VERSION_H 26 | -------------------------------------------------------------------------------- /common/rev.in: -------------------------------------------------------------------------------- 1 | $WCREV$ -------------------------------------------------------------------------------- /common/star.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/star.ico -------------------------------------------------------------------------------- /common/version.h.in: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __VERSION_H 3 | #define __VERSION_H 4 | 5 | #define DXGLMAJOR $MAJOR 6 | #define DXGLMINOR $MINOR 7 | #define DXGLPOINT $POINT 8 | #define DXGLBUILD $BUILD 9 | #define DXGLBRANCH $BRANCH 10 | #define DXGLREVISION $REVISION 11 | #define DXGLBETA 12 | 13 | #define DXGLVERNUMBER DXGLMAJOR,DXGLMINOR,DXGLPOINT,DXGLBUILD 14 | #define DXGLVERQWORD (((unsigned __int64)DXGLMAJOR<<48)+((unsigned __int64)DXGLMINOR<<32)+((unsigned __int64)DXGLPOINT<<16)+(unsigned __int64)DXGLBUILD) 15 | #define DXGLVERSTRING $VERSTRING 16 | 17 | #define COPYYEAR 2024 18 | #define COPYYEARSTRING "2024" 19 | 20 | #define SHADER2DVERSION 1 21 | #define SHADER3DVERSION 1 22 | 23 | #endif //__VERSION_H 24 | -------------------------------------------------------------------------------- /common/version.nsh.in: -------------------------------------------------------------------------------- 1 | !define PRODUCT_VERSION $PRODUCTVERSTRING 2 | !define PRODUCT_VERSION_NUMBER $PRODUCTVERNUMBER 3 | !define COMPILER $COMPILERTYPE 4 | !define SIGNTOOL $SIGNTOOL 5 | ;!define _BETA 6 | ;!define _DEBUG 7 | ;!define _CPU_X64 -------------------------------------------------------------------------------- /common/x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/common/x16.ico -------------------------------------------------------------------------------- /ddraw/BufferObject.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2015-2016 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY W ARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef __PBO_H 20 | #define __PBO_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | struct glUtil; 27 | 28 | void BufferObject_Create(BufferObject **out, glExtensions *ext, struct glUtil *util); 29 | void BufferObject_AddRef(BufferObject *This); 30 | void BufferObject_Release(BufferObject *This); 31 | void BufferObject_SetData(BufferObject *This, GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage); 32 | void BufferObject_Bind(BufferObject *This, GLenum target); 33 | void BufferObject_Unbind(BufferObject *This, GLenum target); 34 | void *BufferObject_Map(BufferObject *This, GLenum target, GLenum access); 35 | GLboolean BufferObject_Unmap(BufferObject *This, GLenum target); 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | 42 | #endif //__PBO_H -------------------------------------------------------------------------------- /ddraw/DXGLRenderer.c: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2022 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #include "common.h" 19 | #include "DXGLQueue.h" 20 | #include "DXGLRenderer.h" 21 | #include "DXGLRendererGL.h" 22 | 23 | 24 | HRESULT CreateDXGLRenderer(GUID* guid, LPDXGLRENDERER* out) 25 | { 26 | IDXGLRendererGL *glrenderer; 27 | HRESULT error; 28 | error = DXGLRendererGL_Create(guid, (LPDXGLRENDERERGL*)&glrenderer); 29 | if (FAILED(error)) return error; 30 | *out = (LPDXGLRENDERER)glrenderer; 31 | return error; 32 | } -------------------------------------------------------------------------------- /ddraw/ShaderManager.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011-2016 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef __SHADERMANAGER_H 20 | #define __SHADERMANAGER_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | extern const SHADER shader_template[]; 27 | 28 | #define PROG_TEXTURE 0 29 | #define PROG_PAL256 1 30 | #define PROG_CLIPSTENCIL 2 31 | 32 | struct TEXTURESTAGE; 33 | struct ShaderGen3D; 34 | 35 | void ShaderManager_Init(glExtensions *glext, ShaderManager *shaderman); 36 | void ShaderManager_Delete(ShaderManager *This); 37 | void ShaderManager_SetShader(ShaderManager *This, __int64 id, __int64 *texstate, int type); 38 | 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | 43 | #endif //__SHADERMANAGER_H 44 | -------------------------------------------------------------------------------- /ddraw/const.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2016-2017 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef __CONST_H 20 | #define __CONST_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | #define RENDERSTATE_COUNT 153 27 | 28 | extern const RECT nullrect; 29 | extern const DWORD valid_rop_codes[256]; 30 | extern const DWORD rop_texture_usage[256]; 31 | extern const DWORD supported_rops[8]; 32 | extern const DWORD supported_rops_gl2[8]; 33 | 34 | #ifdef _M_X64 35 | #define _PTR_MASK 0xFFFFFFFFFFFFFFFFui64 36 | #else 37 | #define _PTR_MASK 0xFFFFFFFF 38 | #endif 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | 43 | #endif //__CONST_H -------------------------------------------------------------------------------- /ddraw/ddraw.def: -------------------------------------------------------------------------------- 1 | ; DXGL 2 | ; Copyright (C) 2011-2016 William Feely 3 | 4 | ; This library is free software; you can redistribute it and/or 5 | ; modify it under the terms of the GNU Lesser General Public 6 | ; License as published by the Free Software Foundation; either 7 | ; version 2.1 of the License, or (at your option) any later version. 8 | 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | ; Lesser General Public License for more details. 13 | 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | LIBRARY "ddraw" 19 | EXPORTS 20 | AcquireDDThreadLock 21 | CompleteCreateSystemSurface 22 | D3DParseUnknownCommand 23 | DDGetAttachedSurfaceLcl 24 | DDInternalLock 25 | DDInternalUnlock 26 | DSoundHelp 27 | DirectDrawCreate 28 | DirectDrawCreateClipper 29 | DirectDrawCreateEx 30 | DirectDrawEnumerateA 31 | DirectDrawEnumerateExA 32 | DirectDrawEnumerateExW 33 | DirectDrawEnumerateW 34 | DllCanUnloadNow PRIVATE 35 | DllGetClassObject PRIVATE 36 | GetDDSurfaceLocal 37 | GetOLEThunkData 38 | GetSurfaceFromDC=GlobalGetSurfaceFromDC 39 | RegisterSpecialCase 40 | ReleaseDDThreadLock 41 | SetAppCompatData 42 | IsDXGLDDraw 43 | DXGLBreak -------------------------------------------------------------------------------- /ddraw/ddraw.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/ddraw/ddraw.rc -------------------------------------------------------------------------------- /ddraw/dxguid.c: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #define INITGUID 19 | #include 20 | #include "include/ddraw.h" 21 | #include "include/d3d.h" -------------------------------------------------------------------------------- /ddraw/fourcc.c: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2018-2019 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #include 19 | #include 20 | #include "fourcc.h" 21 | 22 | static const int START_FOURCC = __LINE__; 23 | const DWORD dxglfourcc[] = 24 | { 25 | MAKEFOURCC('U','Y','V','Y'), 26 | MAKEFOURCC('U','Y','N','V'), 27 | MAKEFOURCC('Y','4','2','2'), 28 | MAKEFOURCC('Y','U','Y','2'), 29 | MAKEFOURCC('Y','U','Y','V'), 30 | MAKEFOURCC('Y','U','N','V'), 31 | MAKEFOURCC('Y','V','Y','U'), 32 | MAKEFOURCC('A','Y','U','V'), 33 | MAKEFOURCC('Y','8',' ',' '), 34 | MAKEFOURCC('Y','8','0','0'), 35 | MAKEFOURCC('G','R','E','Y'), 36 | MAKEFOURCC('Y','1','6',' '), 37 | MAKEFOURCC('R','G','B','G'), 38 | MAKEFOURCC('G','R','G','B') 39 | }; 40 | static const int END_FOURCC = __LINE__ - 4; 41 | 42 | int GetNumFOURCC() 43 | { 44 | return END_FOURCC - START_FOURCC; 45 | } -------------------------------------------------------------------------------- /ddraw/fourcc.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2018 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef __FOURCC_H 20 | #define __FOURCC_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | extern const DWORD dxglfourcc[]; 27 | int GetNumFOURCC(); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif //__FOURCC_H -------------------------------------------------------------------------------- /ddraw/glExtensions.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011-2016 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _GLEXTENSIONS_H 20 | #define _GLEXTENSIONS_H 21 | 22 | #ifndef GL_DEPTH_BUFFER 23 | #define GL_DEPTH_BUFFER 0x8223 24 | #endif 25 | #ifndef GL_STENCIL_BUFFER 26 | #define GL_STENCIL_BUFFER 0x8224 27 | #endif 28 | 29 | #define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 30 | #define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 31 | #define GL_RGB565 0x8D62 32 | 33 | #ifdef __cplusplus 34 | extern "C" { 35 | #endif 36 | 37 | void glExtensions_Init(glExtensions *ext, HDC hdc, BOOL core); 38 | 39 | #ifdef __cplusplus 40 | } 41 | #endif 42 | 43 | #endif //_GLEXTENSIONS_H 44 | -------------------------------------------------------------------------------- /ddraw/glRenderWindow.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2012-2021 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _GLRENDERWINDOW_H 20 | #define _GLRENDERWINDOW_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | LRESULT CALLBACK RenderWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); 27 | 28 | struct glDirectDraw7; 29 | 30 | void WaitForObjectAndMessages(HANDLE object); 31 | 32 | typedef struct glRenderWindow 33 | { 34 | HWND hWnd; 35 | HWND hParentWnd; 36 | HANDLE hThread; 37 | HANDLE ReadyEvent; 38 | int width; 39 | int height; 40 | BOOL fullscreen; 41 | BOOL dead; 42 | BOOL device; 43 | glDirectDraw7 *ddInterface; 44 | } glRenderWindow; 45 | 46 | HRESULT glRenderWindow_Create(int width, int height, BOOL fullscreen, 47 | HWND parent, glDirectDraw7 *glDD7, BOOL devwnd, glRenderWindow **renderwnd); 48 | void glRenderWindow_Delete(glRenderWindow *This); 49 | //void glRenderWindow_resize(glRenderWindow *This, int width, int height); 50 | LRESULT glRenderWindow_WndProc(glRenderWindow *This, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); 51 | DWORD WINAPI glRenderWindow_ThreadEntry(void *entry); 52 | DWORD glRenderWindow__Entry(glRenderWindow *This); 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | 58 | #endif //_GLRENDERWINDOW_H 59 | -------------------------------------------------------------------------------- /ddraw/include/winedef.h: -------------------------------------------------------------------------------- 1 | /** 2 | * This file has no copyright assigned and is placed in the Public Domain. 3 | * This file is part of the w64 mingw-runtime package. 4 | * No warranty is given; refer to the file DISCLAIMER within this package. 5 | */ 6 | 7 | #pragma once 8 | #ifndef _WINEDEF_H 9 | #define _WINEDEF_H 10 | #ifndef DUMMYUNIONNAME1 11 | #define DUMMYUNIONNAME1 // fix MSVC 12 | #endif //DUMMYUNIONNAME1 13 | #ifndef DUMMYUNIONNAME 14 | # ifdef NONAMELESSUNION 15 | # define DUMMYUNIONNAME u 16 | # define DUMMYUNIONNAME1 u1 17 | # define DUMMYUNIONNAME2 u2 18 | # define DUMMYUNIONNAME3 u3 19 | # define DUMMYUNIONNAME4 u4 20 | # define DUMMYUNIONNAME5 u5 21 | # else /* NONAMELESSUNION */ 22 | # define DUMMYUNIONNAME 23 | # define DUMMYUNIONNAME1 24 | # define DUMMYUNIONNAME2 25 | # define DUMMYUNIONNAME3 26 | # define DUMMYUNIONNAME4 27 | # define DUMMYUNIONNAME5 28 | # endif 29 | #endif /* DUMMYUNIONNAME */ 30 | 31 | #ifndef DUMMYSTRUCTNAME 32 | # ifdef NONAMELESSSTRUCT 33 | # define DUMMYSTRUCTNAME s 34 | # else 35 | # define DUMMYSTRUCTNAME 36 | # endif 37 | #endif 38 | 39 | 40 | /* These are for compatibility with the Wine source tree */ 41 | 42 | #ifndef WINELIB_NAME_AW 43 | # ifdef __MINGW_NAME_AW 44 | # define WINELIB_NAME_AW __MINGW_NAME_AW 45 | # else 46 | # ifdef UNICODE 47 | # define WINELIB_NAME_AW(func) func##W 48 | # else 49 | # define WINELIB_NAME_AW(func) func##A 50 | # endif 51 | # endif 52 | #endif /* WINELIB_NAME_AW */ 53 | 54 | #ifndef DECL_WINELIB_TYPE_AW 55 | # ifdef __MINGW_TYPEDEF_AW 56 | # define DECL_WINELIB_TYPE_AW __MINGW_TYPEDEF_AW 57 | # else 58 | # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; 59 | # endif 60 | #endif /* DECL_WINELIB_TYPE_AW */ 61 | 62 | #ifndef __MSABI_LONG 63 | # if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) 64 | # define __MSABI_LONG(x) x ## l 65 | # else 66 | # define __MSABI_LONG(x) x 67 | # endif 68 | #endif 69 | 70 | #endif //_WINEDEF_H 71 | -------------------------------------------------------------------------------- /ddraw/precomp.cpp: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #include "common.h" -------------------------------------------------------------------------------- /ddraw/resource.h: -------------------------------------------------------------------------------- 1 | #ifndef IDC_STATIC 2 | #define IDC_STATIC (-1) 3 | #endif 4 | 5 | #define IDI_ICON1 100 6 | #define IDD_COMPAT 101 7 | -------------------------------------------------------------------------------- /ddraw/scalers.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011-2014 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _SCALERS_H 20 | #define _SCALERS_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | void ScaleNearest8(void *dest, void *src, int dw, int dh, int sw, int sh, int inpitch, int outpitch); 27 | void ScaleNearest16(void *dest, void *src, int dw, int dh, int sw, int sh, int inpitch, int outpitch); 28 | void ScaleNearest24(void *dest, void *src, int dw, int dh, int sw, int sh, int inpitch, int outpitch); 29 | void ScaleNearest32(void *dest, void *src, int dw, int dh, int sw, int sh, int inpitch, int outpitch); 30 | 31 | #ifdef __cplusplus 32 | } 33 | #endif 34 | 35 | #endif //_SCALERS_H 36 | -------------------------------------------------------------------------------- /ddraw/string.c: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2014 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #include "common.h" 19 | #include "string.h" 20 | 21 | void String_Append(STRING *str, const char *str2) 22 | { 23 | if (!str->ptr) 24 | { 25 | str->ptr = malloc(strlen(str2)+129); 26 | str->size = strlen(str2)+128; 27 | strcpy(str->ptr, str2); 28 | return; 29 | } 30 | else 31 | { 32 | if (str->size < strlen(str->ptr) + strlen(str2)) 33 | { 34 | str->ptr = realloc(str->ptr, str->size + strlen(str2)+129); 35 | str->size += strlen(str2) + 128; 36 | } 37 | strcat(str->ptr, str2); 38 | } 39 | } 40 | void String_Assign(STRING *str, const char *str2) 41 | { 42 | if (!str->ptr) 43 | { 44 | str->ptr = malloc(strlen(str2) + 129); 45 | str->size = strlen(str2) + 128; 46 | strcpy(str->ptr, str2); 47 | return; 48 | } 49 | else 50 | { 51 | if (str->size > strlen(str2)) 52 | { 53 | str->ptr = realloc(str->ptr, strlen(str2) + 129); 54 | str->size = strlen(str2) + 128; 55 | } 56 | strcpy(str->ptr, str2); 57 | } 58 | } 59 | 60 | void String_Free(STRING *str) 61 | { 62 | if (str->ptr) 63 | { 64 | free(str->ptr); 65 | ZeroMemory(str, sizeof(STRING)); 66 | } 67 | } -------------------------------------------------------------------------------- /ddraw/string.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2014 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _DXGL_STRING_H 20 | #define _DXGL_STRING_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | typedef struct STRING 27 | { 28 | char *ptr; 29 | size_t size; 30 | }STRING; 31 | 32 | void String_Append(STRING *str, const char *str2); 33 | void String_Assign(STRING *str, const char *str2); 34 | void String_Free(STRING *str); 35 | 36 | #ifdef __cplusplus 37 | } 38 | #endif 39 | 40 | #endif //_DXGL_STRING_H 41 | -------------------------------------------------------------------------------- /ddraw/timer.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2013-2014 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _DXGLTIMER_H 20 | #define _DXGLTIMER_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | void DXGLTimer_Init(DXGLTimer *timer); 27 | void DXGLTimer_Calibrate(DXGLTimer *timer, unsigned int lines, unsigned int frequency); 28 | unsigned int DXGLTimer_GetScanLine(DXGLTimer *timer); 29 | void DXGLTimer_SetLastDraw(DXGLTimer *timer); 30 | BOOL DXGLTimer_CheckLastDraw(DXGLTimer *timer, DWORD ms); 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | 37 | #endif //_DXGLTIMER_H 38 | -------------------------------------------------------------------------------- /ddraw/util.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2013-2019 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _DXGLUTIL_H 20 | #define _DXGLUTIL_H 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | char IsReadablePointer(void *ptr, LONG_PTR size); 27 | char IsWritablePointer(void *ptr, LONG_PTR size, BOOL preserve); 28 | void AndMem(void *dest, const void *a, const void *b, size_t size); 29 | BOOL comp_bltfx(DDBLTFX *a, DDBLTFX *b, DWORD flags); 30 | BOOL IsAlphaCKey(); 31 | 32 | extern WNDCLASSEX wndclassdxgltemp; 33 | extern ATOM wndclassdxgltempatom; 34 | 35 | void RegisterDXGLTempWindowClass(); 36 | void UnregisterDXGLTempWindowClass(); 37 | 38 | int DivCeiling(int dividend, int divisor); 39 | 40 | void EnterSpinlock(DWORD *lock); 41 | void ExitSpinlock(DWORD *lock); 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | 47 | #endif //_DXGLUITIL_H 48 | -------------------------------------------------------------------------------- /dxgl-nsis/dxgl-nsis.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | Header Files 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | -------------------------------------------------------------------------------- /dxgl.workspace: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /dxglcfg-old/dxglcfg-old.depend: -------------------------------------------------------------------------------- 1 | # depslib dependency file v1.0 2 | 1324232573 source:c:\programming\projects\dxgl\dxglcfg-old\dxglcfg-old.rc 3 | 4 | 5 | 6 | "resource.h" 7 | "../common/version.h" 8 | 9 | 1324232573 c:\programming\projects\dxgl\dxglcfg-old\resource.h 10 | 11 | 1324232573 c:\programming\projects\dxgl\common\version.h 12 | 13 | 1324750330 source:c:\programming\projects\dxgl\dxglcfg-old\dxglcfg-old.cpp 14 | 15 | 16 | 17 | 18 | 19 | 20 | "resource.h" 21 | "../cfgmgr/cfgmgr.h" 22 | 23 | 24 | 25 | 1324232573 c:\programming\projects\dxgl\cfgmgr\cfgmgr.h 26 | 27 | -------------------------------------------------------------------------------- /dxglcfg-old/dxglcfg-old.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/dxglcfg-old/dxglcfg-old.rc -------------------------------------------------------------------------------- /dxglcfg-old/dxglcfg-old.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Resource Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | 28 | 29 | Resource Files 30 | 31 | 32 | 33 | 34 | Source Files 35 | 36 | 37 | -------------------------------------------------------------------------------- /dxglcfg-old/xp.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | DXGL Configuration Program 10 | 11 | 12 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | true/pm 34 | 35 | 36 | -------------------------------------------------------------------------------- /dxglcfg/dxglcfg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/dxglcfg/dxglcfg.cpp -------------------------------------------------------------------------------- /dxglcfg/dxglcfg.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dxgldotorg/dxgl/321fee08b8ffa4ce3a1c2feafc4ad1a7020703b3/dxglcfg/dxglcfg.rc -------------------------------------------------------------------------------- /dxglcfg/dxgltest.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | 20 | #include "resource.h" 21 | 22 | void ResetModeList(HWND hWnd); 23 | INT_PTR CALLBACK TestTabCallback(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 24 | INT_PTR CALLBACK AboutTabCallback(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 25 | -------------------------------------------------------------------------------- /dxglcfg/dxguid.cpp: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #define INITGUID 19 | #include 20 | #include "../ddraw/include/ddraw.h" 21 | #include "../ddraw/include/d3d.h" -------------------------------------------------------------------------------- /dxglcfg/misc.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _MISC_H 20 | #define _MISC_H 21 | 22 | inline unsigned int rand32(unsigned int &n) 23 | { 24 | return n=(((unsigned int) 1103515245 * n) + (unsigned int) 12345) % 25 | (unsigned int) 0xFFFFFFFF; 26 | } 27 | 28 | inline float randfloat(float multiple) 29 | { 30 | return ((float)rand() / (float)RAND_MAX)*multiple; 31 | } 32 | 33 | #endif //_MISC_H -------------------------------------------------------------------------------- /dxglcfg/palette.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011-2019 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | extern const unsigned char DefaultPalette1[8]; 19 | extern const unsigned char DefaultPalette2[16]; 20 | extern const unsigned char DefaultPalette4[64]; 21 | extern const unsigned char DefaultPalette8[1024]; 22 | -------------------------------------------------------------------------------- /dxglcfg/precomp.cpp: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #include "common.h" -------------------------------------------------------------------------------- /dxglcfg/tests.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011-2020 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _TESTS_H 20 | #define _TESTS_H 21 | 22 | typedef struct 23 | { 24 | MultiDirectDrawSurface *surface; 25 | IDirectDrawPalette *palette; 26 | DDSURFACEDESC2 ddsd; 27 | float width; 28 | float height; 29 | float x; 30 | float y; 31 | float xvelocity; 32 | float yvelocity; 33 | DWORD bltflags; 34 | RECT rect; 35 | DDBLTFX bltfx; 36 | } DDSPRITE; 37 | 38 | void RunDXGLTest(int testnum, int width, int height, int bpp, int refresh, int backbuffers, int apiver, 39 | int filter, int msaa, double fps, bool fullscreen, bool resizable, BOOL is3d, BOOL softd3d, HWND parent); 40 | 41 | #endif //_TESTS_H 42 | -------------------------------------------------------------------------------- /dxglcfg/timer.h: -------------------------------------------------------------------------------- 1 | // DXGL 2 | // Copyright (C) 2011 William Feely 3 | 4 | // This library is free software; you can redistribute it and/or 5 | // modify it under the terms of the GNU Lesser General Public 6 | // License as published by the Free Software Foundation; either 7 | // version 2.1 of the License, or (at your option) any later version. 8 | 9 | // This library is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | // Lesser General Public License for more details. 13 | 14 | // You should have received a copy of the GNU Lesser General Public 15 | // License along with this library; if not, write to the Free Software 16 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | #pragma once 19 | #ifndef _TIMER_H 20 | #define _TIMER_H 21 | 22 | 23 | extern bool stoptimer; 24 | void StartTimer(HWND hWnd, UINT message, double framerate); 25 | void StopTimer(); 26 | 27 | #endif //_TIMER_H -------------------------------------------------------------------------------- /dxglcfg/xp.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | DXGL Configuration Program 10 | 11 | 12 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /minhook/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Windows-style newlines with a newline ending every file 7 | [*] 8 | end_of_line = crlf 9 | insert_final_newline = true 10 | 11 | # 4 space indentation 12 | [*.{c,h,def}] 13 | indent_style = space 14 | indent_size = 4 15 | 16 | # Trim trailing whitespaces 17 | [*.{c,h,def,txt}] 18 | trim_trailing_whitespace = true 19 | 20 | # UTF-8 with BOM 21 | [*.{c,h,def,txt}] 22 | charset=utf-8-bom 23 | 24 | # C/C++ code formatting 25 | [*.{c,h}] 26 | cpp_space_pointer_reference_alignment = right 27 | -------------------------------------------------------------------------------- /minhook/.gitignore: -------------------------------------------------------------------------------- 1 | #OS junk files 2 | [Tt]humbs.db 3 | *.DS_Store 4 | 5 | #Visual Studio files 6 | *.[Oo]bj 7 | *.user 8 | *.aps 9 | *.pch 10 | *.vspscc 11 | *.vssscc 12 | *_i.c 13 | *_p.c 14 | *.ncb 15 | *.suo 16 | *.tlb 17 | *.tlh 18 | *.bak 19 | *.[Cc]ache 20 | *.ilk 21 | *.log 22 | *.sbr 23 | *.sdf 24 | *.opensdf 25 | *.unsuccessfulbuild 26 | ipch/ 27 | obj/ 28 | [Ll]ib 29 | [Bb]in 30 | [Dd]ebug*/ 31 | [Rr]elease*/ 32 | Ankh.NoLoad 33 | *.VC.db 34 | .vs/ 35 | 36 | #GCC files 37 | *.o 38 | *.d 39 | *.res 40 | *.dll 41 | *.a 42 | 43 | #Visual Studio Code files 44 | .vscode/ 45 | -------------------------------------------------------------------------------- /minhook/AUTHORS.txt: -------------------------------------------------------------------------------- 1 | Tsuda Kageyu 2 | Creator, maintainer 3 | 4 | Michael Maltsev 5 | Added "Queue" functions. A lot of bug fixes. 6 | 7 | Andrey Unis 8 | Rewrote the hook engine in plain C. 9 | -------------------------------------------------------------------------------- /minhook/build/DXGL/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/MinGW/Makefile: -------------------------------------------------------------------------------- 1 | WINDRES:=$(CROSS_PREFIX)windres 2 | DLLTOOL:=$(CROSS_PREFIX)dlltool 3 | AR:=$(CROSS_PREFIX)ar 4 | CC:=$(CROSS_PREFIX)gcc 5 | CCLD:=$(CC) 6 | SRCS:=$(wildcard src/*.c src/hde/*.c) 7 | OBJS:=$(SRCS:%.c=%.o) 8 | DEPS:=$(SRCS:%.c=%.d) 9 | INCS:=-Isrc -Iinclude 10 | CFLAGS:=-masm=intel -Wall -Werror -std=c11 11 | LDFLAGS:=-Wl,-enable-stdcall-fixup -s -static-libgcc 12 | 13 | all: MinHook.dll libMinHook.dll.a libMinHook.a 14 | 15 | -include $(DEPS) 16 | 17 | libMinHook.a: $(OBJS) 18 | $(AR) r $@ $^ 19 | libMinHook.dll.a: MinHook.dll dll_resources/MinHook.def 20 | $(DLLTOOL) --dllname MinHook.dll --input-def dll_resources/MinHook.def --output-lib $@ 21 | MinHook.dll: $(OBJS) dll_resources/MinHook.res dll_resources/MinHook.def 22 | $(CCLD) -o $@ -shared $(LDFLAGS) $^ 23 | 24 | .rc.res: 25 | $(WINDRES) -o $@ --input-format=rc --output-format=coff $< 26 | .c.o: 27 | $(CC) -o $@ -c -MMD -MP $(INCS) $(CFLAGS) $< 28 | 29 | clean: 30 | rm -f $(OBJS) $(DEPS) MinHook.dll libMinHook.dll.a libMinHook.a dll_resources/MinHook.res 31 | 32 | .PHONY: clean 33 | .SUFFIXES: .rc .res 34 | -------------------------------------------------------------------------------- /minhook/build/MinGW/make.bat: -------------------------------------------------------------------------------- 1 | windres -i ../../dll_resources/MinHook.rc -o MinHook_rc.o && dllwrap --driver-name g++ -o MinHook.dll -masm=intel --def ../../dll_resources/MinHook.def -Wl,-enable-stdcall-fixup -Wall MinHook_rc.o ../../src/*.c ../../src/HDE/*.c -I../../include -I../../src -Werror -std=c++11 -s -static-libgcc -static-libstdc++|| pause -------------------------------------------------------------------------------- /minhook/build/MinGW/make.sh: -------------------------------------------------------------------------------- 1 | x86_64-w64-mingw32-windres -i ../../dll_resources/MinHook.rc -o MinHook_rc.o && 2 | x86_64-w64-mingw32-dllwrap -o MinHook.dll -masm=intel --def ../../dll_resources/MinHook.def -Wl,-enable-stdcall-fixup -Wall MinHook_rc.o ../../src/*.c ../../src/hde/*.c -I../../include -I../../src -Werror -s -static-libgcc -static-libstdc++ 3 | -------------------------------------------------------------------------------- /minhook/build/VC10/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC11/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC12/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC14/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC15/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC16/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/build/VC17/libMinHook.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Source Files 6 | 7 | 8 | Source Files 9 | 10 | 11 | Source Files 12 | 13 | 14 | HDE 15 | 16 | 17 | HDE 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | HDE 30 | 31 | 32 | HDE 33 | 34 | 35 | HDE 36 | 37 | 38 | HDE 39 | 40 | 41 | HDE 42 | 43 | 44 | 45 | 46 | {9d24b740-be2e-4cfd-b9a4-340a50946ee9} 47 | 48 | 49 | {76381bc7-2863-4cc5-aede-926ec2c506e4} 50 | 51 | 52 | {56ddb326-6179-430d-ae19-e13bfd767bfa} 53 | 54 | 55 | -------------------------------------------------------------------------------- /minhook/cmake/minhook-config.cmake.in: -------------------------------------------------------------------------------- 1 | # MinHook - The Minimalistic API Hooking Library for x64/x86 2 | # Copyright (C) 2009-2017 Tsuda Kageyu. 3 | # All rights reserved. 4 | # 5 | # Redistribution and use in source and binary forms, with or without 6 | # modification, are permitted provided that the following conditions 7 | # are met: 8 | # 9 | # 1. Redistributions of source code must retain the above copyright 10 | # notice, this list of conditions and the following disclaimer. 11 | # 2. Redistributions in binary form must reproduce the above copyright 12 | # notice, this list of conditions and the following disclaimer in the 13 | # documentation and/or other materials provided with the distribution. 14 | # 15 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17 | # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 18 | # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 19 | # OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 | # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23 | # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24 | # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | 27 | set(MINHOOK_MAJOR_VERSION "@MINHOOK_MAJOR_VERSION@") 28 | set(MINHOOK_MINOR_VERSION "@MINHOOK_MINOR_VERSION@") 29 | set(MINHOOK_PATCH_VERSION "@MINHOOK_PATCH_VERSION@") 30 | set(MINHOOK_VERSION "@MINHOOK_VERSION@") 31 | 32 | @PACKAGE_INIT@ 33 | 34 | set(MINHOOK_FOUND ON) 35 | 36 | set_and_check(MINHOOK_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/") 37 | set_and_check(MINHOOK_LIBRARY_DIRS "${PACKAGE_PREFIX_DIR}/lib") 38 | 39 | include("${PACKAGE_PREFIX_DIR}/share/minhook/minhook-targets.cmake") 40 | -------------------------------------------------------------------------------- /minhook/dll_resources/MinHook.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | MH_Initialize 3 | MH_Uninitialize 4 | 5 | MH_CreateHook 6 | MH_CreateHookApi 7 | MH_CreateHookApiEx 8 | MH_RemoveHook 9 | MH_EnableHook 10 | MH_DisableHook 11 | MH_QueueEnableHook 12 | MH_QueueDisableHook 13 | MH_ApplyQueued 14 | MH_StatusToString 15 | -------------------------------------------------------------------------------- /minhook/dll_resources/MinHook.rc: -------------------------------------------------------------------------------- 1 | 1 VERSIONINFO 2 | FILEVERSION 1,3,4,0 3 | PRODUCTVERSION 1,3,4,0 4 | FILEFLAGSMASK 0x17L 5 | #ifdef _DEBUG 6 | FILEFLAGS 0x1L 7 | #else 8 | FILEFLAGS 0x0L 9 | #endif 10 | FILEOS 0x4L 11 | FILETYPE 0x2L 12 | FILESUBTYPE 0x0L 13 | BEGIN 14 | BLOCK "StringFileInfo" 15 | BEGIN 16 | BLOCK "040904b0" 17 | BEGIN 18 | VALUE "CompanyName", "Tsuda Kageyu" 19 | VALUE "FileDescription", "MinHook - The Minimalistic API Hook Library for x64/x86" 20 | VALUE "FileVersion", "1.3.4.0" 21 | VALUE "InternalName", "MinHookD" 22 | VALUE "LegalCopyright", "Copyright (C) 2009-2017 Tsuda Kageyu. All rights reserved." 23 | VALUE "LegalTrademarks", "Tsuda Kageyu" 24 | VALUE "ProductName", "MinHook DLL" 25 | VALUE "ProductVersion", "1.3.4.0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x409, 1200 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /minhook/src/buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * MinHook - The Minimalistic API Hooking Library for x64/x86 3 | * Copyright (C) 2009-2017 Tsuda Kageyu. 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright 11 | * notice, this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 18 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 19 | * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 20 | * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #pragma once 30 | 31 | // Size of each memory slot. 32 | #if defined(_M_X64) || defined(__x86_64__) 33 | #define MEMORY_SLOT_SIZE 64 34 | #else 35 | #define MEMORY_SLOT_SIZE 32 36 | #endif 37 | 38 | VOID InitializeBuffer(VOID); 39 | VOID UninitializeBuffer(VOID); 40 | LPVOID AllocateBuffer(LPVOID pOrigin); 41 | VOID FreeBuffer(LPVOID pBuffer); 42 | BOOL IsExecutableAddress(LPVOID pAddress); 43 | -------------------------------------------------------------------------------- /minhook/src/hde/pstdint.h: -------------------------------------------------------------------------------- 1 | /* 2 | * MinHook - The Minimalistic API Hooking Library for x64/x86 3 | * Copyright (C) 2009-2017 Tsuda Kageyu. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR 16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | */ 26 | 27 | #pragma once 28 | 29 | #include 30 | 31 | // Integer types for HDE. 32 | typedef INT8 int8_t; 33 | typedef INT16 int16_t; 34 | typedef INT32 int32_t; 35 | typedef INT64 int64_t; 36 | typedef UINT8 uint8_t; 37 | typedef UINT16 uint16_t; 38 | typedef UINT32 uint32_t; 39 | typedef UINT64 uint64_t; 40 | -------------------------------------------------------------------------------- /patches/readme.txt: -------------------------------------------------------------------------------- 1 | These files have already been merged into DXGL, but are provided for reference purposes. 2 | 3 | SetCursorPos hack.patch - Copyright (C) 2018 Syahmi Azhar - Merged manually against revision 799. --------------------------------------------------------------------------------