summaryrefslogtreecommitdiffstats
path: root/examples/widgets/doc/src/deform.qdoc
blob: 371f1a41c755a7dadfc63b576ae5b13a7329bd6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \example painting/deform
    \title Vector Deformation
    \ingroup examples-painting
    \brief Demonstrates how to manipulate the elements of a QPainterPath.

    \brief This example shows how to use advanced vector techniques to draw text
    using a \c QPainterPath.

    \image deform-demo.png

    We define a vector deformation field in the shape of a lens and apply
    this to all points in a path. This means that what is rendered on
    screen is not pixel manipulation, but modified vector representations of
    the glyphs themselves. This is visible from the high quality of the
    antialiased edges for the deformed glyphs.

    To get a fairly complex path we allow the user to type in text and
    convert the text to paths. This is done using the
    QPainterPath::addText() function.

    The lens is drawn using a single call to QPainter::drawEllipse(),
    using a QRadialGradient to fill it with a specialized color
    table, giving the effect of the sun's reflection and a drop
    shadow. The lens is cached as a pixmap for better performance.
*/