77 lines
3.0 KiB
QML
77 lines
3.0 KiB
QML
// Copyright (C) 2019 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
import QtQuick
|
|
//! [1]
|
|
import VulkanTextureImport
|
|
//! [1]
|
|
|
|
Rectangle {
|
|
gradient: Gradient {
|
|
GradientStop { position: 0; color: "firebrick" }
|
|
GradientStop { position: 1; color: "black" }
|
|
}
|
|
|
|
//! [2]
|
|
CustomTextureItem {
|
|
id: renderer
|
|
anchors.fill: parent
|
|
anchors.margins: 10
|
|
|
|
SequentialAnimation on t {
|
|
NumberAnimation { to: 1; duration: 2500; easing.type: Easing.InQuad }
|
|
NumberAnimation { to: 0; duration: 2500; easing.type: Easing.OutQuad }
|
|
loops: Animation.Infinite
|
|
running: true
|
|
}
|
|
//! [2]
|
|
|
|
transform: [
|
|
Rotation { id: rotation; axis.x: 0; axis.z: 0; axis.y: 1; angle: 0; origin.x: renderer.width / 2; origin.y: renderer.height / 2; },
|
|
Translate { id: txOut; x: -renderer.width / 2; y: -renderer.height / 2 },
|
|
Scale { id: scale; },
|
|
Translate { id: txIn; x: renderer.width / 2; y: renderer.height / 2 }
|
|
]
|
|
}
|
|
|
|
SequentialAnimation {
|
|
PauseAnimation { duration: 5000 }
|
|
ParallelAnimation {
|
|
NumberAnimation { target: scale; property: "xScale"; to: 0.6; duration: 1000; easing.type: Easing.InOutBack }
|
|
NumberAnimation { target: scale; property: "yScale"; to: 0.6; duration: 1000; easing.type: Easing.InOutBack }
|
|
}
|
|
NumberAnimation { target: rotation; property: "angle"; to: 80; duration: 1000; easing.type: Easing.InOutCubic }
|
|
NumberAnimation { target: rotation; property: "angle"; to: -80; duration: 1000; easing.type: Easing.InOutCubic }
|
|
NumberAnimation { target: rotation; property: "angle"; to: 0; duration: 1000; easing.type: Easing.InOutCubic }
|
|
NumberAnimation { target: renderer; property: "opacity"; to: 0.1; duration: 1000; easing.type: Easing.InOutCubic }
|
|
PauseAnimation { duration: 1000 }
|
|
NumberAnimation { target: renderer; property: "opacity"; to: 1.0; duration: 1000; easing.type: Easing.InOutCubic }
|
|
ParallelAnimation {
|
|
NumberAnimation { target: scale; property: "xScale"; to: 1; duration: 1000; easing.type: Easing.InOutBack }
|
|
NumberAnimation { target: scale; property: "yScale"; to: 1; duration: 1000; easing.type: Easing.InOutBack }
|
|
}
|
|
running: true
|
|
loops: Animation.Infinite
|
|
}
|
|
|
|
Rectangle {
|
|
id: labelFrame
|
|
anchors.margins: -10
|
|
radius: 5
|
|
color: "white"
|
|
border.color: "black"
|
|
opacity: 0.5
|
|
anchors.fill: label
|
|
}
|
|
|
|
Text {
|
|
id: label
|
|
anchors.bottom: renderer.bottom
|
|
anchors.left: renderer.left
|
|
anchors.right: renderer.right
|
|
anchors.margins: 20
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("The squircle, using rendering code borrowed from the vulkanunderqml example, is rendered into a texture directly with Vulkan. The VkImage is then imported and used in a custom Qt Quick item.")
|
|
}
|
|
}
|