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.11 by root, Sun Jul 30 13:16:44 2006 UTC vs.
Revision 1.13 by root, Sat Dec 9 21:26:46 2006 UTC

13=cut 13=cut
14 14
15package CFPlus::Texture; 15package CFPlus::Texture;
16 16
17use strict; 17use strict;
18
19use Scalar::Util;
20 18
21use CFPlus::OpenGL; 19use CFPlus::OpenGL;
22 20
23my %TEXTURES; 21my %TEXTURES;
24 22
30 format => GL_RGBA, 28 format => GL_RGBA,
31 type => GL_UNSIGNED_BYTE, 29 type => GL_UNSIGNED_BYTE,
32 %data, 30 %data,
33 }, $class; 31 }, $class;
34 32
35 Scalar::Util::weaken ($TEXTURES{$self+0} = $self); 33 CFPlus::weaken ($TEXTURES{$self+0} = $self);
36 34
37 $self->upload; 35 $self->upload;
38 36
39 $self 37 $self
40} 38}
84#} 82#}
85 83
86sub new_from_opengl { 84sub new_from_opengl {
87 my ($class, $w, $h, $cb) = @_; 85 my ($class, $w, $h, $cb) = @_;
88 86
89 $class->new (w => $w || 1, h => $h || 1, render_cb => $cb) 87 $class->new (w => $w || 1, h => $h || 1, render_cb => $cb, nearest => 1)
90} 88}
91 89
92sub upload { 90sub upload {
93 my ($self) = @_; 91 my ($self) = @_;
94 92
135 } else { 133 } else {
136 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, $GL_VERSION >= 1.2 ? GL_CLAMP_TO_EDGE : GL_CLAMP; 134 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, $GL_VERSION >= 1.2 ? GL_CLAMP_TO_EDGE : GL_CLAMP;
137 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, $GL_VERSION >= 1.2 ? GL_CLAMP_TO_EDGE : GL_CLAMP; 135 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, $GL_VERSION >= 1.2 ? GL_CLAMP_TO_EDGE : GL_CLAMP;
138 } 136 }
139 137
140 if ($::FAST) { 138 if ($::FAST || $self->{nearest}) {
141 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST; 139 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST;
142 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST; 140 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST;
143 } elsif ($self->{mipmap} && $GL_VERSION >= 1.4) { 141 } elsif ($self->{mipmap} && $GL_VERSION >= 1.4) {
144 glTexParameter GL_TEXTURE_2D, GL_GENERATE_MIPMAP, 1; 142 glTexParameter GL_TEXTURE_2D, GL_GENERATE_MIPMAP, 1;
145 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR; 143 glTexParameter GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines