我如何告诉 QtCreator 像接受 `texture*D()` 函数那样接受 `texture()` 函数?
How do I tell QtCreator to accept the `texture()` function like it did for the `texture*D()` functions?
我正在使用 QtCreator 4.12 作为通用 C++ IDE,它是从我的发行版的包管理器安装的,所以这是一个关于 QtCreator 使用的一般性问题,与 Qt 无关,也不是从源代码构建 QtCreator。
与任何 IDE 一样,QtCreator 会在编写代码时突出显示潜在错误。
在 .cpp 文件中,如果我写 int x = 0
并按回车键,0 将带有红色下划线,并且会有一个工具提示告诉我我忘记了行尾的 ;
。
in the QtCreator documentation 对此进行了描述,但我在该文档中找不到任何关于 GLSL 的内容。
我的实际项目是一个带有 openGl 游戏的 C++,我正在 QtCreator 中编辑我的 GLSL 着色器。
阅读 this 问题的答案,我了解到所有 texture*D()
函数自 openGL 3.3 以来已被弃用,必须替换为推断纹理的 texture()
尺寸,所以我决定更新我的着色器。
在 QtCreator 中,当我使用 texture()
函数时,整行都带有红色下划线,工具提示说 expression too complex,而当我使用texture2D()
(或texture1D()
或其他),该行没有下划线,如下图所示:
已弃用 GLSL:
未弃用的 GLSL:
这根本不会阻止我的着色器按设计工作,所以这里没有真正的问题,但它确实令人不安。
除了链接文档页面中所写的内容外,我对语法错误检查机制一无所知,我正在寻找一种方法来更改此机制以接受 GLSL 3.3+。我会接受一个答案,告诉我如何将这个特定的误报静音作为一种解决方法,或者一种方法来停用 .glsl 文件的语法错误检查,但我真的更愿意了解如何调整错误检查机制以接受现代glsl 和旧版 glsl 一样。
最后我写了一个错误报告:QTCREATORBUG-24068。
有一个补丁可以解决这个问题,我可以对其进行测试。它将合并到QT Creator的源码v4.14中。
我正在使用 QtCreator 4.12 作为通用 C++ IDE,它是从我的发行版的包管理器安装的,所以这是一个关于 QtCreator 使用的一般性问题,与 Qt 无关,也不是从源代码构建 QtCreator。
与任何 IDE 一样,QtCreator 会在编写代码时突出显示潜在错误。
在 .cpp 文件中,如果我写 int x = 0
并按回车键,0 将带有红色下划线,并且会有一个工具提示告诉我我忘记了行尾的 ;
。
in the QtCreator documentation 对此进行了描述,但我在该文档中找不到任何关于 GLSL 的内容。
我的实际项目是一个带有 openGl 游戏的 C++,我正在 QtCreator 中编辑我的 GLSL 着色器。
阅读 this 问题的答案,我了解到所有 texture*D()
函数自 openGL 3.3 以来已被弃用,必须替换为推断纹理的 texture()
尺寸,所以我决定更新我的着色器。
在 QtCreator 中,当我使用 texture()
函数时,整行都带有红色下划线,工具提示说 expression too complex,而当我使用texture2D()
(或texture1D()
或其他),该行没有下划线,如下图所示:
已弃用 GLSL:
未弃用的 GLSL:
这根本不会阻止我的着色器按设计工作,所以这里没有真正的问题,但它确实令人不安。
除了链接文档页面中所写的内容外,我对语法错误检查机制一无所知,我正在寻找一种方法来更改此机制以接受 GLSL 3.3+。我会接受一个答案,告诉我如何将这个特定的误报静音作为一种解决方法,或者一种方法来停用 .glsl 文件的语法错误检查,但我真的更愿意了解如何调整错误检查机制以接受现代glsl 和旧版 glsl 一样。
最后我写了一个错误报告:QTCREATORBUG-24068。
有一个补丁可以解决这个问题,我可以对其进行测试。它将合并到QT Creator的源码v4.14中。