Create a pointer from a float[] to allow passing to openGL to create a texture.
var floatPointer = GCHandle.Alloc(a_frame.left, GCHandleType.Pinned); gl.TexImage2D(OpenGL.GL_TEXTURE_2D, 0, OpenGL.GL_RGBA, Utility.GetNextPowerOfTwo(a_frame.width), Utility.GetNextPowerOfTwo(a_frame.height), 0, OpenGL.GL_RGBA, OpenGL.GL_FLOAT, floatPointer.AddrOfPinnedObject()); floatPointer.Free();