glFeedbackBuffer 함수

glFeedbackBuffer 함수는 피드백 모드를 제어합니다.

구문

void WINAPI glFeedbackBuffer(
   GLsizei size,
   GLenum  type,
   GLfloat *buffer
);

매개 변수

size

버퍼에 쓸 수 있는 최대 값 수입니다.

type

각 꼭짓점에서 반환될 정보를 설명하는 기호 상수입니다. GL_2D, GL_3D, GL_3D_COLOR, GL_3D_COLOR_TEXTURE 및 GL_4D_COLOR_TEXTURE 기호 상수가 허용됩니다.

버퍼

피드백 데이터를 반환합니다.

반환 값

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

오류 코드

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

Name 의미
GL_INVALID_ENUM
형식 이 허용되는 값이 아닙니다.
GL_INVALID_ENUM
크기 가 음수였습니다.
GL_INVALID_OPERATION
렌더링 모드가 GL_FEEDBACK 동안 glFeedbackBuffer가 호출되었거나 glFeedbackBuffer가 한 번 이상 호출되기 전에 인수 GL_FEEDBACK glRenderMode가 호출되었습니다.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

glFeedbackBuffer 함수는 피드백을 제어합니다. 선택과 같은 피드백은 OpenGL 모드입니다. 모드는 GL_FEEDBACK glRenderMode 를 호출하여 선택됩니다. OpenGL이 피드백 모드에 있으면 래스터화에 의해 픽셀이 생성되지 않습니다. 대신 래스터화되었을 기본 형식에 대한 정보는 OpenGL을 사용하여 애플리케이션에 다시 공급됩니다.

glFeedbackBuffer 함수에는 다음과 같은 세 가지 인수가 있습니다.

  • buffer 는 피드백 정보가 배치되는 부동 소수점 값 배열에 대한 포인터입니다.
  • size 는 배열의 크기를 나타냅니다.
  • type 은 각 꼭짓점에서 다시 공급되는 정보를 설명하는 기호 상수입니다.

피드백 모드를 사용하도록 설정하기 전에 glFeedbackBuffer 를 발급해야 합니다(인수 GL_FEEDBACK glRenderMode 를 호출). 피드백 버퍼를 설정하지 않고 GL_FEEDBACK 설정하거나 OpenGL이 피드백 모드에 있는 동안 glFeedbackBuffer 를 호출하는 것은 오류입니다.

GL_FEEDBACK 이외의 매개 변수 값으로 glRenderMode 를 호출하여 OpenGL을 피드백 모드에서 제외합니다. OpenGL이 피드백 모드에 있는 동안 이 작업을 수행하면 glRenderMode 는 피드백 배열에 배치된 항목 수를 반환합니다. 반환된 값은 크기를 초과하지 않습니다. 피드백 데이터에 버퍼에서 사용할 수 있는 것보다 더 많은 공간이 필요한 경우 glRenderMode 는 음수 값을 반환합니다.

피드백 모드에서 래스터화되는 각 기본 형식은 피드백 배열에 복사되는 값 블록을 생성합니다. 이렇게 하면 항목 수가 최대값을 초과하면 glFeedbackBuffer 는 배열을 채우기 위해 블록을 부분적으로 작성하고(공간이 남아 있는 경우) 오버플로 플래그를 설정합니다. 각 블록은 기본 형식을 나타내는 코드와 기본 형식의 꼭짓점 및 관련 데이터를 설명하는 값으로 시작합니다. glFeedbackBuffer 함수는 비트맵 및 픽셀 사각형에 대한 항목도 작성합니다. 다각형 컬링 및 다각형 의 glPolygonMode 해석이 수행된 후에 피드백이 발생하므로 컬링된 다각형은 피드백 버퍼에 반환되지 않습니다. OpenGL 구현이 이 분해를 수행하여 다각형을 렌더링하는 경우 가장자리가 3개 이상인 다각형이 삼각형으로 분할된 후에도 발생할 수 있습니다.

glPassThrough를 사용하여 피드백 버퍼에 마커를 삽입할 수 있습니다.

다음은 피드백 버퍼에 기록된 값 블록에 대한 문법입니다. 각 기본 형식은 고유한 식별 값과 몇 가지 꼭짓점으로 표시됩니다. 다각형 항목에는 다음 꼭짓점 수를 나타내는 정수 값이 포함됩니다. 꼭짓점은 형식에 따라 결정되는 부동 소수점 값의 수로 다시 공급 됩니다. 색은 RGBA 모드에서 4개의 값으로, 색 인덱스 모드에서는 1개의 값으로 다시 공급됩니다.

feedbackList < feedbackItem feedbackList | feedbackItem

feedbackItem < point | lineSegment | polygon | bitmap | pixelRectangle | passThru

점 < GL_POINT_TOKEN 꼭짓점

lineSegment < GL_LINE_TOKEN 꼭짓점 | 꼭짓점 GL_LINE_RESET_TOKEN

다각형 < GL_POLYGON_TOKEN n polySpec

polySpec < polySpec 꼭짓점 | 꼭짓점 꼭짓점 꼭짓점

비트맵 < GL_BITMAP_TOKEN 꼭짓점

pixelRectangle < GL_DRAW_PIXEL_TOKEN 꼭짓점 | 꼭짓점 GL_COPY_PIXEL_TOKEN

passthru < GL_PASS_THROUGH_TOKEN 값

vertex < 2d | 3d | 3dColor | 3dColorTexture | 4dColorTexture

2d < 값 값

3d < 값 값 값

3dColor < 값 값 값 색

3dColorTexture < 값 값 값 색 텍스

4dColorTexture < 값 값 값 값 색 텍스

color < rgba | index

rgba < 값 값 값 값

인덱스 < 값

tex < 값 값 값

value 매개 변수는 부동 소수점 숫자이고 n은 다각형의 꼭짓점 수를 제공하는 부동 소수점 정수입니다. 다음은 GL_POINT_TOKEN, GL_LINE_TOKEN, GL_LINE_RESET_TOKEN, GL_POLYGON_TOKEN, GL_BITMAP_TOKEN, GL_DRAW_PIXEL_TOKEN, GL_COPY_PIXEL_TOKEN 및 GL_PASS_THROUGH_TOKEN 기호화된 부동 소수점 상수입니다. 줄 스티플 패턴이 다시 설정되면 GL_LINE_RESET_TOKEN 반환됩니다. 꼭짓점으로 반환되는 데이터는 피드백 유형에 따라 달라집니다.

다음 표에서는 형식 과 꼭짓점당 값 수 사이의 대응을 제공합니다. k 는 색 인덱스 모드에서 1이고 RGBA 모드에서는 4입니다.

형식 좌표 색상 질감 총 값 수
GL_2D x, y 2
GL_3D x, y, z 3
GL_3D_COLOR x, y, z k 3 + k
GL_3D_COLOR_TEXTURE x, y, z, k 4 7 + k
GL_4D_COLOR_TEXTURE x, y, z, w k 4 8 + k

피드백 꼭짓점 좌표는 클립 좌표에 있는 w를 제외한 창 좌표에 있습니다. 조명을 사용하도록 설정하면 피드백 색이 밝아집니다. 텍스처 좌표 생성을 사용하는 경우 피드백 텍스처 좌표가 생성됩니다. 항상 텍스처 행렬에 의해 변환됩니다.

디스플레이 목록에서 사용할 때 glFeedbackBuffer 함수는 표시 목록으로 컴파일되지 않고 즉시 실행됩니다.

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

인수가 GL_RENDER_MODE glGet

요구 사항

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

추가 정보

glBegin

glEnd

glGet

glLineStipple

glPassThrough

glPolygonMode

glRenderMode

glSelectBuffer