anchor.diff:          let vertexDataSize = IntPtr (2 * 4 * sizeof<single>)
           let vertexDataPtr = GCHandle.Alloc (vertexData, GCHandleType.Pinned)
           Gl.BufferData (Gl.BufferTarget.ArrayBuffer, vertexDataSize, vertexDataPtr.AddrOfPinnedObject(), Gl.BufferUsageHint.StaticDraw)
  -        
  +
           let indexData = [|0u; 1u; 2u; 3u|]
           let indexBuffers = [|0u|]
           Gl.GenBuffers (1, indexBuffers)
  
positive.code:         let sTexUniform = Gl.GetUniformLocation (samplerShaderProgram, "tex")
  
          let vertexData =
              [|-0.5f; -0.5f;
                +0.5f; -0.5f;
                +0.5f; +0.5f;
                -0.5f; +0.5f|]
          let mutable vertexBuffers = [|0u|]
          Gl.GenBuffers (1, vertexBuffers)
          let vertexBuffer = vertexBuffers.[0]
  
negative.code:             Gl.DisableVertexAttribArray wVertexPos2DAttrib
              Gl.UseProgram 0u
  
              Gl.BindFramebuffer (Gl.FramebufferTarget.Framebuffer, 0u)
              Gl.UseProgram samplerShaderProgram
              Gl.EnableVertexAttribArray sVertexPos2DAttrib
              Gl.BindBuffer (Gl.BufferTarget.ArrayBuffer, vertexBuffer)
              Gl.VertexAttribPointer (sVertexPos2DAttrib, 2, Gl.VertexAttribPointerType.Float, false, 2 * sizeof<single>, nativeint 0)
              Gl.BindBuffer (Gl.BufferTarget.ElementArrayBuffer, indexBuffer)
              Gl.Uniform1i (sTexUniform, 0) // set attrib to texture slot 0
              Gl.ActiveTexture 0 // make texture slot 0 active
              Gl.BindTexture (Gl.TextureTarget.Texture2D, textureFramebufferTexture) // bind texture to slot 0
              Gl.BindSampler (0u, 0u) // use texture's built-in sampling configuration
              Gl.DrawElements (Gl.BeginMode.TriangleFan, 4, Gl.DrawElementsType.UnsignedInt, nativeint 0)
              Gl.DisableVertexAttribArray sVertexPos2DAttrib
              Gl.UseProgram 0u
  
              SDL.SDL_GL_SwapWindow window
              Threading.Thread.Sleep 16
  