Mercurial > mplayer.hg
changeset 28091:c6ead2b85569
Try to auto-detect several vo_gl settings (ati-hack, force-pbo and rectangle).
author | reimar |
---|---|
date | Wed, 10 Dec 2008 16:39:45 +0000 |
parents | ff508c85d591 |
children | 77c7b422a49d |
files | libvo/vo_gl.c |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_gl.c Wed Dec 10 14:28:17 2008 +0000 +++ b/libvo/vo_gl.c Wed Dec 10 16:39:45 2008 +0000 @@ -401,11 +401,21 @@ err_shown = 0; } +static void autodetectGlExtensions(void) { + const char *extensions = glGetString(GL_EXTENSIONS); + const char *vendor = glGetString(GL_VENDOR); + int is_ati = strstr(vendor, "ATI") != NULL; + if (ati_hack == -1) ati_hack = is_ati; + if (force_pbo == -1) force_pbo = strstr(extensions, "_pixel_buffer_object") ? is_ati : 0; + if (use_rectangle == -1) use_rectangle = strstr(extensions, "_texture_non_power_of_two") ? 2 : 0; +} + /** * \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) { + autodetectGlExtensions(); texSize(image_width, image_height, &texture_width, &texture_height); glDisable(GL_BLEND); @@ -925,10 +935,10 @@ lscale = 0; cscale = 0; filter_strength = 0.5; - use_rectangle = 0; + use_rectangle = -1; use_glFinish = 0; - ati_hack = 0; - force_pbo = 0; + ati_hack = -1; + force_pbo = -1; mesa_buffer = 0; swap_interval = 1; slice_height = 0;