OpenGL Selection Buffer - Использовать указатель на объект вместо беззнакового Int? - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь использовать метод glSelectBuffer (размер GLsizei, буфер GLuint *) для выбора объектов несколько иным способом, чем, на мой взгляд, поддерживается в C ++ для OpenGL 3.1.Выделение работает отлично, если я делаю все, как указано онлайн.

Вместо GLuint *, я бы хотел хранить указатели на мои графические объекты в буфере выбора.Это позволит мне легко испускать сигналы на основе выбора, которые содержат указатель на этот объект.Кажется, что это будет работать нормально, когда размер GLuint и размер указателя на мой объект (x86) совпадают, но кажется, что он сломается, когда они не (x64.)

Я могувыполнить это с помощью другого шага, но я бы предпочел не выравнивать идентификатор выбора -> указатель объекта, если OpenGL будет поддерживать этот механизм выбора с другими типами данных.

Возможно ли то, что я пытаюсь сделать, используя механизм выбора OpenGL?(Желательно в OpenGL 3.1, но будущие версии также применимы.)

Имеет ли смысл мой вопрос?Я что-то упустил в своем объяснении?До сих пор я пытался заставить буфер выбора занимать длинные, а не целые, и я получаю ошибку проверки типа (как и ожидалось). Кроме того, я не видел перегруженных методов для glSelectBuffer (), что заставляет меня думать, что этот подходэто невозможно.Я посмотрел на gl.h, чтобы увидеть typedefs и больше понять типы OpenGL.Я также просмотрел похожие вопросы по переполнению стека - прошу прощения, если тот же вопрос был задан, и я пропустил его.

1 Ответ

4 голосов
/ 18 октября 2011

Предпочтительно в OpenGL 3.1, но возможны и будущие версии

Режим выбора был удален из ядра OpenGL-3 и более поздних версий. OpenGL предназначен для рисования, а режим выбора в любом случае используется для возврата в программный режим, т. Е. Не ускоряется HW.

Только мое предложение: не используйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...