Revision: 16704
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16704
Author:   campbellbarton
Date:     2008-09-23 17:21:14 +0200 (Tue, 23 Sep 2008)

Log Message:
-----------
disable magnification filtering when mipmap is off. useful for texture low poly 
models.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_draw.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_draw.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_draw.c  2008-09-23 14:32:14 UTC 
(rev 16703)
+++ trunk/blender/source/blender/gpu/intern/gpu_draw.c  2008-09-23 15:21:14 UTC 
(rev 16704)
@@ -222,7 +222,10 @@
 
 static GLenum gpu_get_mipmap_filter()
 {
-       return GTS.linearmipmap? GL_LINEAR_MIPMAP_LINEAR: 
GL_LINEAR_MIPMAP_NEAREST;
+       /* linearmipmap is off by default
+        * when mipmapping is off, use unfiltered display */
+       return GTS.linearmipmap? GL_LINEAR_MIPMAP_LINEAR :
+                               (GTS.domipmap ? GL_LINEAR_MIPMAP_NEAREST : 
GL_NEAREST);
 }
 
 /* Set OpenGL state for an MTFace */
@@ -474,12 +477,12 @@
        if (!gpu_get_mipmap()) {
                glTexImage2D(GL_TEXTURE_2D, 0,  GL_RGBA,  rectw, recth, 0, 
GL_RGBA, GL_UNSIGNED_BYTE, rect);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
GL_LINEAR);
-               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
GL_LINEAR);
+               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
gpu_get_mipmap_filter());
        }
        else {
                gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, rectw, recth, 
GL_RGBA, GL_UNSIGNED_BYTE, rect);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
gpu_get_mipmap_filter());
-               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
GL_LINEAR);
+               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
gpu_get_mipmap_filter());
 
                ima->tpageflag |= IMA_MIPMAP_COMPLETE;
        }
@@ -572,7 +575,7 @@
                                if(ima->tpageflag & IMA_MIPMAP_COMPLETE) {
                                        glBindTexture(GL_TEXTURE_2D, 
ima->bindcode);
                                        glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MIN_FILTER, gpu_get_mipmap_filter());
-                                       glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+                                       glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter());
                                }
                                else
                                        GPU_free_image(ima);
@@ -585,7 +588,7 @@
                        if(ima->bindcode) {
                                glBindTexture(GL_TEXTURE_2D, ima->bindcode);
                                glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-                               glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+                               glTexParameteri(GL_TEXTURE_2D, 
GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter());
                        }
                }
        }


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to