Compartilhar via


Função wglUseFontOutlinesW (wingdi.h)

A função wglUseFontOutlines cria um conjunto de listas de exibição, uma para cada glifo da fonte de estrutura de tópicos atualmente selecionada de um contexto de dispositivo, para uso com o contexto de renderização atual. As listas de exibição são usadas para desenhar caracteres 3D de fontes TrueType. Cada lista de exibição descreve uma estrutura de tópicos de glifo em coordenadas de ponto flutuante.

A execução de glifos começa com ofirstglifo da fonte do contexto do dispositivo especificado. O tamanho quadrado em da fonte, o tamanho da grade nocional da estrutura de tópicos da fonte original da qual a fonte é ajustada, é mapeado para 1,0 nas coordenadas x e y nas listas de exibição. O parâmetro de extrusão define a profundidade que a fonte tem na direção z.

Thelpgmfparameter retorna uma estrutura GLYPHMETRICSFLOAT que contém informações sobre o posicionamento e a orientação de cada glifo em uma célula de caractere.

Sintaxe

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

Parâmetros

unnamedParam1

Especifica o contexto do dispositivo com a fonte de estrutura de tópicos desejada. A fonte de estrutura de tópicos do hdc é usada para criar as listas de exibição no contexto de renderização atual.

unnamedParam2

Especifica o primeiro do conjunto de glifos que formam as listas de exibição da estrutura de tópicos da fonte.

unnamedParam3

Especifica o número de glifos no conjunto de glifos usados para formar as listas de exibição da estrutura de tópicos da fonte. A função wglUseFontOutlines cria listas de exibição de contagem , uma lista de exibição para cada glifo em um conjunto de glifos.

unnamedParam4

Especifica uma lista de exibição inicial.

unnamedParam5

Especifica o desvio máximo de acordes das estruturas de tópicos originais. Quando o desvio é zero, o desvio de acordes é equivalente a uma unidade de design da fonte original. O valor do desvio deve ser igual ou maior que 0.

unnamedParam6

Especifica o quanto uma fonte é extrudada na direção z negativa. O valor deve ser igual ou maior que 0. Quando a extrusão é 0, as listas de exibição não são extrudadas.

unnamedParam7

Especifica o formato, WGL_FONT_LINES ou WGL_FONT_POLYGONS, a ser usado nas listas de exibição. Quando o formato é WGL_FONT_LINES, a função wglUseFontOutlines cria fontes com segmentos de linha. Quando o formato é WGL_FONT_POLYGONS, wglUseFontOutlines cria fontes com polígonos.

unnamedParam8

Aponta para uma matriz de estruturas GLYPHMETRICSFLOAT de contagem que deve receber as métricas dos glifos. Quando o glpmf é NULL, nenhuma métrica de glifo é retornada.

Retornar valor

Quando a função for bem-sucedida, o valor retornado será TRUE.

Quando a função falha, o valor retornado é FALSE e nenhuma lista de exibição é gerada. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função wglUseFontOutlines define os glifos de uma fonte de estrutura de tópicos com listas de exibição no contexto de renderização atual. A função wglUseFontOutlines funciona apenas com fontes TrueType; Fontes stroke e raster não têm suporte.

Cada lista de exibição consiste em segmentos de linha ou polígonos e tem um número de identificação exclusivo começando com o número listBase .

A função wglUseFontOutlines aproxima os contornos do glifo subdividindo as curvas quadráticas B-spline da estrutura de tópicos em segmentos de linha, até que a distância entre a estrutura de tópicos e o ponto médio interpolado esteja dentro do valor especificado por desvio. Esse é o formato final usado quando o formato é WGL_FONT_LINES. Quando você especifica WGL_FONT_OUTLINES, as listas de exibição criadas não contêm normais; portanto, a iluminação não funciona corretamente. Para obter a iluminação correta das linhas, use WGL_FONT_POLYGONS e defina glPolygonMode( GL_FRONT, GL_LINE ). Quando você especifica o formato como WGL_FONT_POLYGONS os contornos são ainda mais mosaicados em triângulos separados, ventiladores de triângulo, tiras de triângulo ou tiras quadriláteras para criar a superfície de cada glifo. Com WGL_FONT_POLYGONS, as listas de exibição criadas chamam glFrontFace( GL_CW ) ou glFrontFace( GL_CCW ); portanto, o valor front-face atual pode ser alterado. Para obter a melhor aparência do texto com WGL_FONT_POLYGONS, abata as faces traseiras da seguinte maneira:

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

Uma estrutura GLYPHMETRICSFLOAT contém informações sobre o posicionamento e a orientação de cada glifo em uma célula de caracteres. O parâmetro glpmf é uma matriz de estruturas GLYPHMETRICSFLOAT que contém todo o conjunto de glifos para uma fonte. Cada lista de exibição termina com uma tradução especificada com os membros gmfCellIncX e gmfCellIncY da estrutura GLYPHMETRICSFLOAT correspondente. A tradução permite o desenho de caracteres sucessivos em sua direção natural com uma única chamada para glCallLists.

Nota Com o OpenGL para Windows, você não pode fazer chamadas GDI para um contexto de dispositivo quando um formato de pixel é armazenado em buffer duplo. Você pode contornar essa limitação usando wglUseFontOutlines e wglUseFontBitmaps, ao usar contextos de dispositivo com buffer duplo.
 

Exemplos

O exemplo de código a seguir mostra como desenhar texto usando 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.");

Observação

O cabeçalho wingdi.h define wglUseFontOutlines como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wingdi.h
Biblioteca Opengl32.lib
DLL Opengl32.dll

Confira também

GLIFOMETRICSFLOAT

OpenGL no Windows

Funções WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps