diff options
author | Morten Johan Sorvig <morten.sorvig@digia.com> | 2013-08-23 09:21:26 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@digia.com> | 2014-12-17 13:46:27 +0100 |
commit | 7ef5e2e4863bde5495cc17b60680271d3c09f78f (patch) | |
tree | 78afeb00fc67787286b264384555d2923242e9b3 /src/client/qwaylandscreen_p.h | |
parent | 198d7a51d4fc894fca691c1f8243372e876af68a (diff) | |
download | qtwayland-7ef5e2e4863bde5495cc17b60680271d3c09f78f.tar.gz |
Implement high-dpi support
Wayland 1.2 added support for display scaling, where wl_output
has a "scale" event informing the the client that the compositor
will scale the output surfaces by the given factor. The client
then has the option of providing large surfaces to match the
target pixel densety and bypass the compositor's scaling. This
is done by calling wl_surface::set_buffer_scale.
Re-use the current high-dpi support in Qt by implementing
devicePixelRatio() for QWaylandScreen and QWaylandWindow.
Provide high resolution buffers both for raster and OpenGL
graphics.
Introduce a new coordinate system: buffer coordinates, which
is related to the window coordinate system via an "int scale"
scale factor. This scale factor corresponds to Qts qreal
devicePixelRatio, but we keep the name and the type in the
QtWayland implementation.
Change-Id: Ie10d7e5b4833480a9a25d96a26ad02150eb6e83f
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Diffstat (limited to 'src/client/qwaylandscreen_p.h')
-rw-r--r-- | src/client/qwaylandscreen_p.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/client/qwaylandscreen_p.h b/src/client/qwaylandscreen_p.h index d3173e0c..d0c5d710 100644 --- a/src/client/qwaylandscreen_p.h +++ b/src/client/qwaylandscreen_p.h @@ -72,6 +72,8 @@ public: void setOrientationUpdateMask(Qt::ScreenOrientations mask); Qt::ScreenOrientation orientation() const; + int scale() const; + qreal devicePixelRatio() const Q_DECL_OVERRIDE; qreal refreshRate() const; QString name() const { return mOutputName; } @@ -95,12 +97,14 @@ private: const QString &make, const QString &model, int32_t transform) Q_DECL_OVERRIDE; + void output_scale(int32_t factor) Q_DECL_OVERRIDE; void output_done() Q_DECL_OVERRIDE; int m_outputId; QWaylandDisplay *mWaylandDisplay; QWaylandExtendedOutput *mExtendedOutput; QRect mGeometry; + int mScale; int mDepth; int mRefreshRate; int mTransform; |