crystice-softworks / QindieGL

QindieGL Is Not Driver, It's Emulator: OpenGL->Direct3D9 wrapper
GNU General Public License v3.0
83 stars 8 forks source link

QindieGL

QindieGL Is Not Driver, It's Emulator

Version 1.0 rev. 5 (November 2016)

QindieGL Logo

Download Win32 32-bit Binaries

Introduction

QindieGL is a wrapper library which emulates OpenGL API using Microsoft Direct3D 9.0c. Emulation is not complete - some features are not implemented. Although the existing functionality allows to play some OpenGL-based games using the wrapper. There are several reasons to use QindieGL instead if the native OpenGL renderer:

  1. Graphic enhancements are often available for Direct3D API only (e.g. SweetFX); so you may try the wrapper to enable advanced shader effects, stereoscopic vision, etc., in old OpenGL-based games.
  2. Some drivers are glitchy (especially for mobile video cards) and lack for a proper OpenGL support, but Direct3D is supported. Then you can use the wrapper to play an OpenGL-based game.
  3. People may want to implement multi-renderer in their engine, so it will be capable to render using either OpenGL, or Direct3D. Then this wrapper can be linked statically to such renderers, or loaded dynamically instead of a regular OpenGL system library. Please note that only simple OpenGL features are supported (up to version 1.4); this means there are no shaders, vertex buffer objects, etc. However all these features can be added, since where will be no need for ideal compatibility with already compiled binaries.

Quake II with QindieGL Quake III with QindieGL

Setup

Please perform the following steps to install and enable QindieGL:

  1. Add the information from the QindieGL-setup.reg file to the Windows registry.
  2. Place opengl32.dll to the directory where the executable file of the game is located.
  3. Run the game; make sure the QindieGL.log file is created; this means that game has successfully hooked the wrapper.
  4. If you want to restore the native OpenGL renderer, delete the opengl32.dll file from the game executable's directory.

Please also read Security Notice before using QindieGL!

Supported Games

Tux Racer with QindieGL

Feature Support

Troubleshooting

Sometimes QindieGL won't be hooked by the game. There are several workarounds possible:

Some screen resolutions available in OpenGL, are not available in Direct3D. Before using a non-standard resolution, make sure your display adapter lists it in the adapter's all modes list.

Security Notice

Some anti-cheating software refers such wrappers to as cheats, so make sure your anti-cheating software is not active. I.e. don't forget to delete wrapper's opengl32.dll before playing multiplayer games: you may get a ban because of Valve Anti-Cheat, and it is nearly impossible to reverse. So, the rule of thumb is: don't use QindieGL with multiplayer Steam games.

NEVER, you hear, NEVER replace system's OpenGL library opengl32.dll! This can break the whole enchilada, since QindieGL is NOT a complete replacement for OpenGL.

Crystice Softworks 2016