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 {
++ readonly property TextureInput sourceSampler: TextureInput {
++ texture: Texture {}
++ }
++ property real focusPosition: 0.5 // 0 - 1
++ property real focusWidth: 0.2 // 0 - 1
++ property real blurAmount: 4 // 0 - 10
++ property bool isVertical: false
++ property bool isInverted: false
++
++ Shader {
++ id: downsampleVert
++ stage: Shader.Vertex
++ shader: "qrc:/qtquick3deffects/shaders/downsample.vert"
++ }
++ Shader {
++ id: downsampleFrag
++ stage: Shader.Fragment
++ shader: "qrc:/qtquick3deffects/shaders/downsampletiltshift.frag"
++ }
++
++ Shader {
++ id: blurVert
++ stage: Shader.Vertex
++ shader: "qrc:/qtquick3deffects/shaders/poissonblurtiltshift.vert"
++ }
++ Shader {
++ id: blurFrag
++ stage: Shader.Fragment
++ shader: "qrc:/qtquick3deffects/shaders/poissonblurtiltshift.frag"
++ }
++
++ Buffer {
++ id: downsampleBuffer
++ name: "downsampleBuffer"
++ format: Buffer.RGBA8
++ textureFilterOperation: Buffer.Linear
++ textureCoordOperation: Buffer.ClampToEdge
++ bufferFlags: Buffer.None
++ sizeMultiplier: 0.5
++ }
++
++ passes: [
++ Pass {
++ shaders: [ downsampleVert, downsampleFrag ]
++ output: downsampleBuffer
++ },
++ Pass {
++ shaders: [ blurVert, blurFrag ]
++ commands: [
++ // INPUT is the texture for downsampleBuffer
++ BufferInput {
++ buffer: downsampleBuffer
++ },
++ // the pass' input texture is exposed as sourceSampler
++ BufferInput {
++ sampler: "sourceSampler"
++ }
++ ]
++ }
++ ]
++ }