Fix for [#27484] "Run-time command line options don't work in Multi-texture mode...
authorMitchell Stokes <mogurijin@gmail.com>
Sun, 29 Jul 2012 05:59:03 +0000 (05:59 +0000)
committerMitchell Stokes <mogurijin@gmail.com>
Sun, 29 Jul 2012 05:59:03 +0000 (05:59 +0000)
source/blender/gpu/GPU_draw.h
source/blender/gpu/intern/gpu_draw.c
source/gameengine/Ketsji/BL_Texture.cpp

index 59140b2be80913d96e6c90667a110496b5ddafc3..7a71f33d3d0bb55592bbf772e503150f2f43240f 100644 (file)
@@ -104,6 +104,7 @@ void GPU_render_text(struct MTFace *tface, int mode,
  * - these will free textures on changes */
 
 void GPU_set_mipmap(int mipmap);
+int GPU_get_mipmap(void);
 void GPU_set_linear_mipmap(int linear);
 void GPU_paint_set_mipmap(int mipmap);
 
index f4e1e0c1147848daa6b1546430783b2078e2c7c7..456e14c8401ddd1628e173e8b1e49a5dca924a7c 100644 (file)
@@ -268,7 +268,7 @@ void GPU_set_linear_mipmap(int linear)
        }
 }
 
-static int gpu_get_mipmap(void)
+int GPU_get_mipmap(void)
 {
        return GTS.domipmap && !GTS.texpaint;
 }
@@ -662,7 +662,7 @@ void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float * frect, int
        glGenTextures(1, (GLuint *)bind);
        glBindTexture(GL_TEXTURE_2D, *bind);
 
-       if (!(gpu_get_mipmap() && mipmap)) {
+       if (!(GPU_get_mipmap() && mipmap)) {
                if (use_high_bit_depth)
                        glTexImage2D(GL_TEXTURE_2D, 0,  GL_RGBA16,  rectw, recth, 0, GL_RGBA, GL_FLOAT, frect);
                else
@@ -883,7 +883,7 @@ void GPU_paint_update_image(Image *ima, int x, int y, int w, int h, int mipmap)
        
        ibuf = BKE_image_get_ibuf(ima, NULL);
        
-       if (ima->repbind || (gpu_get_mipmap() && mipmap) || !ima->bindcode || !ibuf ||
+       if (ima->repbind || (GPU_get_mipmap() && mipmap) || !ima->bindcode || !ibuf ||
            (!is_power_of_2_i(ibuf->x) || !is_power_of_2_i(ibuf->y)) ||
            (w == 0) || (h == 0))
        {
index f2d67e9131d1a15fc5e4655ebd3e66772fa7ce57..fee8047642d5533e55d91cf9a0938b5216ec78b4 100644 (file)
@@ -116,6 +116,7 @@ bool BL_Texture::InitFromImage(int unit,  Image *img, bool mipmap)
                return mOk;
        }
 
+       mipmap = mipmap && GPU_get_mipmap();
 
        mTexture = img->bindcode;
        mType = GL_TEXTURE_2D;
@@ -182,7 +183,7 @@ void BL_Texture::InitGLTex(unsigned int *pix,int x,int y,bool mipmap)
        } 
        else {
                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, GL_NEAREST);
                glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, pix );
        }