Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



GLSELECTBUFFER(3G)                                                                        GLSELECTBUFFER(3G)



NAME
       glSelectBuffer - establish a buffer for selection mode values


C SPECIFICATION
       void glSelectBuffer( GLsizei size,
                            GLuint *buffer )


PARAMETERS
       size    Specifies the size of buffer.

       buffer  Returns the selection data.

DESCRIPTION
       glSelectBuffer  has  two  arguments:  buffer  is a pointer to an array of unsigned integers, and size
       indicates the size of the array.  buffer  returns  values  from  the  name  stack  (see  glInitNames,
       glLoadName, glPushName) when the rendering mode is GL_SELECT (see glRenderMode).  glSelectBuffer must
       be issued before selection mode is enabled, and it must not be issued while  the  rendering  mode  is
       GL_SELECT.

       A  programmer can use selection to determine which primitives are drawn into some region of a window.
       The region is defined by the current modelview and perspective matrices.

       In selection mode, no pixel fragments are produced from rasterization.  Instead, if a primitive or  a
       raster  position  intersects  the clipping volume defined by the viewing frustum and the user-defined
       clipping planes, this primitive causes a selection hit.  (With polygons, no hit occurs if the polygon
       is culled.)  When a change is made to the name stack, or when glRenderMode is called, a hit record is
       copied to buffer if any hits  have  occurred  since  the  last  such  event  (name  stack  change  or
       glRenderMode  call).  The hit record consists of the number of names in the name stack at the time of
       the event, followed by the minimum and maximum depth values of all vertices that hit since the previ-ous previous
       ous event, followed by the name stack contents, bottom name first.

       Depth  values  (which  are in the range [0,1]) are multiplied by 2^32 - 1, before being placed in the
       hit record.

       An internal index into buffer is reset to 0 whenever selection mode is  entered.   Each  time  a  hit
       record  is copied into buffer, the index is incremented to point to the cell just past the end of the
       block of names - that is, to the next available cell.  If the hit record is larger than the number of
       remaining  locations  in buffer, as much data as can fit is copied, and the overflow flag is set.  If
       the name stack is empty when a hit record is copied, that record consists of 0 followed by the  mini-mum minimum
       mum and maximum depth values.

       To  exit  selection  mode,  call  glRenderMode  with  an  argument  other  than  GL_SELECT.  Whenever
       glRenderMode is called while the render mode is GL_SELECT, it  returns  the  number  of  hit  records
       copied to buffer, resets the overflow flag and the selection buffer pointer, and initializes the name
       stack to be empty.  If the overflow bit was set when glRenderMode was called, a negative  hit  record
       count is returned.

NOTES
       The  contents  of  buffer  is  undefined  until  glRenderMode  is  called with an argument other than
       GL_SELECT.

       glBegin/glEnd primitives and calls to glRasterPos can result in hits.

ERRORS
       GL_INVALID_VALUE is generated if size is negative.

       GL_INVALID_OPERATION is generated if glSelectBuffer is called while the render mode is GL_SELECT,  or
       if glRenderMode is called with argument GL_SELECT before glSelectBuffer is called at least once.

       GL_INVALID_OPERATION  is generated if glSelectBuffer is executed between the execution of glBegin and
       the corresponding execution of glEnd.

ASSOCIATED GETS
       glGet with argument GL_NAME_STACK_DEPTH
       glGet with argument GL_SELECTION_BUFFER_SIZE
       glGetPointerv with argument GL_SELECTION_BUFFER_POINTER

SEE ALSO
       glFeedbackBuffer(3G), glInitNames(3G), glLoadName(3G), glPushName(3G), glRenderMode(3G)




                                                                                          GLSELECTBUFFER(3G)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту OpenGL.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.