Показать сообщение отдельно
Старый 09.09.2013, 09:01
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 6  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
По оптимизациям:
1. copyPixels, если не ошибаюсь, быстрее draw.
2. Texture.fromBitmapData - по-моему, это синхронная операция, в отличии от загрузки ATF, где можна указать async-callback(догадываюсь, там используется нечто вроде PBO, но не могу понять, почему Adobe не используют его же и для несжатых данных). Но в галерее устройства фотки вряд ли хранятся в ATF, так что этот вариант отпадает .
Была одна идея - ATF вроде как может быть контейнером для обычного RGBA:
Цитата:
Well, you may want to use uncompressed textures but still want to leverage cubemap, automatic mipmap support or even texture streaming.
И вот можно бы попробовать создавать во время работы ATF-контейнер с нашей BitmapData прямо в AS, и загружать его в видеопамять асинхронно. Но тут будет порядочный перерасход памяти на дублирование данных в ATF(хоть и временный), да и непонятно, быстрее ли это будет
P.S.
Проверил:
Код AS3:
public function Encode(AQuantization:int = 100):void
{
	var vEncoder:JPEGXREncoderOptions = new JPEGXREncoderOptions(AQuantization);
	var vBytes:ByteArray = new ByteArray();
	var vStart:uint = getTimer();
	FTest.bitmapData.encode(FTest.bitmapData.rect, vEncoder, vBytes);
	Cc.logch(this, 'Complete in ' + uint(getTimer() - vStart) + ' ms');
}
На PC с i3 это занимает около 450-500 мс для текстуры 4302x1080(первое, что под руку подвернулось), с минимальным уровнем сжатия, так что для мобильных не вариант(да и на РС не особо чем-то поможет, разве что для каких-то редакторов уровней можно конвертор приделать).


Последний раз редактировалось C4Grey; 09.09.2013 в 09:31.