Какой должна < смещение> и < размер> аргументы используют?
RESOLVED: Мы определяем новые типы, которые будут хорошо работать на 64-разрядных системах , аналогичных C-int «intptr_t». Новый тип «GLintptrARB» следует использовать вместо GLint, когда ожидается, что значения могут превышать 2 миллиарда. Новый тип «GLsizeiptrARB» следует использовать вместо GLsizei всякий раз, когда ожидается , который может превышать 2 миллиарда. Оба типа определены как целые числа, достаточно большие, чтобы содержать любое значение указателя. Как результат , они, естественно, масштабируются до большего числа бит в системах с 64-разрядными или даже более крупными указателями.
Смещения введенного в этом расширении набирается GLintptrARB, в соответствии с другими параметрами GL, который должен быть неотрицательным, но является арифметиком в природе (не UINT), и не являются размерами; для примера аргумент xoffset для TexSubImage * D имеет тип GLint. Буферные размеры печатаются GLsizeiptrARB.
Идея сделать эти типы неподписанными считалась, но была в конечном счете отклонена на том основании, что поддерживающие буферы большего размера , чем 2 ГБ, не считались важными для 32-разрядных систем.
Это не указатель. Это интегральный тип того же размера, что и указатель. –
@BenVoigt: Это ответ, а не комментарий :) – datenwolf
@ datenwolf: Нет, у меня не было объяснения, почему этот размер целого числа предпочтительнее этого. –