gpt4 book ai didi

ios - Core Graphics 和 Open GL 绘图

转载 作者:行者123 更新时间:2023-11-29 03:32:09 26 4
gpt4 key购买 nike

我有一个绘图应用程序,我在其中使用 openGL 绘图代码绘制笔划,但想在笔划完成后将其传输到另一个图像,然后清除 OpenGL View 。为此,我正在使用 CoreGraphics。然而,我遇到了一个问题,在通过 CG 传输图像之前清除了 OpenGL View (即使我之后清除了它)

(我想要另一种方式,即先绘制图像,然后删除绘画图像,以避免任何类型的闪烁)

(paintingView 是 openGL View )

代码如下:

// Save the previous line drawn to the "main image"

UIImage *paintingViewImage = [[UIImage alloc] init];
paintingViewImage = [_paintingView snapshot];

UIGraphicsBeginImageContext(self.mainImage.frame.size);
[self.mainImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width, self.mainImage.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0];

// Get the image from the painting view

[paintingViewImage drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width, self.mainImage.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0];
self.mainImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[self.paintingView erase];

因此,在将 mainImage.image 变量设置为 CurrentImage 上下文之前,将删除 paintingView。

我只是这些方面的初学者,所以任何想法都有帮助。

谢谢

最佳答案

您最好使用 FBO(OpenGL 帧缓冲对象)。您绘制到一个 FBO 中,然后在保存前一个 FBO 的同时将绘图切换到一个新的 FBO。您可以在 2 个 FBO 之间来回切换。 Here are the docs在 iOS 上使用 FBO

关于ios - Core Graphics 和 Open GL 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com