in the Xbox family of video game consoles and Sega's Dreamcast. Several mostly functional reimplementations of the Direct3D API have been made by third parties such as Wine, a project to port common Windows APIs to Unix-like operating systems, and Cedega, a proprietary fork of Wine. However, this process is progressively impeded due to the interdependence of DirectX upon many other proprietary components of Windows, and because Direct3D's proprietary nature requires the difficult process of reverse engineering. OpenGL has implementations available across many platforms including Microsoft Windows, Unix-based systems such as Mac OS X, Linux. Nintendo and Sony have developed their own libraries which are similar but not identical to OpenGL. A subset of OpenGL was chosen as the main graphics library for Android, BlackBerry, iOS, and Symbian in the OpenGL ES form. Microsoft's OpenGL driver provides hardware acceleration in Windows Vista; support was dropped in Windows XP, soon after they failed to deliver Fahrenheit graphics API low level support for an OpenGL-Direct3D merger in the late 1990s. OpenGL hardware acceleration on Windows is achieved by users first installing installable client drivers (ICDs) developed by GPU makers. These ICDs are, in virtually all cases, bundled with the standard driver download package from the hardware vendor (IHV), so installing recent graphics drivers is sufficient to provide hardware OpenGL support. More recently, Google's Almost Native Graphics Layer Engine (ANGLE) project provides a means to convert OpenGL ES 2.0 application calls to DirectX 9. This is done so that WebGL (a subset variant of OpenGL for the web) can run on the common Direct3D runtime, which means there will be less variation between vendors. Ease of use Direct3D The first version of Direct3D in 1996 elicited broad criticism because even simple operations, such as state changes, required creating and submitting objects called execute buffers. In contrast, in OpenGL most state changes can be performed with one function call. The Direct3D model frustrated many programmers. A very famous complaint was made by high-profile game developer John D. Carmack in his .plan file in which he urged Microsoft to abandon Direct3D in favor of OpenGL. Carmack explained, "OpenGL is easy to use and fun to experiment with. D3D is not. ... Many things that are a single line of GL code require half a page of D3D code - to allocate a structure, set a size, fill something in, call a COM routine, then extract