2

如何从 cg 编译中获取详细错误?

目前我的代码是这样的:

prog = cgCreateProgramFromFile(
    context,
    CG_SOURCE,
    filename,
    proifile,
    null,null);
std::cout << cgGetErrorString(cgGetError());

但我得到的只是“编译返回错误”。

有没有办法获得更复杂的错误消息,比如 glGetShaderiv 和 GL_COMPILE_STATUS 用于 opengl 着色器?

在参考中找不到任何东西,但这似乎是一个相当基本的要求。

我首先在着色器上运行 cgc,没有代码生成来检查错误,但这并不能捕获所有内容。

谢谢。

4

1 回答 1

2

在编译错误的情况下,您必须使用 cgGetLastListing(CGcontext) 而不是 cgGetError(void)。

来自 cgGetLastListing(CGcontext) 的 Cg 文档:

每个 Cg 上下文维护一个以 NULL 结尾的字符串,其中包含由 Cg 编译器、状态管理器等生成的警告和错误消息。cgGetLastListing 允许应用程序和自定义状态管理器查询列表文本。

cgGetLastListing 返回给定 CGcontext 的当前列表字符串。当发生 Cg 运行时错误时,应用程序可以使用适当上下文中的列表文本向用户提供有关错误的详细信息。

于 2011-07-05T16:49:28.470 回答