如何从cg编译中获取详细错误?
目前,我的代码类似于:
prog = cgCreateProgramFromFile(
context,
CG_SOURCE,
filename,
proifile,
null,null);
std::cout << cgGetErrorString(cgGetError());
但我得到的是“编译返回错误。”
有没有办法获得更复杂的错误信息,例如glGetShaderiv和GL_COMPILE_STATUS用于opengl着色器?
在参考文献中找不到任何内容,但似乎是一个相当基本的要求。
我首先在着色器上运行cgc,没有代码生成来检查错误但是没有捕获所有内容。
感谢。
答案 0 :(得分:2)
如果出现编译错误,则必须使用cgGetLastListing(CGcontext)而不是cgGetError(void)。
来自cgGetLastListing(CGcontext)的Cg文档:
每个Cg上下文维护一个 以NULL结尾的字符串包含 生成警告和错误消息 由Cg编译器,州经理和 类似。 cgGetLastListing允许 应用和自定义状态管理器 查询列表文本。
cgGetLastListing返回currrent 列出给定的字符串 CGContext上。当一个Cg运行时错误 发生,应用程序可以使用 列出相应的文本 上下文为用户提供 有关错误的详细信息。