Difference for arch/ogl/gr.c from version 1.12 to 1.13


version 1.12 version 1.13
Line 184
 
Line 184
 }  }
   
 #define GLstrcmptestr(a,b) if (stricmp(a,#b)==0 || stricmp(a,"GL_" #b)==0)return GL_ ## b;  #define GLstrcmptestr(a,b) if (stricmp(a,#b)==0 || stricmp(a,"GL_" #b)==0)return GL_ ## b;
 int ogl_atotexfilti(char *a){  int ogl_atotexfilti(char *a,int min){
  GLstrcmptestr(a,NEAREST);   GLstrcmptestr(a,NEAREST);
  GLstrcmptestr(a,LINEAR);   GLstrcmptestr(a,LINEAR);
    if (min){//mipmaps are valid only for the min filter
  GLstrcmptestr(a,NEAREST_MIPMAP_NEAREST);   GLstrcmptestr(a,NEAREST_MIPMAP_NEAREST);
  GLstrcmptestr(a,NEAREST_MIPMAP_LINEAR);   GLstrcmptestr(a,NEAREST_MIPMAP_LINEAR);
  GLstrcmptestr(a,LINEAR_MIPMAP_NEAREST);   GLstrcmptestr(a,LINEAR_MIPMAP_NEAREST);
  GLstrcmptestr(a,LINEAR_MIPMAP_LINEAR);   GLstrcmptestr(a,LINEAR_MIPMAP_LINEAR);
  return GL_NEAREST;   }
    Error("unknown/invalid texture filter %s\n",a);
   // return GL_NEAREST;
 }  }
 int ogl_testneedmipmaps(int i){  int ogl_testneedmipmaps(int i){
  switch (i){   switch (i){
Line 204
 
Line 207
  case GL_LINEAR_MIPMAP_LINEAR:   case GL_LINEAR_MIPMAP_LINEAR:
  return 1;   return 1;
  }   }
  return -1;   Error("unknown texture filter %x\n",i);
   // return -1;
 }  }
 int gr_init(int mode)  int gr_init(int mode)
 {  {
  int retcode,t;   int retcode,t,glt=0;
  // Only do this function once!   // Only do this function once!
  if (gr_installed==1)   if (gr_installed==1)
  return -1;   return -1;
Line 216
 
Line 220
  if (FindArg("-fullscreen"))   if (FindArg("-fullscreen"))
  gr_toggle_fullscreen();   gr_toggle_fullscreen();
 #endif  #endif
  if ((t=FindArg("-gl_texmagfilt"))){   if ((glt=FindArg("-gl_mipmap"))){
    GL_texmagfilt=GL_LINEAR;
    GL_texminfilt=GL_LINEAR_MIPMAP_NEAREST;
    }
    if ((t=FindArg("-gl_simple"))){
    if (t>=glt){//allow overriding of earlier args
    glt=t;
    GL_texmagfilt=GL_NEAREST;
    GL_texminfilt=GL_NEAREST;
    }
    }
    if ((t=FindArg("-gl_texmagfilt")) || (t=FindArg("-gl_texmagfilter"))){
 // t=atoi(Args[t+1]);  // t=atoi(Args[t+1]);
  GL_texmagfilt=ogl_atotexfilti(Args[t+1]);   if (t>=glt)//allow overriding of earlier args
    GL_texmagfilt=ogl_atotexfilti(Args[t+1],0);
  }   }
  if ((t=FindArg("-gl_texminfilt"))){   if ((t=FindArg("-gl_texminfilt")) || (t=FindArg("-gl_texminfilter"))){
  GL_texminfilt=ogl_atotexfilti(Args[t+1]);   if (t>=glt)//allow overriding of earlier args
    GL_texminfilt=ogl_atotexfilti(Args[t+1],1);
  }   }
  GL_needmipmaps=(ogl_testneedmipmaps(GL_texminfilt) ||  ogl_testneedmipmaps(GL_texmagfilt));   GL_needmipmaps=ogl_testneedmipmaps(GL_texminfilt);
  mprintf((0,"gr_init: texmagfilt:%x texminfilt:%x needmipmaps=%i\n",GL_texmagfilt,GL_texminfilt,GL_needmipmaps));   mprintf((0,"gr_init: texmagfilt:%x texminfilt:%x needmipmaps=%i\n",GL_texmagfilt,GL_texminfilt,GL_needmipmaps));
    
  ogl_init();//platform specific initialization   ogl_init();//platform specific initialization

Legend:
line(s) removed in v.1.12 
line(s) changed
 line(s) added in v.1.13