~loic.molinari/+junk/qtdeclarative-shadereffectsource-changes

« back to all changes in this revision

Viewing changes to tests/benchmarks/qml/compilation/data/BoomBlock.qml

  • Committer: Loïc Molinari
  • Date: 2012-04-21 17:59:51 UTC
  • Revision ID: loic.molinari@canonical.com-20120421175951-bqx68caaf5zrp76l
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
 
4
** Contact: http://www.qt-project.org/
 
5
**
 
6
** This file is part of the QtQml module of the Qt Toolkit.
 
7
**
 
8
** $QT_BEGIN_LICENSE:LGPL$
 
9
** GNU Lesser General Public License Usage
 
10
** This file may be used under the terms of the GNU Lesser General Public
 
11
** License version 2.1 as published by the Free Software Foundation and
 
12
** appearing in the file LICENSE.LGPL included in the packaging of this
 
13
** file. Please review the following information to ensure the GNU Lesser
 
14
** General Public License version 2.1 requirements will be met:
 
15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 
16
**
 
17
** In addition, as a special exception, Nokia gives you certain additional
 
18
** rights. These rights are described in the Nokia Qt LGPL Exception
 
19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 
20
**
 
21
** GNU General Public License Usage
 
22
** Alternatively, this file may be used under the terms of the GNU General
 
23
** Public License version 3.0 as published by the Free Software Foundation
 
24
** and appearing in the file LICENSE.GPL included in the packaging of this
 
25
** file. Please review the following information to ensure the GNU General
 
26
** Public License version 3.0 requirements will be met:
 
27
** http://www.gnu.org/copyleft/gpl.html.
 
28
**
 
29
** Other Usage
 
30
** Alternatively, this file may be used in accordance with the terms and
 
31
** conditions contained in a signed written agreement between you and Nokia.
 
32
**
 
33
**
 
34
**
 
35
**
 
36
**
 
37
**
 
38
** $QT_END_LICENSE$
 
39
**
 
40
****************************************************************************/
 
41
 
 
42
import QtQuick 2.0
 
43
import Qt.labs.particles 1.0
 
44
 
 
45
Item {
 
46
    id: block
 
47
    property bool dying: false
 
48
    property bool spawned: false
 
49
    property int type: 0
 
50
    property int targetX: 0
 
51
    property int targetY: 0
 
52
 
 
53
    SpringFollow on x { enabled: spawned; to: targetX; spring: 2; damping: 0.2 }
 
54
    SpringFollow on y { to: targetY; spring: 2; damping: 0.2 }
 
55
 
 
56
    Image {
 
57
        id: img
 
58
        source: {
 
59
            if(type == 0){
 
60
                "pics/redStone.png";
 
61
            } else if(type == 1) {
 
62
                "pics/blueStone.png";
 
63
            } else {
 
64
                "pics/greenStone.png";
 
65
            }
 
66
        }
 
67
        opacity: 0
 
68
        Behavior on opacity { NumberAnimation { duration: 200 } }
 
69
        anchors.fill: parent
 
70
    }
 
71
 
 
72
    Particles {
 
73
        id: particles
 
74
 
 
75
        width: 1; height: 1
 
76
        anchors.centerIn: parent
 
77
 
 
78
        emissionRate: 0
 
79
        lifeSpan: 700; lifeSpanDeviation: 600
 
80
        angle: 0; angleDeviation: 360;
 
81
        velocity: 100; velocityDeviation: 30
 
82
        source: {
 
83
            if(type == 0){
 
84
                "pics/redStar.png";
 
85
            } else if (type == 1) {
 
86
                "pics/blueStar.png";
 
87
            } else {
 
88
                "pics/greenStar.png";
 
89
            }
 
90
        }
 
91
    }
 
92
 
 
93
    states: [
 
94
        State {
 
95
            name: "AliveState"; when: spawned == true && dying == false
 
96
            PropertyChanges { target: img; opacity: 1 }
 
97
        },
 
98
 
 
99
        State {
 
100
            name: "DeathState"; when: dying == true
 
101
            StateChangeScript { script: particles.burst(50); }
 
102
            PropertyChanges { target: img; opacity: 0 }
 
103
            StateChangeScript { script: block.destroy(1000); }
 
104
        }
 
105
    ]
 
106
}