12#include "RConfigure.h"
23#include "TGLIncludes.h"
28# include <FTGL/ftgl.h>
31# include "FTGLExtrdFont.h"
32# include "FTGLOutlineFont.h"
33# include "FTGLPolygonFont.h"
34# include "FTGLTextureFont.h"
35# include "FTGLPixmapFont.h"
36# include "FTGLBitmapFont.h"
53 fFont(0), fManager(0), fDepth(0),
63 fFont(
f), fManager(
mng), fDepth(0),
73 fFont(0), fManager(0), fDepth(0), fTrashCount(0)
117 return fFont->Ascender();
125 return -
fFont->Descender();
133 return fFont->LineHeight();
142 const char*
txt)
const
204 if (
gVirtualX->InheritsFrom(
"TGCocoa")) {
392 Warning(
"TGLFont::PreRender",
"Font mode undefined.");
433 delete it->first.GetFont();
447 if (
mode == out.GetMode() &&
fileID == out.GetFile() &&
size == out.GetSize())
487 Error(
"TGLFontManager::RegisterFont",
"invalid FTGL type");
493 out.CopyAttributes(
mf);
497 if (it->first.GetTrashCount() > 0) {
499 it->first.SetTrashCount(0);
502 out.CopyAttributes(it->first);
504 out.SetManager(
this);
518 if (os->String() ==
name)
526 Error(
"TGLFontManager::RegisterFont",
"unknown font name %s",
name);
542 assert(it->first.GetTrashCount() == 0);
543 it->first.IncTrashCount();
588 if (idx < 0) idx = 0;
597 if (
ds < min)
ds = min;
598 if (
ds > max)
ds = max;
617 return os->String().Data();
686 for (
Int_t i = 10; i <= 20; i+=2)
688 for (
Int_t i = 24; i <= 64; i+=4)
690 for (
Int_t i = 72; i <= 128; i+=8)
704 if ((*it)->IncTrashCount() > 10000)
709 delete (*it)->GetFont();
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint TPoint const char mode
R__EXTERN TSystem * gSystem
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
A FreeType GL font manager.
virtual ~TGLFontManager()
Destructor.
static TObjArray fgFontFileArray
void RegisterFont(Int_t size, Int_t file, TGLFont::EMode mode, TGLFont &out)
Provide font with given size, file and FTGL class.
static Int_t GetFontSize(Int_t ds)
Get availabe font size.
static void InitStatics()
Create a list of available font files and allowed font sizes.
static Int_t GetExtendedFontStartIndex()
static Bool_t fgStaticInitDone
static FontSizeVec_t fgFontSizeArray
static Int_t fgExtendedFontStart
static FontSizeVec_t * GetFontSizeArray()
Get valid font size vector.
std::list< constTGLFont * >::iterator FontList_i
void ClearFontTrash()
Delete FTFFont objects registered for destruction.
std::map< TGLFont, Int_t >::iterator FontMap_i
std::vector< Int_t > FontSizeVec_t
static const char * GetFontNameFromId(Int_t)
Get font name from TAttAxis font id.
static TObjArray * GetFontFileArray()
Get id to file name map.
void ReleaseFont(TGLFont &font)
Release font with given attributes.
A wrapper class for FTFont.
void MeasureBaseLineParams(Float_t &ascent, Float_t &descent, Float_t &line_height, const char *txt="Xj") const
Measure font's base-line parameters from the passed text.
Float_t GetDescent() const
Get font's descent. The returned value is positive.
virtual ~TGLFont()
Destructor.
Float_t GetAscent() const
Get font's ascent.
void SetManager(TGLFontManager *mng)
Float_t GetLineHeight() const
Get font's line-height.
const FTFont * GetFont() const
void RenderHelper(const Char *txt, Double_t x, Double_t y, Double_t angle, Double_t) const
mgn is simply ignored, because ROOT's TVirtualX TGX11 are complete mess with painting attributes.
TGLFontManager * fManager
void BBox(const char *txt, Float_t &llx, Float_t &lly, Float_t &llz, Float_t &urx, Float_t &ury, Float_t &urz) const
Get bounding box.
void Render(const char *txt, Double_t x, Double_t y, Double_t angle, Double_t mgn) const
virtual void PostRender() const
Reset GL state after FTFont rendering.
virtual void PreRender(Bool_t autoLight=kTRUE, Bool_t lightOn=kFALSE) const
Set-up GL state before FTFont rendering.
void CopyAttributes(const TGLFont &o)
Assignment operator.
Collectable string class.
static const TString & GetTTFFontDir()
Get the fonts directory in the installation. Static utility function.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
Int_t CeilNint(Double_t x)
Returns the nearest integer of TMath::Ceil(x).
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Binary search in an array of n values to locate value.