--- deliantra/Deliantra-Client/DC/OpenGL.pm 2006/07/30 13:16:44 1.4 +++ deliantra/Deliantra-Client/DC/OpenGL.pm 2007/08/19 12:56:24 1.9 @@ -9,6 +9,7 @@ our $GL_VERSION; our $GL_NPOT; +our $GL_COMPRESS; our $DEBUG = 1; our %INIT_HOOK; @@ -28,20 +29,31 @@ } sub init { - $GL_VERSION = gl_version * 1; - %GL_EXT = map +($_ => 1), split /\s+/, gl_extensions; + if ($::CFG->{force_opengl11}) { + $GL_VERSION = 1.1; + %GL_EXT = (); + } else { + $GL_VERSION = gl_version * 1; + %GL_EXT = map +($_ => 1), split /\s+/, gl_extensions; + } - $GL_NPOT = $GL_EXT{GL_ARB_texture_non_power_of_two} || $GL_VERSION >= 2; - $GL_NPOT = 0 if gl_vendor =~ /ATI Technologies/; # ATI doesn't get it right... + $GL_NPOT = $GL_EXT{GL_ARB_texture_non_power_of_two} || $GL_VERSION >= 2.0; + $GL_COMPRESS = $GL_EXT{GL_ARB_texture_compression} || $GL_VERSION >= 1.3; glDisable GL_COLOR_MATERIAL; glShadeModel GL_FLAT; glDisable GL_DITHER; glDisable GL_DEPTH_TEST; glDepthMask 0; - glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST; - glDrawBuffer GL_BACK; - glReadBuffer GL_BACK; + + my $hint = $::FAST ? GL_FASTEST : GL_NICEST; + glHint GL_PERSPECTIVE_CORRECTION_HINT, $hint; + glHint GL_POINT_SMOOTH_HINT , $hint; + glHint GL_LINE_SMOOTH_HINT , $hint; + glHint GL_POLYGON_SMOOTH_HINT , $hint; + glHint GL_GENERATE_MIPMAP_HINT , $hint; + #glDrawBuffer GL_BACK; + #glReadBuffer GL_BACK; $_->() for values %INIT_HOOK; }