gfx_device_gl 0.16.2

OpenGL backend for gfx-rs
Documentation
# gfx_device_gl

[OpenGL](https://www.khronos.org/opengl/) backend for gfx.

## Normalized Coordinates

Render | Depth | Texture
-------|-------|--------
![render_coordinates]../../../info/gl_render_coordinates.png | ![depth_coordinates]../../../info/gl_depth_coordinates.png | ![texture_coordinates]../../../info/gl_texture_coordinates.png

## GLSL Mirroring

PSO component | GLSL component
--------------|----------------
`Vertex/InstanceBuffer` | a collection of vertex shader inputs
`ConstantBuffer` | [Uniform Buffer Object]https://www.opengl.org/wiki/Uniform_Buffer_Object
`Global` | [Uniform]https://www.opengl.org/wiki/Uniform_(GLSL)
`Render/BlendTarget` | fragment shader output
`Depth/StencilTarget` | [depth]https://www.opengl.org/wiki/Depth_Test, [stencil]https://www.opengl.org/wiki/Stencil_Test
`UnorderedAccess` | TODO
`Scissor` | not visible
`BlendRef` | not visible

`TextureSampler`s correspond to the following [GLSL samplers](https://www.opengl.org/wiki/Sampler_(GLSL)), when you see a *g* preceding a sampler name, it represents any of the 3 possible prefixes (nothing for float, i for signed integer, and u for unsigned integer):

Texture Kind | GLSL sampler
-------------|-------------
`D1` | *g*sampler1D, sampler1DShadow
`D1Array` | *g*sampler1DArray, sampler1DArrayShadow
`D2` | *g*sampler2D, *g*sampler2DMS, sampler2DShadow
`D2Array` | *g*sampler2DArray, *g*sampler2DMSArray, sampler2DArrayShadow
`D3` | *g*sampler3D
`Cube` | *g*samplerCube, samplerCubeShadow
`CubeArray` | *g*samplerCubeArray, samplerCubeArrayShadow

Buffer resource views are seen as *g*samplerBuffer.

Rust basic type | GLSL (1.3 and above)
----------------|---------------------
i32 | int
u32 | uint
f32 | float
f64 | double