Загрузка шейдеров в Android из ресурсов - дополнительные символы в конце? - PullRequest
4 голосов
/ 27 февраля 2012

Я пытаюсь изменить пример Android Opengles 2.0 на пример NDK, и все делается, кроме загрузки шейдеров.
http://developer.android.com/resources/tutorials/opengl/opengl-es20.html - оригинал

http://pastebin.com/tjtQdLhi - мой метод загрузки шейдеров из ресурсов Android.
Если я кодирую шейдеры в char *, всегда отображается треугольник, и все в порядке, но затем я пытаюсь загрузить его из файла, иногда некоторые ненужные символы добавляются в конце моих шейдеров, чтобы они не компилировались. Символы просто и файл шейдера случайны (могут быть в вершине или фрагменте или в обоих).

Я проверяю все, только часть получения исходных данных из файла шейдера содержит ошибки.

Bad shader data

1 Ответ

3 голосов
/ 27 февраля 2012

Буфер ресурсов или буфер содержимого, передаваемый JNI, может не иметь значение NULL, поэтому при вызове glShaderSource необходимо использовать параметр 'length'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...