glSelectBuffer 함수

glSelectBuffer 함수는 선택 모드 값에 대한 버퍼를 설정합니다.

구문

void WINAPI glSelectBuffer(
   GLsizei size,
   GLuint  *buffer
);

매개 변수

size

버퍼의 크기입니다.

버퍼

선택 데이터를 반환합니다.

반환 값

이 함수는 값을 반환하지 않습니다.

오류 코드

glGetError 함수에서 다음 오류 코드를 검색할 수 있습니다.

Name 의미
GL_INVALID_VALUE
크기 가 음수였습니다.
GL_INVALID_OPERATION
렌더링 모드가 GL_SELECT 동안 함수가 호출되었습니다.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

glSelectBuffer 함수에는 두 개의 매개 변수가 있습니다. 버퍼는 부호 없는 정수 배열에 대한 포인터이고 크기는 배열의 크기를 나타냅니다. 버퍼 매개 변수는 렌더링 모드가 GL_SELECT 때 이름 스택(glInitNames, glLoadName, glPushName 참조)의 값을 반환합니다(glRenderMode 참조). 선택 모드를 사용하도록 설정하기 전에 glSelectBuffer 함수를 실행해야 하며 렌더링 모드가 GL_SELECT 동안 실행되지 않아야 합니다.

선택 영역은 프로그래머가 창의 일부 영역에 그려지는 기본 형식을 결정하는 데 사용됩니다. 지역은 현재 modelview 및 큐브 뷰 행렬에 의해 정의됩니다.

선택 모드에서는 래스터화에서 픽셀 조각이 생성되지 않습니다. 대신 기본 형식이 보기 frustum 및 사용자 정의 클리핑 평면에 의해 정의된 클립 볼륨을 교차하는 경우 이 기본 형식은 선택 적중을 발생합니다. 다각형을 사용하면 다각형이 컬링되면 적중이 발생하지 않습니다. 이름 스택을 변경하거나 glRenderMode가 호출되면 마지막 이벤트(이름 스택 변경 또는 glRenderMode 호출) 이후 적중이 발생한 경우 적중 레코드가 버퍼에 복사됩니다. 적중 레코드는 이벤트 당시 이름 스택의 이름 수로 구성됩니다. 이전 이벤트 이후 적중된 모든 꼭짓점의 최소 및 최대 깊이 값이 뒤따릅니다. 뒤에 이름 스택 내용, 맨 아래 이름이 먼저 표시됩니다.

가장 큰 부호 없는 정수 값이 창 좌표 깊이 1.0에 해당하고 0이 창 좌표 깊이 0.0에 해당하도록 반환된 깊이 값이 매핑됩니다.

선택 모드를 입력할 때마다 버퍼 의 내부 인덱스가 0으로 다시 설정됩니다. 적중 레코드가 버퍼에 복사될 때마다 인덱스가 증가하여 이름 블록의 끝을 지나 사용 가능한 다음 셀을 가리킵니다. 적중 레코드가 버퍼의 나머지 위치 수보다 크면 적합할 수 있는 만큼의 데이터가 복사되고 오버플로 플래그가 설정됩니다. 적중 레코드를 복사할 때 이름 스택이 비어 있으면 해당 레코드는 0으로 구성되고 최소 및 최대 깊이 값이 뒤따릅니다.

선택 모드는 GL_SELECT 이외의 인수로 glRenderMode 를 호출하여 종료됩니다. 렌더링 모드가 GL_SELECT 동안 glRenderMode 가 호출될 때마다 버퍼에 복사된 적중 레코드 수를 반환하고 오버플로 플래그와 선택 버퍼 포인터를 다시 설정하며 이름 스택을 비워 두도록 초기화합니다. glRenderMode가 호출되었을 때 오버플로 비트가 설정된 경우 음수 적중 레코드 수가 반환됩니다.

버퍼의 내용은 glRenderMode가 GL_SELECT 이외의 인수로 호출될 때까지 정의되지 않습니다.

glBegin/glEnd 기본 형식 및 glRasterPos에 대한 호출은 적중을 초래할 수 있습니다.

다음 함수는 glSelectBuffer와 관련된 정보를 검색합니다.

인수가 GL_NAME_STACK_DEPTH glGet

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Gl.h
라이브러리
Opengl32.lib
DLL
Opengl32.dll

추가 정보

glBegin

glEnd

glFeedbackBuffer

glInitNames

glLoadName

glPushName

glRenderMode