Revision control

++ // Copyright (C) 2022 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++ import QtQuick3D
++ import QtQuick3D.Helpers.impl
++
++ DepthOfFieldEffect {
++ readonly property TextureInput sourceSampler: TextureInput {
++ texture: Texture {}
++ }
++ property real focusDistance: 600
++ property real focusRange: 100
++ property real blurAmount: 4
++
++ Shader {
++ id: downsampleVert
++ stage: Shader.Vertex
++ shader: "qrc:/qtquick3d_helpers/shaders/downsample.vert"
++ }
++ Shader {
++ id: downsampleFrag
++ stage: Shader.Fragment
++ shader: "qrc:/qtquick3d_helpers/shaders/downsample.frag"
++ }
++
++ Shader {
++ id: blurVert
++ stage: Shader.Vertex
++ shader: "qrc:/qtquick3d_helpers/shaders/depthoffieldblur.vert"
++ }
++ Shader {
++ id: blurFrag
++ stage: Shader.Fragment
++ shader: "qrc:/qtquick3d_helpers/shaders/depthoffieldblur.frag"
++ }
++
++ Buffer {
++ id: downsampleBuffer
++ name: "downsampleBuffer"
++ format: Buffer.RGBA16F
++ textureFilterOperation: Buffer.Linear
++ textureCoordOperation: Buffer.ClampToEdge
++ 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 actual input texture is exposed as sourceSampler
++ BufferInput {
++ sampler: "sourceSampler"
++ }
++ ]
++ }
++ ]
++ }