PageRenderTime 34ms CodeModel.GetById 23ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 1ms

/lib/pods/SDL/TTF.pod

http://github.com/PerlGameDev/SDL
Unknown | 676 lines | 378 code | 298 blank | 0 comment | 0 complexity | 33ab0c10a52b8cfffb070d79d66a1d9d MD5 | raw file
  1
  2=pod
  3
  4=head1 NAME
  5
  6SDL::TTF - True Type Font functions (libfreetype)
  7
  8=head1 CATEGORY
  9
 10TTF
 11
 12=head1 CONSTANTS
 13
 14The constants are exported by default. You can avoid this by doing:
 15
 16 use SDL::TTF ();
 17
 18and access them directly:
 19
 20 SDL::TTF::TTF_HINTING_NORMAL;
 21
 22Available constants for "hinting":
 23
 24=over 4
 25
 26=item *
 27
 28TTF_HINTING_NORMAL
 29
 30=item *
 31
 32TTF_HINTING_LIGHT
 33
 34=item *
 35
 36TTF_HINTING_MONO
 37
 38=item *
 39
 40TTF_HINTING_NONE
 41
 42=back
 43
 44Available constants for "style":
 45
 46=over 4
 47
 48=item *
 49
 50TTF_STYLE_NORMAL
 51
 52=item *
 53
 54TTF_STYLE_BOLD
 55
 56=item *
 57
 58TTF_STYLE_ITALIC
 59
 60=item *
 61
 62TTF_STYLE_UNDERLINE
 63
 64=item *
 65
 66TTF_STYLE_STRIKETHROUGH
 67
 68=back
 69
 70=head1 METHODS
 71
 72=head2 General methods
 73
 74=head3 linked_version
 75
 76 my $version = SDL::TTF::linked_version();
 77
 78This gives you the SDL::Version object which SDL_ttf lib is used on the system.
 79No prior initialization needs to be done before these function is called. 
 80
 81Example:
 82
 83 use SDL::TTF;
 84 use SDL::Version;
 85 
 86 my $version = SDL::TTF::linked_version();
 87 
 88 printf("got version: %d.%d.%d\n", $version->major, $version->minor, $version->patch);
 89
 90=head3 compile_time_version
 91
 92 my $version = SDL::TTF::compile_time_version();
 93
 94This gives you the SDL::Version object which SDL_ttf was present at compile time.
 95
 96=head3 init
 97
 98 my $success = SDL::TTF::init();
 99
100Initialize the truetype font API.
101This must be called before using other functions in this library, except L<SDL::TTF::was_init|SDL::TTF/"was_init"> and L<SDL::TTF::linked_version|SDL::TTF/"linked_version">.
102SDL does not have to be initialized before this call.
103
104Returns: C<0> on success, C<-1> on any error.
105
106=head3 was_init
107
108 my $was_init = SDL::TTF::was_init();
109
110Query the initialization status of the truetype font API.
111You may, of course, use this before L<SDL::TTF::init|SDL::TTF/"init"> to avoid initializing twice in a row. Or use this to determine if you need to 
112call L<SDL::TTF::quit|SDL::TTF/"quit">.
113
114=head3 quit
115
116 SDL::TTF::quit();
117
118Shutdown and cleanup the truetype font API.
119After calling this the SDL::TTF functions should not be used, excepting L<SDL::TTF::was_init|SDL::TTF/"was_init">. You may, of course, use 
120L<SDL::TTF::init|SDL::TTF/"init"> to use the functionality again
121
122=head2 Management functions
123
124=head3 open_font
125
126 my $font = SDL::TTF::open_font($font_file, $point_size);
127
128Load file for use as a font, at the given size. This is actually C<SDL::TTF::open_font_index(..., ..., $index = 0)>. This can load TTF, OTF and FON files.
129
130Returns: a L<SDL::TTF::Font> object. C<undef> is returned on errors.
131
132Example:
133
134 use SDL::TTF;
135 use SDL::TTF::Font;
136 
137 my $font = SDL::TTF::open_font('arial.ttf', 24);
138
139=head3 open_font_index
140
141 my $font = SDL::TTF::open_font($font_file, $point_size, $face_index);
142
143This is the same as L<SDL::TTF::open_font|SDL::TTF/"open_font">, except you can specify the face index of a font file containing multiple faces. 
144This can load TTF and FON files. 
145
146=head3 open_font_RW
147
148 my $font = SDL::TTF::open_font_RW($rwops_object, $free, $point_size);
149
150This is the same as L<SDL::TTF::open_font|SDL::TTF/"open_font">, except you can pass an L<SDL::RWOps>-object. If you pass true as C<$free>, the L<SDL::RWOps>-object
151will be freed by SDL_ttf library. Don't do this, perl will free this object for you.
152
153Example:
154
155 my $font = SDL::TTF::open_font_RW(SDL::RWOps->new_file($font_file, 'r'), 0, 24);
156
157=head3 open_font_index_RW
158
159 my $font = SDL::TTF::open_font_index_RW($rwops_object, $free, $point_size, $face_index);
160
161This is the same as L<SDL::TTF::open_font_index|SDL::TTF/"open_font_index">, except you can pass an L<SDL::RWOps>-object. If you pass true as C<$free>, the 
162L<SDL::RWOps>-object will be freed by SDL_ttf library. Don't do this, perl will free this object for you.
163
164=head2 Attributes
165
166=head3 Global attributes
167
168=head4 byte_swapped_unicode
169
170 SDL::TTF::byte_swapped_unicode( $bool );
171
172This function tells SDL_ttf whether UNICODE (2 bytes per character) text is generally byteswapped. A C<UNICODE_BOM_NATIVE> or 
173C<UNICODE_BOM_SWAPPED> character in a string will temporarily override this setting for the remainder of that string, however this setting 
174will be restored for the next one. The default mode is non-swapped, native endianness of the CPU.
175
176=head3 Font style
177
178=head4 get_font_style
179
180 SDL::TTF::get_font_style($font);
181
182Returns: The style as a bitmask composed of the following masks:
183
184=over 4
185
186=item *
187
188TTF_STYLE_NORMAL
189
190=item *
191
192TTF_STYLE_BOLD
193
194=item *
195
196TTF_STYLE_ITALIC
197
198=item *
199
200TTF_STYLE_UNDERLINE
201
202=item *
203
204TTF_STYLE_STRIKETHROUGH (since SDL_ttf 2.0.10)
205
206=back
207
208Example:
209
210 my $style = SDL::TTF::get_font_style($font);
211 
212 print("normal\n")        if $style == TTF_STYLE_NORMAL;
213 print("bold\n")          if $style  & TTF_STYLE_BOLD;
214 print("italic\n")        if $style  & TTF_STYLE_ITALIC;
215 print("underline\n")     if $style  & TTF_STYLE_UNDERLINE;
216 print("strikethrough\n") if $style  & TTF_STYLE_STRIKETHROUGH;
217
218=head4 set_font_style
219
220 SDL::TTF::set_font_style($font, $style);
221 
222Set the rendering style of the loaded font.
223
224B<Note>: C<TTF_STYLE_UNDERLINE> may cause surfaces created by C<SDL::TTF::render_glyph_*> functions to be extended vertically, downward only, 
225to 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 
226to place a glyph using glyph metrics.
227On the other hand C<TTF_STYLE_STRIKETHROUGH> doesn't extend the glyph, since this would invalidate the metrics used to position the glyph when 
228blitting, because they would likely be extended vertically upward. There is perhaps a workaround, but it would require programs to be smarter 
229about glyph blitting math than they are currently designed for.
230Still, sometimes the underline or strikethrough may be outside of the generated surface, and thus not visible when blitted to the screen. In 
231this case, you should probably turn off these styles and draw your own strikethroughs and underlines. 
232
233=head4 get_font_outline
234
235 my $outline = SDL::TTF::get_font_outline($font);
236
237Get the current outline width of the font, in pixels.
238
239B<Note>: at least SDL_ttf 2.0.10 needed
240
241=head4 set_font_outline
242
243 SDL::TTF::set_font_outline($font, $outline);
244
245Set the outline pixel width of the loaded font. Use C<0>(zero) to turn off outlining.
246
247B<Note>: at least SDL_ttf 2.0.10 needed
248
249=head3 Font settings
250
251=head4 get_font_hinting
252
253 my $hinting = SDL::TTF::get_font_hinting($font);
254
255Get the current hinting setting of the loaded font.
256
257B<Note>: at least SDL_ttf 2.0.10 needed
258
259Returns the hinting type matching one of the following defined values:
260
261=over 4
262
263=item *
264
265TTF_HINTING_NORMAL
266
267=item *
268
269TTF_HINTING_LIGHT
270
271=item *
272
273TTF_HINTING_MONO
274
275=item *
276
277TTF_HINTING_NONE
278
279=back
280
281=head4 set_font_hinting
282
283 SDL::TTF::set_font_hinting($font, $hinting);
284
285Set the hinting of the loaded font. You should experiment with this setting if you know which font you are using beforehand, especially when 
286using 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.
287
288B<Note>: at least SDL_ttf 2.0.10 needed
289
290Example:
291
292 SDL::TTF::set_font_hinting($font, TTF_HINTING_LIGHT);
293
294=head4 get_font_kerning
295
296 my $kerning_enabled = SDL::TTF::get_font_kerning($font);
297
298Get the current kerning setting of the loaded font.
299
300Returns: C<0>(zero) if kerning is disabled. A non-zero value is returned when enabled. The default for a newly loaded font is enabled(C<1>). 
301
302B<Note>: at least SDL_ttf 2.0.10 needed
303
304B<Note>: This function returns wrong values: See L<http://bugzilla.libsdl.org/show_bug.cgi?id=973>
305
306=head4 set_font_kerning
307
308 SDL::TTF::set_font_kerning($font, $kerning_enabled);
309
310Set whether to use kerning when rendering the loaded font. This has no effect on individual glyphs, but rather when rendering whole strings of 
311characters, 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 
312overlapping glyphs or abnormal spacing within words.
313
314Pass C<0> to disable kerning, 1 to enable.
315
316B<Note>: at least SDL_ttf 2.0.10 needed
317
318=head3 Font metrics
319
320=head4 font_height
321
322 my $font_height = SDL::TTF::font_height($font);
323
324Get the maximum pixel height of all glyphs of the loaded font. You may use this height for rendering text as close together vertically as 
325possible, 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 
326printing, so you are responsible for line spacing, see the L<SDL::TTF::font_line_skip|SDL::TTF/"font_line_skip"> as well.
327
328=head4 font_ascent
329
330 my $font_ascent = SDL::TTF::font_ascent($font);
331
332Get 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 
333baseline.
334It could be used when drawing an individual glyph relative to a top point, by combining it with the glyph's C<maxy> metric to resolve the top 
335of the rectangle used when blitting the glyph on the screen.
336
337Example:
338
339 my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };
340
341 $rect->y( $top + SDL::TTF::font_ascent($font) - $maxy );
342
343=head4 font_descent
344
345 my $font_descent = SDL::TTF::font_descent($font);
346
347Get 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 
348the font.
349It could be used when drawing an individual glyph relative to a bottom point, by combining it with the glyph's C<maxy> metric to resolve the top 
350of the rectangle used when blitting the glyph on the screen.
351
352Example:
353
354 my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };
355
356 $rect->y( $bottom - SDL::TTF::font_descent($font) - $maxy );
357
358=head4 font_line_skip
359
360 my $font_line_skip = SDL::TTF::font_line_skip($font);
361 
362Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the L<SDL::TTF::font_height|SDL::TTF/"font_height"> of the 
363font.
364
365=head3 Face attributes
366
367=head4 font_faces
368
369 my $font_faces = SDL::TTF::font_faces($font);
370
371Get the number of faces ("sub-fonts") available in the loaded font. This is a count of the number of specific fonts (based on size and style 
372and other typographical features perhaps) contained in the font itself.
373
374=head4 font_face_is_fixed_width
375
376 my $font_face_is_fixed_width = SDL::TTF::font_face_is_fixed_width($font);
377
378Test if the current font face of the loaded font is a fixed width font. Fixed width fonts are monospace, meaning every character that exists 
379in the font is the same width, thus you can assume that a rendered string's width is going to be the result of C<glyph_width * string_length>.
380
381Returns: C<E<gt>0> if font is a fixed width font. C<0> if not a fixed width font. 
382
383=head4 font_face_family_name
384
385 my $font_face_family_name = SDL::TTF::font_face_family_name($font);
386
387Get the current font face family name from the loaded font. This information is not for every font available.
388
389Example:
390
391 my $font = SDL::TTF::open_font('arialuni.ttf', 8);
392 
393 printf("%s\n", SDL::TTF::font_face_family_name($font)); # will print "Arial Unicode MS"
394
395=head4 font_face_style_name
396
397 my $font_face_style_name = SDL::TTF::font_face_style_name($font);
398
399Get the current font face style name from the loaded font. This information is not for every font available. 
400
401Example:
402
403 my $font = SDL::TTF::open_font('arialuni.ttf', 8);
404 
405 printf("%s\n", SDL::TTF::font_face_style_name($font)); # will print "Regular"
406
407=head3 Glyphs
408
409=head4 glyph_is_provided
410
411 my $glyph_is_provided = SDL::TTF::glyph_is_provided($font, $unicode_char);
412
413Get the status of the availability of the glyph from the loaded font.
414
415Returns: the index of the glyph in font, or 0 for an undefined character code.
416
417B<Note>: 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.
418
419B<Note>: at least SDL_ttf 2.0.10 needed
420
421Example:
422
423 print("We have this char!\n") if SDL::TTF::glyph_is_provided($font, "\0M");
424
425=head4 glyph_metrics
426
427 my @glyph_metrics = @{ SDL::TTF::glyph_metrics($font, $unicode_char) };
428
429Get desired glyph metrics of the UNICODE char from the loaded font.
430
431See also: L<The FreeType2 Documentation Tutorial|http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html>
432
433B<Note>: 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.
434
435Example:
436
437 my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };
438
439=head3 Text metrics
440
441=head4 size_text
442
443 my ($width, $height) = @{ SDL::TTF::size_text($font, $text) };
444
445Calculate the resulting surface size of the LATIN1 encoded text rendered using C<$font>. No actual rendering is done, however correct kerning 
446is done to get the actual width. The height returned is the same as you can get using L<SDL::TTF::font_height|SDL::TTF/"font_height">.
447
448=head4 size_utf8
449
450 my ($width, $height) = @{ SDL::TTF::size_utf8($font, $text) };
451
452Calculate the resulting surface size of the UTF8 encoded text rendered using C<$font>. No actual rendering is done, however correct kerning is 
453done to get the actual width. The height returned in h is the same as you can get using L<SDL::TTF::font_height|SDL::TTF/"font_height">.
454
455Note that the first example uses the same text as in the LATIN1 example, that is because plain ASCII is UTF8 compatible.
456
457Examples:
458
459 ($width, $height) = @{ SDL::TTF::size_utf8($font, 'Hello World!') }; # plain text, if your script is in utf8 or ansi-format
460 
461 # or
462 
463 ($width, $height) = @{ SDL::TTF::size_utf8($font, "\xE4\xBB\x8A\xE6\x97\xA5\xE3\x81\xAF") }; # utf8 hex-data
464 
465 # or
466 
467 use Unicode::String;
468 my $unicode       = utf8($data_from_somewhere);
469 ($width, $height) = @{ SDL::TTF::size_utf8($font, $unicode->utf8) }; # utf8 via Unicode::String
470
471=head4 size_unicode
472
473 my ($width, $height) = @{ SDL::TTF::size_unicode($font, $text) };
474
475Calculate the resulting surface size of the UNICODE encoded text rendered using C<$font>. No actual rendering is done, however correct kerning 
476is done to get the actual width. The height returned in h is the same as you can get using L<SDL::TTF::font_height|SDL::TTF/"font_height">.
477
478C<$text> has to be:
479
480=over 4
481
482=item UTF16BE without BOM
483
484"hello" will look like "\0h\0e\0l\0l\0o"
485
486=item UTF16BE with BOM
487
488"hello" will look like "\xFE\xFF\0h\0e\0l\0l\0o"
489
490=item UTF16LE with BOM
491
492"hello" will look like "\xFF\xFEh\0e\0l\0l\0o\0"
493
494=back
495
496You may use Unicode::String for this.
497
498=head2 Font Rendering
499
500=head3 Solid
501
502=head4 render_glyph_solid
503
504 my $surface = SDL::TTF::render_glyph_solid($font, $char, $color);
505
506Render the unicode encoded char onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.
507
508B<Note>: The unicode char has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
509
510B<Note>: L<See space-character bug|http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062>. You have to upgrade libfreetype2 to at least version 2.3.5
511
512=head4 render_text_solid
513
514 my $surface = SDL::TTF::render_text_solid($font, $text, $color);
515
516Render the LATIN1 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.
517
518B<Note>: L<See space-character bug|http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062>. You have to upgrade libfreetype2 to at least 
519version 2.3.5
520
521Example:
522
523 use SDL;
524 use SDL::Rect;
525 use SDL::Video;
526 use SDL::Color;
527 use SDL::TTF;
528 use SDL::TTF::Font;
529
530 SDL::init(SDL_INIT_VIDEO);
531 SDL::TTF::init();
532 my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
533 my $font    = SDL::TTF::open_font('somefont.ttf', '24');
534 die 'Coudnt make font '. SDL::get_error if !$font;
535 my $surface = SDL::TTF::render_text_solid($font, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF));
536 SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
537 SDL::Video::update_rect($display, 0, 0, 0, 0);
538 SDL::delay(5000);
539
540=head4 render_utf8_solid
541
542 my $surface = SDL::TTF::render_utf8_solid($font, $text, $color);
543
544Render the UTF8 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.
545
546B<Note>: L<See space-character bug|http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062>. You have to upgrade libfreetype2 to at least 
547version 2.3.5
548
549=head4 render_unicode_solid
550
551 my $surface = SDL::TTF::render_unicode_solid($font, $text, $color);
552
553Render the unicode encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.
554
555B<Note>: The unicode test has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
556
557B<Note>: L<See space-character bug|http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062>. You have to upgrade libfreetype2 to at least 
558version 2.3.5
559
560=head3 Shaded
561
562=head4 render_glyph_shaded
563
564 my $surface = SDL::TTF::render_glyph_shaded($font, $char, $color, $background_color);
565
566Render the unicode encoded char onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to 
567your display-surface.
568
569B<Note>: The unicode char has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
570
571=head4 render_text_shaded
572
573 my $surface = SDL::TTF::render_text_shaded($font, $text, $color, $background_color);
574
575Render the LATIN1 encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to 
576your display-surface.
577
578Example:
579
580 use SDL;
581 use SDL::Video;
582 use SDL::Color;
583 use SDL::TTF;
584 use SDL::TTF::Font;
585 
586 SDL::init(SDL_INIT_VIDEO);
587 
588 SDL::TTF::init();
589
590 my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
591 my $font    = SDL::TTF::open_font('arial.ttf', '24');
592 my $white   = SDL::Color->new(0xFF, 0xFF, 0xFF);
593 my $black   = SDL::Color->new(0x00, 0x00, 0x00);
594 my $surface = SDL::TTF::render_text_solid($font, 'Hello!', $white, $black);
595 
596 SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
597 SDL::Video::update_rect($display, 0, 0, 0, 0);
598 
599 SDL::delay(5000);
600
601=head4 render_utf8_shaded
602
603 my $surface = SDL::TTF::render_utf8_shaded($font, $text, $color, $background_color);
604
605Render the UTF8 encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to 
606your display-surface.
607
608=head4 render_unicode_shaded
609
610 my $surface = SDL::TTF::render_unicode_shaded($font, $text, $color, $background_color);
611
612Render the unicode encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to 
613your display-surface.
614
615B<Note>: The unicode text has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
616
617=head3 Blended
618
619=head4 render_glyph_blended
620
621 my $surface = SDL::TTF::render_glyph_blended($font, $char, $color);
622
623Render the unicode encoded char onto a new surface. After that you can blit this surface to your display-surface.
624
625B<Note>: The unicode char has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
626
627=head4 render_text_blended
628
629 my $surface = SDL::TTF::render_text_blended($font, $text, $color);
630
631Render the LATIN1 encoded text onto a new surface. After that you can blit this surface to your display-surface.
632
633Example:
634
635 use SDL;
636 use SDL::Video;
637 use SDL::Color;
638 use SDL::TTF;
639 use SDL::TTF::Font;
640 
641 SDL::init(SDL_INIT_VIDEO);
642 
643 SDL::TTF::init();
644 
645 my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
646 my $font    = SDL::TTF::open_font('arial.ttf', '24');
647 my $surface = SDL::TTF::render_text_blended($font, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF));
648 
649 SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
650 SDL::Video::update_rect($display, 0, 0, 0, 0);
651 
652 SDL::delay(5000);
653
654=head4 render_utf8_blended
655
656 my $surface = SDL::TTF::render_utf8_blended($font, $text, $color);
657
658Render the UTF8 encoded text onto a new surface. After that you can blit this surface to your display-surface.
659
660=head4 render_unicode_blended
661
662 my $surface = SDL::TTF::render_unicode_blended($font, $text, $color);
663
664Render the unicode encoded text onto a new surface. After that you can blit this surface to your display-surface.
665
666B<Note>: The unicode char has to be passed exactly like for L<SDL::TTF::size_unicode|SDL::TTF/"size_unicode">.
667
668=head1 AUTHORS
669
670See L<SDL/AUTHORS>.
671
672=head1 SEE ALSO
673
674L<SDL::TTF::Font>, L<Unicode::String>, L<SDL::Video>, L<SDL::Surface>
675
676=cut