我想很快做出了iOS的一个简单的绘图应用程序,但我不能完全得到绘图工作 - 好,以节省每一层上的内容并恢复层。 它看起来像所有层保存同一像素..
其想法是具有三个层和使用OpenGL ES绘制每个层上。 在这个问题上没有经验,我只是平铺3个UIViews,并增加了OpenGL绘图画布的每个UIView的(从教程PaintingView的修改版本)。 当用户绘制交换层,我在其它层简单地禁用用户交互。
用这种方法我经历了很多,我认为从我的做法茎古怪的。 所以,现在,我认为我应该以某种方式使在同一PaintingView三个全屏幕缓冲区,只是他们之间的OpenGL开关。
我是上的东西吗? 有任何人工作的方法?
切合主题的任何可能的帮助。 谢谢。
你可以让两个不同的帧缓冲区:一个用于绘制画面和第二绘制纹理。 然后,你可以让3个不同的纹理,他们将是你的图层。 画他们。 最后,你能得到你要的第一帧缓冲区并在屏幕上呈现的纹理。
您的抽奖周期会水木清华这样的:
- 绑定RenderToTextureFramebuffer
- 附加texture1到RenderToTextureFramebuffer
- 你画在1层要什么
- 附加纹理2至RenderToTextureFramebuffer
- 你画在第2层要什么
- 附加texture3到RenderToTextureFramebuffer
- 你画在第3层要什么
- 绑定RenderToScreenFramebuffer
- 绑定texture1
- 画texture1(你的层1)
- 绑定纹理2
- 绘制纹理2(你的二层)
- 绑定texture3
- 画texture3(你的三层)
- 在屏幕上存在的最后图像
有画家的所有功能 - 撤销/重做等恕我直言,你需要有几个刚图形对象的数组,并通过他们在每个迭代渲染过程。