다음을 통해 공유


wglUseFontOutlinesA 함수(wingdi.h)

wglUseFontOutlines 함수는 현재 렌더링 컨텍스트에 사용할 디바이스 컨텍스트의 현재 선택된 개요 글꼴의 각 문자 모양에 대해 하나씩 표시 목록 집합을 만듭니다. 표시 목록은 TrueType 글꼴의 3차원 문자를 그리는 데 사용됩니다. 각 표시 목록은 부동 소수점 좌표의 문자 모양 윤곽선을 설명합니다.

문자 모양 실행은 지정된 디바이스 컨텍스트의 글꼴에 대한firstglyph로 시작합니다. 글꼴이 장착된 원래 글꼴 윤곽선의 명목 눈금 크기인 글꼴의 em 제곱 크기는 표시 목록의 x 및 y 좌표에서 1.0으로 매핑됩니다. 돌출 매개 변수는 글꼴이 z 방향으로 얼마나 깊이 있는지를 설정합니다.

Thelpgmfparameter는 문자 셀에 있는 각 문자 모양의 배치 및 방향에 대한 정보를 포함하는 GLYPHMETRICSFLOAT 구조를 반환합니다.

구문

BOOL wglUseFontOutlinesA(
  HDC                 unnamedParam1,
  DWORD               unnamedParam2,
  DWORD               unnamedParam3,
  DWORD               unnamedParam4,
  FLOAT               unnamedParam5,
  FLOAT               unnamedParam6,
  int                 unnamedParam7,
  LPGLYPHMETRICSFLOAT unnamedParam8
);

매개 변수

unnamedParam1

원하는 윤곽선 글꼴을 사용하여 디바이스 컨텍스트를 지정합니다. hdc의 개요 글꼴은 현재 렌더링 컨텍스트에서 표시 목록을 만드는 데 사용됩니다.

unnamedParam2

글꼴 윤곽선 표시 목록을 구성하는 문자 모양 집합 중 첫 번째 를 지정합니다.

unnamedParam3

글꼴 윤곽선 표시 목록을 형성하는 데 사용되는 문자 모양 집합의 문자 모양 수를 지정합니다. wglUseFontOutlines 함수는 문자 모양 집합의 각 문자 모양에 대해 하나의 표시 목록인 개수 표시 목록을 만듭니다.

unnamedParam4

시작 표시 목록을 지정합니다.

unnamedParam5

원래 윤곽선의 최대 코드 편차를 지정합니다. 편차가 0이면 코드 편차는 원래 글꼴의 한 디자인 단위와 동일합니다. 편차 값은 0보다 크거나 같아야 합니다.

unnamedParam6

음의 z 방향으로 글꼴이 돌출되는 정도를 지정합니다. 값은 0보다 크거나 같아야 합니다. 압출이 0이면 표시 목록이 압출되지 않습니다.

unnamedParam7

표시 목록에서 사용할 형식(WGL_FONT_LINES 또는 WGL_FONT_POLYGONS)을 지정합니다. 형식이 WGL_FONT_LINES wglUseFontOutlines 함수는 선 세그먼트가 있는 글꼴을 만듭니다. 형식이 WGL_FONT_POLYGONS wglUseFontOutlines는 다각형으로 글꼴을 만듭니다.

unnamedParam8

문자 모양 메트릭을 수신하는 개 GLYPHMETRICSFLOAT 구조체의 배열을 가리킵니다. lpgmfNULL이면 문자 모양 메트릭이 반환되지 않습니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE 이고 표시 목록이 생성되지 않습니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

wglUseFontOutlines 함수는 현재 렌더링 컨텍스트에서 표시 목록이 있는 윤곽선 글꼴의 문자 모양을 정의합니다. wglUseFontOutlines 함수는 TrueType 글꼴에서만 작동합니다. 스트로크 및 래스터 글꼴은 지원되지 않습니다.

각 표시 목록은 선 세그먼트 또는 다각형으로 구성되며 listBase 번호로 시작하는 고유한 식별 번호가 있습니다.

wglUseFontOutlines 함수는 윤곽선과 보간된 중간점 사이의 거리가 편차로 지정된 값 내에 있을 때까지 윤곽선의 사분면 B-스플라인 곡선을 선 세그먼트로 세분화하여 문자 윤곽선을 근사화합니다. 형식이 WGL_FONT_LINES 때 사용되는 최종 형식 입니다. WGL_FONT_OUTLINES 지정하면 생성된 표시 목록에는 표준이 포함되지 않습니다. 따라서 조명이 제대로 작동하지 않습니다. 선의 올바른 조명을 얻으려면 WGL_FONT_POLYGONS 사용하고 glPolygonMode( GL_FRONT, GL_LINE )를 설정합니다. 형식을 WGL_FONT_POLYGONS 지정하면 윤곽선이 별도의 삼각형, 삼각형 선풍기, 삼각형 스트립 또는 사분면 스트립으로 추가로 테셀레이션되어 각 문자 모양의 표면을 만듭니다. WGL_FONT_POLYGONS 사용하여 만든 디스플레이 목록은 glFrontFace( GL_CW ) 또는 glFrontFace( GL_CCW )를 호출합니다. 따라서 현재 전면 값이 변경될 수 있습니다. WGL_FONT_POLYGONS 있는 텍스트의 최상의 모양을 위해 다음과 같이 뒷면을 컬링합니다.

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

GLYPHMETRICSFLOAT 구조체에는 문자 셀에 있는 각 문자 모양의 배치 및 방향에 대한 정보가 포함됩니다. lpgmf 매개 변수는 글꼴에 대한 전체 문자 모양 집합을 포함하는 GLYPHMETRICSFLOAT 구조체의 배열입니다. 각 표시 목록은 해당 GLYPHMETRICSFLOAT 구조체의 gmfCellIncXgmfCellIncY 멤버로 지정된 변환으로 끝납니다. 번역을 사용하면 glCallLists를 한 번 호출하여 연속 문자를 자연스러운 방향으로 그릴 수 있습니다.

참고 Windows용 OpenGL을 사용하면 픽셀 형식이 이중 버퍼링될 때 디바이스 컨텍스트에 GDI를 호출할 수 없습니다. 이중 버퍼링된 디바이스 컨텍스트를 사용할 때 wglUseFontOutlineswglUseFontBitmaps를 사용하여 이 제한을 해결할 수 있습니다.
 

예제

다음 코드 예제에서는 wglUseFontOutlines를 사용하여 텍스트를 그리는 방법을 보여 줍니다.

HDC    hdc;  // A TrueType font has already been selected  
HGLRC  hglrc; 
GLYPHMETRICSFLOAT agmf[256]; 
 
// Make hglrc the calling thread's current rendering context  
wglMakeCurrent(hdc, hglrc); 
 
// create display lists for glyphs 0 through 255 with 0.1 extrusion  
// and default deviation. The display list numbering starts at 1000  
// (it could be any number)  
wglUseFontOutlines(hdc, 0, 255, 1000, 0.0f, 0.1f,  
            WGL_FONT_POLYGONS, &agmf); 
 
// Set up transformation to draw the string  
glLoadIdentity(); 
glTranslate(0.0f, 0.0f, -5.0f) 
glScalef(2.0f, 2.0f, 2.0f); 
 
// Display a string  
glListBase(1000); // Indicates the start of display lists for the glyphs  
// Draw the characters in a string  
glCallLists(24, GL_UNSIGNED_BYTE, "Hello Windows OpenGL World.");

참고

wingdi.h 헤더는 wglUseFontOutlines를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h
라이브러리 Opengl32.lib
DLL Opengl32.dll

추가 정보

GLYPHMETRICSFLOAT

Windows의 OpenGL

WGL 함수

glCallLists

glListBase

glTexGen

wglUseFontBitmaps