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();