今天我想尝试一个名为oglplus的 opengl 包装器。我可以使用该库,但我的 IDE 向我抛出大量错误消息。我用 QtCreator 和 EclipseCDT 进行了尝试。
基本上没有IDE能够看到各种类的成员/方法。所以我做了一些挖掘。例如,该类FragmentShader
至少有两个方法,称为 Source 和 Compile。
Eclipse 和 QtCreator 向我展示了以下源代码。
#if OGLPLUS_DOCUMENTATION_ONLY
/// Fragment shader wrapper
/**
* @see Shader
* @see Program
* @ingroup objects
*/
class FragmentShader
: public Shader
{ };
#elif GL_FRAGMENT_SHADER
typedef Specialized<
Shader,
OGLPLUS_CONST_ENUM_VALUE(ShaderType::Fragment),
SpecializedShaderInitializer
> FragmentShader;
#endif
所以好吧,可能每个着色器都完全相同,只是名称不同。
class Shader
: public ShaderOps
{
public:
Shader(ShaderType type);
Shader(ShaderType type, String description);
};
看来 ShaderOps 是重要的类。
我还在 ShaderOps 中找到了方法“Source”(它在公共块中)
const ShaderOps& Source(
const GLchar** srcs,
const GLint* lens,
int count
) const
{
assert(_name != 0);
OGLPLUS_GLFUNC(ShaderSource)(_name, count, srcs, lens);
return *this;
}
您知道为什么没有IDE 能够看到这些方法吗?源代码中有什么奇怪的地方吗?
是否有可能编写出如此不同以至于 IDE 无法解析的代码?
ps:我只用eclipse cdt和Qtcreator测试过。