26 # include <FTGL/ftgl.h>
29 # include "FTGLExtrdFont.h"
30 # include "FTGLOutlineFont.h"
31 # include "FTGLPolygonFont.h"
32 # include "FTGLTextureFont.h"
33 # include "FTGLPixmapFont.h"
34 # include "FTGLBitmapFont.h"
37 #include <fontconfig/fontconfig.h>
41 #define FTGL_OUTLINE 2
42 #define FTGL_POLYGON 3
43 #define FTGL_EXTRUDE 4
44 #define FTGL_TEXTURE 5
103 glTranslatef(x, y, z);
110 Float_t llx, lly, llz, urx, ury, urz;
111 fGLTextFont->BBox(text, llx, lly, llz, urx, ury, urz);
116 case 1 : dx = 0 ;
break;
117 case 2 : dx = -urx/2;
break;
118 case 3 : dx = -urx ;
break;
121 case 1 : dy = 0 ;
break;
122 case 2 : dy = -ury/2;
break;
123 case 3 : dy = -ury ;
break;
125 glTranslatef(dx, dy, 0);
147 Float_t llx, lly, llz, urx, ury, urz;
148 fGLTextFont->BBox(text, llx, lly, llz, urx, ury, urz);
150 glVertex3f( 0, 0, 0); glVertex3f( urx, 0, 0);
151 glVertex3f( 0, 0, 0); glVertex3f( 0, ury, 0);
152 glVertex3f( 0, ury, 0); glVertex3f( urx, ury, 0);
153 glVertex3f( urx, ury, 0); glVertex3f( urx, 0, 0);
161 float& urx,
float& ury,
float& urz)
163 fGLTextFont->BBox(
string, llx, lly, llz, urx, ury, urz);
181 int fontid = fontnumber / 10;
183 FcPattern *pat, *match;
188 pat = FcPatternCreate ();
192 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freeserif");
193 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
194 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
197 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freeserif");
198 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
199 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
202 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freeserif");
203 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
204 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
207 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freesans");
208 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
209 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
212 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freesans");
213 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
214 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
218 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freesans");
219 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
220 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
223 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freesans");
224 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
225 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
228 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freemono");
229 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
230 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
233 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freemono");
234 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
235 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
238 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freemono");
239 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
240 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
243 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freemono");
244 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
245 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
248 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"symbol");
249 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
250 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
253 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"freeserif");
254 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
255 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
258 FcPatternAddString (pat, FC_FAMILY, (
const FcChar8*)
"dingbats");
259 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
260 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
264 FcConfigSubstitute (
NULL, pat, FcMatchPattern);
265 FcDefaultSubstitute (pat);
266 match = FcFontMatch (
NULL, pat, &result);
267 FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont);
268 FcPatternGetInteger (match, FC_INDEX, 0, &ttindex);
276 FcPatternDestroy (match);
277 FcPatternDestroy (pat);
280 Error(
"SetGLTextFont",
"Cannot set FTGL::FaceSize");
void PaintGLText(Double_t x, Double_t y, Double_t z, const char *text)
Draw text.
static void Color(const TGLColor &color)
Set color from TGLColor.
void PaintBBox(const char *text)
virtual Float_t GetTextSize() const
Return the text size.
void SetGLTextAngles(Double_t a1, Double_t a2, Double_t a3)
Set the text rotation angles.
virtual Color_t GetTextColor() const
Return the text color.
void Error(const char *location, const char *msgfmt,...)
void BBox(const char *string, float &llx, float &lly, float &llz, float &urx, float &ury, float &urz)
Calculate bounding-box for given string.
you should not use this method at all Int_t Int_t z
void SetGLTextFont(Font_t fontnumber)
Short_t fTextAlign
Text alignment.