Fixed retrieving clipping box for transformed wxDC
Because wxDC can be the subject of geometric transformations (like translation, scaling) so we cannot assume in the calculations of the clipping box that DC origin is always at (0,0) and its logical size is the same as physical size. To get correct result we have to use logical coordinates of wxDC area in all clipping box calculations.
This commit is contained in:
parent
fc0108ce71
commit
53230aaf4d
2 changed files with 6 additions and 5 deletions
|
|
@ -449,13 +449,13 @@ public:
|
|||
DoGetSize(&dcWidth, &dcHeight);
|
||||
|
||||
if ( x )
|
||||
*x = m_clipping ? m_clipX1 : 0;
|
||||
*x = m_clipping ? m_clipX1 : DeviceToLogicalX(0);
|
||||
if ( y )
|
||||
*y = m_clipping ? m_clipY1 : 0;
|
||||
*y = m_clipping ? m_clipY1 : DeviceToLogicalY(0);
|
||||
if ( w )
|
||||
*w = m_clipping ? m_clipX2 - m_clipX1 : dcWidth;
|
||||
*w = m_clipping ? m_clipX2 - m_clipX1 : DeviceToLogicalXRel(dcWidth);
|
||||
if ( h )
|
||||
*h = m_clipping ? m_clipY2 - m_clipY1 : dcHeight;
|
||||
*h = m_clipping ? m_clipY2 - m_clipY1 : DeviceToLogicalYRel(dcHeight);
|
||||
}
|
||||
|
||||
virtual void DestroyClippingRegion() { ResetClipping(); }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue