После переноса всех моих шейдеров на ES3.0 мой компиляторShader неисправен в первой строке.Vertex shader не компилируется после перехода на ES 3.0 на IOS
#version 300
Это дает синтаксическую ошибку: ОШИБКИ: 0: 2: '': ошибка синтаксиса: #version
Если это неправильная версия, то я ожидал бы получить неподдерживаемую версию, не синтаксическая ошибка. Так что это непонятно, почему он не распознает синтаксис. Я проверил источник, передаваемый в компиляционный шейдер, и он начинает четко с #version 300 \ n \ n \ n.
И после установки контекста моя версия «OpenGL ES 3.0 Apple A7 GPU - 95.16».
Это, как я скомпилировать:
GLint status;
const GLchar *source;
source = (GLchar *) [ [ NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil ] UTF8String ];
if (!source)
{
DebugLog(@"Failed to load shader %@", file);
return FALSE;
}
*shader = glCreateShader(type);
glShaderSource(*shader, 1, &source, NULL);
glCompileShader(*shader);
Пожалуйста, покажите полный шейдер и как загрузить/скомпилировать. – BDL
Мне просто удалось выйти за пределы ошибки. Если я использую ядро #version, он способен обрабатывать синтаксис. – nishant