Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 695723f45a219d8b1253352d6e8b7d4a > files > 30

ftgl-docs-2.1.3-0.4.rc5.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>FTGL: FTGlyph.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FTGL&#160;<span id="projectnumber">2.1.3~rc5</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>FTGlyph.h</h1>  </div>
</div>
<div class="contents">
<a href="FTGlyph_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * FTGL - OpenGL font library</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (c) 2001-2004 Henry Maddocks &lt;ftgl@opengl.geek.nz&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> * Copyright (c) 2008 Sam Hocevar &lt;sam@zoy.org&gt;</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright (c) 2008 Sean Morrison &lt;learner@brlcad.org&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining</span>
<a name="l00009"></a>00009 <span class="comment"> * a copy of this software and associated documentation files (the</span>
<a name="l00010"></a>00010 <span class="comment"> * &quot;Software&quot;), to deal in the Software without restriction, including</span>
<a name="l00011"></a>00011 <span class="comment"> * without limitation the rights to use, copy, modify, merge, publish,</span>
<a name="l00012"></a>00012 <span class="comment"> * distribute, sublicense, and/or sell copies of the Software, and to</span>
<a name="l00013"></a>00013 <span class="comment"> * permit persons to whom the Software is furnished to do so, subject to</span>
<a name="l00014"></a>00014 <span class="comment"> * the following conditions:</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * The above copyright notice and this permission notice shall be</span>
<a name="l00017"></a>00017 <span class="comment"> * included in all copies or substantial portions of the Software.</span>
<a name="l00018"></a>00018 <span class="comment"> *</span>
<a name="l00019"></a>00019 <span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,</span>
<a name="l00020"></a>00020 <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
<a name="l00021"></a>00021 <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span>
<a name="l00022"></a>00022 <span class="comment"> * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY</span>
<a name="l00023"></a>00023 <span class="comment"> * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,</span>
<a name="l00024"></a>00024 <span class="comment"> * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE</span>
<a name="l00025"></a>00025 <span class="comment"> * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef __ftgl__</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#   warning This header is deprecated. Please use &lt;FTGL/ftgl.h&gt; from now.</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#   include &lt;FTGL/ftgl.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __FTGlyph__</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __FTGlyph__</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="keyword">class </span>FTGlyphImpl;
<a name="l00039"></a>00039 
<a name="l00050"></a><a class="code" href="classFTGlyph.html">00050</a> <span class="keyword">class </span><a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <a class="code" href="classFTGlyph.html" title="FTGlyph is the base class for FTGL glyphs.">FTGlyph</a>
<a name="l00051"></a>00051 {
<a name="l00052"></a>00052     <span class="keyword">protected</span>:
<a name="l00058"></a>00058         <a class="code" href="classFTGlyph.html" title="FTGlyph is the base class for FTGL glyphs.">FTGlyph</a>(FT_GlyphSlot glyph);
<a name="l00059"></a>00059 
<a name="l00060"></a>00060     <span class="keyword">private</span>:
<a name="l00067"></a>00067         <a class="code" href="classFTGlyph.html" title="FTGlyph is the base class for FTGL glyphs.">FTGlyph</a>(FTGlyphImpl *pImpl);
<a name="l00068"></a>00068 
<a name="l00069"></a>00069         <span class="comment">/* Allow our internal subclasses to access the private constructor */</span>
<a name="l00070"></a><a class="code" href="classFTGlyph.html#aa3f0c28a7cfbfa0e896973476f7ed49d">00070</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTBitmapGlyph.html" title="FTBitmapGlyph is a specialisation of FTGlyph for creating bitmaps.">FTBitmapGlyph</a>;
<a name="l00071"></a><a class="code" href="classFTGlyph.html#a385e2288042fd77f037a715e7801b451">00071</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTBufferGlyph.html" title="FTBufferGlyph is a specialisation of FTGlyph for memory buffer rendering.">FTBufferGlyph</a>;
<a name="l00072"></a><a class="code" href="classFTGlyph.html#a43bdcab05c1db93d9474fee8176c1fb0">00072</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTExtrudeGlyph.html" title="FTExtrudeGlyph is a specialisation of FTGlyph for creating tessellated extruded polygon glyphs...">FTExtrudeGlyph</a>;
<a name="l00073"></a><a class="code" href="classFTGlyph.html#accb6ff0274a52a67e706edda49d6a201">00073</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTOutlineGlyph.html" title="FTOutlineGlyph is a specialisation of FTGlyph for creating outlines.">FTOutlineGlyph</a>;
<a name="l00074"></a><a class="code" href="classFTGlyph.html#ab141fccf761e39b9e4bec64cda0507a7">00074</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTPixmapGlyph.html" title="FTPixmapGlyph is a specialisation of FTGlyph for creating pixmaps.">FTPixmapGlyph</a>;
<a name="l00075"></a><a class="code" href="classFTGlyph.html#a0e33f7bc34e1097f8f9adcb6252d1bc0">00075</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTPolygonGlyph.html" title="FTPolygonGlyph is a specialisation of FTGlyph for creating tessellated polygon glyphs.">FTPolygonGlyph</a>;
<a name="l00076"></a><a class="code" href="classFTGlyph.html#a01c2ee1e01ccd33e4f1f26f2478a74a0">00076</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFTTextureGlyph.html" title="FTTextureGlyph is a specialisation of FTGlyph for creating texture glyphs.">FTTextureGlyph</a>;
<a name="l00077"></a>00077 
<a name="l00078"></a>00078     <span class="keyword">public</span>:
<a name="l00082"></a>00082         <span class="keyword">virtual</span> <a class="code" href="classFTGlyph.html#ad93a5124ddd9fe408e07f5054ab92452" title="Destructor.">~FTGlyph</a>();
<a name="l00083"></a>00083 
<a name="l00091"></a>00091         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classFTPoint.html" title="FTPoint class is a basic 3-dimensional point or vector.">FTPoint</a>&amp; <a class="code" href="classFTTextureGlyph.html#a23d91684651a5cc913e6232c60dc58f4" title="Render this glyph at the current pen position.">Render</a>(<span class="keyword">const</span> <a class="code" href="classFTPoint.html" title="FTPoint class is a basic 3-dimensional point or vector.">FTPoint</a>&amp; pen, <span class="keywordtype">int</span> renderMode) = 0;
<a name="l00092"></a>00092 
<a name="l00098"></a>00098         <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classFTGlyph.html#a42fdc90fefe9d5550aca4339f88fbc5f" title="Return the advance width for this glyph.">Advance</a>() <span class="keyword">const</span>;
<a name="l00099"></a>00099 
<a name="l00105"></a>00105         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classFTBBox.html" title="FTBBox is a convenience class for handling bounding boxes.">FTBBox</a>&amp; <a class="code" href="classFTGlyph.html#aa165c4c7de25de0a989753f56a3bc252" title="Return the bounding box for this glyph.">BBox</a>() <span class="keyword">const</span>;
<a name="l00106"></a>00106 
<a name="l00112"></a>00112         <span class="keyword">virtual</span> FT_Error <a class="code" href="classFTGlyph.html#a14fd6a0dc8b6e0e04a769e2e239b104b" title="Queries for errors.">Error</a>() <span class="keyword">const</span>;
<a name="l00113"></a>00113 
<a name="l00114"></a>00114     <span class="keyword">private</span>:
<a name="l00118"></a>00118         FTGlyphImpl *impl;
<a name="l00119"></a>00119 };
<a name="l00120"></a>00120 
<a name="l00121"></a>00121 <span class="preprocessor">#endif //__cplusplus</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span>
<a name="l00123"></a>00123 <a class="code" href="ftgl_8h.html#a1543f6485dcd3ef6db0a10396071a6f6">FTGL_BEGIN_C_DECLS</a>
<a name="l00124"></a>00124 
<a name="l00132"></a>00132 <span class="keyword">struct </span>_FTGLGlyph;
<a name="l00133"></a><a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">00133</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_FTGLglyph <a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a>;
<a name="l00134"></a>00134 
<a name="l00145"></a>00145 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *<a class="code" href="FTGlyph_8h.html#a3bb5a45829e31dc34e053998e671c829" title="Create a custom FTGL glyph object.">ftglCreateCustomGlyph</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *base, <span class="keywordtype">void</span> *data,
<a name="l00146"></a>00146     <span class="keywordtype">void</span> (*renderCallback) (<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *, <span class="keywordtype">void</span> *, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a>, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a>,
<a name="l00147"></a>00147                              <span class="keywordtype">int</span>, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> *, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> *),
<a name="l00148"></a>00148     <span class="keywordtype">void</span> (*destroyCallback) (<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *, <span class="keywordtype">void</span> *));
<a name="l00149"></a>00149 
<a name="l00155"></a>00155 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <span class="keywordtype">void</span> <a class="code" href="FTGlyph_8h.html#ac877f6b37bdd0d711b5a64aefcb14edb" title="Destroy an FTGL glyph object.">ftglDestroyGlyph</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *glyph);
<a name="l00156"></a>00156 
<a name="l00170"></a>00170 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <span class="keywordtype">void</span> <a class="code" href="FTGlyph_8h.html#a12f6eaf22f7d3e0e11831315c5945d8c" title="Render a glyph at the current pen position and compute the corresponding advance.">ftglRenderGlyph</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *glyph, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> penx,
<a name="l00171"></a>00171                                  <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> peny, <span class="keywordtype">int</span> renderMode,
<a name="l00172"></a>00172                                  <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> *advancex, <a class="code" href="ftgl_8h.html#ae792fb2619b3890381a8b68babbdac74">FTGL_DOUBLE</a> *advancey);
<a name="l00179"></a>00179 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <span class="keywordtype">float</span> <a class="code" href="FTGlyph_8h.html#a245d2f30cd138488d9a9078c56926acc" title="Return the advance for a glyph.">ftglGetGlyphAdvance</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *glyph);
<a name="l00180"></a>00180 
<a name="l00188"></a>00188 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> <span class="keywordtype">void</span> <a class="code" href="FTGlyph_8h.html#a0808eac7b90dc8cf99a34b5d4efffec8" title="Return the bounding box for a glyph.">ftglGetGlyphBBox</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a> *glyph, <span class="keywordtype">float</span> bounds[6]);
<a name="l00189"></a>00189 
<a name="l00196"></a>00196 <a class="code" href="ftgl_8h.html#ae472b08d77a4ead09abe74fe37220270">FTGL_EXPORT</a> FT_Error <a class="code" href="FTGlyph_8h.html#a37333224310648a159a8f507d1bb10d7" title="Query a glyph for errors.">ftglGetGlyphError</a>(<a class="code" href="FTGlyph_8h.html#a155b37e19e0844502e473bb32c31a558">FTGLglyph</a>* glyph);
<a name="l00197"></a>00197 
<a name="l00198"></a>00198 <a class="code" href="ftgl_8h.html#aba8b33a81b5c655eb7c4b358419a17d5">FTGL_END_C_DECLS</a>
<a name="l00199"></a>00199 
<a name="l00200"></a>00200 <span class="preprocessor">#endif  //  __FTGlyph__</span>
<a name="l00201"></a>00201 <span class="preprocessor"></span>
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Feb 9 2011 for FTGL by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>