     * @type {Number}
     * @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glGet.xml'>glGet</a> with <code>BLUE_BITS</code>.
     */
-    let blueBits = 0
+    let blueBits: Int
     
     /**
     * The number of alpha bits per component in the default framebuffer's color buffer.  The minimum is eight.

    * @type {String}
    * @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glGetString.xml'>glGetString</a> with <code>SHADING_LANGUAGE_VERSION</code>.
    */
    var shadingLanguageVersion = "Unknown GLSL version"
    
    /**
    * The company responsible for the WebGL implementation.
    * @memberof Context.prototype
    * @type {String}
    */
    var vendor = "Unknown Vendor"
    
    /**
    * The name of the renderer/configuration/hardware platform. For example, this may be the model of the

        shaderCache = ShaderCache()
        
        glVersion = String.fromCString(ConstUnsafePointer<CChar>(glGetString(GLenum(GL_VERSION)))) !! "Unknown GL version"
        shadingLanguageVersion = String.fromCString(ConstUnsafePointer<CChar>(glGetString(GLenum(GL_SHADING_LANGUAGE_VERSION)))) !! "Unknown GLSL version"
        vendor = String.fromCString(UnsafePointer<UInt8>(glGetString(GLenum(GL_VENDOR)))) !! "Unknown GL vendor"
        renderer = String.fromCString(UnsafePointer<UInt8>(glGetString(GLenum(GL_RENDERER)))) !! "Unknown GL renderer"
        
        var GLIntTemp: GLint = 0
        glGetIntegerv(GLenum(GL_RED_BITS), &GLIntTemp)
        redBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_GREEN_BITS), &GLIntTemp)
        greenBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_BLUE_BITS), &GLIntTemp)
        blueBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_ALPHA_BITS), &GLIntTemp)
        alphaBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_DEPTH_BITS), &GLIntTemp)
        depthBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_STENCIL_BITS), &GLIntTemp)
        stencilBits = Int(GLIntTemp)

        glGetIntegerv(GLenum(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS), &GLIntTemp) // min 8
        maximumCombinedTextureImageUnits = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_CUBE_MAP_TEXTURE_SIZE), &GLIntTemp) // min: 16
        maximumCubeMapSize = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_FRAGMENT_UNIFORM_VECTORS), &GLIntTemp) // min: 16
        maximumFragmentUniformVectors = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_TEXTURE_IMAGE_UNITS), &GLIntTemp) // min: 8
        maximumTextureImageUnits = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_RENDERBUFFER_SIZE), &GLIntTemp) // min: 1
        maximumRenderBufferSize = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_TEXTURE_SIZE), &GLIntTemp) // min: 64
        maximumTextureSize = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_VARYING_VECTORS), &GLIntTemp) // min: 8
        maximumVaryingVectors = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_VERTEX_ATTRIBS), &GLIntTemp) // min: 8
        maximumVertexAttributes = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS), &GLIntTemp) // min: 0
        maximumTextureImageUnits = Int(GLIntTemp)
        
        glGetIntegerv(GLenum(GL_MAX_VERTEX_UNIFORM_VECTORS), &GLIntTemp) // min: 128
        maximumVertexUniformVectors = Int(GLIntTemp)

        var aliasedLineWidthRange = Array<GLint>(count: 2, repeatedValue: 0) // must include 1
        glGetIntegerv(GLenum(GL_ALIASED_LINE_WIDTH_RANGE), &aliasedLineWidthRange) // must include 1
