]> git.imager.perl.org - imager.git/blobdiff - W32/W32.pm
i_img_info() (C API) no longer tries to handle a NULL image object pointer.
[imager.git] / W32 / W32.pm
index ca5ece5a71ac9cdee44b6ede5dfe346fe5dc0140..331006bc1a7eb0a606c08adcc7e9320605947971 100644 (file)
@@ -5,24 +5,23 @@ use vars qw($VERSION @ISA);
 @ISA = qw(Imager::Font);
 
 BEGIN {
-  $VERSION = "0.80";
-
-  eval {
-    require XSLoader;
-    XSLoader::load('Imager::Font::W32', $VERSION);
-    1;
-  } or do {
-    require DynaLoader;
-    push @ISA, 'DynaLoader';
-    bootstrap Imager::Font::W32 $VERSION;
-  };
+  $VERSION = "0.90";
+
+  require XSLoader;
+  XSLoader::load('Imager::Font::W32', $VERSION);
 }
 
 # called by Imager::Font::new()
 # since Win32's HFONTs include the size information this
 # is just a stub
 sub new {
-  my ($class, %opts) = @_;
+  my $class = shift;
+  my %opts =
+      (
+       color => Imager::Color->new(255, 0, 0),
+       size => 15,
+       @_,
+      );
 
   return bless \%opts, $class;
 }
@@ -31,6 +30,12 @@ sub _bounding_box {
   my ($self, %opts) = @_;
   
   my @bbox = i_wf_bbox($self->{face}, $opts{size}, $opts{string}, $opts{utf8});
+  unless (@bbox) {
+    Imager->_set_error(Imager->_error_as_msg);
+    return;
+  }
+
+  return @bbox;
 }
 
 sub _draw {
@@ -38,17 +43,15 @@ sub _draw {
 
   my %input = @_;
   if (exists $input{channel}) {
-    i_wf_cp($self->{face}, $input{image}{IMG}, $input{x}, $input{'y'},
+    return i_wf_cp($self->{face}, $input{image}{IMG}, $input{x}, $input{'y'},
            $input{channel}, $input{size},
            $input{string}, $input{align}, $input{aa}, $input{utf8});
   }
   else {
-    i_wf_text($self->{face}, $input{image}{IMG}, $input{x}, 
+    return i_wf_text($self->{face}, $input{image}{IMG}, $input{x}, 
              $input{'y'}, $input{color}, $input{size}, 
              $input{string}, $input{align}, $input{aa}, $input{utf8});
   }
-
-  return 1;
 }
 
 
@@ -56,6 +59,10 @@ sub utf8 {
   return 1;
 }
 
+sub can_glyph_names {
+  return;
+}
+
 1;
 
 __END__