image.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: tests/benchmarks/image.cpp
  3. // Purpose: wxImage benchmarks
  4. // Author: Vadim Zeitlin
  5. // Created: 2013-06-30
  6. // Copyright: (c) 2013 Vadim Zeitlin <vadim@wxwidgets.org>
  7. // Licence: wxWindows licence
  8. /////////////////////////////////////////////////////////////////////////////
  9. #include "wx/image.h"
  10. #include "bench.h"
  11. BENCHMARK_FUNC(LoadBMP)
  12. {
  13. wxImage image;
  14. return image.LoadFile("horse.bmp");
  15. }
  16. BENCHMARK_FUNC(LoadJPEG)
  17. {
  18. static bool s_handlerAdded = false;
  19. if ( !s_handlerAdded )
  20. {
  21. s_handlerAdded = true;
  22. wxImage::AddHandler(new wxJPEGHandler);
  23. }
  24. wxImage image;
  25. return image.LoadFile("horse.jpg");
  26. }
  27. BENCHMARK_FUNC(LoadPNG)
  28. {
  29. static bool s_handlerAdded = false;
  30. if ( !s_handlerAdded )
  31. {
  32. s_handlerAdded = true;
  33. wxImage::AddHandler(new wxPNGHandler);
  34. }
  35. wxImage image;
  36. return image.LoadFile("horse.png");
  37. }
  38. BENCHMARK_FUNC(LoadTIFF)
  39. {
  40. static bool s_handlerAdded = false;
  41. if ( !s_handlerAdded )
  42. {
  43. s_handlerAdded = true;
  44. wxImage::AddHandler(new wxTIFFHandler);
  45. }
  46. wxImage image;
  47. return image.LoadFile("horse.tif");
  48. }
  49. static const wxImage& GetTestImage()
  50. {
  51. static wxImage s_image;
  52. static bool s_triedToLoad = false;
  53. if ( !s_triedToLoad )
  54. {
  55. s_triedToLoad = true;
  56. s_image.LoadFile("horse.bmp");
  57. }
  58. return s_image;
  59. }
  60. BENCHMARK_FUNC(EnlargeNormal)
  61. {
  62. return GetTestImage().Scale(300, 300, wxIMAGE_QUALITY_NORMAL).IsOk();
  63. }
  64. BENCHMARK_FUNC(EnlargeHighQuality)
  65. {
  66. return GetTestImage().Scale(300, 300, wxIMAGE_QUALITY_HIGH).IsOk();
  67. }
  68. BENCHMARK_FUNC(ShrinkNormal)
  69. {
  70. return GetTestImage().Scale(50, 50, wxIMAGE_QUALITY_NORMAL).IsOk();
  71. }
  72. BENCHMARK_FUNC(ShrinkHighQuality)
  73. {
  74. return GetTestImage().Scale(50, 50, wxIMAGE_QUALITY_HIGH).IsOk();
  75. }