Revision control

++ // Copyright (C) 2020 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++ import QtQuick3D
++
++ Effect {
++ property TextureInput noiseSample: TextureInput {
++ texture: Texture {
++ tilingModeHorizontal: Texture.Repeat
++ tilingModeVertical: Texture.Repeat
++ source: "qrc:/qtquick3deffects/maps/brushnoise.png"
++ }
++ }
++ property real brushLength: 1.0 // 0 - 3
++ property real brushSize: 100.0 // 10 - 200
++ property real brushAngle: 45.0
++ readonly property real sinAlpha: Math.sin(degrees_to_radians(brushAngle))
++ readonly property real cosAlpha: Math.cos(degrees_to_radians(brushAngle))
++
++ function degrees_to_radians(degrees) {
++ var pi = Math.PI;
++ return degrees * (pi/180);
++ }
++
++ Shader {
++ id: brushstrokes
++ stage: Shader.Fragment
++ shader: "qrc:/qtquick3deffects/shaders/brushstrokes.frag"
++ }
++
++ passes: [
++ Pass {
++ shaders: [ brushstrokes ]
++ }
++ ]
++ }