- const float fWidth = static_cast<float>( mSurface->GetPositionSize().width );
- const float fHeight = static_cast<float>( mSurface->GetPositionSize().height );
-
- if( ( fabsf( mSurfaceSize.width - fWidth ) > Math::MACHINE_EPSILON_1 ) || ( fabsf( mSurfaceSize.height - fHeight ) > Math::MACHINE_EPSILON_1 ) )
+ const PositionSize surfacePositionSize = mSurface->GetPositionSize();
+ const float fWidth = static_cast< float >( surfacePositionSize.width );
+ const float fHeight = static_cast< float >( surfacePositionSize.height );
+ const int orientation = mSurface->GetOrientation();
+
+ if( ( ( fabsf( mSize.width - fWidth ) > Math::MACHINE_EPSILON_1 ) || ( fabsf( mSize.height - fHeight ) > Math::MACHINE_EPSILON_1 ) )
+ || ( orientation != mSurfaceOrientation )
+ || ( forceUpdate ) )