X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fopengl.c;h=fd185d684bfdec92536dbb45fd64f2dc849d2ba5;hb=849d30789edad9cdd838053b63752334a49ee871;hp=336d4c66bd8ea852859fbecbc2afc78eaeae8587;hpb=4ec24960fea0145ea85dc4c5e1e30da869fa114f;p=vlc diff --git a/modules/video_output/opengl.c b/modules/video_output/opengl.c index 336d4c66bd..fd185d684b 100644 --- a/modules/video_output/opengl.c +++ b/modules/video_output/opengl.c @@ -69,10 +69,6 @@ #define VLCGL_TYPE VLCGL_RGB_TYPE #endif -#ifndef GL_CLAMP_TO_EDGE -# define GL_CLAMP_TO_EDGE 0x812F -#endif - /* OpenGL effects */ #define OPENGL_EFFECT_NONE 1 #define OPENGL_EFFECT_CUBE 2 @@ -96,6 +92,10 @@ static int InitTextures( vout_thread_t * ); static int SendEvents( vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void * ); +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +#define SPEED_TEXT N_( "OpenGL cube rotation speed" ) /***************************************************************************** * Module descriptor *****************************************************************************/ @@ -589,10 +589,10 @@ static void DisplayVideo( vout_thread_t *p_vout, picture_t *p_pic ) { glEnable( VLCGL_TARGET ); glBegin( GL_POLYGON ); - glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, 1.0 ); - glTexCoord2f( f_width, 0.0 ); glVertex2f( 1.0, 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex2f( 1.0, -1.0 ); - glTexCoord2f( 0.0, f_height ); glVertex2f( -1.0, -1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex2f( -1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex2f( 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex2f( 1.0, -1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex2f( -1.0, -1.0 ); glEnd(); } else @@ -603,40 +603,36 @@ static void DisplayVideo( vout_thread_t *p_vout, picture_t *p_pic ) glBegin( GL_QUADS ); /* Front */ - glTexCoord2f( 0, 0 ); glVertex3f( - 1.0, 1.0, 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( - 1.0, - 1.0, 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( 1.0, - 1.0, 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( 1.0, 1.0, 1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex3f( - 1.0, 1.0, 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( - 1.0, - 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( 1.0, - 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex3f( 1.0, 1.0, 1.0 ); /* Left */ - glTexCoord2f( 0, 0 ); glVertex3f( - 1.0, 1.0, - 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( - 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( - 1.0, - 1.0, 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( - 1.0, 1.0, 1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex3f( - 1.0, 1.0, - 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( - 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( - 1.0, - 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex3f( - 1.0, 1.0, 1.0 ); /* Back */ - glTexCoord2f( 0, 0 ); glVertex3f( 1.0, 1.0, - 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( - 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( - 1.0, 1.0, - 1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex3f( 1.0, 1.0, - 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( - 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex3f( - 1.0, 1.0, - 1.0 ); /* Right */ - glTexCoord2f( 0, 0 ); glVertex3f( 1.0, 1.0, 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( 1.0, - 1.0, 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( 1.0, 1.0, - 1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex3f( 1.0, 1.0, 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( 1.0, - 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex3f( 1.0, 1.0, - 1.0 ); /* Top */ - glTexCoord2f( 0, 0 ); glVertex3f( - 1.0, 1.0, - 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( - 1.0, 1.0, 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( 1.0, 1.0, 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( 1.0, 1.0, - 1.0 ); - - /* Bottom */ - glTexCoord2f( 0, 0 ); glVertex3f( - 1.0, - 1.0, 1.0 ); - glTexCoord2f( 0, f_height ); glVertex3f( - 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, f_height ); glVertex3f( 1.0, - 1.0, - 1.0 ); - glTexCoord2f( f_width, 0 ); glVertex3f( 1.0, - 1.0, 1.0 ); + glTexCoord2f( 0.5, 0.5 ); glVertex3f( - 1.0, 1.0, - 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( - 1.0, 1.0, 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( 1.0, 1.0, 1.0 ); + glTexCoord2f( 0.5, f_height - 0.5 ); glVertex3f( - 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, f_height - 0.5 ); glVertex3f( 1.0, - 1.0, - 1.0 ); + glTexCoord2f( f_width - 0.5, 0.5 ); glVertex3f( 1.0, - 1.0, 1.0 ); glEnd(); } @@ -696,12 +692,12 @@ static int InitTextures( vout_thread_t *p_vout ) /* Set the texture parameters */ glTexParameterf( VLCGL_TARGET, GL_TEXTURE_PRIORITY, 1.0 ); - glTexParameteri( VLCGL_TARGET, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); - glTexParameteri( VLCGL_TARGET, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); - glTexParameteri( VLCGL_TARGET, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameteri( VLCGL_TARGET, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); - + + glTexParameteri( VLCGL_TARGET, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); + glTexParameteri( VLCGL_TARGET, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); + glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); #ifdef SYS_DARWIN