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 переключатель по умолчанию ...