diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2019-01-16 06:20:17 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-01-16 07:49:13 +0100 | 
| commit | d4fbad4d2931aa45308270eb995567314390e334 (patch) | |
| tree | 927ea207ec81bb959fa72e95ed5d90ea43e3d479 /pose-widget | |
| parent | 07b45ca4578ccaed91f7f3c70e82dc7ffbdf47ab (diff) | |
pose-widget: enable hidpi
Diffstat (limited to 'pose-widget')
| -rw-r--r-- | pose-widget/pose-widget.cpp | 13 | ||||
| -rw-r--r-- | pose-widget/pose-widget.hpp | 15 | 
2 files changed, 13 insertions, 15 deletions
| diff --git a/pose-widget/pose-widget.cpp b/pose-widget/pose-widget.cpp index 9a097340..ff65d43a 100644 --- a/pose-widget/pose-widget.cpp +++ b/pose-widget/pose-widget.cpp @@ -24,14 +24,11 @@  using namespace pose_widget_impl; -pose_transform::pose_transform(QWidget* dst) : -    dst(dst), -    front(QImage{":/images/side1.png"}.convertToFormat(QImage::Format_ARGB32)), -    back(QImage{":/images/side6.png"}.convertToFormat(QImage::Format_ARGB32)), -    image(w, h, QImage::Format_ARGB32), -    image2(w, h, QImage::Format_ARGB32), -    fresh(false) +pose_transform::pose_transform(QWidget* dst, double dpr) : dst(dst)  { +    for (QImage* img : { &image, &image2, &front, &back }) +        img->setDevicePixelRatio(dpr); +      image.fill(Qt::transparent);      image2.fill(Qt::transparent);  } @@ -79,7 +76,7 @@ end:      }  } -pose_widget::pose_widget(QWidget* parent) : QWidget(parent), xform(this) +pose_widget::pose_widget(QWidget* parent) : QWidget(parent), xform{this, devicePixelRatioF()}  {      rotate_sync(0,0,0, 0,0,0);  } diff --git a/pose-widget/pose-widget.hpp b/pose-widget/pose-widget.hpp index 87367b96..aa51957e 100644 --- a/pose-widget/pose-widget.hpp +++ b/pose-widget/pose-widget.hpp @@ -47,7 +47,7 @@ public:  struct pose_transform final : QThread  { -    pose_transform(QWidget* dst); +    pose_transform(QWidget* dst, double device_pixel_ratio);      ~pose_transform() override;      void rotate_async(double xAngle, double yAngle, double zAngle, double x, double y, double z); @@ -63,8 +63,7 @@ struct pose_transform final : QThread      void project_quad_texture();      std::pair<vec2i, vec2i> get_bounds(const vec2& size); -    template<typename F> -    inline void with_image_lock(F&& fun); +    template<typename F> inline void with_image_lock(F&& fun);      rmat rotation, rotation_;      vec3 translation, translation_; @@ -73,8 +72,10 @@ struct pose_transform final : QThread      QWidget* dst; -    QImage front, back; -    QImage image, image2; +    QImage front{QImage{":/images/side1.png"}.convertToFormat(QImage::Format_ARGB32)}; +    QImage back{QImage{":/images/side6.png"}.convertToFormat(QImage::Format_ARGB32)}; +    QImage image{w, h, QImage::Format_ARGB32}; +    QImage image2{w, h, QImage::Format_ARGB32};      struct uv_ // NOLINT(cppcoreguidelines-pro-type-member-init)      { @@ -83,7 +84,7 @@ struct pose_transform final : QThread      };      std::vector<uv_> uv_vec; -    std::atomic<bool> fresh; +    std::atomic<bool> fresh{false};      static constexpr int w = 320, h = 240;  }; @@ -103,4 +104,4 @@ private:  } -using pose_widget_impl::pose_widget; +using pose_widget = pose_widget_impl::pose_widget; | 
