general información de la fuente:
Lo que estamos buscando es cómo normalizar la colocación del texto a la "línea de base" o el "origen" (mismo concepto). Puede hacer esto con el ascenso (ascendente) o el descenso (descendente) dependiendo de su sistema de coordenadas.
http://www.freetype.org/freetype2/docs/tutorial/step2.html
que proporciona un buen conjunto de imágenes de ejemplo relacionados con la tipografía.
mapa de bits general información de la fuente:
Ahora, con respecto de una imagen de mapa de bits a la forma más fácil de asegurarse de que están todos alineados correctamente es tener la misma altura para la representación de mapa de bits de cada personaje en su hoja de sprites (los anchos deben ser diferentes, sin embargo, según el ancho real del personaje).Si haces esto, entonces simplemente puedes alinear todo en función de esa altura compartida.
Sin embargo, si está recortando el espacio en blanco excesivo alrededor de un carácter, necesitará almacenar los valores recortados en alguna estructura junto con el glifo para que pueda determinar el desplazamiento. Si una API hace esto por usted, es probable que tenga un método ascendente/descendente, origen/línea base o tipo de altura de línea donde puede obtener las dimensiones completas basadas en un carácter para que pueda hacer esto correctamente.
Api información específica
Editar: Basado en otras respuestas aquí están los enlaces pertinentes para su API pregunta específica:
GetTextMetrics:
http://msdn.microsoft.com/en-us/library/dd144941(v=vs.85).aspx
TEXTMETRIC struct:
http://msdn.microsoft.com/en-us/library/dd145132(v=vs.85).aspx
tmAscent o tmDescent se puede usar para ayudar a compensar su coord inate
¿Los mapas de bits de la fuente no tienen la misma altura? –
Buen punto, estoy haciendo un mejor ajuste en mis imágenes de mapa de bits, por lo que no siempre son del mismo tamaño ... – jack
¿Tal vez tenga algún tipo de tabla de compensación? Con el desplazamiento desde la línea base, puede usar la misma tabla para colocar también letras como 'g'. –