Mercurial > mplayer.hg
changeset 31677:cc01d9cee8f0
Make it possible to select GL_NEAREST scaling.
author | reimar |
---|---|
date | Thu, 15 Jul 2010 18:57:57 +0000 |
parents | a0a48c62bb8c |
children | 171c560d0ba1 |
files | libvo/vo_gl.c |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_gl.c Thu Jul 15 18:50:57 2010 +0000 +++ b/libvo/vo_gl.c Thu Jul 15 18:57:57 2010 +0000 @@ -507,12 +507,19 @@ ati_hack, force_pbo, use_rectangle, use_yuv); } +static GLint get_scale_type(int chroma) { + int nearest = (chroma ? cscale : lscale) & 64; + if (nearest) + return mipmap_gen ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST; + return mipmap_gen ? GL_LINEAR_MIPMAP_NEAREST : GL_LINEAR; +} + /** * \brief Initialize a (new or reused) OpenGL context. * set global gl-related variables to their default values */ static int initGl(uint32_t d_width, uint32_t d_height) { - int scale_type = mipmap_gen ? GL_LINEAR_MIPMAP_NEAREST : GL_LINEAR; + GLint scale_type = get_scale_type(0); autodetectGlExtensions(); gl_target = use_rectangle == 1 ? GL_TEXTURE_RECTANGLE : GL_TEXTURE_2D; yuvconvtype = SET_YUV_CONVERSION(use_yuv) | @@ -540,6 +547,7 @@ if (is_yuv) { int i; int xs, ys; + scale_type = get_scale_type(1); mp_get_chroma_shift(image_format, &xs, &ys); mpglGenTextures(21, default_texs); default_texs[21] = 0;