anchor.diff:              { mutable SpriteIndex : int
                 mutable ViewProjectionAbsolute : Matrix4x4
                 mutable ViewProjectionRelative : Matrix4x4
  -              ViewProjectionUniform : int
                 PerimetersUniform : int
                 TexCoordsesUniform : int
                 PivotsUniform : int
                 RotationsUniform : int
                 ColorsUniform : int
  +              ViewProjectionUniform : int
                 TexUniform : int
                 Shader : uint
                 Perimeters : single array
  
positive.code:         OpenGL.Hl.Assert ()
  
          // grab uniform locations
          let viewProjectionUniform = OpenGL.Gl.GetUniformLocation (shader, "viewProjection")
          let perimetersUniform = OpenGL.Gl.GetUniformLocation (shader, "perimeters")
          let pivotsUniform = OpenGL.Gl.GetUniformLocation (shader, "pivots")
          let rotationsUniform = OpenGL.Gl.GetUniformLocation (shader, "rotations")
          let texCoordsesUniform = OpenGL.Gl.GetUniformLocation (shader, "texCoordses")
          let colorsUniform = OpenGL.Gl.GetUniformLocation (shader, "colors")
          let texUniform = OpenGL.Gl.GetUniformLocation (shader, "tex")
          OpenGL.Hl.Assert ()
  
          // fin
          (viewProjectionUniform, perimetersUniform, pivotsUniform, rotationsUniform, texCoordsesUniform, colorsUniform, texUniform, shader)
  
      let private BeginBatch state env =
          env.State <- state
  
negative.code: 
              // setup shader
              OpenGL.Gl.UseProgram env.Shader
              OpenGL.Gl.Uniform4 (env.PerimetersUniform, env.Perimeters)
              OpenGL.Gl.Uniform4 (env.TexCoordsesUniform, env.TexCoordses)
              OpenGL.Gl.Uniform2 (env.PivotsUniform, env.Pivots)
              OpenGL.Gl.Uniform1 (env.RotationsUniform, env.Rotations)
              OpenGL.Gl.Uniform4 (env.ColorsUniform, env.Colors)
              OpenGL.Gl.UniformMatrix4f (env.ViewProjectionUniform, 1, false, if env.State.Absolute then env.ViewProjectionAbsolute else env.ViewProjectionRelative)
              OpenGL.Gl.Uniform1i (env.TexUniform, 1, 0)
              OpenGL.Gl.ActiveTexture OpenGL.TextureUnit.Texture0
              OpenGL.Gl.BindTexture (OpenGL.TextureTarget.Texture2d, env.State.Texture)
  