<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>FTGL: FTLibrary.cpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
<h1>FTLibrary.cpp</h1><a href="FTLibrary_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#include    "<a class="code" href="FTLibrary_8h.html">FTLibrary.h</a>"</span>
00002 
00003 
<a name="l00004"></a><a class="code" href="classFTLibrary.html#e0">00004</a> <span class="keyword">const</span> <a class="code" href="classFTLibrary.html">FTLibrary</a>&amp;  <a class="code" href="classFTLibrary.html#e0">FTLibrary::Instance</a>()
00005 {
00006     <span class="keyword">static</span> <a class="code" href="classFTLibrary.html">FTLibrary</a> ftlib;
00007     <span class="keywordflow">return</span> ftlib;
00008 }
00009 
00010 
<a name="l00011"></a><a class="code" href="classFTLibrary.html#a2">00011</a> <a class="code" href="classFTLibrary.html#a2">FTLibrary::~FTLibrary</a>()
00012 {
00013     <span class="keywordflow">if</span>( library != 0)
00014     {
00015         FT_Done_FreeType( *library);
00016 
00017         <span class="keyword">delete</span> library;
00018         library= 0;
00019     }
00020 
00021 <span class="comment">//  if( manager != 0)</span>
00022 <span class="comment">//  {</span>
00023 <span class="comment">//      FTC_Manager_Done( manager );</span>
00024 <span class="comment">//</span>
00025 <span class="comment">//      delete manager;</span>
00026 <span class="comment">//      manager= 0;</span>
00027 <span class="comment">//  }</span>
00028 }
00029 
00030 
00031 FTLibrary::FTLibrary()
00032 :   library(0),
00033     err(0)
00034 {
00035     Initialise();
00036 }
00037 
00038 
00039 <span class="keywordtype">bool</span> FTLibrary::Initialise()
00040 {
00041     <span class="keywordflow">if</span>( library != 0)
00042         <span class="keywordflow">return</span> <span class="keyword">true</span>;
00043 
00044     library = <span class="keyword">new</span> FT_Library;
00045     
00046     err = FT_Init_FreeType( library);
00047     <span class="keywordflow">if</span>( err)
00048     {
00049         <span class="keyword">delete</span> library;
00050         library = 0;
00051         <span class="keywordflow">return</span> <span class="keyword">false</span>;
00052     }
00053     
00054 <span class="comment">//  FTC_Manager* manager;</span>
00055 <span class="comment">//  </span>
00056 <span class="comment">//  if( FTC_Manager_New( lib, 0, 0, 0, my_face_requester, 0, manager )</span>
00057 <span class="comment">//  {</span>
00058 <span class="comment">//      delete manager;</span>
00059 <span class="comment">//      manager= 0;</span>
00060 <span class="comment">//      return false;</span>
00061 <span class="comment">//  }</span>
00062 
00063     <span class="keywordflow">return</span> <span class="keyword">true</span>;
00064 }
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Dec 5 22:24:06 2004 for FTGL by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.6 </small></address>
</body>
</html>
