Warning, /frameworks/kdeclarative/src/qmlcontrols/graphicaleffects/Lanczos.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2021 Arjen Hiemstra <ahiemstra@heimr.nl> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 0009 /** 0010 * A ShaderEffect that makes use of the Lanczos resampling method for scaling textures. 0011 * 0012 * Lanczos resampling tries to preserve detail when scaling down images and 0013 * thus looks less blurry compared to a simple linear interpolation. 0014 * 0015 * This effect implements a single-pass Lanczos resampling filter using two 0016 * lobes. Everything is done in the shader, with some defaults set for 0017 * parameters. These defaults were designed to provide a good visual result when 0018 * scaling down window thumbnails. 0019 */ 0020 ShaderEffect { 0021 /** 0022 * The source texture. Can be any QQuickTextureProvider. 0023 */ 0024 required property var source 0025 /** 0026 * The size of the source texture. Used to perform aspect ratio correction. 0027 */ 0028 required property size sourceSize 0029 0030 /** 0031 * The target size of the Lanczos effect. 0032 * 0033 * Defaults to the width and height of this effect. 0034 */ 0035 property size targetSize: Qt.size(width, height) 0036 0037 /** 0038 * Lanczos window Sinc function factor. 0039 * 0040 * Defaults to 0.4 0041 */ 0042 property real windowSinc: 0.4; 0043 /** 0044 * Lanczos Sinc function factor. 0045 * 0046 * Defaults to 1.0 0047 */ 0048 property real sinc: 1.0; 0049 0050 /** 0051 * The amount of anti-ringing to apply. 0052 * 0053 * Defaults to 0.65 0054 */ 0055 property real antiRingingStrength: 0.65; 0056 /** 0057 * The resolution of the Lanczos effect. 0058 * 0059 * Larger values mean reduced (more pixelated) results. 0060 * Defaults to 0.98 to achieve good results. 0061 */ 0062 property real resolution: 0.98; 0063 0064 vertexShader: Qt.resolvedUrl("preserveaspect.vert") 0065 fragmentShader: Qt.resolvedUrl("lanczos2sharp.frag") 0066 }