added a note (bug) to SDL::TTF::get_font_hinting
[sdlgit/SDL-Site.git] / pages / SDL-TTF.html-inc
index 0b1624d..07f9114 100644 (file)
@@ -1,9 +1,768 @@
 <div class="pod">
 <!-- INDEX START -->
 <h3 id="TOP">Index</h3>
-<hr />
+
+<ul><li><a href="#NAME">NAME</a></li>
+<li><a href="#CATEGORY">CATEGORY</a></li>
+<li><a href="#METHODS">METHODS</a>
+<ul><li><a href="#General_methods">General methods</a>
+<ul><li><a href="#linked_version">linked_version</a></li>
+<li><a href="#compile_time_version">compile_time_version</a></li>
+<li><a href="#init">init</a></li>
+<li><a href="#was_init">was_init</a></li>
+<li><a href="#quit">quit</a></li>
+</ul>
+</li>
+<li><a href="#Management_functions">Management functions</a>
+<ul><li><a href="#open_font">open_font</a></li>
+<li><a href="#open_font_index">open_font_index</a></li>
+<li><a href="#open_font_RW">open_font_RW</a></li>
+<li><a href="#open_font_index_RW">open_font_index_RW</a></li>
+</ul>
+</li>
+<li><a href="#Attributes">Attributes</a>
+<ul><li><a href="#Global_attributes">Global attributes</a>
+<ul><li><a href="#byte_swapped_unicode">byte_swapped_unicode</a></li>
+</ul>
+</li>
+<li><a href="#Font_style">Font style</a>
+<ul><li><a href="#get_font_style">get_font_style</a></li>
+<li><a href="#set_font_style">set_font_style</a></li>
+<li><a href="#get_font_outline">get_font_outline</a></li>
+<li><a href="#set_font_outline">set_font_outline</a></li>
+</ul>
+</li>
+<li><a href="#Font_settings">Font settings</a>
+<ul><li><a href="#get_font_hinting">get_font_hinting</a></li>
+<li><a href="#set_font_hinting">set_font_hinting</a></li>
+<li><a href="#get_font_kerning">get_font_kerning</a></li>
+<li><a href="#set_font_kerning">set_font_kerning</a></li>
+</ul>
+</li>
+<li><a href="#Font_metrics">Font metrics</a>
+<ul><li><a href="#font_height">font_height</a></li>
+<li><a href="#font_ascent">font_ascent</a></li>
+<li><a href="#font_descent">font_descent</a></li>
+<li><a href="#font_line_skip">font_line_skip</a></li>
+</ul>
+</li>
+<li><a href="#Face_attributes">Face attributes</a>
+<ul><li><a href="#font_faces">font_faces</a></li>
+<li><a href="#font_face_is_fixed_width">font_face_is_fixed_width</a></li>
+<li><a href="#font_face_family_name">font_face_family_name</a></li>
+<li><a href="#font_face_style_name">font_face_style_name</a></li>
+</ul>
+</li>
+<li><a href="#Glyphs">Glyphs</a>
+<ul><li><a href="#glyph_is_provided">glyph_is_provided</a></li>
+<li><a href="#glyph_metrics">glyph_metrics</a></li>
+</ul>
+</li>
+<li><a href="#Text_metrics">Text metrics</a>
+<ul><li><a href="#size_text">size_text</a></li>
+<li><a href="#size_utf8">size_utf8</a></li>
+<li><a href="#size_unicode">size_unicode</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#Font_Rendering">Font Rendering</a>
+<ul><li><a href="#Solid">Solid</a>
+<ul><li><a href="#render_glyph_solid">render_glyph_solid</a></li>
+<li><a href="#render_text_solid">render_text_solid</a></li>
+<li><a href="#render_utf8_solid">render_utf8_solid</a></li>
+<li><a href="#render_unicode_solid">render_unicode_solid</a></li>
+</ul>
+</li>
+<li><a href="#Shaded">Shaded</a>
+<ul><li><a href="#render_glyph_shaded">render_glyph_shaded</a></li>
+<li><a href="#render_text_shaded">render_text_shaded</a></li>
+<li><a href="#render_utf8_shaded">render_utf8_shaded</a></li>
+<li><a href="#render_unicode_shaded">render_unicode_shaded</a></li>
+</ul>
+</li>
+<li><a href="#Blended">Blended</a>
+<ul><li><a href="#render_glyph_blended">render_glyph_blended</a></li>
+<li><a href="#render_text_blended">render_text_blended</a></li>
+<li><a href="#render_utf8_blended">render_utf8_blended</a></li>
+<li><a href="#render_unicode_blended">render_unicode_blended</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#AUTHOR">AUTHOR</a></li>
+<li><a href="#SEE_ALSO">SEE ALSO</a>
+</li>
+</ul><hr />
 <!-- INDEX END -->
 
+<h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="NAME_CONTENT">
+<p>SDL::TTF - True Type Font functions (libfreetype)</p>
+
+</div>
+<h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="CATEGORY_CONTENT">
+<p>TTF</p>
+
+</div>
+<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="METHODS_CONTENT">
+
+</div>
+<h2 id="General_methods">General methods</h2>
+<div id="General_methods_CONTENT">
+
+</div>
+<h3 id="linked_version">linked_version</h3>
+<div id="linked_version_CONTENT">
+<pre> my $version = SDL::TTF::linked_version();
+
+</pre>
+<p>This gives you the SDL::Version object which SDL_ttf lib is used on the system.
+No prior initialization needs to be done before these function is called. </p>
+<p>Example:</p>
+<pre> use SDL::TTF;
+ use SDL::Version;
+
+ my $version = SDL::TTF::linked_version();
+
+ printf(&quot;got version: %d.%d.%d\n&quot;, $version-&gt;major, $version-&gt;minor, $version-&gt;patch);
+
+</pre>
+
+</div>
+<h3 id="compile_time_version">compile_time_version</h3>
+<div id="compile_time_version_CONTENT">
+<pre> my $version = SDL::TTF::compile_time_version();
+
+</pre>
+<p>This gives you the SDL::Version object which SDL_ttf was present at compile time.</p>
+
+</div>
+<h3 id="init">init</h3>
+<div id="init_CONTENT">
+<pre> my $success = SDL::TTF::init();
+
+</pre>
+<p>Initialize the truetype font API.
+This must be called before using other functions in this library, except <a href="/SDL-TTF.html#was_init">SDL::TTF::was_init</a> and <a href="/SDL-TTF.html#linked_version">SDL::TTF::linked_version</a>.
+SDL does not have to be initialized before this call.</p>
+<p>Returns: <code>0</code> on success, <code>-1</code> on any error.</p>
+
+</div>
+<h3 id="was_init">was_init</h3>
+<div id="was_init_CONTENT">
+<pre> my $was_init = SDL::TTF::was_init();
+
+</pre>
+<p>Query the initilization status of the truetype font API.
+You may, of course, use this before <a href="/SDL-TTF.html#init">SDL::TTF::init</a> to avoid initializing twice in a row. Or use this to determine if you need to call 
+<a href="/SDL-TTF.html#quit">SDL::TTF::quit</a>.</p>
+
+</div>
+<h3 id="quit">quit</h3>
+<div id="quit_CONTENT">
+<pre> SDL::TTF::quit();
+
+</pre>
+<p>Shutdown and cleanup the truetype font API.
+After calling this the SDL::TTF functions should not be used, excepting <a href="/SDL-TTF.html#was_init">SDL::TTF::was_init</a>. You may, of course, use <a href="/SDL-TTF.html#init">SDL::TTF::init</a> to 
+use the functionality again</p>
+
+</div>
+<h2 id="Management_functions">Management functions</h2>
+<div id="Management_functions_CONTENT">
+
+</div>
+<h3 id="open_font">open_font</h3>
+<div id="open_font_CONTENT">
+<pre> my $font = SDL::TTF::open_font($font_file, $point_size);
+
+</pre>
+<p>Load file for use as a font, at the given size. This is actually <code>SDL::TTF::open_font_index(..., ..., $index = 0)</code>. This can load TTF and FON files.</p>
+<p>Returns: a <a href="SDL-TTF-Font.html">SDL::TTF::Font</a> object. <code>undef</code> is returned on errors.</p>
+<p>Example:</p>
+<pre> use SDL::TTF;
+ use SDL::TTF::Font;
+
+ my $font = SDL::TTF::open_font('arial.ttf', '24);
+
+</pre>
+
+</div>
+<h3 id="open_font_index">open_font_index</h3>
+<div id="open_font_index_CONTENT">
+<pre> my $font = SDL::TTF::open_font($font_file, $point_size, $face_index);
+
+</pre>
+<p>This is the same as <a href="/SDL-TTF.html#open_font">SDL::TTF::open_font</a>, except you can specify the face index of a font file containing multiple faces. 
+This can load TTF and FON files. </p>
+
+</div>
+<h3 id="open_font_RW">open_font_RW</h3>
+<div id="open_font_RW_CONTENT">
+<pre> my $font = SDL::TTF::open_font_RW($rwops_object, $free, $point_size);
+
+</pre>
+<p>This is the same as <a href="/SDL-TTF.html#open_font">SDL::TTF::open_font</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the <a href="SDL-RWOps.html">SDL::RWOps</a>-object
+will be freed by SDL_ttf library. Don't do this, perl will free this object for you.</p>
+<p>Example:</p>
+<pre> my $font = SDL::TTF::open_font_RW(SDL::RWOps-&gt;new_file($font_file, 'r'), 0, 24);
+
+</pre>
+
+</div>
+<h3 id="open_font_index_RW">open_font_index_RW</h3>
+<div id="open_font_index_RW_CONTENT">
+<pre> my $font = SDL::TTF::open_font_index_RW($rwops_object, $free, $point_size, $face_index);
+
+</pre>
+<p>This is the same as <a href="/SDL-TTF.html#open_font_index">SDL::TTF::open_font_index</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the 
+<a href="SDL-RWOps.html">SDL::RWOps</a>-object will be freed by SDL_ttf library. Don't do this, perl will free this object for you.</p>
+
+</div>
+<h2 id="Attributes">Attributes</h2>
+<div id="Attributes_CONTENT">
+
+</div>
+<h3 id="Global_attributes">Global attributes</h3>
+<div id="Global_attributes_CONTENT">
+
+</div>
+<h4 id="byte_swapped_unicode">byte_swapped_unicode</h4>
+<div id="byte_swapped_unicode_CONTENT">
+<pre> SDL::TTF::byte_swapped_unicode( $bool );
+
+</pre>
+<p>This function tells SDL_ttf whether UNICODE (2 bytes per character) text is generally byteswapped. A <code>UNICODE_BOM_NATIVE</code> or 
+<code>UNICODE_BOM_SWAPPED</code> character in a string will temporarily override this setting for the remainder of that string, however this setting 
+will be restored for the next one. The default mode is non-swapped, native endianness of the CPU.</p>
+
+</div>
+<h3 id="Font_style">Font style</h3>
+<div id="Font_style_CONTENT">
+
+</div>
+<h4 id="get_font_style">get_font_style</h4>
+<div id="get_font_style_CONTENT">
+<pre> SDL::TTF::get_font_style($font);
+
+</pre>
+<p>Returns: The style as a bitmask composed of the following masks:</p>
+<ul>
+               <li>TTF_STYLE_NORMAL    </li>
+               <li>TTF_STYLE_BOLD      </li>
+               <li>TTF_STYLE_ITALIC    </li>
+               <li>TTF_STYLE_UNDERLINE </li>
+               <li>TTF_STYLE_STRIKETHROUGH (since SDL_ttf 2.0.10)</li>
+</ul>
+
+<p>Example:</p>
+<pre> my $style = SDL::TTF::get_font_style($font);
+
+ print(&quot;normal\n&quot;)        if $style == TTF_STYLE_NORMAL;
+ print(&quot;bold\n&quot;)          if $style  &amp; TTF_STYLE_BOLD;
+ print(&quot;italic\n&quot;)        if $style  &amp; TTF_STYLE_ITALIC;
+ print(&quot;underline\n&quot;)     if $style  &amp; TTF_STYLE_UNDERLINE;
+ print(&quot;strikethrough\n&quot;) if $style  &amp; TTF_STYLE_STRIKETHROUGH;
+
+</pre>
+
+</div>
+<h4 id="set_font_style">set_font_style</h4>
+<div id="set_font_style_CONTENT">
+<pre> SDL::TTF::set_font_style($font, $style);
+
+</pre>
+<p>Set the rendering style of the loaded font.</p>
+<p><strong>Note</strong>: <code>TTF_STYLE_UNDERLINE</code> may cause surfaces created by <code>SDL::TTF::render_glyph_*</code> functions to be extended vertically, downward only, 
+to encompass the underline if the original glyph metrics didn't allow for the underline to be drawn below. This does not change the math used 
+to place a glyph using glyph metrics.
+On the other hand <code>TTF_STYLE_STRIKETHROUGH</code> doesn't extend the glyph, since this would invalidate the metrics used to position the glyph when 
+blitting, because they would likely be extended vertically upward. There is perhaps a workaround, but it would require programs to be smarter 
+about glyph blitting math than they are currently designed for.
+Still, sometimes the underline or strikethrough may be outside of the generated surface, and thus not visible when blitted to the screen. In 
+this case, you should probably turn off these styles and draw your own strikethroughs and underlines. </p>
+
+</div>
+<h4 id="get_font_outline">get_font_outline</h4>
+<div id="get_font_outline_CONTENT">
+<pre> my $outline = SDL::TTF::get_font_outline($font);
+
+</pre>
+<p>Get the current outline width of the font, in pixels.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+
+</div>
+<h4 id="set_font_outline">set_font_outline</h4>
+<div id="set_font_outline_CONTENT">
+<pre> SDL::TTF::get_font_outline($font, $outline);
+
+</pre>
+<p>Set the outline pixel width of the loaded font. Use <code>0</code>(zero) to turn off outlining.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+
+</div>
+<h3 id="Font_settings">Font settings</h3>
+<div id="Font_settings_CONTENT">
+
+</div>
+<h4 id="get_font_hinting">get_font_hinting</h4>
+<div id="get_font_hinting_CONTENT">
+<pre> my $hinting = SDL::TTF::get_font_hinting($font);
+
+</pre>
+<p>Get the current hinting setting of the loaded font.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+<p>Returns the hinting type matching one of the following defined values:</p>
+<ul>
+               <li>TTF_HINTING_NORMAL  </li>
+               <li>TTF_HINTING_LIGHT   </li>
+               <li>TTF_HINTING_MONO    </li>
+               <li>TTF_HINTING_NONE</li>
+</ul>
+
+
+</div>
+<h4 id="set_font_hinting">set_font_hinting</h4>
+<div id="set_font_hinting_CONTENT">
+<pre> SDL::TTF::set_font_hinting($font, $hinting);
+
+</pre>
+<p>Set the hinting of the loaded font. You should experiment with this setting if you know which font you are using beforehand, especially when 
+using smaller sized fonts. If the user is selecting a font, you may wish to let them select the hinting mode for that font as well.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+<p>Example:</p>
+<pre> SDL::TTF::set_font_hinting($font, TTF_HINTING_LIGHT);
+
+</pre>
+
+</div>
+<h4 id="get_font_kerning">get_font_kerning</h4>
+<div id="get_font_kerning_CONTENT">
+<pre> my $kerning_enabled = SDL::TTF::get_font_kerning($font);
+
+</pre>
+<p>Get the current kerning setting of the loaded font.</p>
+<p>Returns: <code>0</code>(zero) if kerning is disabled. A non-zero value is returned when enabled. The default for a newly loaded font is enabled(<code>1</code>). </p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+<p><strong>Note</strong>: This function returns wrong values: See <a href="http://bugzilla.libsdl.org/show_bug.cgi?id=973">http://bugzilla.libsdl.org/show_bug.cgi?id=973</a></p>
+
+</div>
+<h4 id="set_font_kerning">set_font_kerning</h4>
+<div id="set_font_kerning_CONTENT">
+<pre> SDL::TTF::set_font_kerning($font, $kerning_enabled);
+
+</pre>
+<p>Set whether to use kerning when rendering the loaded font. This has no effect on individual glyphs, but rather when rendering whole strings of 
+characters, at least a word at a time. Perhaps the only time to disable this is when kerning is not working for a specific font, resulting in 
+overlapping glyphs or abnormal spacing within words.</p>
+<p>Pass <code>0</code> to disable kerning, 1 to enable.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+
+</div>
+<h3 id="Font_metrics">Font metrics</h3>
+<div id="Font_metrics_CONTENT">
+
+</div>
+<h4 id="font_height">font_height</h4>
+<div id="font_height_CONTENT">
+<pre> my $font_height = SDL::TTF::font_height($font);
+
+</pre>
+<p>Get the maximum pixel height of all glyphs of the loaded font. You may use this height for rendering text as close together vertically as 
+possible, though adding at least one pixel height to it will space it so they can't touch. Remember that SDL_ttf doesn't handle multiline 
+printing, so you are responsible for line spacing, see the <a href="/SDL-TTF.html#font_line_skip">SDL::TTF::font_line_skip</a> as well.</p>
+
+</div>
+<h4 id="font_ascent">font_ascent</h4>
+<div id="font_ascent_CONTENT">
+<pre> my $font_ascent = SDL::TTF::font_ascent($font);
+
+</pre>
+<p>Get the maximum pixel ascent of all glyphs of the loaded font. This can also be interpreted as the distance from the top of the font to the 
+baseline.
+It could be used when drawing an individual glyph relative to a top point, by combining it with the glyph's <code>maxy</code> metric to resolve the top 
+of the rectangle used when blitting the glyph on the screen.</p>
+<p>Example:</p>
+<pre> my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, &quot;\0M&quot;) };
+
+ $rect-&gt;y( $top + SDL::TTF::font_ascent($font) - $maxy );
+
+</pre>
+
+</div>
+<h4 id="font_descent">font_descent</h4>
+<div id="font_descent_CONTENT">
+<pre> my $font_descent = SDL::TTF::font_descent($font);
+
+</pre>
+<p>Get the maximum pixel descent of all glyphs of the loaded font. This can also be interpreted as the distance from the baseline to the bottom of 
+the font.
+It could be used when drawing an individual glyph relative to a bottom point, by combining it with the glyph's <code>maxy</code> metric to resolve the top 
+of the rectangle used when blitting the glyph on the screen.</p>
+<p>Example:</p>
+<pre> my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, &quot;\0M&quot;) };
+
+ $rect-&gt;y( $bottom - SDL::TTF::font_descent($font) - $maxy );
+
+</pre>
+
+</div>
+<h4 id="font_line_skip">font_line_skip</h4>
+<div id="font_line_skip_CONTENT">
+<pre> my $font_line_skip = SDL::TTF::font_line_skip($font);
+
+</pre>
+<p>Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a> of the 
+font.</p>
+
+</div>
+<h3 id="Face_attributes">Face attributes</h3>
+<div id="Face_attributes_CONTENT">
+
+</div>
+<h4 id="font_faces">font_faces</h4>
+<div id="font_faces_CONTENT">
+<pre> my $font_faces = SDL::TTF::font_faces($font);
+
+</pre>
+<p>Get the number of faces (&quot;sub-fonts&quot;) available in the loaded font. This is a count of the number of specific fonts (based on size and style 
+and other typographical features perhaps) contained in the font itself.</p>
+
+</div>
+<h4 id="font_face_is_fixed_width">font_face_is_fixed_width</h4>
+<div id="font_face_is_fixed_width_CONTENT">
+<pre> my $font_face_is_fixed_width = SDL::TTF::font_face_is_fixed_width($font);
+
+</pre>
+<p>Test if the current font face of the loaded font is a fixed width font. Fixed width fonts are monospace, meaning every character that exists 
+in the font is the same width, thus you can assume that a rendered string's width is going to be the result of <code>glyph_width * string_length</code>.</p>
+<p>Returns: <code>&gt;0</code> if font is a fixed width font. <code>0</code> if not a fixed width font. </p>
+
+</div>
+<h4 id="font_face_family_name">font_face_family_name</h4>
+<div id="font_face_family_name_CONTENT">
+<pre> my $font_face_family_name = SDL::TTF::font_face_family_name($font);
+
+</pre>
+<p>Get the current font face family name from the loaded font. This information is not for every font available.</p>
+<p>Example:</p>
+<pre> my $font = SDL::TTF::open_font('arialuni.ttf', 8);
+
+ printf(&quot;%s\n&quot;, SDL::TTF::font_face_family_name($font)); # will print &quot;Arial Unicode MS&quot;
+
+</pre>
+
+</div>
+<h4 id="font_face_style_name">font_face_style_name</h4>
+<div id="font_face_style_name_CONTENT">
+<pre> my $font_face_style_name = SDL::TTF::font_face_style_name($font);
+
+</pre>
+<p>Get the current font face style name from the loaded font. This information is not for every font available. </p>
+<p>Example:</p>
+<pre> my $font = SDL::TTF::open_font('arialuni.ttf', 8);
+
+ printf(&quot;%s\n&quot;, SDL::TTF::font_face_style_name($font)); # will print &quot;Regular&quot;
+
+</pre>
+
+</div>
+<h3 id="Glyphs">Glyphs</h3>
+<div id="Glyphs_CONTENT">
+
+</div>
+<h4 id="glyph_is_provided">glyph_is_provided</h4>
+<div id="glyph_is_provided_CONTENT">
+<pre> my $glyph_is_provided = SDL::TTF::glyph_is_provided($font, $unicode_char);
+
+</pre>
+<p>Get the status of the availability of the glyph from the loaded font.</p>
+<p>Returns: the index of the glyph in font, or 0 for an undefined character code.</p>
+<p><strong>Note</strong>: You have to pass this unicode character either as UTF16/UCS-2 big endian without BOM, or with BOM as UTF16/UCS-2 big/little endian.</p>
+<p><strong>Note</strong>: at least SDL_ttf 2.0.10 needed</p>
+<p>Example:</p>
+<pre> print(&quot;We have this char!\n&quot;) if SDL::TTF::glyph_is_provided($font, &quot;\0M&quot;);
+
+</pre>
+
+</div>
+<h4 id="glyph_metrics">glyph_metrics</h4>
+<div id="glyph_metrics_CONTENT">
+<pre> my @glyph_metrics = @{ SDL::TTF::glyph_metrics($font, $unicode_char) };
+
+</pre>
+<p>Get desired glyph metrics of the UNICODE char from the loaded font.</p>
+<p>See also: <a href="http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html">The FreeType2 Documentation Tutorial</a></p>
+<p><strong>Note</strong>: You have to pass this unicode character either as UTF16/UCS-2 big endian without BOM, or with BOM as UTF16/UCS-2 big/little endian.</p>
+<p>Example:</p>
+<pre> my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, &quot;\0M&quot;) };
+
+</pre>
+
+</div>
+<h3 id="Text_metrics">Text metrics</h3>
+<div id="Text_metrics_CONTENT">
+
+</div>
+<h4 id="size_text">size_text</h4>
+<div id="size_text_CONTENT">
+<pre> my ($width, $height) = @{ SDL::TTF::size_text($font, $text) };
+
+</pre>
+<p>Calculate the resulting surface size of the LATIN1 encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning 
+is done to get the actual width. The height returned is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+
+</div>
+<h4 id="size_utf8">size_utf8</h4>
+<div id="size_utf8_CONTENT">
+<pre> my ($width, $height) = @{ SDL::TTF::size_utf8($font, $text) };
+
+</pre>
+<p>Calculate the resulting surface size of the UTF8 encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning is 
+done to get the actual width. The height returned in h is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+<p>Note that the first example uses the same text as in the LATIN1 example, that is because plain ASCII is UTF8 compatible.</p>
+<p>Examples:</p>
+<pre> ($width, $height) = @{ SDL::TTF::size_utf8($font, 'Hallo World!') }; # plain text, if your script is in utf8 or ansi-format
+
+ # or
+
+ ($width, $height) = @{ SDL::TTF::size_utf8($font, &quot;\xE4\xBB\x8A\xE6\x97\xA5\xE3\x81\xAF&quot;) }; # utf8 hex-data
+
+ # or
+
+ use Unicode::String;
+ my $unicode       = utf8($data_from_somwhere);
+ ($width, $height) = @{ SDL::TTF::size_utf8($font, $unicode-&gt;utf8) }; # utf8 via Unicode::String
+
+</pre>
+
+</div>
+<h4 id="size_unicode">size_unicode</h4>
+<div id="size_unicode_CONTENT">
+<pre> my ($width, $height) = @{ SDL::TTF::size_unicode($font, $text) };
+
+</pre>
+<p>Calculate the resulting surface size of the UNICODE encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning 
+is done to get the actual width. The height returned in h is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+<p><code>$text</code> has to be:</p>
+<dl>
+       <dt>UTF16BE without BOM</dt>
+       <dd>
+               <p>&quot;hallo&quot; will look like &quot;\0h\0a\0l\0l\0o&quot;</p>
+       </dd>
+       <dt>UTF16BE with BOM</dt>
+       <dd>
+               <p>&quot;hallo&quot; will look like &quot;\xFE\xFF\0h\0a\0l\0l\0o&quot;</p>
+       </dd>
+       <dt>UTF16LE with BOM</dt>
+       <dd>
+               <p>&quot;hallo&quot; will look like &quot;\xFF\xFEh\0a\0l\0l\0o\0&quot;</p>
+       </dd>
+</dl>
+<p>You may use Unicode::String for this.</p>
+
+</div>
+<h2 id="Font_Rendering">Font Rendering</h2>
+<div id="Font_Rendering_CONTENT">
+
+</div>
+<h3 id="Solid">Solid</h3>
+<div id="Solid_CONTENT">
+
+</div>
+<h4 id="render_glyph_solid">render_glyph_solid</h4>
+<div id="render_glyph_solid_CONTENT">
+<pre> my $surface = SDL::TTF::render_glyph_solid($font, $char, $color);
+
+</pre>
+<p>Render the unicode encoded char onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least version 2.3.5</p>
+
+</div>
+<h4 id="render_text_solid">render_text_solid</h4>
+<div id="render_text_solid_CONTENT">
+<pre> my $surface = SDL::TTF::render_text_solid($font, $text, $color);
+
+</pre>
+<p>Render the LATIN1 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least 
+version 2.3.5</p>
+<p>Example:</p>
+<pre> use SDL;
+ use SDL::Video;
+ use SDL::Color;
+ use SDL::TTF;
+ use SDL::TTF::Font;
+
+ SDL::init(SDL_INIT_VIDEO);
+
+ my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
+ my $font    = SDL::TTF::open_font('arial.ttf', '24);
+ my $surface = SDL::TTF::render_text_solid($font, 'Hallo!', SDL::Color-&gt;new(0xFF,0xFF,0xFF));
+
+ SDL::Video::blit_surface($surface, SDL::Rect-&gt;new(0, 0, 640, 480), $display, SDL::Rect-&gt;new(10, 10, 640, 480));
+ SDL::Video::update_rect($display, 0, 0, 0, 0);
+
+ SDL::delay(5000);
+
+</pre>
+
+</div>
+<h4 id="render_utf8_solid">render_utf8_solid</h4>
+<div id="render_utf8_solid_CONTENT">
+<pre> my $surface = SDL::TTF::render_utf8_solid($font, $text, $color);
+
+</pre>
+<p>Render the UTF8 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least 
+version 2.3.5</p>
+
+</div>
+<h4 id="render_unicode_solid">render_unicode_solid</h4>
+<div id="render_unicode_solid_CONTENT">
+<pre> my $surface = SDL::TTF::render_unicode_solid($font, $text, $color);
+
+</pre>
+<p>Render the unicode encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: The unicode test has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least 
+version 2.3.5</p>
+
+</div>
+<h3 id="Shaded">Shaded</h3>
+<div id="Shaded_CONTENT">
+
+</div>
+<h4 id="render_glyph_shaded">render_glyph_shaded</h4>
+<div id="render_glyph_shaded_CONTENT">
+<pre> my $surface = SDL::TTF::render_glyph_shaded($font, $char, $color, $background_color);
+
+</pre>
+<p>Render the unicode encoded char onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to 
+your display-surface.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+
+</div>
+<h4 id="render_text_shaded">render_text_shaded</h4>
+<div id="render_text_shaded_CONTENT">
+<pre> my $surface = SDL::TTF::render_text_shaded($font, $text, $color, $background_color);
+
+</pre>
+<p>Render the LATIN1 encoded text onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to 
+your display-surface.</p>
+<p>Example:</p>
+<pre> use SDL;
+ use SDL::Video;
+ use SDL::Color;
+ use SDL::TTF;
+ use SDL::TTF::Font;
+
+ SDL::init(SDL_INIT_VIDEO);
+
+ my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
+ my $font    = SDL::TTF::open_font('arial.ttf', '24);
+ my $white   = SDL::Color-&gt;new(0xFF, 0xFF, 0xFF);
+ my $black   = SDL::Color-&gt;new(0x00, 0x00, 0x00);
+ my $surface = SDL::TTF::render_text_solid($font, 'Hallo!', $white, $black);
+
+ SDL::Video::blit_surface($surface, SDL::Rect-&gt;new(0, 0, 640, 480), $display, SDL::Rect-&gt;new(10, 10, 640, 480));
+ SDL::Video::update_rect($display, 0, 0, 0, 0);
+
+ SDL::delay(5000);
+
+</pre>
+
+</div>
+<h4 id="render_utf8_shaded">render_utf8_shaded</h4>
+<div id="render_utf8_shaded_CONTENT">
+<pre> my $surface = SDL::TTF::render_utf8_shaded($font, $text, $color, $background_color);
+
+</pre>
+<p>Render the UTF8 encoded text onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to 
+your display-surface.</p>
+
+</div>
+<h4 id="render_unicode_shaded">render_unicode_shaded</h4>
+<div id="render_unicode_shaded_CONTENT">
+<pre> my $surface = SDL::TTF::render_unicode_shaded($font, $text, $color, $background_color);
+
+</pre>
+<p>Render the unicode encoded text onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to 
+your display-surface.</p>
+<p><strong>Note</strong>: The unicode text has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+
+</div>
+<h3 id="Blended">Blended</h3>
+<div id="Blended_CONTENT">
+
+</div>
+<h4 id="render_glyph_blended">render_glyph_blended</h4>
+<div id="render_glyph_blended_CONTENT">
+<pre> my $surface = SDL::TTF::render_glyph_blended($font, $char, $color);
+
+</pre>
+<p>Render the unicode encoded char onto a new surface. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+
+</div>
+<h4 id="render_text_blended">render_text_blended</h4>
+<div id="render_text_blended_CONTENT">
+<pre> my $surface = SDL::TTF::render_text_blended($font, $text, $color);
+
+</pre>
+<p>Render the LATIN1 encoded text onto a new surface. After that you can blit this surface to your display-surface.</p>
+<p>Example:</p>
+<pre> use SDL;
+ use SDL::Video;
+ use SDL::Color;
+ use SDL::TTF;
+ use SDL::TTF::Font;
+
+ SDL::init(SDL_INIT_VIDEO);
+
+ my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
+ my $font    = SDL::TTF::open_font('arial.ttf', '24);
+ my $surface = SDL::TTF::render_text_blended($font, 'Hallo!', SDL::Color-&gt;new(0xFF,0xFF,0xFF));
+
+ SDL::Video::blit_surface($surface, SDL::Rect-&gt;new(0, 0, 640, 480), $display, SDL::Rect-&gt;new(10, 10, 640, 480));
+ SDL::Video::update_rect($display, 0, 0, 0, 0);
+
+ SDL::delay(5000);
+
+</pre>
+
+</div>
+<h4 id="render_utf8_blended">render_utf8_blended</h4>
+<div id="render_utf8_blended_CONTENT">
+<pre> my $surface = SDL::TTF::render_utf8_blended($font, $text, $color);
+
+</pre>
+<p>Render the UTF8 encoded text onto a new surface. After that you can blit this surface to your display-surface.</p>
+
+</div>
+<h4 id="render_unicode_blended">render_unicode_blended</h4>
+<div id="render_unicode_blended_CONTENT">
+<pre> my $surface = SDL::TTF::render_unicode_blended($font, $text, $color);
+
+</pre>
+<p>Render the unicode encoded text onto a new surface. After that you can blit this surface to your display-surface.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+
+</div>
+<h1 id="AUTHOR">AUTHOR</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="AUTHOR_CONTENT">
+<p>Tobias Leich [FROGGS]</p>
 
+</div>
+<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="SEE_ALSO_CONTENT">
+<p><a href="SDL-TTF-Font.html">SDL::TTF::Font</a>, <a href="http://search.cpan.org/perldoc?Unicode::String">Unicode::String</a>, <a href="SDL-Video.html">SDL::Video</a>, <a href="SDL-Surface.html">SDL::Surface</a></p>
 
+</div>
 </div>
\ No newline at end of file