From e25b47ee32ab23c6105a6e689956c2ead379d324 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 22 Feb 2022 23:59:36 +0000 Subject: [PATCH] Allow tweaking parameters of wxImage::Scale() benchmarks Use the string parameter as the name of the file containing the image to resize and the numeric parameter as the scale factor in percents (so that fractional factors could also be specified using this integer parameter). --- tests/benchmarks/image.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/benchmarks/image.cpp b/tests/benchmarks/image.cpp index 327a4e4cde..15fc4ebaf5 100644 --- a/tests/benchmarks/image.cpp +++ b/tests/benchmarks/image.cpp @@ -65,7 +65,7 @@ static const wxImage& GetTestImage() if ( !s_triedToLoad ) { s_triedToLoad = true; - s_image.LoadFile("horse.bmp"); + s_image.LoadFile(Bench::GetStringParameter("horse.bmp")); } return s_image; @@ -73,20 +73,32 @@ static const wxImage& GetTestImage() BENCHMARK_FUNC(EnlargeNormal) { - return GetTestImage().Scale(300, 300, wxIMAGE_QUALITY_NORMAL).IsOk(); + const wxImage& image = GetTestImage(); + const double factor = Bench::GetNumericParameter(150) / 100.; + return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(), + wxIMAGE_QUALITY_NORMAL).IsOk(); } BENCHMARK_FUNC(EnlargeHighQuality) { - return GetTestImage().Scale(300, 300, wxIMAGE_QUALITY_HIGH).IsOk(); + const wxImage& image = GetTestImage(); + const double factor = Bench::GetNumericParameter(150) / 100.; + return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(), + wxIMAGE_QUALITY_HIGH).IsOk(); } BENCHMARK_FUNC(ShrinkNormal) { - return GetTestImage().Scale(50, 50, wxIMAGE_QUALITY_NORMAL).IsOk(); + const wxImage& image = GetTestImage(); + const double factor = Bench::GetNumericParameter(50) / 100.; + return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(), + wxIMAGE_QUALITY_NORMAL).IsOk(); } BENCHMARK_FUNC(ShrinkHighQuality) { - return GetTestImage().Scale(50, 50, wxIMAGE_QUALITY_HIGH).IsOk(); + const wxImage& image = GetTestImage(); + const double factor = Bench::GetNumericParameter(50) / 100.; + return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(), + wxIMAGE_QUALITY_HIGH).IsOk(); }