#opengl
#opengl
Вопрос:
На данный момент мы отслеживаем генерацию объектов на уровне приложения, но я бы хотел отказаться от этого и делегировать его (если возможно).
Итак, мой вопрос в том, есть ли способ перечислить все объекты / идентификаторы opengl, сгенерированные в данный момент / созданные.
Например, я хотел бы посмотреть, сколько имен текстур создано в один конкретный момент.
Я ничего не смог найти, поэтому я предполагаю, что нет, но я хотел бы быть уверен в этом.
На мгновение (я клянусь) Я думал перебрать все возможные значения, а затем glIs*
, но это, конечно, глупо
Комментарии:
1. Может быть, обернуть
glGen*
/glDelete*
функции макросами, которые отслеживают созданные объекты?2. Это своего рода то, что мы делаем
3. @elect: Наличие отслеживания объектов на месте — это хорошо. Это означает (среди прочего), что будет намного проще переносить на современные API, такие как Vulkan или DX12
Ответ №1:
Нет. Вы создали эти объекты, поэтому ожидается, что вы знаете, что это такое. glIs*
Восходит к тем дням, когда вы могли в одностороннем порядке объявить, что какое-то конкретное целочисленное значение было объектом, просто связав его. Поэтому было (теоретически) полезно спросить, использовалось ли это конкретное целое число уже в качестве объекта. Но в основном OpenGL, где объекты должны выделяться реализацией, glIs*
функции не особенно полезны.