Как говорит Бахбар, glGetTexLevelParameteri
может использоваться для запроса GL_TEXTURE_WIDTH
.Тем не менее, я настоятельно рекомендую не использовать это в качестве общего метода.Во-первых, вы можете остановить конвейер с помощью вызовов glGet*
, поскольку драйвер должен заставить графический процессор завершить то, что он делает, выяснить, что вы спросили, и вернуть ответ.Результатом является огромный удар по производительности.
Так что вам действительно лучше управлять таким состоянием в своем собственном коде.Предположительно, у вас есть класс Sprite
(или структура или эквивалент) с дескриптором текстуры.Ничего не стоит выделить несколько байтов для отслеживания ширины и высоты, и это избавит вас от необходимости нажимать драйвер или графический процессор для получения информации.
Что касается glTeSubImage*
, то этополитическое решение относительно того, когда и как вы обновите текстуру.