Handle wxDC scale factor in wxBitmap ctor taking wxDC in wxMSW
When using wxBitmap ctor taking wxDC, the bitmap should inherit the scale factor of the DC, both because it's already the case in the other ports and because it makes sense to do it. Add a unit test checking that this is the case in all ports now.
This commit is contained in:
parent
7382e99bbb
commit
db6d565fad
2 changed files with 30 additions and 1 deletions
|
|
@ -1701,6 +1701,28 @@ TEST_CASE("Bitmap::DC", "[bitmap][dc]")
|
|||
#endif // wxUSE_SVG
|
||||
}
|
||||
|
||||
#if defined(wxHAS_DPI_INDEPENDENT_PIXELS) || defined(__WXMSW__)
|
||||
|
||||
TEST_CASE("Bitmap::ScaleFactor", "[bitmap][dc][scale]")
|
||||
{
|
||||
// Create a bitmap with scale factor != 1.
|
||||
wxBitmap bmp;
|
||||
bmp.CreateWithDIPSize(8, 8, 2);
|
||||
REQUIRE( bmp.GetScaleFactor() == 2 );
|
||||
CHECK( bmp.GetSize() == wxSize(16, 16) );
|
||||
|
||||
// wxMemoryDC should use the same scale factor as the bitmap.
|
||||
wxMemoryDC dc(bmp);
|
||||
CHECK( dc.GetContentScaleFactor() == 2 );
|
||||
|
||||
// A bitmap "compatible" with this DC should also use the same scale factor.
|
||||
wxBitmap bmp2(4, 4, dc);
|
||||
CHECK( bmp2.GetScaleFactor() == 2 );
|
||||
CHECK( bmp2.GetSize() == wxSize(8, 8) );
|
||||
}
|
||||
|
||||
#endif // ports with scaled bitmaps support
|
||||
|
||||
#if wxUSE_GRAPHICS_CONTEXT
|
||||
|
||||
inline void DrawScaledBmp(wxBitmap& bmp, float scale, wxGraphicsRenderer* renderer)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue