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_FEEDBACK 동안 glFeedbackBuffer가 호출되었거나 glFeedbackBuffer가 한 번 이상 호출되기 전에 인수 GL_FEEDBACK glRenderMode가 호출되었습니다. |
|
함수는 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[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|
DLL |
|