Как получить ошибку компиляции от NVIDIA CG? - PullRequest
2 голосов
/ 18 июня 2011

Как получить подробные ошибки из компиляции cg?

На данный момент мой код выглядит примерно так:

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

Но все, что я получаю, это "Компиляция вернула ошибку."

Есть ли способ получить более сложное сообщение об ошибке, например, glGetShaderiv с GL_COMPILE_STATUS для шейдеров opengl?

Не могу найти что-либо в справочнике, но это кажется довольно основным требованием.

Сначала я запускаю cgc на шейдерах без генерации кода для проверки на наличие ошибок, но это не все.

Спасибо.

1 Ответ

2 голосов
/ 05 июля 2011

В случае ошибки компиляции вы должны использовать cgGetLastListing (CGcontext) вместо cgGetError (void).

Из документации Cg для cgGetLastListing (CGcontext):

Каждый контекст Cg поддерживает NULL-концевая строка, содержащая генерируются предупреждения и сообщения об ошибках компилятором Cg, государственными менеджерами и подобное, аналогичное, похожее. cgGetLastListing позволяет приложения и пользовательские менеджеры состояний запросить текст списка.

cgGetLastListing возвращает ток список строк для данного CGcontext. Когда ошибка выполнения Cg происходит, приложения могут использовать перечисление текста из соответствующего контекст, чтобы предоставить пользователю подробная информация об ошибке.

...