X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-TTF.html-inc;h=392a65bde30bbaef73f6ea90e5ea4757bf496939;hb=0b221bb4fce84647a6cb9d7343de7330fb561c71;hp=9779aaa0309d854bb45571851659c9e512c299d4;hpb=c5291845aae25078edccea7589f9dd9aae805c3e;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL-TTF.html-inc b/pages/SDL-TTF.html-inc index 9779aaa..392a65b 100644 --- a/pages/SDL-TTF.html-inc +++ b/pages/SDL-TTF.html-inc @@ -4,6 +4,7 @@
@@ -96,7 +106,36 @@

CATEGORY

Top

-

TODO, TTF

+

TTF

+ +
+

CONSTANTS

Top

+
+

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

+ + +

Available constants for "style":

+ +

METHODS

Top

@@ -139,7 +178,7 @@ No prior initialization needs to be done before these function is called.

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. +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.

@@ -150,8 +189,8 @@ SDL does not have to be initialized before this call.

Query the initilization 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.

+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

@@ -160,7 +199,7 @@ You may, of course, use this before SDL::TTF::init<

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 +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

@@ -179,7 +218,7 @@ use the functionality again

 use SDL::TTF;
  use SDL::TTF::Font;
 
- my $font = SDL::TTF::open_font('arial.ttf', '24);
+ my $font = SDL::TTF::open_font('arial.ttf', 24);
 
 
@@ -189,7 +228,7 @@ use the functionality again

 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 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.

@@ -198,7 +237,7 @@ This can load TTF and FON files.

 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 +

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);
@@ -211,7 +250,7 @@ will be freed by SDL_ttf library. Don't do this, perl will free this object for
 
 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 +

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.

@@ -340,6 +379,7 @@ using smaller sized fonts. If the user is selecting a font, you may wish to let

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

@@ -365,7 +405,7 @@ overlapping glyphs or abnormal spacing within words.

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.

+printing, so you are responsible for line spacing, see the SDL::TTF::font_line_skip as well.

font_ascent

@@ -407,7 +447,7 @@ of the rectangle used when blitting the glyph on the screen.

 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 +

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.

@@ -501,81 +541,257 @@ in the font is the same width, thus you can assume that a rendered string's widt

size_text

-
 my ($width, $height) = @{ SDL::TTF::size_text($font, 'Hallo World!') };
+
 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, 'Hallo World!') };
+
 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, 'Hallo 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_somwhere);
+ ($width, $height) = @{ SDL::TTF::size_utf8($font, $unicode->utf8) }; # utf8 via Unicode::String
 
 

size_unicode

-
 my ($width, $height) = @{ SDL::TTF::size_unicode($font, 'Hallo World!') };
-
-
+
 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
+
+

"hallo" will look like "\0h\0a\0l\0l\0o"

+
+
UTF16BE with BOM
+
+

"hallo" will look like "\xFE\xFF\0h\0a\0l\0l\0o"

+
+
UTF16LE with BOM
+
+

"hallo" will look like "\xFF\xFEh\0a\0l\0l\0o\0"

+
+
+

You may use Unicode::String for this.

Font Rendering

-

render_glyph_solid

+

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. You have to upgrade libfreetype2 to at least version 2.3.5

-

render_glyph_shaded

-
+

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. 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('test/data/aircut3.ttf', '24');
+ die 'Coudnt make font '. SDL::get_error if !$font;
+ my $surface = SDL::TTF::render_text_solid($font, 'Hallo!', 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_glyph_blended

-
+

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. You have to upgrade libfreetype2 to at least +version 2.3.5

-

render_text_solid

-
-

Note: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062

+

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. You have to upgrade libfreetype2 to at least +version 2.3.5

-

render_text_shaded

-
+

Shaded

+
-

render_text_blended

-
+

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_utf8_solid

-
+

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, 'Hallo!', $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

+

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_utf8_blended

-
+

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.

-

render_unicode_solid

-
+

Blended

+
-

render_unicode_shaded

-
+

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, 'Hallo!', 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_unicode_blended

+

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.

-

AUTHOR

Top

-
-

Tobias Leich [FROGGS]

+

AUTHORS

Top

+
+

See AUTHORS in SDL.

SEE ALSO

Top