Wiggly▲
Sélectionnez
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
// Created with Qt Quick Effect Maker (version 0.43), Fri Feb 17 09:45:06 2023
import
QtQuick
Item
{
id
:
rootItem
// This is the main source for the effect
property
Item
source
:
null
// Enable this to animate iTime property
property
bool
timeRunning
:
false
// When timeRunning is false, this can be used to control iTime manually
property
real
animatedTime
:
frameAnimation.elapsedTime
property
real
wigglyAmountX
:
20
property
real
wigglyAmountY
:
50
property
real
wigglyShadows
:
0.5
// The levels of details for the electic clouds. Bigger value means more detailed rending which also requires more processing power. The default value is 6 and practical range is between 1 and 10.
property
int
electricCloudLevels
:
6
// The color used for the clouds. Alpha channel defines the amount of opacity this effect has.
property
color
electricCloudColor
:
Qt.rgba(1
, 1
, 1
, 1
)
FrameAnimation {
id
:
frameAnimation
running
:
rootItem.timeRunning
}
ShaderEffect
{
readonly property
alias
iSource
:
rootItem.source
readonly property
alias
iTime
:
rootItem.animatedTime
readonly property
vector3d
iResolution
:
Qt.vector3d(width
, height
, 1.0)
readonly property
alias
wigglyAmountX
:
rootItem.wigglyAmountX
readonly property
alias
wigglyAmountY
:
rootItem.wigglyAmountY
readonly property
alias
wigglyShadows
:
rootItem.wigglyShadows
readonly property
alias
electricCloudLevels
:
rootItem.electricCloudLevels
readonly property
alias
electricCloudColor
:
rootItem.electricCloudColor
vertexShader
:
'wigglyeffect.vert.qsb'
fragmentShader
:
'wigglyeffect.frag.qsb'
anchors.fill
:
parent
mesh
:
GridMesh
{
resolution
:
Qt.size(63
, 1
)
}
}
}