Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

gl_fonts.C

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= gl_fonts.cc                                          Septiembre de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones para el manejo de letras TRUETYPE bajo OpenGL              =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #include <stdio.h>
00023 #include <string.h>
00024 #include "lista.cc"
00025 #include "toolkits/util/gl_fonts.h"
00026 
00027 #ifdef GLTT_ENABLED
00028 
00029 //===========================================================================
00030 //= Funciones de soporte (administracion de fuentes de letra truetype)      =
00031 //===========================================================================
00032 
00033 #if PLATAFORMA == SGI
00034 extern // OJO: En la SGI no se permiten templates dentro de librerias
00035 #endif
00036 LISTA <TTF_PAIR *> LAS_fuentes_truetype;
00037 
00038 FTFace * chequear_fuente(char *archivo)
00045 {
00046     int i;
00047 
00048     for ( i = 0; i < LAS_fuentes_truetype.tam(); i++ ) {
00049         if ( strcmp(LAS_fuentes_truetype[i]->nombre, archivo) == 0 ) {
00050             return LAS_fuentes_truetype[i]->f;
00051         }
00052     }
00053 
00054     TTF_PAIR *nueva = new TTF_PAIR;
00055 
00056     if ( !nueva ) {
00057         fprintf(stderr, "<gl_fonts> ERROR! No se puede cargar la letra \"%s\""
00058             "\n", archivo);
00059         return NULL;
00060     }
00061 
00062     nueva->f = new FTFace;
00063 
00064     if ( !nueva->f ) {
00065         fprintf(stderr, "<gl_fonts> ERROR! No se puede cargar la letra \"%s\""
00066             "\n", archivo);
00067         delete nueva;
00068         return NULL;
00069     }
00070 
00071     if( !nueva->f->open(archivo) ) {
00072         fprintf(stderr, "<gl_fonts> ERROR! No se puede cargar la letra \"%s\""
00073             "\n", archivo);
00074         delete nueva->f;
00075         delete nueva;
00076         return NULL;
00077     }
00078 
00079     LAS_fuentes_truetype.anx(nueva);
00080 
00081     return nueva->f;
00082 }
00083 
00084 void
00085 revisar_ASCII(char *cad)
00098 {
00099     int i;
00100 
00101     for ( i = 0; cad[i]; i++ ) {
00102         switch ( (BYTE)cad[i] ) {
00103           case 0x9D: 
00104             //cad[i] = 0xD1; 
00105             cad[i] = 'N'; 
00106             //cad[i] = 'ñ'; 
00107             break;
00108           default: break;
00109         }
00110     }
00111 }
00112 
00113 //===========================================================================
00114 //= CLASE CARACTER_GLTT                                                     =
00115 //===========================================================================
00116 
00117 CARACTER_GLTT::CARACTER_GLTT(FTGlyphVectorizer* vectorizer) :
00118     GLTTGlyphTriangulator(vectorizer)
00119 {
00120     triangles= 0;
00121     nTriangles= 0;
00122     count_them= GLTT_TRUE;
00123 }
00124 
00125 CARACTER_GLTT::~CARACTER_GLTT() {
00126     delete triangles;
00127     triangles= 0;
00128 }
00129 
00130 void
00131 CARACTER_GLTT::alloc() {
00132     delete triangles;
00133     triangles= new TRIANGULO_GLTT [ nTriangles + 1 ];
00134 }
00135 
00136 void
00137 CARACTER_GLTT::triangle( FTGlyphVectorizer::POINT* p1,
00138                               FTGlyphVectorizer::POINT* p2,
00139                               FTGlyphVectorizer::POINT* p3 ) 
00140 {
00141     if( count_them ) {
00142         ++nTriangles;
00143         return;
00144     }
00145     triangles[nTriangles].p1= p1;
00146     triangles[nTriangles].p2= p2;
00147     triangles[nTriangles].p3= p3;
00148     ++nTriangles;
00149 }
00150 
00151 #endif // GLTT_ENABLED
00152 
00153 //===========================================================================
00154 //= EOF                                                                     =
00155 //===========================================================================
00156 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.