Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Смена версии AGAL. (http://www.flasher.ru/forum/showthread.php?t=212166)

Bletraut 27.12.2015 00:33

Смена версии AGAL.
 
Суть проблемы такова: версия агал не меняется. Собственно, у версий AGAL1 и AGAL2 куча различий, одно из них - поддержка команд ine, ifl, ifg, ife, els, eif. Если писать эти команды в шейдере на AGAL1, то выдаст ошибку
Цитата:

error: opcode requires version 2.
Смена версии происходит в изменении параметра Context3DProfile в методе Stage3D.requestContext3D(), из доков нахожу что,
Цитата:

STANDARD : String = "standard"
[статические] Используйте стандартный профиль для процессоров с поддержкой MRT, AGAL2 и плавающих текстур.
итак я пишу:
Код AS3:

stage3D.requestContext3D("auto", Context3DProfile.STANDART);

Запускаю, а там опять такая же ошибка. В чем дело? Он не меняется? Он не поддерживает или что?

gloomyBrain 28.12.2015 17:41

А что вы используете для "компиляции" шейдеров? Я имею ввиду - наверняка какой-нибудь AGAL-[что-то там]-assembler, который как раз занимается тем, что парсит текст написанного Вами шейдера и переводит его в набор байтиков, а затем уже эти байты отправляются на GPU. Так вот, предлагаю Вам проверить, что во время создания бинарной версии шейдера, в него попадает правильная версия AGAL

Bletraut 28.12.2015 18:48

Проверил, действительно, по умолчанию версия стояла 1, изменил на 2. Спасибо за ответ!
Код AS3:

                public function assemble( mode:String, source:String, version:uint=1, ignorelimits:Boolean=false ):ByteArray
                {

Добавлено через 32 секунды
Всё работает.


Часовой пояс GMT +4, время: 15:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.