Egret中碎图渲染优化处理

egret_logo

场景中如果需要动态添加多处碎图(小图),而且属性长时间不发生变化,可考虑代码方式合并纹理,能够大大提升性能。

//-- 主舞台
var stage = new egret.DisplayObjectContainer();

//-- 纹理位图
var _mapBitMap = new egret.Bitmap();
//-- 纹理
var _mapTexture = new egret.RenderTexture();
//-- 纹理容器
var _mapContainer = new egret.DisplayObjectContainer();
//-- 添加位图到舞台上
stage.addChild(_mapBitMap);

//-- 向纹理容器中添加碎图,然后绘制纹理
_mapContainer.addChild(new egret.Bitmap());
_mapContainer.addChild(new egret.Bitmap());
_mapContainer.addChild(new egret.Bitmap());
_mapTexture.drawToTexture(_mapContainer);

//-- 最终更新位图纹理
_mapBitMap.texture = _mapTexture;

注意:最好先将位图添加到主舞台上,然后更新纹理,不然有时候,绘制纹理不准确,有偏差。

By Pury.