--- deliantra/Deliantra-Client/DC.pm 2006/04/24 08:22:20 1.44 +++ deliantra/Deliantra-Client/DC.pm 2006/04/24 08:38:35 1.45 @@ -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},