2017-02-13 6 views
0

После переноса всех моих шейдеров на 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); 
+0

Пожалуйста, покажите полный шейдер и как загрузить/скомпилировать. – BDL

+0

Мне просто удалось выйти за пределы ошибки. Если я использую ядро ​​#version, он способен обрабатывать синтаксис. – nishant

ответ

1

я смог обойти эту ошибку, добавляя сердечник к команде #Version. Кажется, это необязательный параметр, но он помог мне выйти за рамки синтаксической ошибки.

#version core

 Смежные вопросы

  • Нет связанных вопросов^_^