=pod =head1 NAME SDL::Pango - Text rendering engine =head1 CATEGORY Pango =head1 SYNOPSIS use SDL; use SDL::Color; use SDL::Surface; use SDL::Overlay; use SDL::Rect; use SDL::Video; use SDL::PixelFormat; use SDL::Pango; use SDL::Pango::Context; SDL::Pango::init(); my $context = SDL::Pango::Context->new; SDL::Pango::set_default_color($context, 0xA7C344FF, 0); SDL::Pango::set_markup($context, 'Hallo <b>W<span foreground="red">o</span><i>r</i><u>l</u>d</b>!', -1); SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); my $bg = SDL::Video::map_RGB($display->format, 0x12, 0x22, 0x45); SDL::Video::fill_rect($display, SDL::Rect->new(0, 0, 640, 480), $bg); my $surface = SDL::Pango::create_surface_draw($context); SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(0, 0, 640, 480)); SDL::Video::update_rect($display, 0, 0, 0, 0); SDL::delay(2000); =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Pango (); and access them directly: SDL::Pango::SDLPANGO_DIRECTION_NEUTRAL; or by choosing the export tags below: Export tag: ':align' =over 4 =item SDLPANGO_ALIGN_LEFT Left alignment =item SDLPANGO_ALIGN_CENTER Centered =item SDLPANGO_ALIGN_RIGHT Right alignment =back Export tag: ':direction' =over 4 =item SDLPANGO_DIRECTION_LTR Left to right =item SDLPANGO_DIRECTION_RTL Right to left =item SDLPANGO_DIRECTION_WEAK_LTR Left to right (weak) =item SDLPANGO_DIRECTION_WEAK_RTL Right to left (weak) =item SDLPANGO_DIRECTION_NEUTRAL Neutral =back =head1 METHODS =head2 init SDL::Pango::init(); Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting L<SDL::Pango::was_init|SDL::Pango/"was_init">. SDL does not have to be initialized before this call. Returns: always C<0>. =head2 was_init my $was_init = SDL::Pango::was_init(); Query the initilization status of the Glib and Pango API. You may, of course, use this before L<SDL::Pango::init|SDL::Pango/"init"> to avoid initilizing twice in a row. Returns: Non-zero when already initialized. Zero when not initialized. =head2 set_default_color SDL::Pango::set_default_color($context, $foreground, $background); SDL::Pango::set_default_color($context, $r1, $g1, $b1, $a1, $r2, $g2, $b2, $a2); Sets default foreground and background color when rendering text and markup. You can call it with either 2 color-parameters (32-bit RRGGBBAA values), or with 4 separate values for foreground and 4 separate values for background. =head2 set_minimum_size SDL::Pango::set_minimum_size($context, $width, $height); Sets the minimum size of the drawing rectangle. =head2 set_text SDL::Pango::set_text($context, $text, $length); SDL::Pango::set_text($context, $text, $length, $alignment); Set plain text to context. Text must be utf-8. C<$length> chars will be rendered, pass C<-1> to render the whole text. C<$alignment> can be: =over 4 =item * SDLPANGO_ALIGN_LEFT (default) =item * SDLPANGO_ALIGN_CENTER =item * SDLPANGO_ALIGN_RIGHT =back =head2 set_markup SDL::Pango::set_markup($context, $text, $length); Set markup text to context. Text must be utf-8. C<$length> chars will be rendered, pass C<-1> to render the whole text. See L<PangoMarkupFormat|http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html> for a description about the markup format. =head2 get_layout_width my $w = SDL::Pango::get_layout_width($context); Returns the width of the resulting surface of the given text/markup for this context. =head2 get_layout_height my $h = SDL::Pango::get_layout_height($context); Returns the height of the resulting surface of the given text/markup for this context. =head2 set_base_direction SDL::Pango::set_base_direction($context, $direction); Sets the direction of the text to either left-to-right or right-to-left. See L</CONSTANTS>. =head2 set_dpi SDL::Pango::set_dpi($context, $dpi_x, $dpi_y); Sets the DPI (dots per inch) for this context. Default is C<96>. =head2 set_language SDL::Pango::set_language($context, $language); Sets the language name for this context. See L<ISO639-2|http://www.loc.gov/standards/iso639-2/php/code_list.php>. Example: SDL::Pango::set_language($context, "en"); =head2 draw SDL::Pango::draw($context, $display, $x, $y); Draws the text or markup to an existing surface at position C<$x>/C<$y>. =head2 set_surface_create_args SDL::Pango::set_surface_create_args($context, $flags, $bits, $r_mask, $g_mask, $b_mask, $a_mask); Sets the argumet that are used when creating a surface via L<SDL::Pango::create_surface_draw|SDL::Pango/"create_surface_draw">. Example: SDL::Pango::set_surface_create_args( $context, SDL_SWSURFACE, 32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF ); =head2 create_surface_draw my $surface = SDL::Pango::create_surface_draw($context); Creates a new surface and draws the text/markup. You can specify the attributes of the surfaces using L<SDL::Pango::set_surface_create_args|SDL::Pango/"set_surface_create_args">. =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<SDL::Pango::Context>, L<SDL::Video>, L<SDL::Surface>, L<SDL::TTF> =cut