Есть ли способ получить в OpenGL все сгенерированные имена, относящиеся к определенному идентификатору?

#opengl

#opengl

Вопрос:

На данный момент мы отслеживаем генерацию объектов на уровне приложения, но я бы хотел отказаться от этого и делегировать его (если возможно).

Итак, мой вопрос в том, есть ли способ перечислить все объекты / идентификаторы opengl, сгенерированные в данный момент / созданные.

Например, я хотел бы посмотреть, сколько имен текстур создано в один конкретный момент.

Я ничего не смог найти, поэтому я предполагаю, что нет, но я хотел бы быть уверен в этом.

На мгновение (я клянусь) Я думал перебрать все возможные значения, а затем glIs* , но это, конечно, глупо

Wiki OpenGL_Object

Комментарии:

1. Может быть, обернуть glGen* / glDelete* функции макросами, которые отслеживают созданные объекты?

2. Это своего рода то, что мы делаем

3. @elect: Наличие отслеживания объектов на месте — это хорошо. Это означает (среди прочего), что будет намного проще переносить на современные API, такие как Vulkan или DX12

Ответ №1:

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