centralize and fixup example sources install targets
This follows suit with aeb036e in qtbase. Change-Id: Ie8580d0a1f38ab9858b0e44c9f99bdc552a1752a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: hjk <qthjk@ovi.com>
80
examples/multimedia/video/qmlvideofx/filereader.cpp
Normal file
@@ -0,0 +1,80 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "filereader.h"
|
||||
#include "trace.h"
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QTextStream>
|
||||
|
||||
QString adjustPath(const QString &path)
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
#ifdef Q_OS_MAC
|
||||
if (!QDir::isAbsolutePath(path))
|
||||
return QCoreApplication::applicationDirPath()
|
||||
+ QLatin1String("/../Resources/") + path;
|
||||
#else
|
||||
QString pathInInstallDir;
|
||||
const QString applicationDirPath = QCoreApplication::applicationDirPath();
|
||||
pathInInstallDir = QString::fromLatin1("%1/../%2").arg(applicationDirPath, path);
|
||||
|
||||
if (QFileInfo(pathInInstallDir).exists())
|
||||
return pathInInstallDir;
|
||||
#endif
|
||||
#endif
|
||||
return path;
|
||||
}
|
||||
|
||||
QString FileReader::readFile(const QString &fileName)
|
||||
{
|
||||
qtTrace() << "FileReader::readFile" << "fileName" << fileName;
|
||||
QString content;
|
||||
QFile file(adjustPath(fileName));
|
||||
if (file.open(QIODevice::ReadOnly)) {
|
||||
QTextStream stream(&file);
|
||||
content = stream.readAll();
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
50
examples/multimedia/video/qmlvideofx/filereader.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtCore/QObject>
|
||||
|
||||
class FileReader : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Q_INVOKABLE QString readFile(const QString &fileName);
|
||||
};
|
||||
|
||||
BIN
examples/multimedia/video/qmlvideofx/images/close.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
examples/multimedia/video/qmlvideofx/images/folder.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
examples/multimedia/video/qmlvideofx/images/qt-logo.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
examples/multimedia/video/qmlvideofx/images/titlebar.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
5
examples/multimedia/video/qmlvideofx/images/titlebar.sci
Normal file
@@ -0,0 +1,5 @@
|
||||
border.left: 10
|
||||
border.top: 12
|
||||
border.bottom: 12
|
||||
border.right: 10
|
||||
source: titlebar.png
|
||||
BIN
examples/multimedia/video/qmlvideofx/images/up.png
Normal file
|
After Width: | Height: | Size: 662 B |
151
examples/multimedia/video/qmlvideofx/main.cpp
Normal file
@@ -0,0 +1,151 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtCore/QStandardPaths>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtQml/QQmlContext>
|
||||
#include <QtGui/QGuiApplication>
|
||||
#include <QtQuick/QQuickItem>
|
||||
#include "filereader.h"
|
||||
#include "qmlapplicationviewer.h"
|
||||
#include "trace.h"
|
||||
|
||||
#ifdef SMALL_SCREEN_LAYOUT
|
||||
static const QLatin1String MainQmlFile("main-smallscreen.qml");
|
||||
#else
|
||||
static const QLatin1String MainQmlFile("main-largescreen.qml");
|
||||
#endif
|
||||
|
||||
#ifdef PERFORMANCEMONITOR_SUPPORT
|
||||
#include "performancemonitordeclarative.h"
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QGuiApplication app(argc, argv);
|
||||
|
||||
#ifdef PERFORMANCEMONITOR_SUPPORT
|
||||
PerformanceMonitor::qmlRegisterTypes();
|
||||
#endif
|
||||
|
||||
QUrl fileName;
|
||||
qreal volume = 0.5;
|
||||
QStringList args = app.arguments();
|
||||
#ifdef PERFORMANCEMONITOR_SUPPORT
|
||||
PerformanceMonitor::State performanceMonitorState;
|
||||
#endif
|
||||
for (int i=1; i<args.count(); ++i) {
|
||||
const QString &arg = args.at(i);
|
||||
if (arg.startsWith('-')) {
|
||||
if ("-volume" == arg) {
|
||||
if (i+1 < args.count())
|
||||
volume = 0.01 * args.at(++i).toInt();
|
||||
else
|
||||
qtTrace() << "Option \"-volume\" takes a value";
|
||||
}
|
||||
#ifdef PERFORMANCEMONITOR_SUPPORT
|
||||
else if (PerformanceMonitor::parseArgument(arg, performanceMonitorState)) {
|
||||
// Do nothing
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
qtTrace() << "Option" << arg << "ignored";
|
||||
}
|
||||
} else {
|
||||
if (fileName.isEmpty())
|
||||
fileName = QUrl::fromLocalFile(arg);
|
||||
else
|
||||
qtTrace() << "Argument" << arg << "ignored";
|
||||
}
|
||||
}
|
||||
|
||||
QmlApplicationViewer viewer;
|
||||
|
||||
viewer.requestOrientation(Qt::LandscapeOrientation);
|
||||
viewer.setMainQmlFile(QLatin1String("qml/qmlvideofx/") + MainQmlFile);
|
||||
QQuickItem *rootObject = viewer.rootObject();
|
||||
rootObject->setProperty("fileName", fileName);
|
||||
viewer.rootObject()->setProperty("volume", volume);
|
||||
|
||||
#ifdef PERFORMANCEMONITOR_SUPPORT
|
||||
if (performanceMonitorState.valid) {
|
||||
rootObject->setProperty("perfMonitorsLogging", performanceMonitorState.logging);
|
||||
rootObject->setProperty("perfMonitorsVisible", performanceMonitorState.visible);
|
||||
}
|
||||
QObject::connect(&viewer, SIGNAL(afterRendering()),
|
||||
rootObject, SLOT(qmlFramePainted()));
|
||||
#endif
|
||||
|
||||
FileReader fileReader;
|
||||
viewer.rootContext()->setContextProperty("fileReader", &fileReader);
|
||||
|
||||
QString imagePath = "../../images";
|
||||
const QStringList picturesLocation = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation);
|
||||
if (!picturesLocation.isEmpty())
|
||||
imagePath = picturesLocation.first();
|
||||
viewer.rootContext()->setContextProperty("imagePath", imagePath);
|
||||
|
||||
QString videoPath;
|
||||
const QStringList moviesLocation = QStandardPaths::standardLocations(QStandardPaths::MoviesLocation);
|
||||
if (!moviesLocation.isEmpty())
|
||||
videoPath = moviesLocation.first();
|
||||
viewer.rootContext()->setContextProperty("videoPath", videoPath);
|
||||
|
||||
viewer.setTitle("qmlvideofx");
|
||||
viewer.setFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint |
|
||||
Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
|
||||
viewer.setMinimumSize(QSize(600, 400));
|
||||
|
||||
#ifdef SMALL_SCREEN_PHYSICAL
|
||||
viewer.showFullScreen();
|
||||
#else
|
||||
viewer.showExpanded();
|
||||
#endif
|
||||
|
||||
// Delay invocation of init until the event loop has started, to work around
|
||||
// a GL context issue on Harmattan: without this, we get the following error
|
||||
// when the first ShaderEffectItem is created:
|
||||
// "QGLShaderProgram::addShader: Program and shader are not associated with same context"
|
||||
QMetaObject::invokeMethod(viewer.rootObject(), "init", Qt::QueuedConnection);
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: textColor
|
||||
radius: 0.25 * height
|
||||
|
||||
property string text
|
||||
property color bgColor: "white"
|
||||
property color bgColorSelected: "red"
|
||||
property color textColor: "black"
|
||||
property alias enabled: mouseArea.enabled
|
||||
|
||||
signal clicked
|
||||
|
||||
Rectangle {
|
||||
anchors { fill: parent; margins: 1 }
|
||||
color: mouseArea.pressed ? bgColorSelected : bgColor
|
||||
radius: 0.25 * height
|
||||
|
||||
Text {
|
||||
id: text
|
||||
anchors.centerIn: parent
|
||||
text: root.text
|
||||
font.pixelSize: 0.5 * parent.height
|
||||
color: mouseArea.pressed ? bgColor : textColor
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
root.clicked()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
163
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml
Normal file
@@ -0,0 +1,163 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "black"
|
||||
property alias effect: effectLoader.item
|
||||
property alias gripSize: divider.gripSize
|
||||
property string effectSource
|
||||
property real volume: 0.5
|
||||
|
||||
signal videoFramePainted
|
||||
|
||||
Divider {
|
||||
id: divider
|
||||
visible: false
|
||||
z: 1.0
|
||||
onValueChanged: updateDivider()
|
||||
}
|
||||
|
||||
ShaderEffectSource {
|
||||
id: theSource
|
||||
smooth: true
|
||||
hideSource: true
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: contentLoader
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: effectLoader
|
||||
source: effectSource
|
||||
}
|
||||
|
||||
Connections {
|
||||
id: videoFramePaintedConnection
|
||||
onFramePainted: {
|
||||
if (performanceLoader.item)
|
||||
root.videoFramePainted()
|
||||
}
|
||||
ignoreUnknownSignals: true
|
||||
}
|
||||
|
||||
onWidthChanged: {
|
||||
if (effectLoader.item)
|
||||
effectLoader.item.targetWidth = root.width
|
||||
}
|
||||
|
||||
onHeightChanged: {
|
||||
if (effectLoader.item)
|
||||
effectLoader.item.targetHeight = root.height
|
||||
}
|
||||
|
||||
onEffectSourceChanged: {
|
||||
console.log("[qmlvideofx] Content.onEffectSourceChanged " + effectSource)
|
||||
effectLoader.source = effectSource
|
||||
effectLoader.item.parent = root
|
||||
effectLoader.item.targetWidth = root.width
|
||||
effectLoader.item.targetHeight = root.height
|
||||
updateSource()
|
||||
effectLoader.item.source = theSource
|
||||
divider.visible = effectLoader.item.divider
|
||||
updateDivider()
|
||||
}
|
||||
|
||||
function init() {
|
||||
console.log("[qmlvideofx] Content.init")
|
||||
openImage("qrc:/images/qt-logo.png")
|
||||
root.effectSource = "EffectPassThrough.qml"
|
||||
}
|
||||
|
||||
function updateDivider() {
|
||||
if (effectLoader.item && effectLoader.item.divider)
|
||||
effectLoader.item.dividerValue = divider.value
|
||||
}
|
||||
|
||||
function updateSource() {
|
||||
console.log("[qmlvideofx] Content.updateSource")
|
||||
if (contentLoader.item) {
|
||||
contentLoader.item.parent = root
|
||||
contentLoader.item.anchors.fill = root
|
||||
theSource.sourceItem = contentLoader.item
|
||||
if (effectLoader.item)
|
||||
effectLoader.item.anchors.fill = contentLoader.item
|
||||
}
|
||||
}
|
||||
|
||||
function openImage(path) {
|
||||
console.log("[qmlvideofx] Content.openImage \"" + path + "\"")
|
||||
stop()
|
||||
contentLoader.source = "ContentImage.qml"
|
||||
videoFramePaintedConnection.target = null
|
||||
contentLoader.item.source = path
|
||||
updateSource()
|
||||
}
|
||||
|
||||
function openVideo(path) {
|
||||
console.log("[qmlvideofx] Content.openVideo \"" + path + "\"")
|
||||
stop()
|
||||
contentLoader.source = "ContentVideo.qml"
|
||||
videoFramePaintedConnection.target = contentLoader.item
|
||||
contentLoader.item.mediaSource = path
|
||||
contentLoader.item.volume = volume
|
||||
contentLoader.item.play()
|
||||
updateSource()
|
||||
}
|
||||
|
||||
function openCamera() {
|
||||
console.log("[qmlvideofx] Content.openCamera")
|
||||
stop()
|
||||
contentLoader.source = "ContentCamera.qml"
|
||||
videoFramePaintedConnection.target = contentLoader.item
|
||||
updateSource()
|
||||
}
|
||||
|
||||
function stop() {
|
||||
console.log("[qmlvideofx] Content.stop")
|
||||
if (contentLoader.source == "ContentVideo.qml")
|
||||
contentLoader.item.stop()
|
||||
theSource.sourceItem = null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtMultimedia 5.0
|
||||
|
||||
VideoOutput {
|
||||
source: camera
|
||||
|
||||
Camera {
|
||||
id: camera
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Image {
|
||||
fillMode: Image.PreserveAspectFit
|
||||
smooth: true
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtMultimedia 5.0
|
||||
|
||||
VideoOutput {
|
||||
source: mediaPlayer
|
||||
property alias mediaSource: mediaPlayer.source
|
||||
property alias volume: mediaPlayer.volume
|
||||
|
||||
MediaPlayer {
|
||||
id: mediaPlayer
|
||||
autoPlay: true
|
||||
volume: 0.5
|
||||
}
|
||||
|
||||
function play() { mediaPlayer.play() }
|
||||
function stop() { mediaPlayer.stop() }
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtMobility.systeminfo 1.1
|
||||
|
||||
Item {
|
||||
ScreenSaver {
|
||||
screenSaverInhibited: true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
anchors.fill: parent
|
||||
color: "transparent"
|
||||
property alias value: slider.value
|
||||
property alias lineWidth: line.width
|
||||
property alias gripSize: slider.gripSize
|
||||
|
||||
Rectangle {
|
||||
id: line
|
||||
anchors { top: parent.top; bottom: parent.bottom }
|
||||
x: parent.value * parent.width - (width / 2)
|
||||
width: 2
|
||||
color: "red"
|
||||
}
|
||||
|
||||
Slider {
|
||||
id: slider
|
||||
increment: 0.0
|
||||
lineColor: "transparent"
|
||||
fillColor: "transparent"
|
||||
gripColor: "red"
|
||||
anchors {
|
||||
top: parent.top
|
||||
topMargin: gripSize / 2
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
ShaderEffect {
|
||||
property variant source
|
||||
property ListModel parameters: ListModel { }
|
||||
property bool divider: true
|
||||
property real dividerValue: 0.5
|
||||
property real targetWidth: 0
|
||||
property real targetHeight: 0
|
||||
property string fragmentShaderFilename
|
||||
property string vertexShaderFilename
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property string fragmentShaderCommon: "
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#else
|
||||
# define lowp
|
||||
# define mediump
|
||||
# define highp
|
||||
#endif // GL_ES
|
||||
"
|
||||
}
|
||||
|
||||
// The following is a workaround for the fact that ShaderEffect
|
||||
// doesn't provide a way for shader programs to be read from a file,
|
||||
// rather than being inline in the QML file
|
||||
|
||||
onFragmentShaderFilenameChanged:
|
||||
fragmentShader = d.fragmentShaderCommon + fileReader.readFile(fragmentShaderFilename)
|
||||
onVertexShaderFilenameChanged:
|
||||
vertexShader = fileReader.readFile(vertexShaderFilename)
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "grid spacing"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real grid: parameters.get(0).value * 10
|
||||
|
||||
property real step_x: 0.0015625
|
||||
property real step_y: targetHeight ? (step_x * targetWidth / targetHeight) : 0.0
|
||||
|
||||
fragmentShaderFilename: "shaders/billboard.fsh"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "threshold"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real threshold: parameters.get(0).value
|
||||
|
||||
fragmentShaderFilename: "shaders/blackandwhite.fsh"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/emboss.fsh"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.geeks3d.com/20100909/shader-library-gaussian-blur-post-processing-filter-in-glsl/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Item {
|
||||
id: root
|
||||
property bool divider: true
|
||||
property real dividerValue: 0.5
|
||||
property ListModel parameters: ListModel {
|
||||
ListElement {
|
||||
name: "radius"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
property alias targetWidth: verticalShader.targetWidth
|
||||
property alias targetHeight: verticalShader.targetHeight
|
||||
property alias source: verticalShader.source
|
||||
|
||||
Effect {
|
||||
id: verticalShader
|
||||
anchors.fill: parent
|
||||
dividerValue: parent.dividerValue
|
||||
property real blurSize: 4.0 * parent.parameters.get(0).value / targetHeight
|
||||
fragmentShaderFilename: "shaders/gaussianblur_v.fsh"
|
||||
}
|
||||
|
||||
Effect {
|
||||
id: horizontalShader
|
||||
anchors.fill: parent
|
||||
dividerValue: parent.dividerValue
|
||||
property real blurSize: 4.0 * parent.parameters.get(0).value / parent.targetWidth
|
||||
fragmentShaderFilename: "shaders/gaussianblur_h.fsh"
|
||||
source: horizontalShaderSource
|
||||
|
||||
ShaderEffectSource {
|
||||
id: horizontalShaderSource
|
||||
sourceItem: verticalShader
|
||||
smooth: true
|
||||
hideSource: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/glow.fsh"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "hue"
|
||||
value: 0.5
|
||||
}
|
||||
ListElement {
|
||||
name: "width"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real targetHue: parameters.get(0).value * 360
|
||||
property real windowWidth: parameters.get(1).value * 60
|
||||
|
||||
fragmentShaderFilename: "shaders/isolate.fsh"
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
id: root
|
||||
divider: false
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "radius"
|
||||
value: 0.5
|
||||
}
|
||||
ListElement {
|
||||
name: "diffraction"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
property real posX: -1
|
||||
property real posY: -1
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property real oldTargetWidth: root.targetWidth
|
||||
property real oldTargetHeight: root.targetHeight
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real radius: parameters.get(0).value * 100
|
||||
property real diffractionIndex: parameters.get(1).value
|
||||
|
||||
onTargetWidthChanged: {
|
||||
if (posX == -1)
|
||||
posX = targetWidth / 2
|
||||
else if (d.oldTargetWidth != 0)
|
||||
posX *= (targetWidth / d.oldTargetWidth)
|
||||
d.oldTargetWidth = targetWidth
|
||||
}
|
||||
|
||||
onTargetHeightChanged: {
|
||||
if (posY == -1)
|
||||
posY = targetHeight / 2
|
||||
else if (d.oldTargetHeight != 0)
|
||||
posY *= (targetHeight / d.oldTargetHeight)
|
||||
d.oldTargetHeight = targetHeight
|
||||
}
|
||||
|
||||
fragmentShaderFilename: "shaders/magnify.fsh"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onPositionChanged: { root.posX = mouse.x; root.posY = root.targetHeight - mouse.y }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
divider: false
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "extent"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real curlExtent: 1.0 - parameters.get(0).value
|
||||
|
||||
fragmentShaderFilename: "shaders/pagecurl.fsh"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
divider: false
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "granularity"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real granularity: parameters.get(0).value * 20
|
||||
|
||||
fragmentShaderFilename: "shaders/pixelate.fsh"
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "gamma"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real gamma: parameters.get(0).value
|
||||
|
||||
property real numColors: 8.0
|
||||
|
||||
fragmentShaderFilename: "shaders/posterize.fsh"
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "amplitude"
|
||||
value: 0.5
|
||||
}
|
||||
ListElement {
|
||||
name: "frequency"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real amplitude: parameters.get(0).value * 0.03
|
||||
property real n: parameters.get(1).value * 7
|
||||
|
||||
property real time: 0
|
||||
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
|
||||
|
||||
fragmentShaderFilename: "shaders/ripple.fsh"
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
property int itemHeight: 25
|
||||
property string effectSource: ""
|
||||
|
||||
signal clicked
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property Item selectedItem
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: sources
|
||||
ListElement { name: "No effect"; source: "EffectPassThrough.qml" }
|
||||
ListElement { name: "Billboard"; source: "EffectBillboard.qml" }
|
||||
ListElement { name: "Black & white"; source: "EffectBlackAndWhite.qml" }
|
||||
ListElement { name: "Blur"; source: "EffectGaussianBlur.qml" }
|
||||
ListElement { name: "Edge detection"; source: "EffectSobelEdgeDetection1.qml" }
|
||||
//ListElement { name: "Edge detection (Sobel, #2)"; source: "EffectSobelEdgeDetection2.qml" }
|
||||
ListElement { name: "Emboss"; source: "EffectEmboss.qml" }
|
||||
ListElement { name: "Glow"; source: "EffectGlow.qml" }
|
||||
ListElement { name: "Isolate"; source: "EffectIsolate.qml" }
|
||||
ListElement { name: "Magnify"; source: "EffectMagnify.qml" }
|
||||
ListElement { name: "Page curl"; source: "EffectPageCurl.qml" }
|
||||
ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
|
||||
ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
|
||||
ListElement { name: "Ripple"; source: "EffectRipple.qml" }
|
||||
ListElement { name: "Sepia"; source: "EffectSepia.qml" }
|
||||
ListElement { name: "Sharpen"; source: "EffectSharpen.qml" }
|
||||
ListElement { name: "Shockwave"; source: "EffectShockwave.qml" }
|
||||
ListElement { name: "Tilt shift"; source: "EffectTiltShift.qml" }
|
||||
ListElement { name: "Toon"; source: "EffectToon.qml" }
|
||||
ListElement { name: "Warhol"; source: "EffectWarhol.qml" }
|
||||
ListElement { name: "Wobble"; source: "EffectWobble.qml" }
|
||||
ListElement { name: "Vignette"; source: "EffectVignette.qml" }
|
||||
}
|
||||
|
||||
Component {
|
||||
id: sourceDelegate
|
||||
Item {
|
||||
id: sourceDelegateItem
|
||||
width: root.width
|
||||
height: itemHeight
|
||||
|
||||
Button {
|
||||
id: sourceSelectorItem
|
||||
anchors.centerIn: parent
|
||||
width: 0.9 * parent.width
|
||||
height: 0.8 * itemHeight
|
||||
text: name
|
||||
onClicked: {
|
||||
if (d.selectedItem)
|
||||
d.selectedItem.state = "baseState"
|
||||
d.selectedItem = sourceDelegateItem
|
||||
d.selectedItem.state = "selected"
|
||||
effectSource = source
|
||||
root.clicked()
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "selected"
|
||||
PropertyChanges {
|
||||
target: sourceSelectorItem
|
||||
bgColor: "#ff8888"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Component.onCompleted: {
|
||||
if (name == "No effect") {
|
||||
state = "selected"
|
||||
d.selectedItem = sourceDelegateItem
|
||||
}
|
||||
}
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "*"
|
||||
ColorAnimation {
|
||||
properties: "color"
|
||||
easing.type: Easing.OutQuart
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Flickable {
|
||||
anchors.fill: parent
|
||||
contentHeight: (itemHeight * sources.count) + layout.anchors.topMargin + layout.spacing
|
||||
clip: true
|
||||
|
||||
Column {
|
||||
id: layout
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
topMargin: 10
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: sources
|
||||
delegate: sourceDelegate
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/sepia.fsh"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "sharpness"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real amount: parameters.get(0).value * 18
|
||||
|
||||
fragmentShaderFilename: "shaders/sharpen.fsh"
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
id: root
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "amplitude"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real granularity: parameters.get(0).value * 20
|
||||
property real weight: parameters.get(0).value
|
||||
|
||||
property real centerX
|
||||
property real centerY
|
||||
property real time
|
||||
|
||||
SequentialAnimation {
|
||||
running: true
|
||||
loops: Animation.Infinite
|
||||
ScriptAction {
|
||||
script: {
|
||||
centerX = Math.random()
|
||||
centerY = Math.random()
|
||||
}
|
||||
}
|
||||
NumberAnimation {
|
||||
target: root
|
||||
property: "time"
|
||||
from: 0
|
||||
to: 1
|
||||
duration: 1000
|
||||
}
|
||||
}
|
||||
|
||||
fragmentShaderFilename: "shaders/shockwave.fsh"
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "threshold"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real mixLevel: parameters.get(0).value
|
||||
property real targetSize: 250 - (200 * mixLevel) // TODO: fix ...
|
||||
property real resS: targetSize
|
||||
property real resT: targetSize
|
||||
|
||||
fragmentShaderFilename: "shaders/sobeledgedetection1.fsh"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "threshold"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real weight: parameters.get(0).value
|
||||
|
||||
fragmentShaderFilename: "shaders/sobeledgedetection2.fsh"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/tiltshift.fsh"
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "threshold"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real threshold: parameters.get(0).value
|
||||
property real targetSize: 250 - (200 * threshold) // TODO: fix ...
|
||||
property real resS: targetSize
|
||||
property real resT: targetSize
|
||||
|
||||
// TODO
|
||||
property real magTol: 0.3
|
||||
property real quantize: 8.0
|
||||
|
||||
fragmentShaderFilename: "shaders/toon.fsh"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/vignette.fsh"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
fragmentShaderFilename: "shaders/warhol.fsh"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Effect {
|
||||
parameters: ListModel {
|
||||
ListElement {
|
||||
name: "amplitude"
|
||||
value: 0.5
|
||||
}
|
||||
}
|
||||
|
||||
// Transform slider values, and bind result to shader uniforms
|
||||
property real amplitude: parameters.get(0).value * 0.05
|
||||
|
||||
property real frequency: 20
|
||||
property real time: 0
|
||||
|
||||
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
|
||||
|
||||
fragmentShaderFilename: "shaders/wobble.fsh"
|
||||
}
|
||||
@@ -0,0 +1,384 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import Qt.labs.folderlistmodel 2.0
|
||||
|
||||
Rectangle {
|
||||
id: fileBrowser
|
||||
color: "transparent"
|
||||
|
||||
property string folder
|
||||
property bool shown: loader.sourceComponent
|
||||
|
||||
signal fileSelected(string file)
|
||||
|
||||
function selectFile(file) {
|
||||
if (file != "")
|
||||
folder = loader.item.folders.folder
|
||||
loader.sourceComponent = undefined
|
||||
fileBrowser.fileSelected(file)
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: loader
|
||||
}
|
||||
|
||||
function show() {
|
||||
loader.sourceComponent = fileBrowserComponent
|
||||
loader.item.parent = fileBrowser
|
||||
loader.item.anchors.fill = fileBrowser
|
||||
loader.item.folder = fileBrowser.folder
|
||||
}
|
||||
|
||||
Component {
|
||||
id: fileBrowserComponent
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "white"
|
||||
property bool showFocusHighlight: false
|
||||
property variant folders: folders1
|
||||
property variant view: view1
|
||||
property alias folder: folders1.folder
|
||||
property color textColor: "black"
|
||||
|
||||
FolderListModel {
|
||||
id: folders1
|
||||
folder: folder
|
||||
}
|
||||
|
||||
FolderListModel {
|
||||
id: folders2
|
||||
folder: folder
|
||||
}
|
||||
|
||||
SystemPalette {
|
||||
id: palette
|
||||
}
|
||||
|
||||
Component {
|
||||
id: folderDelegate
|
||||
|
||||
Rectangle {
|
||||
id: wrapper
|
||||
function launch() {
|
||||
if (folders.isFolder(index))
|
||||
down(filePath);
|
||||
else
|
||||
fileBrowser.selectFile(filePath)
|
||||
}
|
||||
width: root.width
|
||||
height: 52
|
||||
color: "transparent"
|
||||
|
||||
Rectangle {
|
||||
id: highlight; visible: false
|
||||
anchors.fill: parent
|
||||
color: palette.highlight
|
||||
gradient: Gradient {
|
||||
GradientStop { id: t1; position: 0.0; color: palette.highlight }
|
||||
GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 48; height: 48
|
||||
Image {
|
||||
source: "qrc:/images/folder.png"
|
||||
anchors.centerIn: parent
|
||||
visible: folders.isFolder(index)
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
id: nameText
|
||||
anchors.fill: parent; verticalAlignment: Text.AlignVCenter
|
||||
text: fileName
|
||||
anchors.leftMargin: 54
|
||||
font.pixelSize: 32
|
||||
color: (wrapper.ListView.isCurrentItem && root.showFocusHighlight) ? palette.highlightedText : textColor
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseRegion
|
||||
anchors.fill: parent
|
||||
onPressed: {
|
||||
root.showFocusHighlight = false;
|
||||
wrapper.ListView.view.currentIndex = index;
|
||||
}
|
||||
onClicked: { if (folders == wrapper.ListView.view.model) launch() }
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: mouseRegion.pressed
|
||||
PropertyChanges { target: highlight; visible: true }
|
||||
PropertyChanges { target: nameText; color: palette.highlightedText }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: cancelButton
|
||||
width: 100
|
||||
height: titleBar.height - 7
|
||||
color: "black"
|
||||
anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter }
|
||||
|
||||
Text {
|
||||
anchors { fill: parent; margins: 4 }
|
||||
text: "Cancel"
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 20
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: fileBrowser.selectFile("")
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: view1
|
||||
anchors.top: titleBar.bottom
|
||||
anchors.bottom: cancelButton.top
|
||||
x: 0
|
||||
width: parent.width
|
||||
model: folders1
|
||||
delegate: folderDelegate
|
||||
highlight: Rectangle {
|
||||
color: palette.highlight
|
||||
visible: root.showFocusHighlight && view1.count != 0
|
||||
gradient: Gradient {
|
||||
GradientStop { id: t1; position: 0.0; color: palette.highlight }
|
||||
GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
|
||||
}
|
||||
width: view1.currentItem == null ? 0 : view1.currentItem.width
|
||||
}
|
||||
highlightMoveVelocity: 1000
|
||||
pressDelay: 100
|
||||
focus: true
|
||||
state: "current"
|
||||
states: [
|
||||
State {
|
||||
name: "current"
|
||||
PropertyChanges { target: view1; x: 0 }
|
||||
},
|
||||
State {
|
||||
name: "exitLeft"
|
||||
PropertyChanges { target: view1; x: -root.width }
|
||||
},
|
||||
State {
|
||||
name: "exitRight"
|
||||
PropertyChanges { target: view1; x: root.width }
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
to: "current"
|
||||
SequentialAnimation {
|
||||
NumberAnimation { properties: "x"; duration: 250 }
|
||||
}
|
||||
},
|
||||
Transition {
|
||||
NumberAnimation { properties: "x"; duration: 250 }
|
||||
NumberAnimation { properties: "x"; duration: 250 }
|
||||
}
|
||||
]
|
||||
Keys.onPressed: root.keyPressed(event.key)
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: view2
|
||||
anchors.top: titleBar.bottom
|
||||
anchors.bottom: parent.bottom
|
||||
x: parent.width
|
||||
width: parent.width
|
||||
model: folders2
|
||||
delegate: folderDelegate
|
||||
highlight: Rectangle {
|
||||
color: palette.highlight
|
||||
visible: root.showFocusHighlight && view2.count != 0
|
||||
gradient: Gradient {
|
||||
GradientStop { id: t1; position: 0.0; color: palette.highlight }
|
||||
GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
|
||||
}
|
||||
width: view1.currentItem == null ? 0 : view1.currentItem.width
|
||||
}
|
||||
highlightMoveVelocity: 1000
|
||||
pressDelay: 100
|
||||
states: [
|
||||
State {
|
||||
name: "current"
|
||||
PropertyChanges { target: view2; x: 0 }
|
||||
},
|
||||
State {
|
||||
name: "exitLeft"
|
||||
PropertyChanges { target: view2; x: -root.width }
|
||||
},
|
||||
State {
|
||||
name: "exitRight"
|
||||
PropertyChanges { target: view2; x: root.width }
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
to: "current"
|
||||
SequentialAnimation {
|
||||
NumberAnimation { properties: "x"; duration: 250 }
|
||||
}
|
||||
},
|
||||
Transition {
|
||||
NumberAnimation { properties: "x"; duration: 250 }
|
||||
}
|
||||
]
|
||||
Keys.onPressed: root.keyPressed(event.key)
|
||||
}
|
||||
|
||||
Keys.onPressed: {
|
||||
root.keyPressed(event.key);
|
||||
if (event.key == Qt.Key_Return || event.key == Qt.Key_Select || event.key == Qt.Key_Right) {
|
||||
view.currentItem.launch();
|
||||
event.accepted = true;
|
||||
} else if (event.key == Qt.Key_Left) {
|
||||
up();
|
||||
}
|
||||
}
|
||||
|
||||
BorderImage {
|
||||
source: "qrc:/images/titlebar.sci";
|
||||
width: parent.width;
|
||||
height: 52
|
||||
y: -7
|
||||
id: titleBar
|
||||
|
||||
Rectangle {
|
||||
id: upButton
|
||||
width: 48
|
||||
height: titleBar.height - 7
|
||||
color: "transparent"
|
||||
Image { anchors.centerIn: parent; source: "qrc:/images/up.png" }
|
||||
MouseArea { id: upRegion; anchors.centerIn: parent
|
||||
width: 56
|
||||
height: 56
|
||||
onClicked: if (folders.parentFolder != "") up()
|
||||
}
|
||||
states: [
|
||||
State {
|
||||
name: "pressed"
|
||||
when: upRegion.pressed
|
||||
PropertyChanges { target: upButton; color: palette.highlight }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "gray"
|
||||
x: 48
|
||||
width: 1
|
||||
height: 44
|
||||
}
|
||||
|
||||
Text {
|
||||
anchors.left: upButton.right; anchors.right: parent.right; height: parent.height
|
||||
anchors.leftMargin: 4; anchors.rightMargin: 4
|
||||
text: folders.folder
|
||||
color: "white"
|
||||
elide: Text.ElideLeft; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 32
|
||||
}
|
||||
}
|
||||
|
||||
function down(path) {
|
||||
if (folders == folders1) {
|
||||
view = view2
|
||||
folders = folders2;
|
||||
view1.state = "exitLeft";
|
||||
} else {
|
||||
view = view1
|
||||
folders = folders1;
|
||||
view2.state = "exitLeft";
|
||||
}
|
||||
view.x = root.width;
|
||||
view.state = "current";
|
||||
view.focus = true;
|
||||
folders.folder = path;
|
||||
}
|
||||
|
||||
function up() {
|
||||
var path = folders.parentFolder;
|
||||
if (folders == folders1) {
|
||||
view = view2
|
||||
folders = folders2;
|
||||
view1.state = "exitRight";
|
||||
} else {
|
||||
view = view1
|
||||
folders = folders1;
|
||||
view2.state = "exitRight";
|
||||
}
|
||||
view.x = -root.width;
|
||||
view.state = "current";
|
||||
view.focus = true;
|
||||
folders.folder = path;
|
||||
}
|
||||
|
||||
function keyPressed(key) {
|
||||
switch (key) {
|
||||
case Qt.Key_Up:
|
||||
case Qt.Key_Down:
|
||||
case Qt.Key_Left:
|
||||
case Qt.Key_Right:
|
||||
root.showFocusHighlight = true;
|
||||
break;
|
||||
default:
|
||||
// do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "white"
|
||||
property int buttonHeight: 35
|
||||
property int topMargin: 0
|
||||
|
||||
signal openImage
|
||||
signal openVideo
|
||||
signal openCamera
|
||||
signal close
|
||||
|
||||
Rectangle {
|
||||
anchors {
|
||||
top: parent.top;
|
||||
topMargin: root.topMargin
|
||||
bottom: parent.bottom;
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
width: 0.9 * parent.width
|
||||
color: "transparent"
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
spacing: 5
|
||||
Button {
|
||||
text: "Open image"
|
||||
height: buttonHeight
|
||||
width: parent.width
|
||||
onClicked: root.openImage()
|
||||
}
|
||||
Button {
|
||||
text: "Open video"
|
||||
height: buttonHeight
|
||||
width: parent.width
|
||||
onClicked: root.openVideo()
|
||||
}
|
||||
Button {
|
||||
text: "Start camera"
|
||||
height: buttonHeight
|
||||
width: parent.width
|
||||
onClicked: root.openCamera()
|
||||
}
|
||||
Button {
|
||||
text: "Reset"
|
||||
height: buttonHeight
|
||||
width: parent.width
|
||||
onClicked: root.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Mouse area which flashes to indicate its location on the screen
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
MouseArea {
|
||||
property alias hintColor: hintRect.color
|
||||
property bool hintEnabled: true
|
||||
|
||||
Rectangle {
|
||||
id: hintRect
|
||||
anchors.fill: parent
|
||||
color: "yellow"
|
||||
opacity: 0
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "high"
|
||||
PropertyChanges {
|
||||
target: hintRect
|
||||
opacity: 0.8
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "low"
|
||||
PropertyChanges {
|
||||
target: hintRect
|
||||
opacity: 0.4
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "low"
|
||||
to: "high"
|
||||
SequentialAnimation {
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
easing.type: Easing.InOutSine
|
||||
duration: 500
|
||||
}
|
||||
ScriptAction { script: hintRect.state = "low" }
|
||||
}
|
||||
},
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "low"
|
||||
SequentialAnimation {
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
easing.type: Easing.InOutSine
|
||||
duration: 500
|
||||
}
|
||||
ScriptAction { script: hintRect.state = "high" }
|
||||
}
|
||||
},
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "baseState"
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
easing.type: Easing.InOutSine
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
onHintEnabledChanged: hintRect.state = hintEnabled ? "low" : "baseState"
|
||||
|
||||
Component.onCompleted: hintRect.state = "low"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "transparent"
|
||||
height: view.model.count * sliderHeight
|
||||
property color lineColor: "black"
|
||||
property real gripSize: 25
|
||||
property real spacing: 10
|
||||
property real sliderHeight: 40
|
||||
|
||||
property ListModel model: ListModel { }
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
radius: 10
|
||||
}
|
||||
|
||||
Component {
|
||||
id: editDelegate
|
||||
|
||||
Rectangle {
|
||||
id: delegate
|
||||
width: parent.width
|
||||
height: root.sliderHeight
|
||||
color: "transparent"
|
||||
|
||||
Text {
|
||||
id: text
|
||||
text: name
|
||||
color: "white"
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
left: parent.left
|
||||
}
|
||||
font.pixelSize: 0.5 * parent.height
|
||||
horizontalAlignment: Text.AlignRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
width: 150
|
||||
}
|
||||
|
||||
Slider {
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
left: text.right
|
||||
leftMargin: 20
|
||||
right: parent.right
|
||||
rightMargin: 20
|
||||
}
|
||||
gripSize: root.gripSize
|
||||
value: model.value
|
||||
onValueChanged: view.model.setProperty(index, "value", value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: view
|
||||
anchors.fill: parent
|
||||
model: root.model
|
||||
delegate: editDelegate
|
||||
interactive: false
|
||||
}
|
||||
}
|
||||
129
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml
Normal file
@@ -0,0 +1,129 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "transparent"
|
||||
radius: 5
|
||||
property alias value: grip.value
|
||||
property color fillColor: "white"
|
||||
property color lineColor: "black"
|
||||
property color gripColor: "white"
|
||||
property real gripSize: 20
|
||||
property real gripTolerance: 3.0
|
||||
property real increment: 0.1
|
||||
property bool enabled: true
|
||||
|
||||
Rectangle {
|
||||
anchors { left: parent.left; right: parent.right; verticalCenter: parent.verticalCenter }
|
||||
height: 3
|
||||
color: displayedColor(root.lineColor)
|
||||
|
||||
Rectangle {
|
||||
anchors { fill: parent; margins: 1 }
|
||||
color: root.fillColor
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
enabled: root.enabled
|
||||
onClicked: {
|
||||
if (parent.width) {
|
||||
var newValue = mouse.x / parent.width
|
||||
if (Math.abs(newValue - parent.value) > parent.increment) {
|
||||
if (newValue > parent.value)
|
||||
parent.value = Math.min(1.0, parent.value + parent.increment)
|
||||
else
|
||||
parent.value = Math.max(0.0, parent.value - parent.increment)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: grip
|
||||
property real value: 0.5
|
||||
x: (value * parent.width) - width/2
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: root.gripTolerance * root.gripSize
|
||||
height: width
|
||||
radius: width/2
|
||||
color: "transparent"
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
enabled: root.enabled
|
||||
anchors.fill: parent
|
||||
drag {
|
||||
target: grip
|
||||
axis: Drag.XAxis
|
||||
minimumX: -parent.width/2
|
||||
maximumX: root.width - parent.width/2
|
||||
}
|
||||
onPositionChanged: {
|
||||
if (drag.active)
|
||||
updatePosition()
|
||||
}
|
||||
onReleased: {
|
||||
updatePosition()
|
||||
}
|
||||
function updatePosition() {
|
||||
value = (grip.x + grip.width/2) / grip.parent.width
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.centerIn: parent
|
||||
width: root.gripSize
|
||||
height: width
|
||||
radius: width/2
|
||||
color: root.gripColor
|
||||
}
|
||||
}
|
||||
|
||||
function displayedColor(c) {
|
||||
var tint = Qt.rgba(c.r, c.g, c.b, 0.25)
|
||||
return enabled ? c : Qt.tint(c, tint)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
width: 900
|
||||
height: 600
|
||||
color: "grey"
|
||||
property string fileName
|
||||
property alias volume: content.volume
|
||||
property bool perfMonitorsLogging: false
|
||||
property bool perfMonitorsVisible: false
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property real gripSize: 20
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: inner
|
||||
anchors.fill: parent
|
||||
color: "grey"
|
||||
|
||||
Content {
|
||||
id: content
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
left: parent.left
|
||||
right: effectSelectionPanel.left
|
||||
margins: 5
|
||||
}
|
||||
gripSize: d.gripSize
|
||||
width: 600
|
||||
height: 600
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: performanceLoader
|
||||
function init() {
|
||||
console.log("[qmlvideofx] performanceLoader.init logging " + root.perfMonitorsLogging + " visible " + root.perfMonitorsVisible)
|
||||
var enabled = root.perfMonitorsLogging || root.perfMonitorsVisible
|
||||
source = enabled ? "../performancemonitor/PerformanceItem.qml" : ""
|
||||
}
|
||||
onLoaded: {
|
||||
item.parent = content
|
||||
item.anchors.top = content.top
|
||||
item.anchors.left = content.left
|
||||
item.anchors.right = content.right
|
||||
item.logging = root.perfMonitorsLogging
|
||||
item.displayed = root.perfMonitorsVisible
|
||||
item.init()
|
||||
}
|
||||
}
|
||||
|
||||
ParameterPanel {
|
||||
id: parameterPanel
|
||||
anchors {
|
||||
left: parent.left
|
||||
bottom: parent.bottom
|
||||
right: effectSelectionPanel.left
|
||||
margins: 20
|
||||
}
|
||||
gripSize: d.gripSize
|
||||
}
|
||||
|
||||
EffectSelectionPanel {
|
||||
id: effectSelectionPanel
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: fileOpen.top
|
||||
right: parent.right
|
||||
margins: 5
|
||||
}
|
||||
width: 300
|
||||
itemHeight: 40
|
||||
onEffectSourceChanged: {
|
||||
content.effectSource = effectSource
|
||||
parameterPanel.model = content.effect.parameters
|
||||
}
|
||||
}
|
||||
|
||||
FileOpen {
|
||||
id: fileOpen
|
||||
anchors {
|
||||
right: parent.right
|
||||
bottom: parent.bottom
|
||||
margins: 5
|
||||
}
|
||||
width: effectSelectionPanel.width
|
||||
height: 165
|
||||
buttonHeight: 32
|
||||
topMargin: 10
|
||||
}
|
||||
}
|
||||
|
||||
FileBrowser {
|
||||
id: imageFileBrowser
|
||||
anchors.fill: root
|
||||
Component.onCompleted: fileSelected.connect(content.openImage)
|
||||
}
|
||||
|
||||
FileBrowser {
|
||||
id: videoFileBrowser
|
||||
anchors.fill: root
|
||||
Component.onCompleted: fileSelected.connect(content.openVideo)
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
fileOpen.openImage.connect(openImage)
|
||||
fileOpen.openVideo.connect(openVideo)
|
||||
fileOpen.openCamera.connect(openCamera)
|
||||
fileOpen.close.connect(close)
|
||||
}
|
||||
|
||||
function init() {
|
||||
console.log("[qmlvideofx] main.init")
|
||||
imageFileBrowser.folder = imagePath
|
||||
videoFileBrowser.folder = videoPath
|
||||
content.init()
|
||||
performanceLoader.init()
|
||||
if (fileName != "")
|
||||
content.openVideo(fileName)
|
||||
}
|
||||
|
||||
function qmlFramePainted() {
|
||||
if (performanceLoader.item)
|
||||
performanceLoader.item.qmlFramePainted()
|
||||
}
|
||||
|
||||
function openImage() {
|
||||
imageFileBrowser.show()
|
||||
}
|
||||
|
||||
function openVideo() {
|
||||
videoFileBrowser.show()
|
||||
}
|
||||
|
||||
function openCamera() {
|
||||
content.openCamera()
|
||||
}
|
||||
|
||||
function close() {
|
||||
content.openImage("qrc:/images/qt-logo.png")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,408 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
width: 640
|
||||
height: 360
|
||||
color: "grey"
|
||||
property string fileName
|
||||
property alias volume: content.volume
|
||||
property bool perfMonitorsLogging: false
|
||||
property bool perfMonitorsVisible: false
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property bool dialogShown: (fileOpenContainer.state == "shown" ||
|
||||
effectSelectionPanel.state == "shown" ||
|
||||
videoFileBrowser.shown ||
|
||||
imageFileBrowser.shown)
|
||||
property real gripSize: 40
|
||||
}
|
||||
|
||||
// Create ScreenSaver element via Loader, so this app will still run if the
|
||||
// SystemInfo module is not available
|
||||
Loader {
|
||||
source: "DisableScreenSaver.qml"
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: performanceLoader
|
||||
|
||||
Connections {
|
||||
target: d
|
||||
onDialogShownChanged:
|
||||
if (performanceLoader.item)
|
||||
performanceLoader.item.enabled = !d.dialogShown
|
||||
ignoreUnknownSignals: true
|
||||
}
|
||||
|
||||
function init() {
|
||||
console.log("[qmlvideofx] performanceLoader.init logging " + root.perfMonitorsLogging + " visible " + root.perfMonitorsVisible)
|
||||
var enabled = root.perfMonitorsLogging || root.perfMonitorsVisible
|
||||
source = enabled ? "../performancemonitor/PerformanceItem.qml" : ""
|
||||
}
|
||||
|
||||
onLoaded: {
|
||||
item.parent = root
|
||||
item.anchors.top = root.top
|
||||
item.anchors.left = root.left
|
||||
item.logging = root.perfMonitorsLogging
|
||||
item.displayed = root.perfMonitorsVisible
|
||||
item.init()
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: inner
|
||||
anchors.fill: parent
|
||||
color: "grey"
|
||||
|
||||
Content {
|
||||
id: content
|
||||
anchors.fill: parent
|
||||
gripSize: d.gripSize
|
||||
onVideoFramePainted: performanceLoader.item.videoFramePainted()
|
||||
}
|
||||
|
||||
ParameterPanel {
|
||||
id: parameterPanel
|
||||
anchors {
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
margins: 10
|
||||
}
|
||||
y: parent.height
|
||||
gripSize: d.gripSize
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "shown"
|
||||
PropertyChanges {
|
||||
target: parameterPanel
|
||||
y: parent.height - (parameterPanel.height + 10)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "*"
|
||||
NumberAnimation {
|
||||
properties: "y"
|
||||
easing.type: Easing.OutQuart
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
state: (enabled && !d.dialogShown) ? "shown" : "baseState"
|
||||
}
|
||||
|
||||
EffectSelectionPanel {
|
||||
id: effectSelectionPanel
|
||||
anchors {
|
||||
top: parent.top;
|
||||
bottom: parameterPanel.top;
|
||||
margins: 10
|
||||
}
|
||||
x: parent.width
|
||||
width: parent.width - 40
|
||||
opacity: 0.75
|
||||
radius: 20
|
||||
itemHeight: 50
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "shown"
|
||||
PropertyChanges {
|
||||
target: effectSelectionPanel
|
||||
x: 20
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "*"
|
||||
NumberAnimation {
|
||||
properties: "x"
|
||||
easing.type: Easing.OutQuart
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
onEffectSourceChanged: {
|
||||
content.effectSource = effectSource
|
||||
if (content.effect.parameters.count) {
|
||||
parameterPanel.model = content.effect.parameters
|
||||
parameterPanel.enabled = true
|
||||
} else {
|
||||
parameterPanel.enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
onClicked: state = "baseState"
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: fileOpenContainer
|
||||
anchors {
|
||||
top: parent.top
|
||||
bottom: parameterPanel.top
|
||||
margins: 10
|
||||
}
|
||||
x: -width
|
||||
width: parent.width - 40
|
||||
color: "transparent"
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
|
||||
FileOpen {
|
||||
id: fileOpen
|
||||
color: "transparent"
|
||||
width: parent.width
|
||||
height: 200
|
||||
opacity: 0.75
|
||||
radius: 20
|
||||
buttonHeight: 40
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
width: parent.width
|
||||
height: 250
|
||||
onClicked: fileOpenContainer.state = "baseState"
|
||||
}
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "shown"
|
||||
PropertyChanges {
|
||||
target: fileOpenContainer
|
||||
x: 20
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "*"
|
||||
NumberAnimation {
|
||||
properties: "x"
|
||||
easing.type: Easing.OutQuart
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: splashScreen
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
width: 300
|
||||
height: 200
|
||||
radius: 0.1 * height
|
||||
color: "white"
|
||||
opacity: 0.9
|
||||
border { color: "black"; width: 2 }
|
||||
|
||||
Text {
|
||||
anchors {
|
||||
fill: parent
|
||||
margins: 5
|
||||
}
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 24
|
||||
text: "Tap on left side to switch between sources.\n\nTap on right side to switch between effects."
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: parent.state = "hidden"
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "hidden"
|
||||
PropertyChanges {
|
||||
target: splashScreen
|
||||
opacity: 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
from: "*"
|
||||
to: "*"
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
easing.type: Easing.OutQuart
|
||||
duration: 500
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
HintedMouseArea {
|
||||
id: fileOpenMouseArea
|
||||
anchors {
|
||||
left: parent.left;
|
||||
top: parent.top;
|
||||
bottom: parameterPanel.top;
|
||||
topMargin: 75
|
||||
}
|
||||
width: 100
|
||||
onClicked: {
|
||||
fileOpenMouseArea.hintEnabled = false
|
||||
effectSelectionPanelMouseArea.hintEnabled = false
|
||||
splashScreen.state = "hidden"
|
||||
fileOpenContainer.state = "shown"
|
||||
}
|
||||
enabled: !d.dialogShown
|
||||
}
|
||||
|
||||
HintedMouseArea {
|
||||
id: effectSelectionPanelMouseArea
|
||||
anchors {
|
||||
right: parent.right;
|
||||
top: parent.top;
|
||||
bottom: parameterPanel.top;
|
||||
topMargin: 75
|
||||
}
|
||||
width: 100
|
||||
onClicked: {
|
||||
fileOpenMouseArea.hintEnabled = false
|
||||
effectSelectionPanelMouseArea.hintEnabled = false
|
||||
splashScreen.state = "hidden"
|
||||
effectSelectionPanel.state = "shown"
|
||||
}
|
||||
enabled: !d.dialogShown
|
||||
}
|
||||
|
||||
Image {
|
||||
source: "qrc:/images/close.png"
|
||||
|
||||
anchors {
|
||||
top: parent.top
|
||||
right: parent.right
|
||||
margins: 5
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: Qt.quit()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
fileOpen.openImage.connect(openImage)
|
||||
fileOpen.openVideo.connect(openVideo)
|
||||
fileOpen.openCamera.connect(openCamera)
|
||||
fileOpen.close.connect(close)
|
||||
}
|
||||
|
||||
FileBrowser {
|
||||
id: imageFileBrowser
|
||||
anchors.fill: root
|
||||
Component.onCompleted: fileSelected.connect(content.openImage)
|
||||
}
|
||||
|
||||
FileBrowser {
|
||||
id: videoFileBrowser
|
||||
anchors.fill: root
|
||||
Component.onCompleted: fileSelected.connect(content.openVideo)
|
||||
}
|
||||
|
||||
// Called from main() once root properties have been set
|
||||
function init() {
|
||||
console.log("[qmlvideofx] main.init")
|
||||
imageFileBrowser.folder = imagePath
|
||||
videoFileBrowser.folder = videoPath
|
||||
content.init()
|
||||
performanceLoader.init()
|
||||
if (fileName != "") {
|
||||
fileOpenMouseArea.hintEnabled = false
|
||||
effectSelectionPanelMouseArea.hintEnabled = false
|
||||
splashScreen.state = "hidden"
|
||||
content.openVideo(fileName)
|
||||
}
|
||||
}
|
||||
|
||||
function qmlFramePainted() {
|
||||
if (performanceLoader.item)
|
||||
performanceLoader.item.qmlFramePainted()
|
||||
}
|
||||
|
||||
function openImage() {
|
||||
fileOpenContainer.state = "baseState"
|
||||
imageFileBrowser.show()
|
||||
}
|
||||
|
||||
function openVideo() {
|
||||
fileOpenContainer.state = "baseState"
|
||||
videoFileBrowser.show()
|
||||
}
|
||||
|
||||
function openCamera() {
|
||||
fileOpenContainer.state = "baseState"
|
||||
content.openCamera()
|
||||
}
|
||||
|
||||
function close() {
|
||||
fileOpenContainer.state = "baseState"
|
||||
content.openImage("qrc:/images/qt-logo.png")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qmlapplicationviewer.h"
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtQml/QQmlComponent>
|
||||
#include <QtQml/QQmlEngine>
|
||||
#include <QtQml/QQmlContext>
|
||||
#include <QtGui/QGuiApplication>
|
||||
|
||||
class QmlApplicationViewerPrivate
|
||||
{
|
||||
QmlApplicationViewerPrivate(QQuickView *view_) : view(view_) {}
|
||||
|
||||
QString mainQmlFile;
|
||||
QQuickView *view;
|
||||
friend class QmlApplicationViewer;
|
||||
QString adjustPath(const QString &path);
|
||||
};
|
||||
|
||||
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
#ifdef Q_OS_MAC
|
||||
if (!QDir::isAbsolutePath(path))
|
||||
return QCoreApplication::applicationDirPath()
|
||||
+ QLatin1String("/../Resources/") + path;
|
||||
#else
|
||||
QString pathInInstallDir;
|
||||
const QString applicationDirPath = QCoreApplication::applicationDirPath();
|
||||
pathInInstallDir = QString::fromLatin1("%1/../%2").arg(applicationDirPath, path);
|
||||
|
||||
if (QFileInfo(pathInInstallDir).exists())
|
||||
return pathInInstallDir;
|
||||
#endif
|
||||
#endif
|
||||
return path;
|
||||
}
|
||||
|
||||
QmlApplicationViewer::QmlApplicationViewer(QWindow *parent)
|
||||
: QQuickView(parent)
|
||||
, d(new QmlApplicationViewerPrivate(this))
|
||||
{
|
||||
connect(engine(), SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
|
||||
setResizeMode(QQuickView::SizeRootObjectToView);
|
||||
}
|
||||
|
||||
QmlApplicationViewer::QmlApplicationViewer(QQuickView *view, QWindow *parent)
|
||||
: QQuickView(parent)
|
||||
, d(new QmlApplicationViewerPrivate(view))
|
||||
{
|
||||
connect(view->engine(), SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
|
||||
view->setResizeMode(QQuickView::SizeRootObjectToView);
|
||||
}
|
||||
|
||||
QmlApplicationViewer::~QmlApplicationViewer()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
QmlApplicationViewer *QmlApplicationViewer::create()
|
||||
{
|
||||
return new QmlApplicationViewer();
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::setMainQmlFile(const QString &file)
|
||||
{
|
||||
d->mainQmlFile = d->adjustPath(file);
|
||||
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::addImportPath(const QString &path)
|
||||
{
|
||||
d->view->engine()->addImportPath(d->adjustPath(path));
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::showExpanded()
|
||||
{
|
||||
#if defined(Q_WS_SIMULATOR)
|
||||
d->view->showFullScreen();
|
||||
#else
|
||||
d->view->show();
|
||||
#endif
|
||||
}
|
||||
|
||||
QGuiApplication *createApplication(int &argc, char **argv)
|
||||
{
|
||||
return new QGuiApplication(argc, argv);
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QMLAPPLICATIONVIEWER_H
|
||||
#define QMLAPPLICATIONVIEWER_H
|
||||
|
||||
#include <QtQuick/QQuickView>
|
||||
#include <QtGui/QGuiApplication>
|
||||
|
||||
class QmlApplicationViewer : public QQuickView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit QmlApplicationViewer(QWindow *parent = 0);
|
||||
virtual ~QmlApplicationViewer();
|
||||
|
||||
static QmlApplicationViewer *create();
|
||||
|
||||
void setMainQmlFile(const QString &file);
|
||||
void addImportPath(const QString &path);
|
||||
|
||||
void showExpanded();
|
||||
|
||||
private:
|
||||
explicit QmlApplicationViewer(QQuickView *view, QWindow *parent);
|
||||
class QmlApplicationViewerPrivate *d;
|
||||
};
|
||||
|
||||
QGuiApplication *createApplication(int &argc, char **argv);
|
||||
|
||||
#endif // QMLAPPLICATIONVIEWER_H
|
||||
@@ -0,0 +1,7 @@
|
||||
QT += quick
|
||||
|
||||
SOURCES += $$PWD/qmlapplicationviewer.cpp
|
||||
HEADERS += $$PWD/qmlapplicationviewer.h
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
|
||||
BIN
examples/multimedia/video/qmlvideofx/qmlvideofx.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
23
examples/multimedia/video/qmlvideofx/qmlvideofx.pro
Normal file
@@ -0,0 +1,23 @@
|
||||
TEMPLATE = app
|
||||
TARGET = qmlvideofx
|
||||
|
||||
LOCAL_SOURCES = filereader.cpp main.cpp
|
||||
LOCAL_HEADERS = filereader.h trace.h
|
||||
|
||||
SOURCES += $$LOCAL_SOURCES
|
||||
HEADERS += $$LOCAL_HEADERS
|
||||
|
||||
RESOURCES += qmlvideofx.qrc
|
||||
|
||||
SNIPPETS_PATH = ../snippets
|
||||
include($$SNIPPETS_PATH/performancemonitor/performancemonitordeclarative.pri)
|
||||
|
||||
maemo6: {
|
||||
DEFINES += SMALL_SCREEN_LAYOUT
|
||||
DEFINES += SMALL_SCREEN_PHYSICAL
|
||||
}
|
||||
|
||||
include(qmlapplicationviewer/qmlapplicationviewer.pri)
|
||||
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/video/qmlvideofx
|
||||
INSTALLS += target
|
||||
10
examples/multimedia/video/qmlvideofx/qmlvideofx.qrc
Normal file
@@ -0,0 +1,10 @@
|
||||
<RCC>
|
||||
<qresource prefix="/images">
|
||||
<file alias="close.png">images/close.png</file>
|
||||
<file alias="folder.png">images/folder.png</file>
|
||||
<file alias="titlebar.png">images/titlebar.png</file>
|
||||
<file alias="titlebar.sci">images/titlebar.sci</file>
|
||||
<file alias="up.png">images/up.png</file>
|
||||
<file alias="qt-logo.png">images/qt-logo.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
93
examples/multimedia/video/qmlvideofx/qmlvideofx.svg
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="44px"
|
||||
version="1.1"
|
||||
viewBox="0 0 44 44"
|
||||
width="44px"
|
||||
x="0px"
|
||||
y="0px"
|
||||
id="svg2"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="qt.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs16">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 22 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="44 : 22 : 1"
|
||||
inkscape:persp3d-origin="22 : 14.666667 : 1"
|
||||
id="perspective2836" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1020"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="21.454545"
|
||||
inkscape:cx="49.412871"
|
||||
inkscape:cy="21.894358"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3" />
|
||||
<g
|
||||
transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
|
||||
id="g3">
|
||||
<path
|
||||
d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
|
||||
style="fill:#006225"
|
||||
id="path5"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
|
||||
style="fill:#80c342"
|
||||
id="path7" />
|
||||
<path
|
||||
d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
|
||||
style="fill:#006225"
|
||||
id="path11" />
|
||||
<path
|
||||
d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
|
||||
style="fill:#006225"
|
||||
id="path13" />
|
||||
<path
|
||||
id="path17"
|
||||
style="fill:#ffffff"
|
||||
d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
|
||||
<path
|
||||
d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
|
||||
style="fill:#006225"
|
||||
id="path19" />
|
||||
<path
|
||||
id="path21"
|
||||
style="fill:#006225"
|
||||
d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
74
examples/multimedia/video/qmlvideofx/shaders/billboard.fsh
Normal file
@@ -0,0 +1,74 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float grid;
|
||||
uniform float dividerValue;
|
||||
uniform float step_x;
|
||||
uniform float step_y;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
float offx = floor(uv.x / (grid * step_x));
|
||||
float offy = floor(uv.y / (grid * step_y));
|
||||
vec3 res = texture2D(source, vec2(offx * grid * step_x , offy * grid * step_y)).rgb;
|
||||
vec2 prc = fract(uv / vec2(grid * step_x, grid * step_y));
|
||||
vec2 pw = pow(abs(prc - 0.5), vec2(2.0));
|
||||
float rs = pow(0.45, 2.0);
|
||||
float gr = smoothstep(rs - 0.1, rs + 0.1, pw.x + pw.y);
|
||||
float y = (res.r + res.g + res.b) / 3.0;
|
||||
vec3 ra = res / y;
|
||||
float ls = 0.3;
|
||||
float lb = ceil(y / ls);
|
||||
float lf = ls * lb + 0.3;
|
||||
res = lf * res;
|
||||
vec3 col = mix(res, vec3(0.1, 0.1, 0.1), gr);
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * texture2D(source, uv);
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float threshold;
|
||||
uniform float dividerValue;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 orig = texture2D(source, uv);
|
||||
vec3 col = orig.rgb;
|
||||
float y = 0.3 *col.r + 0.59 * col.g + 0.11 * col.b;
|
||||
y = y < threshold ? 0.0 : 1.0;
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(y, y, y, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * orig;
|
||||
}
|
||||
71
examples/multimedia/video/qmlvideofx/shaders/emboss.fsh
Normal file
@@ -0,0 +1,71 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
const float step_w = 0.0015625;
|
||||
const float step_h = 0.0027778;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec3 t1 = texture2D(source, vec2(uv.x - step_w, uv.y - step_h)).rgb;
|
||||
vec3 t2 = texture2D(source, vec2(uv.x, uv.y - step_h)).rgb;
|
||||
vec3 t3 = texture2D(source, vec2(uv.x + step_w, uv.y - step_h)).rgb;
|
||||
vec3 t4 = texture2D(source, vec2(uv.x - step_w, uv.y)).rgb;
|
||||
vec3 t5 = texture2D(source, uv).rgb;
|
||||
vec3 t6 = texture2D(source, vec2(uv.x + step_w, uv.y)).rgb;
|
||||
vec3 t7 = texture2D(source, vec2(uv.x - step_w, uv.y + step_h)).rgb;
|
||||
vec3 t8 = texture2D(source, vec2(uv.x, uv.y + step_h)).rgb;
|
||||
vec3 t9 = texture2D(source, vec2(uv.x + step_w, uv.y + step_h)).rgb;
|
||||
vec3 rr = -4.0 * t1 - 4.0 * t2 - 4.0 * t4 + 12.0 * t5;
|
||||
float y = (rr.r + rr.g + rr.b) / 3.0;
|
||||
vec3 col = vec3(y, y, y) + 0.3;
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * texture2D(source, uv);
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float blurSize;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 c = vec4(0.0);
|
||||
if (uv.x < dividerValue) {
|
||||
c += texture2D(source, uv - vec2(4.0*blurSize, 0.0)) * 0.05;
|
||||
c += texture2D(source, uv - vec2(3.0*blurSize, 0.0)) * 0.09;
|
||||
c += texture2D(source, uv - vec2(2.0*blurSize, 0.0)) * 0.12;
|
||||
c += texture2D(source, uv - vec2(1.0*blurSize, 0.0)) * 0.15;
|
||||
c += texture2D(source, uv) * 0.18;
|
||||
c += texture2D(source, uv + vec2(1.0*blurSize, 0.0)) * 0.15;
|
||||
c += texture2D(source, uv + vec2(2.0*blurSize, 0.0)) * 0.12;
|
||||
c += texture2D(source, uv + vec2(3.0*blurSize, 0.0)) * 0.09;
|
||||
c += texture2D(source, uv + vec2(4.0*blurSize, 0.0)) * 0.05;
|
||||
} else {
|
||||
c = texture2D(source, qt_TexCoord0);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * c;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float blurSize;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 c = vec4(0.0);
|
||||
if (uv.x < dividerValue) {
|
||||
c += texture2D(source, uv - vec2(0.0, 4.0*blurSize)) * 0.05;
|
||||
c += texture2D(source, uv - vec2(0.0, 3.0*blurSize)) * 0.09;
|
||||
c += texture2D(source, uv - vec2(0.0, 2.0*blurSize)) * 0.12;
|
||||
c += texture2D(source, uv - vec2(0.0, 1.0*blurSize)) * 0.15;
|
||||
c += texture2D(source, uv) * 0.18;
|
||||
c += texture2D(source, uv + vec2(0.0, 1.0*blurSize)) * 0.15;
|
||||
c += texture2D(source, uv + vec2(0.0, 2.0*blurSize)) * 0.12;
|
||||
c += texture2D(source, uv + vec2(0.0, 3.0*blurSize)) * 0.09;
|
||||
c += texture2D(source, uv + vec2(0.0, 4.0*blurSize)) * 0.05;
|
||||
} else {
|
||||
c = texture2D(source, qt_TexCoord0);
|
||||
}
|
||||
// First pass we don't apply opacity
|
||||
gl_FragColor = c;
|
||||
}
|
||||
72
examples/multimedia/video/qmlvideofx/shaders/glow.fsh
Normal file
@@ -0,0 +1,72 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
const float step_w = 0.0015625;
|
||||
const float step_h = 0.0027778;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec3 t1 = texture2D(source, vec2(uv.x - step_w, uv.y - step_h)).rgb;
|
||||
vec3 t2 = texture2D(source, vec2(uv.x, uv.y - step_h)).rgb;
|
||||
vec3 t3 = texture2D(source, vec2(uv.x + step_w, uv.y - step_h)).rgb;
|
||||
vec3 t4 = texture2D(source, vec2(uv.x - step_w, uv.y)).rgb;
|
||||
vec3 t5 = texture2D(source, uv).rgb;
|
||||
vec3 t6 = texture2D(source, vec2(uv.x + step_w, uv.y)).rgb;
|
||||
vec3 t7 = texture2D(source, vec2(uv.x - step_w, uv.y + step_h)).rgb;
|
||||
vec3 t8 = texture2D(source, vec2(uv.x, uv.y + step_h)).rgb;
|
||||
vec3 t9 = texture2D(source, vec2(uv.x + step_w, uv.y + step_h)).rgb;
|
||||
vec3 xx = t1 + 2.0*t2 + t3 - t7 - 2.0*t8 - t9;
|
||||
vec3 yy = t1 - t3 + 2.0*t4 - 2.0*t6 + t7 - t9;
|
||||
vec3 rr = sqrt(xx * xx + yy * yy);
|
||||
vec3 col = rr * 2.0 * t5;
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * texture2D(source, uv);
|
||||
}
|
||||
88
examples/multimedia/video/qmlvideofx/shaders/isolate.fsh
Normal file
@@ -0,0 +1,88 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float targetHue;
|
||||
uniform float windowWidth;
|
||||
uniform float dividerValue;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void rgb2hsl(vec3 rgb, out float h, out float s, float l)
|
||||
{
|
||||
float maxval = max(rgb.r, max(rgb.g, rgb.b));
|
||||
float minval = min(rgb.r, min(rgb.g, rgb.b));
|
||||
float delta = maxval - minval;
|
||||
l = (minval + maxval) / 2.0;
|
||||
s = 0.0;
|
||||
if (l > 0.0 && l < 1.0)
|
||||
s = delta / (l < 0.5 ? 2.0 * l : 2.0 - 2.0 * l);
|
||||
h = 0.0;
|
||||
if (delta > 0.0)
|
||||
{
|
||||
if (rgb.r == maxval && rgb.g != maxval)
|
||||
h += (rgb.g - rgb.b ) / delta;
|
||||
if (rgb.g == maxval && rgb.b != maxval)
|
||||
h += 2.0 + (rgb.b - rgb.r) / delta;
|
||||
if (rgb.b == maxval && rgb.r != maxval)
|
||||
h += 4.0 + (rgb.r - rgb.g) / delta;
|
||||
h *= 60.0;
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec3 col = texture2D(source, uv).rgb;
|
||||
float h, s, l;
|
||||
rgb2hsl(col, h, s, l);
|
||||
float h2 = (h > targetHue) ? h - 360.0 : h + 360.0;
|
||||
float y = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b;
|
||||
vec3 result;
|
||||
if (uv.x > dividerValue || (abs(h - targetHue) < windowWidth) || (abs(h2 - targetHue) < windowWidth))
|
||||
result = col;
|
||||
else
|
||||
result = vec3(y, y, y);
|
||||
gl_FragColor = qt_Opacity * vec4(result, 1.0);
|
||||
}
|
||||
68
examples/multimedia/video/qmlvideofx/shaders/magnify.fsh
Normal file
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.reddit.com/r/programming/comments/losip/shader_toy/c2upn1e
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
uniform float radius;
|
||||
uniform float diffractionIndex;
|
||||
uniform float targetWidth;
|
||||
uniform float targetHeight;
|
||||
uniform float posX;
|
||||
uniform float posY;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 tc = qt_TexCoord0;
|
||||
vec2 center = vec2(posX, posY);
|
||||
vec2 xy = gl_FragCoord.xy - center.xy;
|
||||
float r = sqrt(xy.x * xy.x + xy.y * xy.y);
|
||||
if (r < radius) {
|
||||
float h = diffractionIndex * 0.5 * radius;
|
||||
vec2 new_xy = r < radius ? xy * (radius - h) / sqrt(radius * radius - r * r) : xy;
|
||||
vec2 targetSize = vec2(targetWidth, targetHeight);
|
||||
tc = (new_xy + center) / targetSize;
|
||||
tc.y = 1.0 - tc.y;
|
||||
}
|
||||
gl_FragColor = qt_Opacity * texture2D(source, tc);
|
||||
}
|
||||
183
examples/multimedia/video/qmlvideofx/shaders/pagecurl.fsh
Normal file
@@ -0,0 +1,183 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://rectalogic.github.com/webvfx/examples_2transition-shader-pagecurl_8html-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float curlExtent;
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
const float minAmount = -0.16;
|
||||
const float maxAmount = 1.3;
|
||||
const float PI = 3.141592653589793;
|
||||
const float scale = 512.0;
|
||||
const float sharpness = 3.0;
|
||||
const vec4 bgColor = vec4(1.0, 1.0, 0.8, 1.0);
|
||||
|
||||
float amount = curlExtent * (maxAmount - minAmount) + minAmount;
|
||||
float cylinderCenter = amount;
|
||||
// 360 degrees * amount
|
||||
float cylinderAngle = 2.0 * PI * amount;
|
||||
const float cylinderRadius = 1.0 / PI / 2.0;
|
||||
|
||||
vec3 hitPoint(float hitAngle, float yc, vec3 point, mat3 rrotation)
|
||||
{
|
||||
float hitPoint = hitAngle / (2.0 * PI);
|
||||
point.y = hitPoint;
|
||||
return rrotation * point;
|
||||
}
|
||||
|
||||
vec4 antiAlias(vec4 color1, vec4 color2, float distance)
|
||||
{
|
||||
distance *= scale;
|
||||
if (distance < 0.0) return color2;
|
||||
if (distance > 2.0) return color1;
|
||||
float dd = pow(1.0 - distance / 2.0, sharpness);
|
||||
return ((color2 - color1) * dd) + color1;
|
||||
}
|
||||
|
||||
float distanceToEdge(vec3 point)
|
||||
{
|
||||
float dx = abs(point.x > 0.5 ? 1.0 - point.x : point.x);
|
||||
float dy = abs(point.y > 0.5 ? 1.0 - point.y : point.y);
|
||||
if (point.x < 0.0) dx = -point.x;
|
||||
if (point.x > 1.0) dx = point.x - 1.0;
|
||||
if (point.y < 0.0) dy = -point.y;
|
||||
if (point.y > 1.0) dy = point.y - 1.0;
|
||||
if ((point.x < 0.0 || point.x > 1.0) && (point.y < 0.0 || point.y > 1.0)) return sqrt(dx * dx + dy * dy);
|
||||
return min(dx, dy);
|
||||
}
|
||||
|
||||
vec4 seeThrough(float yc, vec2 p, mat3 rotation, mat3 rrotation)
|
||||
{
|
||||
float hitAngle = PI - (acos(yc / cylinderRadius) - cylinderAngle);
|
||||
vec3 point = hitPoint(hitAngle, yc, rotation * vec3(p, 1.0), rrotation);
|
||||
if (yc <= 0.0 && (point.x < 0.0 || point.y < 0.0 || point.x > 1.0 || point.y > 1.0))
|
||||
return bgColor;
|
||||
if (yc > 0.0)
|
||||
return texture2D(source, p);
|
||||
vec4 color = texture2D(source, point.xy);
|
||||
vec4 tcolor = vec4(0.0);
|
||||
return antiAlias(color, tcolor, distanceToEdge(point));
|
||||
}
|
||||
|
||||
vec4 seeThroughWithShadow(float yc, vec2 p, vec3 point, mat3 rotation, mat3 rrotation)
|
||||
{
|
||||
float shadow = distanceToEdge(point) * 30.0;
|
||||
shadow = (1.0 - shadow) / 3.0;
|
||||
if (shadow < 0.0)
|
||||
shadow = 0.0;
|
||||
else
|
||||
shadow *= amount;
|
||||
vec4 shadowColor = seeThrough(yc, p, rotation, rrotation);
|
||||
shadowColor.r -= shadow;
|
||||
shadowColor.g -= shadow;
|
||||
shadowColor.b -= shadow;
|
||||
return shadowColor;
|
||||
}
|
||||
|
||||
vec4 backside(float yc, vec3 point)
|
||||
{
|
||||
vec4 color = texture2D(source, point.xy);
|
||||
float gray = (color.r + color.b + color.g) / 15.0;
|
||||
gray += (8.0 / 10.0) * (pow(1.0 - abs(yc / cylinderRadius), 2.0 / 10.0) / 2.0 + (5.0 / 10.0));
|
||||
color.rgb = vec3(gray);
|
||||
return color;
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
const float angle = 30.0 * PI / 180.0;
|
||||
float c = cos(-angle);
|
||||
float s = sin(-angle);
|
||||
mat3 rotation = mat3(
|
||||
c, s, 0,
|
||||
-s, c, 0,
|
||||
0.12, 0.258, 1
|
||||
);
|
||||
c = cos(angle);
|
||||
s = sin(angle);
|
||||
mat3 rrotation = mat3(
|
||||
c, s, 0,
|
||||
-s, c, 0,
|
||||
0.15, -0.5, 1
|
||||
);
|
||||
vec3 point = rotation * vec3(qt_TexCoord0, 1.0);
|
||||
float yc = point.y - cylinderCenter;
|
||||
vec4 color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
if (yc < -cylinderRadius) {
|
||||
// See through to background
|
||||
color = bgColor;
|
||||
} else if (yc > cylinderRadius) {
|
||||
// Flat surface
|
||||
color = texture2D(source, qt_TexCoord0);
|
||||
} else {
|
||||
float hitAngle = (acos(yc / cylinderRadius) + cylinderAngle) - PI;
|
||||
float hitAngleMod = mod(hitAngle, 2.0 * PI);
|
||||
if ((hitAngleMod > PI && amount < 0.5) || (hitAngleMod > PI/2.0 && amount < 0.0)) {
|
||||
color = seeThrough(yc, qt_TexCoord0, rotation, rrotation);
|
||||
} else {
|
||||
point = hitPoint(hitAngle, yc, point, rrotation);
|
||||
if (point.x < 0.0 || point.y < 0.0 || point.x > 1.0 || point.y > 1.0) {
|
||||
color = seeThroughWithShadow(yc, qt_TexCoord0, point, rotation, rrotation);
|
||||
} else {
|
||||
color = backside(yc, point);
|
||||
vec4 otherColor;
|
||||
if (yc < 0.0) {
|
||||
float shado = 1.0 - (sqrt(pow(point.x - 0.5, 2.0) + pow(point.y - 0.5, 2.0)) / 0.71);
|
||||
shado *= pow(-yc / cylinderRadius, 3.0);
|
||||
shado *= 0.5;
|
||||
otherColor = vec4(0.0, 0.0, 0.0, shado);
|
||||
} else {
|
||||
otherColor = texture2D(source, qt_TexCoord0);
|
||||
}
|
||||
color = antiAlias(color, otherColor, cylinderRadius - abs(yc));
|
||||
|
||||
// This second antialiasing step causes the shader to fail to render, on
|
||||
// Symbian devices (tested so far using IVE3.5). Running out of scratch
|
||||
// memory?
|
||||
}
|
||||
}
|
||||
}
|
||||
gl_FragColor = qt_Opacity * color;
|
||||
}
|
||||
64
examples/multimedia/video/qmlvideofx/shaders/pixelate.fsh
Normal file
@@ -0,0 +1,64 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.geeks3d.com/20101029/shader-library-pixelation-post-processing-effect-glsl/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float granularity;
|
||||
uniform float targetWidth;
|
||||
uniform float targetHeight;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec2 tc = qt_TexCoord0;
|
||||
if (uv.x < dividerValue && granularity > 0.0) {
|
||||
float dx = granularity / targetWidth;
|
||||
float dy = granularity / targetHeight;
|
||||
tc = vec2(dx*(floor(uv.x/dx) + 0.5),
|
||||
dy*(floor(uv.y/dy) + 0.5));
|
||||
}
|
||||
gl_FragColor = qt_Opacity * texture2D(source, tc);
|
||||
}
|
||||
68
examples/multimedia/video/qmlvideofx/shaders/posterize.fsh
Normal file
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.geeks3d.com/20091027/shader-library-posterization-post-processing-effect-glsl/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float gamma;
|
||||
uniform float numColors;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 c = vec4(0.0);
|
||||
if (uv.x < dividerValue) {
|
||||
vec3 x = texture2D(source, uv).rgb;
|
||||
x = pow(x, vec3(gamma, gamma, gamma));
|
||||
x = x * numColors;
|
||||
x = floor(x);
|
||||
x = x / numColors;
|
||||
x = pow(x, vec3(1.0/gamma));
|
||||
c = vec4(x, 1.0);
|
||||
} else {
|
||||
c = texture2D(source, uv);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * c;
|
||||
}
|
||||
78
examples/multimedia/video/qmlvideofx/shaders/ripple.fsh
Normal file
@@ -0,0 +1,78 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://blog.qt.digia.com/blog/2011/03/22/the-convenient-power-of-qml-scene-graph/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float targetWidth;
|
||||
uniform float targetHeight;
|
||||
uniform float time;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
const float PI = 3.1415926535;
|
||||
const int ITER = 7;
|
||||
const float RATE = 0.1;
|
||||
uniform float amplitude;
|
||||
uniform float n;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec2 tc = uv;
|
||||
vec2 p = vec2(-1.0 + 2.0 * gl_FragCoord.x / targetWidth, -(-1.0 + 2.0 * gl_FragCoord.y / targetHeight));
|
||||
float diffx = 0.0;
|
||||
float diffy = 0.0;
|
||||
vec4 col;
|
||||
if (uv.x < dividerValue) {
|
||||
for (int i=0; i<ITER; ++i) {
|
||||
float theta = float(i) * PI / float(ITER);
|
||||
vec2 r = vec2(cos(theta) * p.x + sin(theta) * p.y, -1.0 * sin(theta) * p.x + cos(theta) * p.y);
|
||||
float diff = (sin(2.0 * PI * n * (r.y + time * RATE)) + 1.0) / 2.0;
|
||||
diffx += diff * sin(theta);
|
||||
diffy += diff * cos(theta);
|
||||
}
|
||||
tc = 0.5*(vec2(1.0,1.0) + p) + amplitude * vec2(diffx, diffy);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * texture2D(source, tc);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
59
examples/multimedia/video/qmlvideofx/shaders/sepia.fsh
Normal file
@@ -0,0 +1,59 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 orig = texture2D(source, uv);
|
||||
vec3 col = orig.rgb;
|
||||
float y = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b;
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(y + 0.15, y + 0.07, y - 0.12, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * orig;
|
||||
}
|
||||
75
examples/multimedia/video/qmlvideofx/shaders/sharpen.fsh
Normal file
@@ -0,0 +1,75 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float amount;
|
||||
const float step_w = 0.0015625;
|
||||
const float step_h = 0.0027778;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
vec3 sharpen(vec3 t1, vec3 t2, vec3 t3, vec3 t4, vec3 t5, vec3 t6, vec3 t7, vec3 t8, vec3 t9)
|
||||
{
|
||||
return -t1 - t2 - t3 - t4 + amount * t5 - t6 - t7 - t8 - t9;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec3 t1 = texture2D(source, vec2(uv.x - step_w, uv.y - step_h)).rgb;
|
||||
vec3 t2 = texture2D(source, vec2(uv.x, uv.y - step_h)).rgb;
|
||||
vec3 t3 = texture2D(source, vec2(uv.x + step_w, uv.y - step_h)).rgb;
|
||||
vec3 t4 = texture2D(source, vec2(uv.x - step_w, uv.y)).rgb;
|
||||
vec3 t5 = texture2D(source, uv).rgb;
|
||||
vec3 t6 = texture2D(source, vec2(uv.x + step_w, uv.y)).rgb;
|
||||
vec3 t7 = texture2D(source, vec2(uv.x - step_w, uv.y + step_h)).rgb;
|
||||
vec3 t8 = texture2D(source, vec2(uv.x, uv.y + step_h)).rgb;
|
||||
vec3 t9 = texture2D(source, vec2(uv.x + step_w, uv.y + step_h)).rgb;
|
||||
vec3 col = sharpen(t1, t2, t3, t4, t5, t6, t7, t8, t9);
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * texture2D(source, uv);
|
||||
}
|
||||
73
examples/multimedia/video/qmlvideofx/shaders/shockwave.fsh
Normal file
@@ -0,0 +1,73 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.geeks3d.com/20091116/shader-library-2d-shockwave-post-processing-filter-glsl/
|
||||
|
||||
uniform float centerX;
|
||||
uniform float centerY;
|
||||
uniform float dividerValue;
|
||||
uniform float granularity;
|
||||
uniform float time;
|
||||
uniform float weight;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec2 tc = qt_TexCoord0;
|
||||
vec2 center = vec2(centerX, centerY);
|
||||
const vec3 shock = vec3(10.0, 1.5, 0.1);
|
||||
if (uv.x < dividerValue) {
|
||||
float distance = distance(uv, center);
|
||||
if ((distance <= (time + shock.z)) &&
|
||||
(distance >= (time - shock.z))) {
|
||||
float diff = (distance - time);
|
||||
float powDiff = 1.0 - pow(abs(diff*shock.x), shock.y*weight);
|
||||
float diffTime = diff * powDiff;
|
||||
vec2 diffUV = normalize(uv - center);
|
||||
tc += (diffUV * diffTime);
|
||||
}
|
||||
}
|
||||
gl_FragColor = qt_Opacity * texture2D(source, tc);
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on "Graphics Shaders: Theory and Practice" (http://cgeducation.org/ShadersBook/)
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float mixLevel;
|
||||
uniform float resS;
|
||||
uniform float resT;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 c = vec4(0.0);
|
||||
if (uv.x < dividerValue) {
|
||||
vec2 st = qt_TexCoord0.st;
|
||||
vec3 irgb = texture2D(source, st).rgb;
|
||||
vec2 stp0 = vec2(1.0 / resS, 0.0);
|
||||
vec2 st0p = vec2(0.0 , 1.0 / resT);
|
||||
vec2 stpp = vec2(1.0 / resS, 1.0 / resT);
|
||||
vec2 stpm = vec2(1.0 / resS, -1.0 / resT);
|
||||
const vec3 W = vec3(0.2125, 0.7154, 0.0721);
|
||||
float i00 = dot(texture2D(source, st).rgb, W);
|
||||
float im1m1 = dot(texture2D(source, st-stpp).rgb, W);
|
||||
float ip1p1 = dot(texture2D(source, st+stpp).rgb, W);
|
||||
float im1p1 = dot(texture2D(source, st-stpm).rgb, W);
|
||||
float ip1m1 = dot(texture2D(source, st+stpm).rgb, W);
|
||||
float im10 = dot(texture2D(source, st-stp0).rgb, W);
|
||||
float ip10 = dot(texture2D(source, st+stp0).rgb, W);
|
||||
float i0m1 = dot(texture2D(source, st-st0p).rgb, W);
|
||||
float i0p1 = dot(texture2D(source, st+st0p).rgb, W);
|
||||
float h = -1.0*im1p1 - 2.0*i0p1 - 1.0*ip1p1 + 1.0*im1m1 + 2.0*i0m1 + 1.0*ip1m1;
|
||||
float v = -1.0*im1m1 - 2.0*im10 - 1.0*im1p1 + 1.0*ip1m1 + 2.0*ip10 + 1.0*ip1p1;
|
||||
float mag = 1.0 - length(vec2(h, v));
|
||||
vec3 target = vec3(mag, mag, mag);
|
||||
c = vec4(target, 1.0);
|
||||
} else {
|
||||
c = texture2D(source, qt_TexCoord0);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * c;
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://rastergrid.com/blog/downloads/frei-chen-edge-detector/
|
||||
|
||||
#version 130
|
||||
uniform sampler2D source;
|
||||
uniform float dividerValue;
|
||||
uniform float weight;
|
||||
mat3 G[2] = mat3[](
|
||||
mat3( 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, -1.0, -2.0, -1.0 ),
|
||||
mat3( 1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0 )
|
||||
);
|
||||
uniform lowp float qt_Opacity;
|
||||
in vec2 qt_TexCoord0;
|
||||
out vec4 FragmentColor;
|
||||
void main() {
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 c = vec4(0.0);
|
||||
if (uv.x < dividerValue) {
|
||||
mat3 intensity;
|
||||
float conv[2];
|
||||
vec3 sample;
|
||||
for (int i=0; i<3; ++i) {
|
||||
for (int j=0; j<3; ++j) {
|
||||
sample = texelFetch(source, ivec2(gl_FragCoord) + ivec2(i-1, j-1), 0).rgb;
|
||||
intensity[i][j] = length(sample) * weight;
|
||||
}
|
||||
}
|
||||
for (int i=0; i<2; ++i) {
|
||||
float dp3 = dot(G[i][0], intensity[0]) + dot(G[i][1], intensity[1]) + dot(G[i][2], intensity[2]);
|
||||
conv[i] = dp3 * dp3;
|
||||
}
|
||||
c = vec4(0.5 * sqrt(conv[0]*conv[0] + conv[1]*conv[1]));
|
||||
} else {
|
||||
c = texture2D(source, qt_TexCoord0);
|
||||
}
|
||||
FragmentColor = qt_Opacity * c;
|
||||
}
|
||||
75
examples/multimedia/video/qmlvideofx/shaders/tiltshift.fsh
Normal file
@@ -0,0 +1,75 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
const float step_w = 0.0015625;
|
||||
const float step_h = 0.0027778;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
vec3 blur()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
float y = uv.y < 0.4 ? uv.y : 1.0 - uv.y;
|
||||
float dist = 8.0 - 20.0 * y;
|
||||
vec3 acc = vec3(0.0, 0.0, 0.0);
|
||||
for (float y=-2.0; y<=2.0; ++y) {
|
||||
for (float x=-2.0; x<=2.0; ++x) {
|
||||
acc += texture2D(source, vec2(uv.x + dist * x * step_w, uv.y + 0.5 * dist * y * step_h)).rgb;
|
||||
}
|
||||
}
|
||||
return acc / 25.0;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec3 col;
|
||||
if (uv.x > dividerValue || (uv.y >= 0.4 && uv.y <= 0.6))
|
||||
col = texture2D(source, uv).rgb;
|
||||
else
|
||||
col = blur();
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
}
|
||||
92
examples/multimedia/video/qmlvideofx/shaders/toon.fsh
Normal file
@@ -0,0 +1,92 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://www.geeks3d.com/20101029/shader-library-pixelation-post-processing-effect-glsl/
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform float threshold;
|
||||
uniform float resS;
|
||||
uniform float resT;
|
||||
uniform float magTol;
|
||||
uniform float quantize;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = vec4(1.0, 0.0, 0.0, 1.1);
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
if (uv.x < dividerValue) {
|
||||
vec2 st = qt_TexCoord0.st;
|
||||
vec3 rgb = texture2D(source, st).rgb;
|
||||
vec2 stp0 = vec2(1.0/resS, 0.0);
|
||||
vec2 st0p = vec2(0.0 , 1.0/resT);
|
||||
vec2 stpp = vec2(1.0/resS, 1.0/resT);
|
||||
vec2 stpm = vec2(1.0/resS, -1.0/resT);
|
||||
float i00 = dot( texture2D(source, st).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float im1m1 = dot( texture2D(source, st-stpp).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float ip1p1 = dot( texture2D(source, st+stpp).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float im1p1 = dot( texture2D(source, st-stpm).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float ip1m1 = dot( texture2D(source, st+stpm).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float im10 = dot( texture2D(source, st-stp0).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float ip10 = dot( texture2D(source, st+stp0).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float i0m1 = dot( texture2D(source, st-st0p).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float i0p1 = dot( texture2D(source, st+st0p).rgb, vec3(0.2125,0.7154,0.0721));
|
||||
float h = -1.*im1p1 - 2.*i0p1 - 1.*ip1p1 + 1.*im1m1 + 2.*i0m1 + 1.*ip1m1;
|
||||
float v = -1.*im1m1 - 2.*im10 - 1.*im1p1 + 1.*ip1m1 + 2.*ip10 + 1.*ip1p1;
|
||||
float mag = sqrt(h*h + v*v);
|
||||
if (mag > magTol) {
|
||||
color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
else {
|
||||
rgb.rgb *= quantize;
|
||||
rgb.rgb += vec3(0.5, 0.5, 0.5);
|
||||
ivec3 irgb = ivec3(rgb.rgb);
|
||||
rgb.rgb = vec3(irgb) / quantize;
|
||||
color = vec4(rgb, 1.0);
|
||||
}
|
||||
} else {
|
||||
color = texture2D(source, uv);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * color;
|
||||
}
|
||||
64
examples/multimedia/video/qmlvideofx/shaders/vignette.fsh
Normal file
@@ -0,0 +1,64 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 orig = texture2D(source, uv);
|
||||
float cr = pow(0.1, 2.0);
|
||||
float pt = pow(uv.x - 0.5, 2.0) + pow(uv.y - 0.5, 2.0);
|
||||
float d = pt - cr;
|
||||
float cf = 1.0;
|
||||
if (d > 0.0)
|
||||
cf = 1.0 - 2.0 * d;
|
||||
vec3 col = cf * orig.rgb;
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * orig;
|
||||
}
|
||||
66
examples/multimedia/video/qmlvideofx/shaders/warhol.fsh
Normal file
@@ -0,0 +1,66 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://kodemongki.blogspot.com/2011/06/kameraku-custom-shader-effects-example.html
|
||||
|
||||
uniform float dividerValue;
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec4 orig = texture2D(source, uv);
|
||||
vec3 col = orig.rgb;
|
||||
float y = 0.3 *col.r + 0.59 * col.g + 0.11 * col.b;
|
||||
y = y < 0.3 ? 0.0 : (y < 0.6 ? 0.5 : 1.0);
|
||||
if (y == 0.5)
|
||||
col = vec3(0.8, 0.0, 0.0);
|
||||
else if (y == 1.0)
|
||||
col = vec3(0.9, 0.9, 0.0);
|
||||
else
|
||||
col = vec3(0.0, 0.0, 0.0);
|
||||
if (uv.x < dividerValue)
|
||||
gl_FragColor = qt_Opacity * vec4(col, 1.0);
|
||||
else
|
||||
gl_FragColor = qt_Opacity * orig;
|
||||
}
|
||||
62
examples/multimedia/video/qmlvideofx/shaders/wobble.fsh
Normal file
@@ -0,0 +1,62 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// Based on http://blog.qt.digia.com/blog/2011/03/22/the-convenient-power-of-qml-scene-graph/
|
||||
|
||||
uniform float amplitude;
|
||||
uniform float dividerValue;
|
||||
uniform float frequency;
|
||||
uniform float time;
|
||||
|
||||
uniform sampler2D source;
|
||||
uniform lowp float qt_Opacity;
|
||||
varying vec2 qt_TexCoord0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = qt_TexCoord0.xy;
|
||||
vec2 tc = qt_TexCoord0;
|
||||
if (uv.x < dividerValue) {
|
||||
vec2 p = sin(time + frequency * qt_TexCoord0);
|
||||
tc += amplitude * vec2(p.y, -p.x);
|
||||
}
|
||||
gl_FragColor = qt_Opacity * texture2D(source, tc);
|
||||
}
|
||||
96
examples/multimedia/video/qmlvideofx/trace.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the Qt Mobility Components.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef TRACE_H
|
||||
#define TRACE_H
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#define ENABLE_TRACE
|
||||
//#define VERBOSE_TRACE
|
||||
|
||||
namespace Trace {
|
||||
|
||||
class NullDebug
|
||||
{
|
||||
public:
|
||||
template <typename T>
|
||||
NullDebug& operator<<(const T&) { return *this; }
|
||||
};
|
||||
|
||||
inline NullDebug nullDebug() { return NullDebug(); }
|
||||
|
||||
template <typename T>
|
||||
struct PtrWrapper
|
||||
{
|
||||
PtrWrapper(const T *ptr) : m_ptr(ptr) { }
|
||||
const T *const m_ptr;
|
||||
};
|
||||
|
||||
} // namespace Trace
|
||||
|
||||
template <typename T>
|
||||
inline QDebug& operator<<(QDebug &debug, const Trace::PtrWrapper<T> &wrapper)
|
||||
{
|
||||
debug.nospace() << "[" << (void*)wrapper.m_ptr << "]";
|
||||
return debug.space();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline const void *qtVoidPtr(const T *ptr)
|
||||
{ return static_cast<const void *>(ptr); }
|
||||
|
||||
#define qtThisPtr() qtVoidPtr(this)
|
||||
|
||||
#ifdef ENABLE_TRACE
|
||||
inline QDebug qtTrace() { return qDebug() << "[qmlvideofx]"; }
|
||||
# ifdef VERBOSE_TRACE
|
||||
inline QDebug qtVerboseTrace() { return qtTrace(); }
|
||||
# else
|
||||
inline Trace::NullDebug qtVerboseTrace() { return Trace::nullDebug(); }
|
||||
# endif
|
||||
#else
|
||||
inline Trace::NullDebug qtTrace() { return Trace::nullDebug(); }
|
||||
inline Trace::NullDebug qtVerboseTrace() { return Trace::nullDebug(); }
|
||||
#endif
|
||||
|
||||
#endif // TRACE_H
|
||||
|
||||