Android OpenGL ES 2.0: возможен ли синтаксис" switch-case " в шейдере фрагментов GLSL на Samsung Galaxy S2?
Кто-нибудь знает, как это сделать switch
case
синтаксис в шейдере фрагментов на Samsung Galaxy S2? Я получаю ошибку компиляции: Expected literal or '(', got 'switch'
.
Мой синтаксис выглядит следующим образом:
switch(i){
case 0: x = alphas[0]; break;
case 1: //...etc.
}
Это прекрасно работает на Nexus 7, но на Galaxy S2 я получаю вышеуказанную ошибку. Есть switch
case
инструкции просто невозможны на Galaxy S2? Причина, по которой я хочу их использовать, заключается в том, что они, по-видимому, улучшают производительность.if
else
на Nexus 7. Если они невозможны на Галактике S2, есть ли способ запросить устройство и использовать его switch
case
Если имеется, и if
else
иначе?
2 ответа:
switch
оператор не поддерживается в OpenGL ES 2.0. Из OpenGL ES Shading Language 1.0.17 spec 3.7:Ниже приведены ключевые слова, зарезервированные для дальнейшего использования. Использующий их приведет к ошибке:Asm class union enum typedef шаблон this упакованный goto переключатель по умолчанию ...