Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

244 lines (135 sloc) 5.338 kb

NAME

SDL::Pango - Text rendering engine

CATEGORY

Pango

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, 'Hello <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);

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'

SDLPANGO_ALIGN_LEFT

Left alignment

SDLPANGO_ALIGN_CENTER

Centered

SDLPANGO_ALIGN_RIGHT

Right alignment

Export tag: ':direction'

SDLPANGO_DIRECTION_LTR

Left to right

SDLPANGO_DIRECTION_RTL

Right to left

SDLPANGO_DIRECTION_WEAK_LTR

Left to right (weak)

SDLPANGO_DIRECTION_WEAK_RTL

Right to left (weak)

SDLPANGO_DIRECTION_NEUTRAL

Neutral

METHODS

init

 SDL::Pango::init();

Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting SDL::Pango::was_init. SDL does not have to be initialized before this call.

Returns: always 0.

was_init

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

Query the initialization status of the Glib and Pango API. You may, of course, use this before SDL::Pango::init to avoid initializing twice in a row.

Returns: Non-zero when already initialized. Zero when not initialized.

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.

set_minimum_size

 SDL::Pango::set_minimum_size($context, $width, $height);

Sets the minimum size of the drawing rectangle.

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. $length chars will be rendered, pass -1 to render the whole text.

$alignment can be:

  • SDLPANGO_ALIGN_LEFT (default)
  • SDLPANGO_ALIGN_CENTER
  • SDLPANGO_ALIGN_RIGHT

set_markup

 SDL::Pango::set_markup($context, $text, $length);

Set markup text to context. Text must be utf-8. $length chars will be rendered, pass -1 to render the whole text.

See PangoMarkupFormat for a description about the markup format.

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.

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.

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

set_dpi

 SDL::Pango::set_dpi($context, $dpi_x, $dpi_y);

Sets the DPI (dots per inch) for this context. Default is 96.

set_language

 SDL::Pango::set_language($context, $language);

Sets the language name for this context.

See ISO639-2.

Example:

 SDL::Pango::set_language($context, "en");

draw

 SDL::Pango::draw($context, $display, $x, $y);

Draws the text or markup to an existing surface at position $x/$y.

set_surface_create_args

 SDL::Pango::set_surface_create_args($context, $flags, $bits, $r_mask, $g_mask, $b_mask, $a_mask);

Sets the argument that are used when creating a surface via SDL::Pango::create_surface_draw.

Example:

 SDL::Pango::set_surface_create_args(
     $context, 
     SDL_SWSURFACE, 
     32, 
     0xFF000000, 
     0x00FF0000, 
     0x0000FF00, 
     0x000000FF
 );

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 SDL::Pango::set_surface_create_args.

AUTHORS

See "AUTHORS" in SDL.

SEE ALSO

SDL::Pango::Context, SDL::Video, SDL::Surface, SDL::TTF

Jump to Line
Something went wrong with that request. Please try again.