get ansio ext + max val.

SVN revision: 46240
This commit is contained in:
Carsten Haitzler 2010-02-17 07:26:44 +00:00
parent 6b42415c3b
commit fcf092e6d7
2 changed files with 26 additions and 8 deletions

View File

@ -88,6 +88,7 @@ struct _Evas_GL_Shared
struct { struct {
GLint max_texture_units; GLint max_texture_units;
GLint max_texture_size; GLint max_texture_size;
GLfloat anisotropic;
Eina_Bool tex_npo2 : 1; Eina_Bool tex_npo2 : 1;
Eina_Bool tex_rect : 1; Eina_Bool tex_rect : 1;
} info; } info;
@ -340,7 +341,7 @@ void (*glsym_glBindFramebuffer) (GLenum a, GLuint b);
void (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e); void (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e);
void (*glsym_glDeleteFramebuffers) (GLsizei a, const GLuint *b); void (*glsym_glDeleteFramebuffers) (GLsizei a, const GLuint *b);
#define GL_ERRORS 1 //#define GL_ERRORS 1
#ifdef GL_ERRORS #ifdef GL_ERRORS
# define GLERR(fn, fl, ln, op) \ # define GLERR(fn, fl, ln, op) \

View File

@ -209,6 +209,14 @@ evas_gl_common_context_new(void)
(strstr((char*) ext, "GL_ARB_texture_rectangle")) (strstr((char*) ext, "GL_ARB_texture_rectangle"))
) )
shared->info.tex_rect = 1; shared->info.tex_rect = 1;
#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
if ((strstr((char*) ext, "GL_EXT_texture_filter_anisotropic")))
{
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,
&(shared->info.anisotropic));
printf("max aniso: %3.3f\n", shared->info.anisotropic);
}
#endif
} }
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS,
&(shared->info.max_texture_units)); &(shared->info.max_texture_units));
@ -248,9 +256,12 @@ evas_gl_common_context_new(void)
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); GLERR(__FUNCTION__, __FILE__, __LINE__, "");
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); GLERR(__FUNCTION__, __FILE__, __LINE__, "");
#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT #ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16); if (shared->info.anisotropic > 0.0)
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
}
#endif #endif
glEnableVertexAttribArray(SHAD_VERTEX); glEnableVertexAttribArray(SHAD_VERTEX);
@ -1023,8 +1034,11 @@ shader_array_flush(Evas_GL_Context *gc)
if (gc->shader.smooth) if (gc->shader.smooth)
{ {
#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT #ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16); if (shared->info.anisotropic > 0.0)
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, shared->info.anisotropic);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
}
#endif #endif
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); GLERR(__FUNCTION__, __FILE__, __LINE__, "");
@ -1038,8 +1052,11 @@ shader_array_flush(Evas_GL_Context *gc)
else else
{ {
#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT #ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1); if (shared->info.anisotropic > 0.0)
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
}
#endif #endif
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
GLERR(__FUNCTION__, __FILE__, __LINE__, ""); GLERR(__FUNCTION__, __FILE__, __LINE__, "");