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