Mercurial > mplayer.hg
comparison libvo/vo_xvidix.c @ 6382:86d5fc5b54e2
fix panscan support and add Jesper Svennevid's <mplayer@svennevid.net> patch
author | pontscho |
---|---|
date | Mon, 10 Jun 2002 18:40:19 +0000 |
parents | da2dda48b7ec |
children | 7bd342baa785 |
comparison
equal
deleted
inserted
replaced
6381:e5e288512d8f | 6382:86d5fc5b54e2 |
---|---|
72 | 72 |
73 /* used by XGetGeometry & XTranslateCoordinates for moving/resizing window */ | 73 /* used by XGetGeometry & XTranslateCoordinates for moving/resizing window */ |
74 static uint32_t drwX, drwY, drwWidth, drwHeight, drwBorderWidth, | 74 static uint32_t drwX, drwY, drwWidth, drwHeight, drwBorderWidth, |
75 drwDepth, drwcX, drwcY, dwidth, dheight; | 75 drwDepth, drwcX, drwcY, dwidth, dheight; |
76 | 76 |
77 static void set_window(int force_update,const vo_tune_info_t *info, int ps) | 77 static void set_window(int force_update,const vo_tune_info_t *info) |
78 { | 78 { |
79 Window mRoot; | 79 Window mRoot; |
80 if ( WinID ) | 80 if ( WinID ) |
81 { | 81 { |
82 XGetGeometry(mDisplay, vo_window, &mRoot, &drwX, &drwY, &drwWidth, | 82 XGetGeometry(mDisplay, vo_window, &mRoot, &drwX, &drwY, &drwWidth, |
135 drwcY = drwcY - screens[i].y_org; | 135 drwcY = drwcY - screens[i].y_org; |
136 XFree(screens); | 136 XFree(screens); |
137 } | 137 } |
138 #endif | 138 #endif |
139 | 139 |
140 if ( ps ) | 140 if ( vo_panscan > 0.0f && vo_fs ) |
141 { | 141 { |
142 drwcX-=vo_panscan_x >> 1; | 142 drwcX-=vo_panscan_x >> 1; |
143 drwcY-=vo_panscan_y >> 1; | 143 drwcY-=vo_panscan_y >> 1; |
144 drwX-=vo_panscan_x >> 1; | 144 drwX-=vo_panscan_x >> 1; |
145 drwY-=vo_panscan_y >> 1; | 145 drwY-=vo_panscan_y >> 1; |
361 gr_key.ckey.green = 0; | 361 gr_key.ckey.green = 0; |
362 gr_key.ckey.blue = 255; | 362 gr_key.ckey.blue = 255; |
363 vidix_grkey_set(&gr_key); | 363 vidix_grkey_set(&gr_key); |
364 } | 364 } |
365 | 365 |
366 set_window(1,info,0); | 366 set_window(1,info); |
367 if(info) memcpy(&vtune,info,sizeof(vo_tune_info_t)); | 367 if(info) memcpy(&vtune,info,sizeof(vo_tune_info_t)); |
368 else memset(&vtune,0,sizeof(vo_tune_info_t)); | 368 else memset(&vtune,0,sizeof(vo_tune_info_t)); |
369 XFlush(mDisplay); | 369 XFlush(mDisplay); |
370 XSync(mDisplay, False); | 370 XSync(mDisplay, False); |
371 | 371 |
372 panscan_calc(); | |
373 | |
372 saver_off(mDisplay); /* turning off screen saver */ | 374 saver_off(mDisplay); /* turning off screen saver */ |
373 | 375 |
374 vo_config_count++; | 376 vo_config_count++; |
375 | 377 |
376 return(0); | 378 return(0); |
384 static void check_events(void) | 386 static void check_events(void) |
385 { | 387 { |
386 const int event = vo_x11_check_events(mDisplay); | 388 const int event = vo_x11_check_events(mDisplay); |
387 | 389 |
388 if ((event & VO_EVENT_RESIZE) || (event & VO_EVENT_EXPOSE)) | 390 if ((event & VO_EVENT_RESIZE) || (event & VO_EVENT_EXPOSE)) |
389 set_window(0,&vtune,0); | 391 set_window(0,&vtune); |
390 | 392 |
391 return; | 393 return; |
392 } | 394 } |
393 | 395 |
394 /* draw_osd, flip_page, draw_slice, draw_frame should be | 396 /* draw_osd, flip_page, draw_slice, draw_frame should be |
461 switch (request) { | 463 switch (request) { |
462 case VOCTRL_QUERY_FORMAT: | 464 case VOCTRL_QUERY_FORMAT: |
463 return query_format(*((uint32_t*)data)); | 465 return query_format(*((uint32_t*)data)); |
464 case VOCTRL_GUISUPPORT: | 466 case VOCTRL_GUISUPPORT: |
465 return VO_TRUE; | 467 return VO_TRUE; |
466 case VOCTRL_FULLSCREEN: | |
467 vo_x11_fullscreen(); | |
468 return VO_TRUE; | |
469 case VOCTRL_GET_PANSCAN: | 468 case VOCTRL_GET_PANSCAN: |
470 if ( !vo_config_count || !vo_fs ) return VO_FALSE; | 469 if ( !vo_config_count || !vo_fs ) return VO_FALSE; |
471 return VO_TRUE; | 470 return VO_TRUE; |
471 case VOCTRL_FULLSCREEN: | |
472 vo_x11_fullscreen(); | |
472 case VOCTRL_SET_PANSCAN: | 473 case VOCTRL_SET_PANSCAN: |
473 if ( vo_fs && ( vo_panscan != vo_panscan_amount ) ) | 474 if ( vo_fs && ( vo_panscan != vo_panscan_amount ) ) |
474 { | 475 { |
475 panscan_calc(); | 476 panscan_calc(); |
476 set_window( 0,&vtune,1 ); | 477 set_window( 0,&vtune ); |
477 } | 478 } |
478 return VO_TRUE; | 479 return VO_TRUE; |
479 } | 480 } |
480 return VO_NOTIMPL; | 481 return VO_NOTIMPL; |
481 } | 482 } |