Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics. , graphics processing units (GPUs) almost always implement one version of both of these APIs. Examples include: DirectX 9 and OpenGL 2 circa 2004; DirectX 10 and OpenGL 3 circa 2008; and most recently, DirectX 11 and OpenGL 4 circa 2011. GPUs that support more recent versions of the standards are backwards compatible with applications that use the older standards; for example, one can run older DirectX 9 games on a more recent DirectX 11-certified GPU. Availability Direct3D application development targets the Microsoft Windows platform. The OpenGL API is an open standard, which means that various hardware makers and operating system developers can freely create an OpenGL implementation as part of their system. OpenGL implementations exist for a wide variety of platforms. Most notably, OpenGL is the dominating graphics API of Unix-like computer systems. From an application developer's perspective, Direct3D and OpenGL are equally open; full documentation and necessary development tools are available with no restrictions. In more detail, the two computer graphics APIs are the following: Direct3D is a proprietary API by Microsoft that provides functions to render two-dimensional (2D) and three-dimensional (3D) graphics, and uses hardware acceleration if available on the graphics card. It was designed by Microsoft Corporation for use on the Windows platform. OpenGL is an open standard API that provides many functions to render 2D and 3D graphics, and is available on most modern operating systems including but not limited to Windows, macOS, and Linux. Note that many essential OpenGL extensions and methods, although documented, are also patented, thus imposing serious legal troubles to implement them (see issues with Mesa). OpenGL and Direct3D are both implemented in the display device driver. A significant difference however is that Direct3D implements the API in a common runtime (supplied by Microsoft), which in turn talks to a low-level device driver interface (DDI). With OpenGL, every vendor implements the full API in the driver. This means that some API functions may have slightly different behavior from one vendor to the next. The GLSL shader compilers of different vendors also show slightly different behavior. The following compares the two APIs, structured around various considerations mostly relevant to game development. Portability The proprietary Direct3D is officially implemented only on Microsoft's Windows family of operating systems, including embedded versions used