hi all,

Skip to #SUMMARY to just see the current status of this. A Cc: sent to LDS.

Running tests with a tweaked t:GD.t for MacOS. It looks like GD is quite
happy to draw pictures using the usual primitives, but my build /appeared/
to be broken in respect of:

Your vendor has not defined GD macro main::gdTiled, used at
Programs:Programmin...
and
Your vendor has not defined GD macro main::gdBrushed, used at Programs:P...

Right, it seems likely that I am missing something important. I looked in
GD.pm and adjusted line 68 onwards to:

    my($constname);
    $! = 0;
    ($constname = $AUTOLOAD) =~ s/.*:://;
    my $val = constant($constname, @_ ? $_[0] : 0);
    print "AUTOLOAD needs <$constname> got val <$val> and ! is <$!>\n"; #PKENT
    if ($! != 0) {

this proved that constant() returned the correct numbers from gd.h.
_However_ it also showed that $! was 'Operation not permitted' - that's why
I added the '$! = 0;' line, to make sure it was false before calling
constant(). After adding that, AUTOLOAD worked and constants evaluated
correctly.

However _then_ test 1 died on:
# brush is not of type GD::Image.
File
'Programs:Programming:Perl5.6.1:src:macperl_src:perl:ext:GD-1.38:t:GD.t';
Line 128

I finally found the problem: newFromPng( FILEHANDLE ) returned undef - I
suspect it may be some \n \r confusion?? However, a quick hack, and I
showed that newFromPngData( $data ) worked perfectly!

#SUMMARY

newFromPng returns undef, not a GD::Image object.
newFromPngData works OK.

(no XPM support is compiled in so...
GD::Image->newFromXpm($fn); returns undef )

(I'm sure libgd had JPEG support compiled in...
newFromJpeg and newFromJpegData both return undef. )

All other drawing commands tested OK.

using t/GD.t as supplied (with tweaks) I get:
1..10
ok 1
TEST 9
    Last test had eval err: Can't call method "png" on an undefined value
at Programs:Programming:Perl5.6.1:src:macperl_src:perl:ext:GD-1.38:t:GD.t
line 287.

TEST 10
    Last test had eval err: Can't call method "png" on an undefined value
at Programs:Programming:Perl5.6.1:src:macperl_src:perl:ext:GD-1.38:t:GD.t
line 299.

ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8 # Skip, no TrueType font support
ok 9 # Skip, no XPM support
ok 10 # Skip, no JPEG support
# GD/libgd was not built with TrueType font support
#
# GD/libgd was not built with TrueType font support

The test output matches the supplied test files.

Anyway, I thought I'd built libgd with JPEG support. In any case I can't
see why newFromPng should fail, but newFromPngData should be OK.

I'm going to leave this for today anyway, but I thought you'd all
appreciate knowing how I was (sort of) doing.

P


Reply via email to