作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想很快为 iOS 制作一个简单的绘图应用程序,但我不能完全让绘图工作 - 好吧,保存每个图层上的内容并恢复图层。看起来所有层都保存相同的像素..
想法是拥有三层并使用 OpenGL ES 在每一层上绘制。由于没有这方面的经验,我只是平铺了三个 UIView,并向每个 UIView 添加了一个 OpenGL 绘图 Canvas (教程中 PaintingView 的修改版本)。当用户交换绘图层时,我只是禁用了其他层上的用户交互。
通过这种方法,我遇到了很多我认为源于我的方法的奇怪现象。所以现在,我认为我应该以某种方式在同一个 PaintingView 中制作三个全屏缓冲区,并让 OpenGL 在它们之间切换。
我明白了吗?有任何有效的方法吗?
任何与主题相关的内容都可能有所帮助。谢谢。
最佳答案
您可以制作两种不同的帧缓冲区:一种用于绘制到屏幕,另一种用于绘制到纹理。然后,您可以制作 3 种不同的纹理,它们将成为您的图层。画给他们。最后,您可以将您拥有的纹理绘制到第一个帧缓冲区并显示在屏幕上。
您的绘制周期将是这样的:
关于ios - 如何在iOS上用OpenGL ES实现多层绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11901721/
我是一名优秀的程序员,十分优秀!