Commit 9d8d4f2a authored by Jon Lech Johansen's avatar Jon Lech Johansen

* Cleaned up QTScaleMatrix().

parent 848637d0
...@@ -513,44 +513,50 @@ static int CoToggleFullscreen( vout_thread_t *p_vout ) ...@@ -513,44 +513,50 @@ static int CoToggleFullscreen( vout_thread_t *p_vout )
static void QTScaleMatrix( vout_thread_t *p_vout ) static void QTScaleMatrix( vout_thread_t *p_vout )
{ {
Rect s_rect; Rect s_rect;
int i_width, i_height;
Fixed factor_x, factor_y; Fixed factor_x, factor_y;
Fixed offset_x, offset_y; int i_offset_x = 0;
int i_offset_y = 0;
GetPortBounds( p_vout->p_sys->p_qdport, &s_rect ); GetPortBounds( p_vout->p_sys->p_qdport, &s_rect );
if( (s_rect.bottom - s_rect.top) * p_vout->output.i_aspect i_width = s_rect.right - s_rect.left;
< (s_rect.right - s_rect.left) * VOUT_ASPECT_FACTOR ) i_height = s_rect.bottom - s_rect.top;
if( i_height * p_vout->output.i_aspect < i_width * VOUT_ASPECT_FACTOR )
{ {
factor_x = FixDiv( Long2Fix( (s_rect.bottom - s_rect.top) int i_adj_width = i_height * p_vout->output.i_aspect /
* p_vout->output.i_aspect / VOUT_ASPECT_FACTOR ), VOUT_ASPECT_FACTOR;
factor_x = FixDiv( Long2Fix( i_adj_width ),
Long2Fix( p_vout->output.i_width ) ); Long2Fix( p_vout->output.i_width ) );
factor_y = FixDiv( Long2Fix( s_rect.bottom - s_rect.top ), factor_y = FixDiv( Long2Fix( i_height ),
Long2Fix( p_vout->output.i_height ) ); Long2Fix( p_vout->output.i_height ) );
offset_x = FixDiv( Long2Fix( s_rect.right - s_rect.left
- (s_rect.bottom - s_rect.top) i_offset_x = (i_width - i_adj_width) / 2;
* p_vout->output.i_aspect / VOUT_ASPECT_FACTOR ),
Long2Fix( 2 ) );
offset_y = Long2Fix( 0 );
} }
else else
{ {
factor_x = FixDiv( Long2Fix( s_rect.right - s_rect.left ), int i_adj_height = i_width * VOUT_ASPECT_FACTOR /
p_vout->output.i_aspect;
factor_x = FixDiv( Long2Fix( i_width ),
Long2Fix( p_vout->output.i_width ) ); Long2Fix( p_vout->output.i_width ) );
factor_y = FixDiv( Long2Fix( (s_rect.right - s_rect.left) factor_y = FixDiv( Long2Fix( i_adj_height ),
* VOUT_ASPECT_FACTOR / p_vout->output.i_aspect ),
Long2Fix( p_vout->output.i_height ) ); Long2Fix( p_vout->output.i_height ) );
offset_x = Long2Fix( 0 );
offset_y = FixDiv( Long2Fix( s_rect.bottom - s_rect.top i_offset_y = (i_height - i_adj_height) / 2;
- (s_rect.right - s_rect.left)
* VOUT_ASPECT_FACTOR / p_vout->output.i_aspect ),
Long2Fix( 2 ) );
} }
SetIdentityMatrix( p_vout->p_sys->p_matrix ); SetIdentityMatrix( p_vout->p_sys->p_matrix );
ScaleMatrix( p_vout->p_sys->p_matrix, ScaleMatrix( p_vout->p_sys->p_matrix,
factor_x, factor_y, factor_x, factor_y,
Long2Fix(0), Long2Fix(0) ); Long2Fix(0), Long2Fix(0) );
TranslateMatrix( p_vout->p_sys->p_matrix, offset_x, offset_y );
TranslateMatrix( p_vout->p_sys->p_matrix,
Long2Fix(i_offset_x),
Long2Fix(i_offset_y) );
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment