ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/Texture.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/Texture.pm (file contents):
Revision 1.4 by root, Tue Jun 6 02:55:50 2006 UTC vs.
Revision 1.5 by root, Wed Jun 14 16:20:23 2006 UTC

125 } 125 }
126 126
127 $self->{minified} ||= [CFClient::average $tw, $th, $data] 127 $self->{minified} ||= [CFClient::average $tw, $th, $data]
128 if $self->{minify}; 128 if $self->{minify};
129 129
130 unless ($GL_NPOT) { 130 pad2pot $data, $tw, $th unless $GL_NPOT;
131 # TODO: does not work for zero-sized textures
132 $tw = topot $tw;
133 $th = topot $th;
134
135 if (($tw != $self->{w} || $th != $self->{h}) && defined $data) {
136 my $bpp = (length $data) / ($self->{w} * $self->{h});
137 $data = pack "(a" . ($tw * $bpp) . ")*",
138 unpack "(a" . ($self->{w} * $bpp) . ")*", $data;
139 $data .= ("\x00" x ($tw * $bpp)) x ($th - $self->{h});
140 }
141 }
142 131
143 $self->{s} = $self->{w} / $tw; 132 $self->{s} = $self->{w} / $tw;
144 $self->{t} = $self->{h} / $th; 133 $self->{t} = $self->{h} / $th;
145 134
146 $self->{name} ||= glGenTexture; 135 $self->{name} ||= glGenTexture;
187 $tw, $th, 176 $tw, $th,
188 0; 177 0;
189 gl_check "copying to texture %dx%d if=%x", 178 gl_check "copying to texture %dx%d if=%x",
190 $tw, $th, $self->{internalformat}; 179 $tw, $th, $self->{internalformat};
191 } 180 }
192
193 glBindTexture GL_TEXTURE_2D, 0; # just to be on the safe side
194} 181}
195 182
196sub DESTROY { 183sub DESTROY {
197 my ($self) = @_; 184 my ($self) = @_;
198 185

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines