我正在寻求将 as3 代码转换为 pixelbender 代码的帮助,以尝试提高我的应用程序的性能。
这个 as3 代码如下。我以块的形式扫描字节数组的数值。假设这个块长度是 100 个数字,我读取了 2 个数字(左右)并尝试找到最大值。我的字节数组中的数字是 PCM 数据,因此有数百万个,并且此代码通常需要很长时间才能执行,尤其是在低规格机器上。
这样做的全部目的是尽可能快地渲染波形。我对像素弯曲器知之甚少。我基本上可以制作一个新文件并在闪存中创建它的shaderJob,但我真的不确定如何处理这个......
我想我真的在问我如何通过 pixelbender
A)一个“块”数字并让它传给我2个最大值(左和右)
或者
B)我的整个字节数组并让像素弯曲器为我做分块的东西
var spritePixelIndex:Number=0;
var spriteSize:Number;
spriteSize=_sizes[_numberOfZoomLevels - 1];
blockSize=Math.floor(_pcmLength / spriteSize);
chunksize=blockSize * 100;
for (var i:int=0; i < chunksize; ++i)
{
if (_pcmData.bytesAvailable)
{
var la:Number=_pcmData.readFloat();
var ra:Number=_pcmData.readFloat();
var l:Number=la > 0.0 ? la : -la;
var r:Number=ra > 0.0 ? ra : -ra;
++_divCount;
var ml:Number=0;
var mr:Number=0;
var a_ml:Number=ml > 0.0 ? ml : -ml;
var a_mr:Number=mr > 0.0 ? mr : -mr;
ml=a_ml > (l) ? ml : l;
mr=a_mr > (r) ? mr : r;
}
}