gef*_*rce 6 iphone performance cocoa-touch uiimageview ios
我刚刚在该网站上找到了一些东西:iphoneexamples.com.期待"显示图像"我发现了一些新的东西.
myImage.opaque = YES; //明确表示不透明
有人可以向我解释一下吗?对于哪种(或用例)图像,它有效吗?什么时候不?很高兴知道.谢谢你的时间...
hot*_*aw2 13
iPhone GPU是基于图块的渲染器.如果覆盖层在整个区块上完全不透明,则GPU可以忽略设置和处理与该特定区块下面的层相关的任何图形命令,此外不必对该区块中的像素进行合成.
如果您的图像未覆盖整个图块,则GPU仍可能必须处理多个图层.图块的大小取决于实现,但微小的图形图像不太可能覆盖图块.覆盖多个瓷砖的巨大图像将显示出不透明的最大优势.
从适用于iOS的View Programming Guide:
尽可能将视图声明为不透明
UIKit使用每个视图的opaque属性来确定视图是否可以优化合成操作.对于自定义视图,将此属性的值设置为YES会告诉UIKit它不需要在视图后面呈现任何内容.较少的渲染可以提高绘图代码的性能,并且通常会受到鼓励.当然,如果将opaque属性设置为YES,则视图必须使用完全不透明的内容完全填充其边界矩形.
hotpaw2指出了幕后的原因,可以在iOS的OpenGL ES编程指南中找到:
延迟渲染的另一个优点是它允许GPU在处理片段之前执行隐藏表面移除.在不采样纹理或执行片段处理的情况下丢弃不可见的像素,从而显着减少GPU必须执行的用于渲染图块的计算.要从此功能中获得最大收益,请尽可能多地绘制具有不透明内容的帧,并尽量减少混合,alpha测试和GLSL着色器中的丢弃指令的使用.由于硬件执行隐藏表面删除,因此您的应用程序无需从前到后对基元进行排序.
归档时间: |
|
查看次数: |
2986 次 |
最近记录: |