Ошибки при создании объектов OpenGL - PullRequest
2 голосов
/ 23 сентября 2019

В разделе «Ошибки» в официальных документах указано «<...> если возникает ошибка» для определенных функций, таких как glCreateShader или glCreateProgram.Означает ли это только перечисленные возможные ошибки, или это также включает в себя любые не перечисленные внутренние ошибки?Я предполагаю, что это последнее, так как документы говорят: «Эта функция возвращает 0, если при создании программного объекта возникает ошибка» для glCreateProgram, но в списке нет фактических возможных ошибок.Если это правда, могу ли я узнать что-нибудь о потенциальной ошибке в случае ее возникновения?

1 Ответ

2 голосов
/ 23 сентября 2019

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

Например, может выдаваться GL_OUT_OF_MEMORYлюбой функцией.Даже функции, которые логически не выделяют память, могут выдавать эту ошибку, так как нехватка памяти может происходить асинхронно.Таким образом, драйвер будет сообщать о состоянии OOM только во время любого вызова OpenGL, произошедшего после обнаружения нехватки памяти.

Поскольку все функции OpenGL могут выдавать эти ошибки, они не печатаются в разделе ошибок каждой функции.уменьшить избыточность.Но поведение функции в случае ошибки по-прежнему необходимо указывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...