pods::SDL::TTF man page on OpenSuSE

Man page or keyword search:  
man Server   25941 pages
apropos Keyword Search (all sections)
Output format
OpenSuSE logo
[printable version]

pods::SDL::TTF(3)     User Contributed Perl Documentation    pods::SDL::TTF(3)

NAME
       SDL::TTF - True Type Font functions (libfreetype)

CATEGORY
       TTF

CONSTANTS
       The constants are exported by default. You can avoid this by doing:

	use SDL::TTF ();

       and access them directly:

	SDL::TTF::TTF_HINTING_NORMAL;

       Available constants for "hinting":

       ·   TTF_HINTING_NORMAL

       ·   TTF_HINTING_LIGHT

       ·   TTF_HINTING_MONO

       ·   TTF_HINTING_NONE

       Available constants for "style":

       ·   TTF_STYLE_NORMAL

       ·   TTF_STYLE_BOLD

       ·   TTF_STYLE_ITALIC

       ·   TTF_STYLE_UNDERLINE

       ·   TTF_STYLE_STRIKETHROUGH

METHODS
   General methods
       linked_version

	my $version = SDL::TTF::linked_version();

       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.

       Example:

	use SDL::TTF;
	use SDL::Version;

	my $version = SDL::TTF::linked_version();

	printf("got version: %d.%d.%d\n", $version->major, $version->minor, $version->patch);

       compile_time_version

	my $version = SDL::TTF::compile_time_version();

       This gives you the SDL::Version object which SDL_ttf was present at
       compile time.

       init

	my $success = SDL::TTF::init();

       Initialize the truetype font API.  This must be called before using
       other functions in this library, except SDL::TTF::was_init and
       SDL::TTF::linked_version.  SDL does not have to be initialized before
       this call.

       Returns: 0 on success, "-1" on any error.

       was_init

	my $was_init = SDL::TTF::was_init();

       Query the initialization status of the truetype font API.  You may, of
       course, use this before SDL::TTF::init to avoid initializing twice in a
       row. Or use this to determine if you need to call SDL::TTF::quit.

       quit

	SDL::TTF::quit();

       Shutdown and cleanup the truetype font API.  After calling this the
       SDL::TTF functions should not be used, excepting SDL::TTF::was_init.
       You may, of course, use SDL::TTF::init to use the functionality again

   Management functions
       open_font

	my $font = SDL::TTF::open_font($font_file, $point_size);

       Load file for use as a font, at the given size. This is actually
       "SDL::TTF::open_font_index(..., ..., $index = 0)". This can load TTF,
       OTF and FON files.

       Returns: a SDL::TTF::Font object. "undef" is returned on errors.

       Example:

	use SDL::TTF;
	use SDL::TTF::Font;

	my $font = SDL::TTF::open_font('arial.ttf', 24);

       open_font_index

	my $font = SDL::TTF::open_font($font_file, $point_size, $face_index);

       This is the same as SDL::TTF::open_font, except you can specify the
       face index of a font file containing multiple faces.  This can load TTF
       and FON files.

       open_font_RW

	my $font = SDL::TTF::open_font_RW($rwops_object, $free, $point_size);

       This is the same as SDL::TTF::open_font, except you can pass an
       SDL::RWOps-object. If you pass true as $free, the SDL::RWOps-object
       will be freed by SDL_ttf library. Don't do this, perl will free this
       object for you.

       Example:

	my $font = SDL::TTF::open_font_RW(SDL::RWOps->new_file($font_file, 'r'), 0, 24);

       open_font_index_RW

	my $font = SDL::TTF::open_font_index_RW($rwops_object, $free, $point_size, $face_index);

       This is the same as SDL::TTF::open_font_index, except you can pass an
       SDL::RWOps-object. If you pass true as $free, the SDL::RWOps-object
       will be freed by SDL_ttf library. Don't do this, perl will free this
       object for you.

   Attributes
       Global attributes

       byte_swapped_unicode

	SDL::TTF::byte_swapped_unicode( $bool );

       This function tells SDL_ttf whether UNICODE (2 bytes per character)
       text is generally byteswapped. A "UNICODE_BOM_NATIVE" or
       "UNICODE_BOM_SWAPPED" 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.

       Font style

       get_font_style

	SDL::TTF::get_font_style($font);

       Returns: The style as a bitmask composed of the following masks:

       ·   TTF_STYLE_NORMAL

       ·   TTF_STYLE_BOLD

       ·   TTF_STYLE_ITALIC

       ·   TTF_STYLE_UNDERLINE

       ·   TTF_STYLE_STRIKETHROUGH (since SDL_ttf 2.0.10)

       Example:

	my $style = SDL::TTF::get_font_style($font);

	print("normal\n")	 if $style == TTF_STYLE_NORMAL;
	print("bold\n")		 if $style  & TTF_STYLE_BOLD;
	print("italic\n")	 if $style  & TTF_STYLE_ITALIC;
	print("underline\n")	 if $style  & TTF_STYLE_UNDERLINE;
	print("strikethrough\n") if $style  & TTF_STYLE_STRIKETHROUGH;

       set_font_style

	SDL::TTF::set_font_style($font, $style);

       Set the rendering style of the loaded font.

       Note: "TTF_STYLE_UNDERLINE" may cause surfaces created by
       "SDL::TTF::render_glyph_*" 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
       "TTF_STYLE_STRIKETHROUGH" 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.

       get_font_outline

	my $outline = SDL::TTF::get_font_outline($font);

       Get the current outline width of the font, in pixels.

       Note: at least SDL_ttf 2.0.10 needed

       set_font_outline

	SDL::TTF::set_font_outline($font, $outline);

       Set the outline pixel width of the loaded font. Use 0(zero) to turn off
       outlining.

       Note: at least SDL_ttf 2.0.10 needed

       Font settings

       get_font_hinting

	my $hinting = SDL::TTF::get_font_hinting($font);

       Get the current hinting setting of the loaded font.

       Note: at least SDL_ttf 2.0.10 needed

       Returns the hinting type matching one of the following defined values:

       ·   TTF_HINTING_NORMAL

       ·   TTF_HINTING_LIGHT

       ·   TTF_HINTING_MONO

       ·   TTF_HINTING_NONE

       set_font_hinting

	SDL::TTF::set_font_hinting($font, $hinting);

       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.

       Note: at least SDL_ttf 2.0.10 needed

       Example:

	SDL::TTF::set_font_hinting($font, TTF_HINTING_LIGHT);

       get_font_kerning

	my $kerning_enabled = SDL::TTF::get_font_kerning($font);

       Get the current kerning setting of the loaded font.

       Returns: 0(zero) if kerning is disabled. A non-zero value is returned
       when enabled. The default for a newly loaded font is enabled(1).

       Note: at least SDL_ttf 2.0.10 needed

       Note: This function returns wrong values: See
       <http://bugzilla.libsdl.org/show_bug.cgi?id=973>

       set_font_kerning

	SDL::TTF::set_font_kerning($font, $kerning_enabled);

       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.

       Pass 0 to disable kerning, 1 to enable.

       Note: at least SDL_ttf 2.0.10 needed

       Font metrics

       font_height

	my $font_height = SDL::TTF::font_height($font);

       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
       SDL::TTF::font_line_skip as well.

       font_ascent

	my $font_ascent = SDL::TTF::font_ascent($font);

       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 "maxy" metric to
       resolve the top of the rectangle used when blitting the glyph on the
       screen.

       Example:

	my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };

	$rect->y( $top + SDL::TTF::font_ascent($font) - $maxy );

       font_descent

	my $font_descent = SDL::TTF::font_descent($font);

       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 "maxy"
       metric to resolve the top of the rectangle used when blitting the glyph
       on the screen.

       Example:

	my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };

	$rect->y( $bottom - SDL::TTF::font_descent($font) - $maxy );

       font_line_skip

	my $font_line_skip = SDL::TTF::font_line_skip($font);

       Get the recommended pixel height of a rendered line of text of the
       loaded font. This is usually larger than the SDL::TTF::font_height of
       the font.

       Face attributes

       font_faces

	my $font_faces = SDL::TTF::font_faces($font);

       Get 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 and other typographical features perhaps) contained in the font
       itself.

       font_face_is_fixed_width

	my $font_face_is_fixed_width = SDL::TTF::font_face_is_fixed_width($font);

       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 "glyph_width *
       string_length".

       Returns: ">0" if font is a fixed width font. 0 if not a fixed width
       font.

       font_face_family_name

	my $font_face_family_name = SDL::TTF::font_face_family_name($font);

       Get the current font face family name from the loaded font. This
       information is not for every font available.

       Example:

	my $font = SDL::TTF::open_font('arialuni.ttf', 8);

	printf("%s\n", SDL::TTF::font_face_family_name($font)); # will print "Arial Unicode MS"

       font_face_style_name

	my $font_face_style_name = SDL::TTF::font_face_style_name($font);

       Get the current font face style name from the loaded font. This
       information is not for every font available.

       Example:

	my $font = SDL::TTF::open_font('arialuni.ttf', 8);

	printf("%s\n", SDL::TTF::font_face_style_name($font)); # will print "Regular"

       Glyphs

       glyph_is_provided

	my $glyph_is_provided = SDL::TTF::glyph_is_provided($font, $unicode_char);

       Get the status of the availability of the glyph from the loaded font.

       Returns: the index of the glyph in font, or 0 for an undefined
       character code.

       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.

       Note: at least SDL_ttf 2.0.10 needed

       Example:

	print("We have this char!\n") if SDL::TTF::glyph_is_provided($font, "\0M");

       glyph_metrics

	my @glyph_metrics = @{ SDL::TTF::glyph_metrics($font, $unicode_char) };

       Get desired glyph metrics of the UNICODE char from the loaded font.

       See also: The FreeType2 Documentation Tutorial
       <http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html>

       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.

       Example:

	my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") };

       Text metrics

       size_text

	my ($width, $height) = @{ SDL::TTF::size_text($font, $text) };

       Calculate the resulting surface size of the LATIN1 encoded text
       rendered using $font. 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 SDL::TTF::font_height.

       size_utf8

	my ($width, $height) = @{ SDL::TTF::size_utf8($font, $text) };

       Calculate the resulting surface size of the UTF8 encoded text rendered
       using $font. 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 SDL::TTF::font_height.

       Note that the first example uses the same text as in the LATIN1
       example, that is because plain ASCII is UTF8 compatible.

       Examples:

	($width, $height) = @{ SDL::TTF::size_utf8($font, 'Hello World!') }; # plain text, if your script is in utf8 or ansi-format

	# or

	($width, $height) = @{ SDL::TTF::size_utf8($font, "\xE4\xBB\x8A\xE6\x97\xA5\xE3\x81\xAF") }; # utf8 hex-data

	# or

	use Unicode::String;
	my $unicode	  = utf8($data_from_somewhere);
	($width, $height) = @{ SDL::TTF::size_utf8($font, $unicode->utf8) }; # utf8 via Unicode::String

       size_unicode

	my ($width, $height) = @{ SDL::TTF::size_unicode($font, $text) };

       Calculate the resulting surface size of the UNICODE encoded text
       rendered using $font. 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 SDL::TTF::font_height.

       $text has to be:

       UTF16BE without BOM
	   "hello" will look like "\0h\0e\0l\0l\0o"

       UTF16BE with BOM
	   "hello" will look like "\xFE\xFF\0h\0e\0l\0l\0o"

       UTF16LE with BOM
	   "hello" will look like "\xFF\xFEh\0e\0l\0l\0o\0"

       You may use Unicode::String for this.

   Font Rendering
       Solid

       render_glyph_solid

	my $surface = SDL::TTF::render_glyph_solid($font, $char, $color);

       Render the unicode encoded char onto a new surface, using the Solid
       mode. After that you can blit this surface to your display-surface.

       Note: The unicode char has to be passed exactly like for
       SDL::TTF::size_unicode.

       Note: 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

       render_text_solid

	my $surface = SDL::TTF::render_text_solid($font, $text, $color);

       Render the LATIN1 encoded text onto a new surface, using the Solid
       mode. After that you can blit this surface to your display-surface.

       Note: 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

       Example:

	use SDL;
	use SDL::Rect;
	use SDL::Video;
	use SDL::Color;
	use SDL::TTF;
	use SDL::TTF::Font;

	SDL::init(SDL_INIT_VIDEO);
	SDL::TTF::init();
	my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
	my $font    = SDL::TTF::open_font('somefont.ttf', '24');
	die 'Coudnt make font '. SDL::get_error if !$font;
	my $surface = SDL::TTF::render_text_solid($font, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF));
	SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
	SDL::Video::update_rect($display, 0, 0, 0, 0);
	SDL::delay(5000);

       render_utf8_solid

	my $surface = SDL::TTF::render_utf8_solid($font, $text, $color);

       Render the UTF8 encoded text onto a new surface, using the Solid mode.
       After that you can blit this surface to your display-surface.

       Note: 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

       render_unicode_solid

	my $surface = SDL::TTF::render_unicode_solid($font, $text, $color);

       Render the unicode encoded text onto a new surface, using the Solid
       mode. After that you can blit this surface to your display-surface.

       Note: The unicode test has to be passed exactly like for
       SDL::TTF::size_unicode.

       Note: 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

       Shaded

       render_glyph_shaded

	my $surface = SDL::TTF::render_glyph_shaded($font, $char, $color, $background_color);

       Render the unicode encoded char onto a new surface. The surface is
       filled with $background_color. After that you can blit this surface to
       your display-surface.

       Note: The unicode char has to be passed exactly like for
       SDL::TTF::size_unicode.

       render_text_shaded

	my $surface = SDL::TTF::render_text_shaded($font, $text, $color, $background_color);

       Render the LATIN1 encoded text onto a new surface. The surface is
       filled with $background_color. After that you can blit this surface to
       your display-surface.

       Example:

	use SDL;
	use SDL::Video;
	use SDL::Color;
	use SDL::TTF;
	use SDL::TTF::Font;

	SDL::init(SDL_INIT_VIDEO);

	SDL::TTF::init();

	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->new(0xFF, 0xFF, 0xFF);
	my $black   = SDL::Color->new(0x00, 0x00, 0x00);
	my $surface = SDL::TTF::render_text_solid($font, 'Hello!', $white, $black);

	SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
	SDL::Video::update_rect($display, 0, 0, 0, 0);

	SDL::delay(5000);

       render_utf8_shaded

	my $surface = SDL::TTF::render_utf8_shaded($font, $text, $color, $background_color);

       Render the UTF8 encoded text onto a new surface. The surface is filled
       with $background_color. After that you can blit this surface to your
       display-surface.

       render_unicode_shaded

	my $surface = SDL::TTF::render_unicode_shaded($font, $text, $color, $background_color);

       Render the unicode encoded text onto a new surface. The surface is
       filled with $background_color. After that you can blit this surface to
       your display-surface.

       Note: The unicode text has to be passed exactly like for
       SDL::TTF::size_unicode.

       Blended

       render_glyph_blended

	my $surface = SDL::TTF::render_glyph_blended($font, $char, $color);

       Render the unicode encoded char onto a new surface. After that you can
       blit this surface to your display-surface.

       Note: The unicode char has to be passed exactly like for
       SDL::TTF::size_unicode.

       render_text_blended

	my $surface = SDL::TTF::render_text_blended($font, $text, $color);

       Render the LATIN1 encoded text onto a new surface. After that you can
       blit this surface to your display-surface.

       Example:

	use SDL;
	use SDL::Video;
	use SDL::Color;
	use SDL::TTF;
	use SDL::TTF::Font;

	SDL::init(SDL_INIT_VIDEO);

	SDL::TTF::init();

	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, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF));

	SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
	SDL::Video::update_rect($display, 0, 0, 0, 0);

	SDL::delay(5000);

       render_utf8_blended

	my $surface = SDL::TTF::render_utf8_blended($font, $text, $color);

       Render the UTF8 encoded text onto a new surface. After that you can
       blit this surface to your display-surface.

       render_unicode_blended

	my $surface = SDL::TTF::render_unicode_blended($font, $text, $color);

       Render the unicode encoded text onto a new surface. After that you can
       blit this surface to your display-surface.

       Note: The unicode char has to be passed exactly like for
       SDL::TTF::size_unicode.

AUTHORS
       See "AUTHORS" in SDL.

SEE ALSO
       SDL::TTF::Font, Unicode::String, SDL::Video, SDL::Surface

perl v5.18.1			  2013-09-28		     pods::SDL::TTF(3)
[top]

List of man pages available for OpenSuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net