我如何告诉QtCreator接受`texture()`函数,就像对`texture * D()`函数所做的一样?

问题描述 投票:0回答:1

我使用QtCreator 4.12作为通用C ++ IDE,从发行版的程序包管理器中安装,因此这是一个有关QtCreator使用的通用问题,与Qt无关,也不是从源代码构建QtCreator。

与任何IDE一样,QtCreator会在编写代码时突出显示潜在的错误。在.cpp文件中,如果我写int x = 0并按Enter,则0将以红色下划线,并且会出现一个工具提示,告诉我我在行尾忘记了;

这已被描述为in the QtCreator documentation,但在该文档中找不到关于GLSL的任何内容。

我的实际项目是带有openGl游戏的C ++,我正在QtCreator中编辑我的GLSL着色器。

[阅读this问题的答案,我了解到自openGL 3.3起,所有texture*D()函数均已弃用,并且必须由推断纹理尺寸的texture()代替,所以我决定更新着色器。

在QtCreator中,当我使用texture()函数时,整行用红色加下划线,并且工具提示显示表达式过于复杂,而当我使用texture2D()(或texture1D()或其他方式时) ,则该行未带有下划线,如下图所示:

  • 不推荐使用的GLSL:legacy GLSL code

  • 不推荐使用的GLSL:modern GLSL code

这完全不会阻止我的着色器按设计工作,因此这里没有真正的问题,但这确实令人不安。

我对语法错误检查机制一无所知,而不是在链接的文档页面中所写的,我正在寻找一种更改此机制以接受GLSL 3.3+的方法。我会接受一个答案,告诉我如何将这种特定的误报静音,作为一种解决方法,或者是一种停用.glsl文件的语法错误检查的方法,但我真的更想了解如何调整错误检查机制以接受现代glsl,与旧版glsl一样。

glsl qt-creator
1个回答
0
投票
最后我写了一个错误报告:QTCREATORBUG-24068

有一个可以解决该问题的补丁,我可以对其进行测试。 GLSL突出显示很可能会在QtCreator的下一版本(4.13)中进行更新,以遵循GLSL规范。

© www.soinside.com 2019 - 2024. All rights reserved.