Приравнивается:
GLsizei EQUATE(ULONG)
GLuint EQUATE(ULONG)
Прототип:
glSelectBuffer( GLsizei , *GLuint ),PASCAL
Данные:
mySelectionBuffer &STRING
myBufferPointer &ULONG
curSelection ULONG
Init:
mySelectionBuffer &= NEW(STRING(30))
myBufferPointer &= ADDRESS(mySelectionBuffer)
Использование:
![glSelectBuffer(Size of Buffer Array, Pointer to Buffer)
glSelectBuffer(30, myBufferPointer)
Затем для захвата данных:
...
LOOP i# = 1 TO numHits ![result of glRenderMode(GL_RENDER)]
curSelection = ADDRESS(mySelectionBuffer) + (SIZE(curSelection) * i#)
.
![Process selection data as needed]
...
Shutdown:
DISPOSE(mySelectionBuffer)
Некоторые, вероятно, будут утверждать, что это был не лучший способ решения проблемы, однако, в конце концов, это было единственное решение, с которым я столкнулся, которое не только компилировалось, но и впоследствии не приводило к сбоям на стороне OpenGL после прохождения. данные обратно к нему. Я бы предпочел предпочитать , чтобы не играть с памятью для выполнения моей задачи, но кажется, что при работе с функциями в других API это просто неизбежно ...