Xamarin 将IOS UIImage转换为Opengl Texture2d

Xamarin 将IOS UIImage转换为Opengl Texture2d,xamarin,opengl-es,xamarin.ios,uiimage,texture2d,Xamarin,Opengl Es,Xamarin.ios,Uiimage,Texture2d,我有一个屏幕截图管理器,可以管理android和iOS的屏幕截图,它包含一个函数,可以从我拥有的屏幕截图列表中抓取屏幕截图,即texture2d 我已经成功地为IOS截图,但我必须将它从UIImage转换为texture2d,以便能够将其存储在我创建的列表中 我能将UIImage转换为纹理2d吗?我已经找到了一些解决方案,但无法使用它们,因为我正在使用Xamarin来实现这一点,而在Objective-C中找到的解决方案就是这样的 我不确定前两部分是否正确,但当我尝试构建它时,它不包含任何错误

我有一个屏幕截图管理器,可以管理android和iOS的屏幕截图,它包含一个函数,可以从我拥有的屏幕截图列表中抓取屏幕截图,即texture2d

我已经成功地为IOS截图,但我必须将它从UIImage转换为texture2d,以便能够将其存储在我创建的列表中

我能将UIImage转换为纹理2d吗?我已经找到了一些解决方案,但无法使用它们,因为我正在使用Xamarin来实现这一点,而在Objective-C中找到的解决方案就是这样的

我不确定前两部分是否正确,但当我尝试构建它时,它不包含任何错误

        UIImage image = ImageToConvert;
        CGImage imageRef = image.CGImage;
        int width = (int)imageRef.Width;
        int height = (int)imageRef.Height;

        var textureData = new byte[width * height * 4];
        var colorSpace = CGColorSpace.CreateDeviceRGB ();

        int bytesPerPixel = 4;
        int bytesPerRow = bytesPerPixel * width;
        int bitsPerComponent = 8;
        var context = new CGBitmapContext (textureData, width, height,
        bitsPerComponent, bytesPerRow, colorSpace,
        CGBitmapFlags.PremultipliedLast| CGBitmapFlags.ByteOrder32Big);
        context.DrawImage(new CGRect(0, 0, width, height), imageRef);
我目前正停留在转换的第三部分,即将其转换为纹理2D图像,因为我无法访问或找到opengl函数,如glPixelStorei和glGenTextures