Compartilhar via


Função wglUseFontOutlinesA (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 o thefirstglyph 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 está instalada, é 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 de GLYPHMETRICSFLOAT que contém informações sobre o posicionamento e a orientação de cada glifo em uma célula de caractere.

Sintaxe

BOOL wglUseFontOutlinesA(
  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 de 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 de 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 contagem listas de exibição, 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 de desvio deve ser igual ou maior que 0.

unnamedParam6

Especifica o quanto uma fonte é extrudada na direção de de z negativa. O valor deve ser igual ou maior que 0. Quando 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 formato é WGL_FONT_LINES, a função wglUseFontOutlines cria fontes com segmentos de linha. Quando formato é WGL_FONT_POLYGONS, wglUseFontOutlines cria fontes com polígonos.

unnamedParam8

Aponta para uma matriz de contagemestruturas de GLYPHMETRICSFLOAT que deve receber as métricas dos glifos. Quando de glólfo é NULL, nenhuma métrica de glifo é retornada.

Valor de retorno

Quando a função é bem-sucedida, o valor retornado é VERDADEIRO.

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.

Observações

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; Não há suporte para fontes de traço e raster.

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 listBase número.

A função wglUseFontOutlines aproxima contornos de glifo subdividindo as curvas quadráticas de 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 de 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 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, remova as faces traseiras da seguinte maneira:

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

Uma estrutura de GLYPHMETRICSFLOAT contém informações sobre o posicionamento e a orientação de cada glifo em uma célula de caractere. O parâmetro glólfo é uma matriz de estruturas de 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 de GLYPHMETRICSFLOAT correspondente. A tradução permite o desenho de caracteres sucessivos em sua direção natural com uma única chamada para glCallLists.

Observação Com 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.");

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wingdi.h
biblioteca Opengl32.lib
de DLL Opengl32.dll

Consulte também

GLIFOMETRICSFLOAT

OpenGL no Windows

Funções WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps