В порядке экспериментов с ПиксельБендером в его родной среде
разработки реализовал несколько фильтров, и возрадовался, до чего же
мощная и универсальная штука. В той же степени огорчился, когда
попытался скомпилировать мои фильтры для флешплеера.
Массивы запрещены, циклы запрещены, рекурсивные вызовы функций явным
образом не запрещены, но если они есть, при компиляции пиксельбендер
выдает неведомую внутреннюю ошибку.
Кроме if ничего, практически, и не остается.
Мне этого не достаточно, чтобы самописные фильтры работали с ожидаемой
эффективностью.
У кого есть опыт хитрого обхождения ограничений ПиксельБендера для
флешплеера?
В принципе, циклы можно развернуть, если они, конечно, не параметрические.
Т.е. например цикл
for (i=0; i<5; i++) doSomething(i);
нужно записать как
doSomething(0);
doSomething(1);
doSomething(2);
doSomething(3);
doSomething(4);
Разумеется, если длина цикла должна быть переменной, то это не
получится. Тогда можно попробывать определить максимально возможную
длину цикла и сделать вот такой хак:
for (i=0; i<N; i++) doSomething(i);
превращается в:
if (N>0) doSomething(0);
if (N>1) doSomething(1);
if (N>2) doSomething(2);
if (N>3) doSomething(3);
Но следует помнить, что условный оператор - очень дорогой, так как
нарушает параллельность вычислений.