SDL::Pango - Text rendering engine
TODO, Pango
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 = new SDL::Pango::Context; 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);
The constants are not exported by default. You can export them into your namespace by doing:
use SDL::Pango ':constants';
or access them directly:
SDL::Pango::SDLPANGO_DIRECTION_NEUTRAL;
Available constants:
Left to right
Right to left
Left to right (weak)
Right to left (weak)
Neutral
SDL::Pango::init();
my $was_init = SDL::Pango::was_init();
SDL::Pango::set_default_color($context, 0xA7C344FF, 0); SDL::Pango::set_default_color($context, 0xA7, 0xC3, 0x44, 0xFF, 0, 0, 0, 0x00);
SDL::Pango::set_minimum_size($context, 640, 0);
SDL::Pango::set_text($context, $text, 20);
SDL::Pango::set_markup($context, $text, -1);
my $w = SDL::Pango::get_layout_width($context);
my $h = SDL::Pango::get_layout_height($context);
SDL::Pango::set_base_direction($context, SDLPANGO_DIRECTION_LTR);
SDL::Pango::set_dpi($context, 48, 48);
SDL::Pango::set_language($context, "en");
SDL::Pango::draw($context, $display, (640 - $w) / 2, (480 - $h) / 2);
SDL::Pango::set_surface_create_args($context, SDL_SWSURFACE, 32, 255<<24, 255<<16, 255<<8, 255);
my $surface = SDL::Pango::create_surface_draw($context);
Tobias Leich [FROGGS]