--- deliantra/Deliantra-Client/DC.pm 2006/04/24 08:22:20 1.44 +++ deliantra/Deliantra-Client/DC.pm 2006/04/24 13:01:13 1.47 @@ -51,7 +51,7 @@ sub find_rcfile($) { my $path; - for (@INC) { + for (grep !ref, @INC) { $path = "$_/CFClient/resources/$_[0]"; return $path if -r $path; } @@ -245,7 +245,7 @@ my ($tw, $th) = @$self{qw(w h)}; - unless ($tw && $th) { + unless ($tw > 0 && $th > 0) { $tw = $th = 1; $data = "\x00" x 64; } @@ -269,8 +269,6 @@ $self->{s} = $self->{w} / $tw; $self->{t} = $self->{h} / $th; - glGetError; - $self->{name} ||= glGenTexture; glBindTexture GL_TEXTURE_2D, $self->{name}; @@ -281,12 +279,19 @@ if ($::FAST) { glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST; glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST; + } elsif ($self->{mipmap} && $GL_VERSION >= 1.4) { + # alternatively check for 0x8191 + glTexParameter GL_TEXTURE_2D, GL_GENERATE_MIPMAP, 1; + glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR; + glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR; } else { glTexParameter GL_TEXTURE_2D, GL_GENERATE_MIPMAP, $self->{mipmap}; glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR; - glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, $self->{mipmap} ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR; + glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR; } + glGetError; + if (defined $data) { glTexImage2D GL_TEXTURE_2D, 0, $self->{internalformat},