Я использую QtCreator 4.12 в качестве обобщенной c C ++ IDE, установленной из менеджера пакетов моего дистрибутива, так что это общий вопрос c об использовании QtCreator, в частности, не связанном с Qt, а также при сборке QtCreator из исходного кода.
Как и любая IDE, QtCreator выделяет потенциальные ошибки при написании кода. в файле. cpp, если я напишу int x = 0
и нажму Enter, 0 будет подчеркнут красным, и появится подсказка, сообщающая, что я забыл ;
в конце строки.
Это описано в документации QtCreator , но я не смог найти ничего в этой документации о GLSL.
Мой настоящий проект - это C ++ с игрой openGl, и я ' Редактирую мои шейдеры GLSL в QtCreator.
Читая ответ на этот вопрос, я узнал, что все функции texture*D()
устарели с openGL 3.3 и должны быть заменены на texture()
, который определяет размер текстуры, поэтому я решил обновить свои шейдеры.
В QtCreator, когда я использую функцию texture()
, вся строка подчеркнута красным цветом с подсказкой выражение слишком сложное , тогда как когда я использую texture2D()
(или texture1D()
или другое), строка не подчеркивается, как показано на следующих рисунках:
устарел GLSL : * 10 31 *
GLSL недекларируемый:
Это не мешает моим шейдерам работать как задумано Таким образом, здесь нет никаких реальных проблем, но это действительно беспокоит.
Я ничего не знаю о механизме проверки синтаксических ошибок больше, чем то, что написано на странице связанной документации, и я ищу способ изменить этот механизм, чтобы принять GLSL 3.3+. Я бы принял ответ, в котором говорилось бы, как заставить замолчать этот параметр c ложных срабатываний в качестве обходного пути или способ деактивировать проверку синтаксических ошибок для файлов .glsl, но я бы действительно хотел понять, как можно настроить механизм проверки ошибок принять современный глсл так же, как и для прежних.