由于业务需求,需要对两个(现在是三个了)中的一个 OpenGL 渲染的视图进行截图并增加模糊效果。开始用传统的方法进行截图,但是失败了(截取的是黑屏还是空白,忘记了。。。),后来意识到这个和一般的视图应该是不一样的,就到 Google 上搜了一下。由于没怎么玩过,又不怎么懂,就直接翻译成 Swift
了。开始是没发现什么问题的,都是但是到后来发现截图总是其中一个的(看那个先出来,基本上不是想要的那个),而不是想要的那个。
仔细研究后发现,OpenGL 的截图是根据 RenderBuffer 来截取的,由于没有指定 RenderBuffer 所以截取的图只是其中某一个。知道了这个也没用,由于这个 View 用的是第三方库,所以不知道这个 View 的 RenderBuffer。。。后果经过 Debug,发现这个 View 有个 _colorRenderBuffer
属性,这就好办啦~。经过改造后代码如下: