You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
302 lines
8.4 KiB
302 lines
8.4 KiB
import QtQuick 1.0
|
|
import Qt.labs.shaders 1.0
|
|
Rectangle {
|
|
width: 300
|
|
height: 300
|
|
color: "black"
|
|
|
|
Rectangle {
|
|
id: texture
|
|
anchors.fill: parent
|
|
anchors.margins: 40
|
|
gradient: Gradient {
|
|
GradientStop {
|
|
position: 0.0
|
|
color: "lightblue"
|
|
}
|
|
|
|
GradientStop {
|
|
position: 1.0
|
|
color: "lightgreen"
|
|
}
|
|
}
|
|
|
|
opacity: 0.75
|
|
Grid {
|
|
columns: 3
|
|
rows: 2
|
|
spacing: 5
|
|
|
|
Repeater {
|
|
model: 6
|
|
Item {
|
|
width: 75
|
|
height: 75
|
|
Rectangle {
|
|
color: "black"
|
|
opacity: 0.5
|
|
anchors.fill: parent
|
|
}
|
|
Text { text: index; anchors.centerIn: parent; color: "white" }
|
|
}
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
|
|
onClicked: console.debug("Clicked!!!")
|
|
}
|
|
}
|
|
|
|
ShaderEffectItem {
|
|
property variant source: ShaderEffectSource { sourceItem: texture; hideSource: true }
|
|
property real wiggleAmount: 0.005
|
|
property real angle: 0
|
|
property real yPos: 0
|
|
anchors.fill: texture
|
|
|
|
SequentialAnimation on wiggleAmount {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: -0.005
|
|
to: 0.005
|
|
duration: 1000
|
|
}
|
|
NumberAnimation {
|
|
from: 0.005
|
|
to: -0.005
|
|
duration: 1000
|
|
}
|
|
}
|
|
|
|
// SequentialAnimation on angle {
|
|
// loops: Animation.Infinite
|
|
// NumberAnimation {
|
|
// from: -3.1416
|
|
// to: 3.1416
|
|
// duration: 2000
|
|
// }
|
|
// NumberAnimation {
|
|
// from: 3.1416
|
|
// to: -3.1416
|
|
// duration: 2000
|
|
// }
|
|
// }
|
|
SequentialAnimation on angle {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: -3.1416 * 3.0
|
|
to: 0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
NumberAnimation {
|
|
from: 0
|
|
to: 3.1416 * 3.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
}
|
|
|
|
SequentialAnimation on yPos {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: 2.0
|
|
to: 0.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
NumberAnimation {
|
|
from: 0.0
|
|
to: -2.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
}
|
|
|
|
fragmentShader: "
|
|
varying highp vec2 qt_TexCoord0;
|
|
uniform sampler2D source;
|
|
uniform highp float wiggleAmount;
|
|
|
|
void main(void)
|
|
{
|
|
highp vec2 wiggledTexCoord = qt_TexCoord0;
|
|
wiggledTexCoord.s += sin(4.0 * 3.141592653589 * wiggledTexCoord.t) * wiggleAmount;
|
|
gl_FragColor = texture2D(source, wiggledTexCoord.st);
|
|
}"
|
|
|
|
vertexShader: "
|
|
uniform highp mat4 qt_ModelViewProjectionMatrix;
|
|
attribute highp vec4 qt_Vertex;
|
|
attribute highp vec2 qt_MultiTexCoord0;
|
|
varying highp vec2 qt_TexCoord0;
|
|
uniform highp float angle;
|
|
uniform highp float yPos;
|
|
void main(void)
|
|
{
|
|
highp mat4 mat = mat4( 1.0, 0.0, 0.0, 0.0,
|
|
0.0, 1.0, 0.0, 0.0,
|
|
0.0, 0.0, 1.0, 10.0,
|
|
0.0, 0.0, 0.0, 1.0);
|
|
|
|
highp mat4 rotationMatrix = mat4(1.0, 0.0, 0.0, 0.0,
|
|
0.0, cos(angle), -sin(angle), yPos,
|
|
0.0, sin(angle), cos(angle), 0.0,
|
|
0.0, 0.0, 0.0, 1.0);
|
|
|
|
qt_TexCoord0 = qt_MultiTexCoord0;
|
|
|
|
highp mat4 prjMat = qt_ModelViewProjectionMatrix * mat;
|
|
|
|
gl_Position = prjMat * qt_Vertex * rotationMatrix;
|
|
}"
|
|
}
|
|
|
|
Rectangle {
|
|
id: texture2
|
|
anchors.fill: parent
|
|
anchors.margins: 40
|
|
gradient: Gradient {
|
|
GradientStop {
|
|
position: 0.0
|
|
color: "lightblue"
|
|
}
|
|
|
|
GradientStop {
|
|
position: 1.0
|
|
color: "lightgreen"
|
|
}
|
|
}
|
|
|
|
opacity: 0.75
|
|
Text {
|
|
id: textLabel2
|
|
text: "Drasteee Svet"
|
|
anchors.centerIn: parent
|
|
font.pixelSize: 32
|
|
color: "white"
|
|
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
|
|
onClicked: console.debug("Clicked2!!!")
|
|
}
|
|
}
|
|
|
|
ShaderEffectItem {
|
|
property variant source: ShaderEffectSource { sourceItem: texture2; hideSource: true }
|
|
property real wiggleAmount: 0.005
|
|
property real angle: 0
|
|
property real yPos: 0
|
|
anchors.fill: texture2
|
|
|
|
SequentialAnimation on wiggleAmount {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: -0.005
|
|
to: 0.005
|
|
duration: 1000
|
|
}
|
|
NumberAnimation {
|
|
from: 0.005
|
|
to: -0.005
|
|
duration: 1000
|
|
}
|
|
}
|
|
|
|
// SequentialAnimation on angle {
|
|
// loops: Animation.Infinite
|
|
// NumberAnimation {
|
|
// from: -3.1416
|
|
// to: 3.1416
|
|
// duration: 2000
|
|
// }
|
|
// NumberAnimation {
|
|
// from: 3.1416
|
|
// to: -3.1416
|
|
// duration: 2000
|
|
// }
|
|
// }
|
|
SequentialAnimation on angle {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: 0
|
|
to: 3.1416 * 3.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
NumberAnimation {
|
|
from: -3.1416 * 3.0
|
|
to: 0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
}
|
|
|
|
SequentialAnimation on yPos {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: 0.0
|
|
to: -2.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
NumberAnimation {
|
|
from: 2.0
|
|
to: 0.0
|
|
duration: 2000
|
|
|
|
}
|
|
PauseAnimation { duration: 5000 }
|
|
}
|
|
|
|
fragmentShader: "
|
|
varying highp vec2 qt_TexCoord0;
|
|
uniform sampler2D source;
|
|
uniform highp float wiggleAmount;
|
|
|
|
void main(void)
|
|
{
|
|
highp vec2 wiggledTexCoord = qt_TexCoord0;
|
|
wiggledTexCoord.s += sin(4.0 * 3.141592653589 * wiggledTexCoord.t) * wiggleAmount;
|
|
gl_FragColor = texture2D(source, wiggledTexCoord.st);
|
|
}"
|
|
|
|
vertexShader: "
|
|
uniform highp mat4 qt_ModelViewProjectionMatrix;
|
|
attribute highp vec4 qt_Vertex;
|
|
attribute highp vec2 qt_MultiTexCoord0;
|
|
varying highp vec2 qt_TexCoord0;
|
|
uniform highp float angle;
|
|
uniform highp float yPos;
|
|
void main(void)
|
|
{
|
|
highp mat4 mat = mat4( 1.0, 0.0, 0.0, 0.0,
|
|
0.0, 1.0, 0.0, 0.0,
|
|
0.0, 0.0, 1.0, 10.0,
|
|
0.0, 0.0, 0.0, 1.0);
|
|
|
|
highp mat4 rotationMatrix = mat4(1.0, 0.0, 0.0, 0.0,
|
|
0.0, cos(angle), -sin(angle), yPos,
|
|
0.0, sin(angle), cos(angle), 0.0,
|
|
0.0, 0.0, 0.0, 1.0);
|
|
|
|
qt_TexCoord0 = qt_MultiTexCoord0;
|
|
|
|
highp mat4 prjMat = qt_ModelViewProjectionMatrix * mat;
|
|
|
|
gl_Position = prjMat * qt_Vertex * rotationMatrix;
|
|
}"
|
|
}
|
|
}
|
|
|