Как получить ошибку компиляции от NVIDIA CG?
Как получить подробные ошибки из компиляции cg?
На данный момент мой код выглядит примерно так:
prog = cgCreateProgramFromFile(
context,
CG_SOURCE,
filename,
proifile,
null,null);
std::cout << cgGetErrorString(cgGetError());
Но все, что я получаю, это "Компиляция вернула ошибку".
Есть ли способ получить более сложное сообщение об ошибке, например, glGetShaderiv с GL_COMPILE_STATUS для шейдеров opengl?
Ничего не могу найти в ссылке, но это кажется довольно основным требованием.
Сначала я запускаю cgc на шейдерах без генерации кода для проверки ошибок, но это не все.
Благодарю.
1 ответ
В случае ошибки компиляции вы должны использовать cgGetLastListing(CGcontext) вместо cgGetError(void).
Из документации Cg для cgGetLastListing(CGcontext):
Каждый контекст Cg поддерживает строку с нулевым символом в конце, содержащую предупреждения и сообщения об ошибках, сгенерированные компилятором Cg, менеджерами состояний и т.п. cgGetLastListing позволяет приложениям и пользовательским менеджерам состояний запрашивать текст списка.
cgGetLastListing возвращает текущую строку списка для данного CGcontext. Когда происходит ошибка времени выполнения Cg, приложения могут использовать текст листинга из соответствующего контекста, чтобы предоставить пользователю подробную информацию об ошибке.