From 772bf4e9ae0a779c03ca437bd03825e74585c0d5 Mon Sep 17 00:00:00 2001 From: Andrey Tkachenko Date: Fri, 11 Jul 2014 20:35:48 +0400 Subject: [PATCH] Migrate to Qt --- CSV.pro | 35 ++ CSV.pro.user | 260 ++++++++++ Main.qml | 157 ++++++ Makefile | 874 +++++++++++++++++++++++++++++++++ Release/makefile | 59 --- Release/objects.mk | 8 - Release/sources.mk | 27 - Release/src/subdir.mk | 36 -- cl/kernel.cl | 14 + main.cpp | 46 ++ resource.qrc | 6 + src/SvImage.cpp | 74 --- src/SvImage.h | 34 -- src/SvMain.cpp | 106 ---- src/SvMultithreadProcessor.cpp | 43 -- src/SvMultithreadProcessor.h | 42 -- src/SvProcessorV1.cpp | 67 --- src/SvProcessorV1.h | 31 -- src/SvProcessorV2.cpp | 12 - src/SvProcessorV2.h | 23 - svabstractkernel.h | 22 + svimage.cpp | 89 ++++ svimage.h | 28 ++ svimageprovider.cpp | 27 + svimageprovider.h | 20 + svkernelv1.cpp | 97 ++++ svkernelv1.h | 23 + svkernelv2.cpp | 16 + svkernelv2.h | 14 + svprocessor.cpp | 74 +++ svprocessor.h | 44 ++ svworker.cpp | 26 + svworker.h | 36 ++ 33 files changed, 1908 insertions(+), 562 deletions(-) create mode 100644 CSV.pro create mode 100644 CSV.pro.user create mode 100644 Main.qml create mode 100644 Makefile delete mode 100644 Release/makefile delete mode 100644 Release/objects.mk delete mode 100644 Release/sources.mk delete mode 100644 Release/src/subdir.mk create mode 100644 cl/kernel.cl create mode 100644 main.cpp create mode 100644 resource.qrc delete mode 100644 src/SvImage.cpp delete mode 100644 src/SvImage.h delete mode 100644 src/SvMain.cpp delete mode 100644 src/SvMultithreadProcessor.cpp delete mode 100644 src/SvMultithreadProcessor.h delete mode 100644 src/SvProcessorV1.cpp delete mode 100644 src/SvProcessorV1.h delete mode 100644 src/SvProcessorV2.cpp delete mode 100644 src/SvProcessorV2.h create mode 100644 svabstractkernel.h create mode 100644 svimage.cpp create mode 100644 svimage.h create mode 100644 svimageprovider.cpp create mode 100644 svimageprovider.h create mode 100644 svkernelv1.cpp create mode 100644 svkernelv1.h create mode 100644 svkernelv2.cpp create mode 100644 svkernelv2.h create mode 100644 svprocessor.cpp create mode 100644 svprocessor.h create mode 100644 svworker.cpp create mode 100644 svworker.h diff --git a/CSV.pro b/CSV.pro new file mode 100644 index 0000000..c139a74 --- /dev/null +++ b/CSV.pro @@ -0,0 +1,35 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2014-07-10T12:35:18 +# +#------------------------------------------------- + +QT += core qml +TEMPLATE = app + +TARGET = CSV +CONFIG += c++11 +CONFIG -= console + +SOURCES += main.cpp \ + svimage.cpp \ + svworker.cpp \ + svprocessor.cpp \ + svkernelv1.cpp \ + svkernelv2.cpp \ + svimageprovider.cpp + +HEADERS += \ + svimage.h \ + svworker.h \ + svprocessor.h \ + svabstractkernel.h \ + svkernelv1.h \ + svkernelv2.h \ + svimageprovider.h + +RESOURCES += \ + resource.qrc + +OTHER_FILES += \ + Main.qml diff --git a/CSV.pro.user b/CSV.pro.user new file mode 100644 index 0000000..9213812 --- /dev/null +++ b/CSV.pro.user @@ -0,0 +1,260 @@ + + + + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + true + 1 + true + 0 + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + {7246c6ab-7a87-4118-a487-ab344a31d36b} + 0 + 0 + 0 + + /home/andrey/workspace/Qt/build-CSV-Desktop-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Make + + Qt4ProjectManager.MakeStep + + -w + -r + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + -w + -r + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + /home/andrey/workspace/Qt/build-CSV-Desktop-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Make + + Qt4ProjectManager.MakeStep + + -w + -r + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + -w + -r + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 2 + + + 0 + Deploy + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy locally + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + CSV + + Qt4ProjectManager.Qt4RunConfiguration:/home/andrey/workspace/Qt/CSV/CSV.pro + + CSV.pro + false + true + + 3768 + true + false + false + true + false + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.EnvironmentId + {35059b80-6449-4cca-8333-a4525005f807} + + + ProjectExplorer.Project.Updater.FileVersion + 15 + + diff --git a/Main.qml b/Main.qml new file mode 100644 index 0000000..1afdd1f --- /dev/null +++ b/Main.qml @@ -0,0 +1,157 @@ +import QtQuick 2.2 +import QtQuick.Window 2.1 +import QtQuick.Controls 1.1 + +Window { + id: mainWindow + visible: true + width: 800 + height: 600 + + Item { + id: leftColumn + width: 200 + + anchors.bottom: parent.bottom + anchors.top: parent.top + anchors.right: rightColumn.left + anchors.left: parent.left + + Component { + id: slider + + Item { + property alias title: sliderTitle.text + property alias from: sliderSlider.minimumValue + property alias to: sliderSlider.maximumValue + property alias step: sliderSlider.stepSize + property string name: '' + + height: 50 + + Text { + id: sliderTitle + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.leftMargin: 15 + anchors.rightMargin: 10 + anchors.topMargin: 10 + text: "" + } + + Text { + id: sliderValue + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: sliderSlider.top + text: sliderSlider.value + } + + Slider { + id: sliderSlider + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.right: parent.right + anchors.leftMargin: 10 + anchors.rightMargin: 10 + stepSize: 1 + } + } + } + + Column { + anchors.bottom: renderButton.top + anchors.top: parent.top + anchors.right: parent.right + anchors.left: parent.left + + Loader { + id: windowSize + sourceComponent: slider + anchors.left: parent.left + anchors.right: parent.right + onLoaded: { + windowSize.item.title = "Window Size" + windowSize.item.from = 0; + windowSize.item.to = 10; + windowSize.item.step = 1; + } + } + + Loader { + id: matchSize + sourceComponent: slider + anchors.left: parent.left + anchors.right: parent.right + onLoaded: { + matchSize.item.title = "Match Size" + matchSize.item.from = 0; + matchSize.item.to = 10; + matchSize.item.step = 1; + } + } + + Loader { + id: errorLevel + sourceComponent: slider + anchors.left: parent.left + anchors.right: parent.right + onLoaded: { + errorLevel.item.title = "Error Level" + errorLevel.item.from = 0; + errorLevel.item.to = 10; + errorLevel.item.step = 1; + } + } + } + + Button { + id: renderButton + //anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: 10 + Text { + anchors.centerIn: parent + text: "Render" + } + } + } + + Item { + id: rightColumn + anchors.bottom: parent.bottom + anchors.top: parent.top + anchors.right: parent.right + anchors.left: leftColumn.right + TabView { + anchors.fill: parent + Tab { + id: imageView + title: "Image View" + Item { + Flickable { + anchors.fill: parent + contentWidth: image.width + contentHeight: image.height + interactive: true + anchors.margins: 2 + clip: true + + Item { + Image { + id: image + source: "img/left4.png" + smooth: false + } + } + } + } + } + Tab { + id: pclView + title: "PCL View" + } + } + } +} diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3dc8461 --- /dev/null +++ b/Makefile @@ -0,0 +1,874 @@ +############################################################################# +# Makefile for building: CSV +# Generated by qmake (3.0) (Qt 5.2.1) +# Project: CSV.pro +# Template: app +# Command: /usr/lib/i386-linux-gnu/qt5/bin/qmake -o Makefile CSV.pro +############################################################################# + +MAKEFILE = Makefile + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIE $(DEFINES) +CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIE $(DEFINES) +INCPATH = -I/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++ -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) -lQt5Gui -L/usr/lib/i386-linux-gnu -lQt5Core -lGL -lpthread +AR = ar cqs +RANLIB = +QMAKE = /usr/lib/i386-linux-gnu/qt5/bin/qmake +TAR = tar -cf +COMPRESS = gzip -9f +COPY = cp -f +SED = sed +COPY_FILE = cp -f +COPY_DIR = cp -f -R +STRIP = strip +INSTALL_FILE = install -m 644 -p +INSTALL_DIR = $(COPY_DIR) +INSTALL_PROGRAM = install -m 755 -p +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = main.cpp \ + svimage.cpp \ + svmultithreadprocessor.cpp \ + svprocessorv1.cpp \ + svprocessorv2.cpp moc_svmultithreadprocessor.cpp \ + moc_svprocessorv1.cpp \ + moc_svprocessorv2.cpp +OBJECTS = main.o \ + svimage.o \ + svmultithreadprocessor.o \ + svprocessorv1.o \ + svprocessorv2.o \ + moc_svmultithreadprocessor.o \ + moc_svprocessorv1.o \ + moc_svprocessorv2.o +DIST = /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf \ + CSV.pro \ + CSV.pro +QMAKE_TARGET = CSV +DESTDIR = #avoid trailing-slash linebreak +TARGET = CSV + + +first: all +####### Implicit rules + +.SUFFIXES: .o .c .cpp .cc .cxx .C + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.C.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" + +####### Build rules + +all: Makefile $(TARGET) + +$(TARGET): $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: CSV.pro /usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf \ + CSV.pro \ + /usr/lib/i386-linux-gnu/libQt5Gui.prl \ + /usr/lib/i386-linux-gnu/libQt5Core.prl + $(QMAKE) -o Makefile CSV.pro +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf: +CSV.pro: +/usr/lib/i386-linux-gnu/libQt5Gui.prl: +/usr/lib/i386-linux-gnu/libQt5Core.prl: +qmake: FORCE + @$(QMAKE) -o Makefile CSV.pro + +qmake_all: FORCE + +dist: + @test -d .tmp/CSV1.0.0 || mkdir -p .tmp/CSV1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/CSV1.0.0/ && $(COPY_FILE) --parents svimage.h svmultithreadprocessor.h svprocessorv1.h svprocessorv2.h .tmp/CSV1.0.0/ && $(COPY_FILE) --parents main.cpp svimage.cpp svmultithreadprocessor.cpp svprocessorv1.cpp svprocessorv2.cpp .tmp/CSV1.0.0/ && (cd `dirname .tmp/CSV1.0.0` && $(TAR) CSV1.0.0.tar CSV1.0.0 && $(COMPRESS) CSV1.0.0.tar) && $(MOVE) `dirname .tmp/CSV1.0.0`/CSV1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/CSV1.0.0 + + +clean:compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +####### Sub-libraries + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) Makefile + + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +check: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_header_make_all: moc_svmultithreadprocessor.cpp moc_svprocessorv1.cpp moc_svprocessorv2.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_svmultithreadprocessor.cpp moc_svprocessorv1.cpp moc_svprocessorv2.cpp +moc_svmultithreadprocessor.cpp: /usr/include/qt5/QtCore/QThread \ + /usr/include/qt5/QtCore/qthread.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + /usr/include/qt5/QtGui/qcolor.h \ + svmultithreadprocessor.h + /usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svmultithreadprocessor.h -o moc_svmultithreadprocessor.cpp + +moc_svprocessorv1.cpp: svmultithreadprocessor.h \ + /usr/include/qt5/QtCore/QThread \ + /usr/include/qt5/QtCore/qthread.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + /usr/include/qt5/QtGui/qcolor.h \ + svprocessorv1.h + /usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svprocessorv1.h -o moc_svprocessorv1.cpp + +moc_svprocessorv2.cpp: svprocessorv2.h + /usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svprocessorv2.h -o moc_svprocessorv2.cpp + +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean + +####### Compile + +main.o: main.cpp /usr/include/qt5/QtCore/QCoreApplication \ + /usr/include/qt5/QtCore/qcoreapplication.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + /usr/include/qt5/QtCore/qeventloop.h \ + /usr/include/qt5/QtGui/QPixmap \ + /usr/include/qt5/QtGui/qpixmap.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtGui/qcolor.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtCore/qsharedpointer.h \ + /usr/include/qt5/QtCore/qshareddata.h \ + /usr/include/qt5/QtCore/qsharedpointer_impl.h \ + /usr/include/qt5/QtCore/qhash.h \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + svprocessorv1.h \ + svmultithreadprocessor.h \ + /usr/include/qt5/QtCore/QThread \ + /usr/include/qt5/QtCore/qthread.h \ + svprocessorv2.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp + +svimage.o: svimage.cpp svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + /usr/include/qt5/QtGui/qcolor.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o svimage.o svimage.cpp + +svmultithreadprocessor.o: svmultithreadprocessor.cpp svmultithreadprocessor.h \ + /usr/include/qt5/QtCore/QThread \ + /usr/include/qt5/QtCore/qthread.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + /usr/include/qt5/QtGui/qcolor.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o svmultithreadprocessor.o svmultithreadprocessor.cpp + +svprocessorv1.o: svprocessorv1.cpp svprocessorv1.h \ + svmultithreadprocessor.h \ + /usr/include/qt5/QtCore/QThread \ + /usr/include/qt5/QtCore/qthread.h \ + /usr/include/qt5/QtCore/qobject.h \ + /usr/include/qt5/QtCore/qobjectdefs.h \ + /usr/include/qt5/QtCore/qnamespace.h \ + /usr/include/qt5/QtCore/qglobal.h \ + /usr/include/qt5/QtCore/qconfig.h \ + /usr/include/qt5/QtCore/qfeatures.h \ + /usr/include/qt5/QtCore/qsystemdetection.h \ + /usr/include/qt5/QtCore/qprocessordetection.h \ + /usr/include/qt5/QtCore/qcompilerdetection.h \ + /usr/include/qt5/QtCore/qglobalstatic.h \ + /usr/include/qt5/QtCore/qatomic.h \ + /usr/include/qt5/QtCore/qbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_bootstrap.h \ + /usr/include/qt5/QtCore/qgenericatomic.h \ + /usr/include/qt5/QtCore/qatomic_msvc.h \ + /usr/include/qt5/QtCore/qatomic_integrity.h \ + /usr/include/qt5/QtCore/qoldbasicatomic.h \ + /usr/include/qt5/QtCore/qatomic_vxworks.h \ + /usr/include/qt5/QtCore/qatomic_power.h \ + /usr/include/qt5/QtCore/qatomic_alpha.h \ + /usr/include/qt5/QtCore/qatomic_armv7.h \ + /usr/include/qt5/QtCore/qatomic_armv6.h \ + /usr/include/qt5/QtCore/qatomic_armv5.h \ + /usr/include/qt5/QtCore/qatomic_bfin.h \ + /usr/include/qt5/QtCore/qatomic_ia64.h \ + /usr/include/qt5/QtCore/qatomic_mips.h \ + /usr/include/qt5/QtCore/qatomic_s390.h \ + /usr/include/qt5/QtCore/qatomic_sh4a.h \ + /usr/include/qt5/QtCore/qatomic_sparc.h \ + /usr/include/qt5/QtCore/qatomic_gcc.h \ + /usr/include/qt5/QtCore/qatomic_x86.h \ + /usr/include/qt5/QtCore/qatomic_cxx11.h \ + /usr/include/qt5/QtCore/qatomic_unix.h \ + /usr/include/qt5/QtCore/qmutex.h \ + /usr/include/qt5/QtCore/qlogging.h \ + /usr/include/qt5/QtCore/qflags.h \ + /usr/include/qt5/QtCore/qtypeinfo.h \ + /usr/include/qt5/QtCore/qtypetraits.h \ + /usr/include/qt5/QtCore/qsysinfo.h \ + /usr/include/qt5/QtCore/qobjectdefs_impl.h \ + /usr/include/qt5/QtCore/qstring.h \ + /usr/include/qt5/QtCore/qchar.h \ + /usr/include/qt5/QtCore/qbytearray.h \ + /usr/include/qt5/QtCore/qrefcount.h \ + /usr/include/qt5/QtCore/qarraydata.h \ + /usr/include/qt5/QtCore/qstringbuilder.h \ + /usr/include/qt5/QtCore/qlist.h \ + /usr/include/qt5/QtCore/qalgorithms.h \ + /usr/include/qt5/QtCore/qiterator.h \ + /usr/include/qt5/QtCore/qcoreevent.h \ + /usr/include/qt5/QtCore/qscopedpointer.h \ + /usr/include/qt5/QtCore/qmetatype.h \ + /usr/include/qt5/QtCore/qvarlengtharray.h \ + /usr/include/qt5/QtCore/qcontainerfwd.h \ + /usr/include/qt5/QtCore/qisenum.h \ + /usr/include/qt5/QtCore/qobject_impl.h \ + svimage.h \ + /usr/include/qt5/QtGui/QImage \ + /usr/include/qt5/QtGui/qimage.h \ + /usr/include/qt5/QtGui/qtransform.h \ + /usr/include/qt5/QtGui/qmatrix.h \ + /usr/include/qt5/QtGui/qpolygon.h \ + /usr/include/qt5/QtCore/qvector.h \ + /usr/include/qt5/QtCore/qpoint.h \ + /usr/include/qt5/QtCore/qrect.h \ + /usr/include/qt5/QtCore/qsize.h \ + /usr/include/qt5/QtGui/qregion.h \ + /usr/include/qt5/QtGui/qwindowdefs.h \ + /usr/include/qt5/QtGui/qwindowdefs_win.h \ + /usr/include/qt5/QtCore/qdatastream.h \ + /usr/include/qt5/QtCore/qiodevice.h \ + /usr/include/qt5/QtCore/qpair.h \ + /usr/include/qt5/QtCore/qline.h \ + /usr/include/qt5/QtGui/qpainterpath.h \ + /usr/include/qt5/QtGui/qpaintdevice.h \ + /usr/include/qt5/QtGui/qrgb.h \ + /usr/include/qt5/QtCore/qstringlist.h \ + /usr/include/qt5/QtCore/qregexp.h \ + /usr/include/qt5/QtCore/qstringmatcher.h \ + /usr/include/qt5/QtGui/QRgb \ + /usr/include/qt5/QtGui/QColor \ + /usr/include/qt5/QtGui/qcolor.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o svprocessorv1.o svprocessorv1.cpp + +svprocessorv2.o: svprocessorv2.cpp svprocessorv2.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o svprocessorv2.o svprocessorv2.cpp + +moc_svmultithreadprocessor.o: moc_svmultithreadprocessor.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svmultithreadprocessor.o moc_svmultithreadprocessor.cpp + +moc_svprocessorv1.o: moc_svprocessorv1.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svprocessorv1.o moc_svprocessorv1.cpp + +moc_svprocessorv2.o: moc_svprocessorv2.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svprocessorv2.o moc_svprocessorv2.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/Release/makefile b/Release/makefile deleted file mode 100644 index 0a3be5d..0000000 --- a/Release/makefile +++ /dev/null @@ -1,59 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C++_DEPS)),) --include $(C++_DEPS) -endif -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(CC_DEPS)),) --include $(CC_DEPS) -endif -ifneq ($(strip $(CPP_DEPS)),) --include $(CPP_DEPS) -endif -ifneq ($(strip $(CXX_DEPS)),) --include $(CXX_DEPS) -endif -ifneq ($(strip $(C_UPPER_DEPS)),) --include $(C_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: CSV - -# Tool invocations -CSV: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: GCC C++ Linker' - g++ -o "CSV" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) CSV - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Release/objects.mk b/Release/objects.mk deleted file mode 100644 index ce28c03..0000000 --- a/Release/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := -lopencv_core -lpthread -lboost_system -lpcl -lpcl_visualization -lopencv_imgproc -lopencv_highgui -lopencv_legacy - diff --git a/Release/sources.mk b/Release/sources.mk deleted file mode 100644 index e7f4bf1..0000000 --- a/Release/sources.mk +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -O_SRCS := -CPP_SRCS := -C_UPPER_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -CXX_SRCS := -C++_SRCS := -CC_SRCS := -OBJS := -C++_DEPS := -C_DEPS := -CC_DEPS := -CPP_DEPS := -EXECUTABLES := -CXX_DEPS := -C_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -src \ - diff --git a/Release/src/subdir.mk b/Release/src/subdir.mk deleted file mode 100644 index afc74e1..0000000 --- a/Release/src/subdir.mk +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -CPP_SRCS += \ -../src/SvImage.cpp \ -../src/SvMain.cpp \ -../src/SvMultithreadProcessor.cpp \ -../src/SvProcessorV1.cpp \ -../src/SvProcessorV2.cpp - -OBJS += \ -./src/SvImage.o \ -./src/SvMain.o \ -./src/SvMultithreadProcessor.o \ -./src/SvProcessorV1.o \ -./src/SvProcessorV2.o - -CPP_DEPS += \ -./src/SvImage.d \ -./src/SvMain.d \ -./src/SvMultithreadProcessor.d \ -./src/SvProcessorV1.d \ -./src/SvProcessorV2.d - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.cpp - @echo 'Building file: $<' - @echo 'Invoking: GCC C++ Compiler' - g++ -std=c++11 -I/usr/include/pcl-1.7 -I/usr/include/vtk-5.8/ -I/usr/include/eigen3 -O3 -Wall -c -fmessage-length=0 -pthread -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/cl/kernel.cl b/cl/kernel.cl new file mode 100644 index 0000000..e8e7bd1 --- /dev/null +++ b/cl/kernel.cl @@ -0,0 +1,14 @@ +__kernel void ProcessLine(__global const float* a, __global const float* b, __global float* c, int iNumElements) +{ + // get index into global data array + int iGID = get_global_id(0); + + // bound check (equivalent to the limit on a 'for' loop for standard/serial C code + if (iGID >= iNumElements) + { + return; + } + + // add the vector elements + c[iGID] = a[iGID] + b[iGID]; +} \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..3a6d384 --- /dev/null +++ b/main.cpp @@ -0,0 +1,46 @@ +#include +#include +#include +#include + + +#include + +#include "svimage.h" +#include "svprocessor.h" +#include "svimageprovider.h" + +int main(int argc, char *argv[]) +{ + QGuiApplication a(argc, argv); + QQmlApplicationEngine engine; + SvImageProvider* imageProvider = new SvImageProvider(); + + QImage imgLeft = QPixmap("img/left8.png").toImage(); + QImage imgRight = QPixmap("img/right8.png").toImage(); + QImage imgStereo(imgLeft.width(), imgRight.height(), QImage::Format_RGB32); + + SvImage left(imgLeft); + SvImage right(imgRight); + SvImage stereo(imgStereo); + + + + imageProvider->addImage("left", &left); + imageProvider->addImage("right", &right); + imageProvider->addImage("result", &stereo); + + engine.addImageProvider("image", imageProvider); + engine.load(QUrl(QStringLiteral("qrc:///Main.qml"))); + + /*SvProcessor proc(&left, &right, &stereo, 4); + proc.start();*/ + + + // + + //QObject *object = component.create(); + + + return a.exec(); +} diff --git a/resource.qrc b/resource.qrc new file mode 100644 index 0000000..4e2e941 --- /dev/null +++ b/resource.qrc @@ -0,0 +1,6 @@ + + + Main.qml + img/left4.png + + diff --git a/src/SvImage.cpp b/src/SvImage.cpp deleted file mode 100644 index 5f01ef6..0000000 --- a/src/SvImage.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - * SvImage.cpp - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#include "SvImage.h" - -int SvImage::getPixel(int x, int y, int channel = -1) { - if (y >= this->image->rows || y < 0 || x >= this->image->cols || x < 0) { - return 0; - } - - uchar* pixel = this->image->ptr(y, x); - uchar value; - - if (channel == -1 || channel > 2) { - value = 0.299 * pixel[0] + 0.587 * pixel[1] + 0.114 * pixel[2]; - } else { - value = pixel[channel]; - } - - return value; -} - -int SvImage::getPixelHue(int x, int y) { - uchar* pixel = this->image->ptr(y, x); - if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) { - return abs(pixel[1] - pixel[0]) + abs(pixel[2] - pixel[1]); - } - - return 0; -} - -int SvImage::getPixelValue(int x, int y) { - uchar* pixel = this->image->ptr(y, x); - if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) { - return (pixel[0] + pixel[1] + pixel[2])/3; - } - - return 0; -} - -void SvImage::putPixel(int x, int y, int value) -{ - uchar* data; - - if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) { - data = this->image->ptr(y, x); - data[0] = value; - } -} - -int SvImage::getHeight() { - return this->image->rows; -} - -int SvImage::getWidth() { - return this->image->cols; -} - -Mat& SvImage::getCvMatrix() { - return *this->image; -} - -SvImage::SvImage(Mat& image) { - this->image = ℑ -} - -SvImage::~SvImage() { - -} - diff --git a/src/SvImage.h b/src/SvImage.h deleted file mode 100644 index 1166f0b..0000000 --- a/src/SvImage.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SvImage.h - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#ifndef SVIMAGE_H_ -#define SVIMAGE_H_ - -#include - -using namespace cv; - -class SvImage { - -protected: - Mat* image; - -public: - int getPixel(int x, int y, int channel); - int getPixelHue(int x, int y); - int getPixelValue(int x, int y); - void putPixel(int x, int y, int val); - - int getHeight(); - int getWidth(); - Mat& getCvMatrix(); - - SvImage(Mat& image); - virtual ~SvImage(); -}; - -#endif /* SVIMAGE_H_ */ diff --git a/src/SvMain.cpp b/src/SvMain.cpp deleted file mode 100644 index 0f0cf9c..0000000 --- a/src/SvMain.cpp +++ /dev/null @@ -1,106 +0,0 @@ -//============================================================================ -// Name : CSV.cpp -// Author : Andrey -// Version : -// Copyright : Your copyright notice -// Description : Computer Stereo Vision in C++, Ansi-style -//============================================================================ - -#include -#include "SvImage.h" -#include "SvProcessorV1.h" -#include "SvProcessorV2.h" - -#include -#include -#include - -//#include -//#include -//#include -//#include -//#include -//#include - -using namespace cv; - -void CallBackFunc(int event, int x, int y, int flags, void* userdata) -{ - if (event == EVENT_LBUTTONDOWN ) { - - } else if ( event == EVENT_RBUTTONDOWN ) { - - } else if ( event == EVENT_MBUTTONDOWN ) { - - } else if ( event == EVENT_MOUSEMOVE ) { - - } -} - -int main(int argc, char** argv) { - Mat matLeft = imread("img/left8.png", 1); - Mat matRight = imread("img/right8.png", 1); - Mat matStereo(Mat::zeros(matLeft.rows, matLeft.cols, CV_8U)); - - SvImage left(matLeft); - SvImage right(matRight); - SvImage stereo(matStereo); - - int line = 0; - - SvProcessorV2 proc[4]; - - for (int i = 0; i < 4; i++) { - proc[i].setLeftImage(left); - proc[i].setRightImage(right); - } - - while (line < stereo.getHeight()) { - for (int i = 0; i < 4; i++) { - if (line < stereo.getHeight() && !proc[i].isActive()) { - proc[i].run(stereo, line++); - } - } - } - - //pcl::PointXYZRGB point; - //pcl::PointCloud::Ptr cloud(new pcl::PointCloud); - //pcl::PointCloud::Ptr cloud_filtered (new pcl::PointCloud); - - /*cloud->resize(stereo.getHeight() * stereo.getWidth()); - - for (int y = 0; y < stereo.getHeight(); y++) { - for (int x = 0; x < stereo.getWidth(); x++) { - int i = stereo.getWidth() * y + x; - int value = stereo.getPixel(x, y, 0); - if (value) { - cloud->points[i].x = (x - (stereo.getWidth() / 2.0))/100.0; - cloud->points[i].y = (-y + (stereo.getHeight() / 2.0))/100.0; - cloud->points[i].z = (-stereo.getPixel(x, y, 0) * 6.0)/100.0; - - cloud->points[i].r = left.getPixel(x, y, 2); - cloud->points[i].g = left.getPixel(x, y, 1); - cloud->points[i].b = left.getPixel(x, y, 0); - } - } - }*/ -/* - pcl::StatisticalOutlierRemoval sor; - sor.setInputCloud(cloud); - sor.setMeanK(50); - sor.setStddevMulThresh(1.0); - sor.filter(*cloud_filtered); -*/ - - /*pcl::visualization::CloudViewer viewer("Simple Cloud Viewer"); - viewer.showCloud(cloud); - while (!viewer.wasStopped ()) - { - }*/ - - imshow("Display Image", stereo.getCvMatrix()); - //setMouseCallback("Display Image", CallBackFunc, NULL); - waitKey(); - - return 0; -} diff --git a/src/SvMultithreadProcessor.cpp b/src/SvMultithreadProcessor.cpp deleted file mode 100644 index 273bff9..0000000 --- a/src/SvMultithreadProcessor.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SvMultithreadProcessor.cpp - * - * Created on: 09 июля 2014 г. - * Author: andrey - */ - -#include "SvMultithreadProcessor.h" - -SvMultithreadProcessor::SvMultithreadProcessor(SvImage& left, SvImage& right) { - m_left = &left; - m_right = &right; - m_stereo = NULL; - m_line = 0; -} - -SvMultithreadProcessor::SvMultithreadProcessor() { - -} - -int SvMultithreadProcessor::run(SvImage& stereo, int line) { - m_stereo = &stereo; - m_line = line; - m_thread = std::thread(&SvMultithreadProcessor::process, this); - - return 0; -} - -void SvMultithreadProcessor::process() { - exec(); - m_thread.detach(); -} - -void SvMultithreadProcessor::exec() { - -} - -SvMultithreadProcessor::~SvMultithreadProcessor() { - if (m_thread.joinable()) { - m_thread.detach(); - } -} - diff --git a/src/SvMultithreadProcessor.h b/src/SvMultithreadProcessor.h deleted file mode 100644 index 6295f98..0000000 --- a/src/SvMultithreadProcessor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SvMultithreadProcessor.h - * - * Created on: 09 июля 2014 г. - * Author: andrey - */ - -#ifndef SVMULTITHREADPROCESSOR_H_ -#define SVMULTITHREADPROCESSOR_H_ - -#include -#include "SvImage.h" - -class SvMultithreadProcessor { - -protected: - SvImage* m_left; - SvImage* m_right; - SvImage* m_stereo; - - std::thread m_thread; - int m_line; - -public: - - void setLeftImage(SvImage& image) { m_left = ℑ} - void setRightImage(SvImage& image) { m_right = ℑ} - bool isActive() { return m_thread.joinable(); } - void join() { m_thread.join(); } - void detach() { m_thread.detach(); } - - int run(SvImage& stereo, int line); - void process(); - virtual void exec(); - - SvMultithreadProcessor(SvImage& left, SvImage& right); - SvMultithreadProcessor(); - - virtual ~SvMultithreadProcessor(); -}; - -#endif /* SVMULTITHREADPROCESSOR_H_ */ diff --git a/src/SvProcessorV1.cpp b/src/SvProcessorV1.cpp deleted file mode 100644 index 73a1928..0000000 --- a/src/SvProcessorV1.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * SvProcessor.cpp - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#include "SvProcessorV1.h" - -int SvProcessorV1::getPixelColor(int cursor) { - if (cursor == 0) { - return 0; - } - - return ((10 * m_left->getWidth()) / (2.0 * 0.9 * cursor )); -} -/* -int SvProcessorV1::match(int x, int y, int j) { - int error = 0; - - for (int i = 0; i <= 1; i++) { - for (int g = 0; g <= 2; g++) { - error += diff(x + i, y + g, x + i + j, y + g); - } - } - - return error; -}*/ - -int SvProcessorV1::diff(int lx, int ly, int rx, int ry) { - int Rvalue, Gvalue, Bvalue, color; - - Rvalue = abs(m_left->getPixel(lx, ly, 0) - m_right->getPixel(rx, ry, 0)); - Gvalue = abs(m_left->getPixel(lx, ly, 1) - m_right->getPixel(rx, ry, 1)); - Bvalue = abs(m_left->getPixel(lx, ly, 2) - m_right->getPixel(rx, ry, 2)); - color = abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue); - - return (Gvalue + Rvalue + Bvalue) + - color * 4; -} - -int SvProcessorV1::match(int x, int y, int j) { - int error = 0; - int ms = 4; - int c = diff(x, y, x + j, y), - l = 0, r = 0, t = 0, b = 0; - - error = c; - - for (int i = 1; i <= ms; i++) { - l += diff(x - i, y, x + j - i, y); - r += diff(x + i, y, x + j + i, y); - t += diff(x, y - i, x + j, y - i); - b += diff(x, y + i, x + j, y + i); - } - - error += l > r ? r : l; - error += t > b ? b : t; - //error += l + r + b + t; - - return error; -} - -void SvProcessorV1::exec() { - -} - diff --git a/src/SvProcessorV1.h b/src/SvProcessorV1.h deleted file mode 100644 index b045389..0000000 --- a/src/SvProcessorV1.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SvProcessor.h - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#ifndef SVPROCESSORV1_H_ -#define SVPROCESSORV1_H_ - -#include -#include -#include "SvImage.h" -#include "SvMultithreadProcessor.h" - -using namespace std; - -class SvProcessorV1 : public SvMultithreadProcessor { - -protected: - const int windowSize = 90; - -public: - int diff(int lx, int ly, int rx, int ry); - int match(int x, int y, int i); - void exec(); - - int getPixelColor(int cursor); -}; - -#endif /* SVPROCESSORV1_H_ */ diff --git a/src/SvProcessorV2.cpp b/src/SvProcessorV2.cpp deleted file mode 100644 index cc9c0f0..0000000 --- a/src/SvProcessorV2.cpp +++ /dev/null @@ -1,12 +0,0 @@ -/* - * SvProcessor.cpp - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#include "SvProcessorV2.h" - -void SvProcessorV2::exec() { - -} diff --git a/src/SvProcessorV2.h b/src/SvProcessorV2.h deleted file mode 100644 index b92fd5c..0000000 --- a/src/SvProcessorV2.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SvProcessor.h - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#ifndef SVPROCESSOR_H_ -#define SVPROCESSOR_H_ - -#include -#include "SvImage.h" -#include "SvMultithreadProcessor.h" - -class SvProcessorV2 : public SvMultithreadProcessor { - -protected: - -public: - void exec(); -}; - -#endif /* SVPROCESSOR_H_ */ diff --git a/svabstractkernel.h b/svabstractkernel.h new file mode 100644 index 0000000..fa71161 --- /dev/null +++ b/svabstractkernel.h @@ -0,0 +1,22 @@ +#ifndef SVABSTRACTKERNEL_H +#define SVABSTRACTKERNEL_H + +#include "svimage.h" + +class SvAbstractKernel +{ + +protected: + SvImage* m_left; + SvImage* m_right; + SvImage* m_result; + +public: + void setLeftImage(SvImage* image) {m_left = image;} + void setRightImage(SvImage* image) {m_right = image;} + void setResultImage(SvImage* image) {m_result = image;} + virtual void exec(int line) = 0; + virtual ~SvAbstractKernel() {} +}; + +#endif // SVABSTRACTKERNEL_H diff --git a/svimage.cpp b/svimage.cpp new file mode 100644 index 0000000..fbac61d --- /dev/null +++ b/svimage.cpp @@ -0,0 +1,89 @@ +#include "svimage.h" + +int SvImage::getPixel(int x, int y, int channel = -1) { + if (y >= m_image->height() || + y < 0 || + x >= m_image->width() + || x < 0) { + + return 0; + } + + QRgb rgb = m_image->pixel(x, y); + + switch (channel) { + case 0: + return qRed(rgb); + case 1: + return qGreen(rgb); + case 2: + return qBlue(rgb); + default: + return qGray(rgb); + } +} + +int SvImage::getPixelHue(int x, int y) { + if (y >= m_image->height() || + y < 0 || + x >= m_image->width() + || x < 0) { + + return 0; + } + + QRgb rgb = m_image->pixel(x, y); + QColor color(rgb); + + return color.hue(); +} + +int SvImage::getPixelValue(int x, int y) { + if (y >= m_image->height() || + y < 0 || + x >= m_image->width() + || x < 0) { + + return 0; + } + + QRgb rgb = m_image->pixel(x, y); + QColor color(rgb); + + return color.value(); +} + +void SvImage::putPixel(int x, int y, int value) +{ + if (y >= m_image->height() || + y < 0 || + x >= m_image->width() + || x < 0) { + + return; + } + + QColor color(value, value, value); + + m_image->setPixel(x, y, color.rgb()); +} + +unsigned int SvImage::getHeight() { + return m_image->height(); +} + +unsigned int SvImage::getWidth() { + return m_image->width(); +} + +QImage& SvImage::getImage() { + return *m_image; +} + +SvImage::SvImage(QImage& image) { + m_image = ℑ +} + +SvImage::~SvImage() { + +} diff --git a/svimage.h b/svimage.h new file mode 100644 index 0000000..20847f1 --- /dev/null +++ b/svimage.h @@ -0,0 +1,28 @@ +#ifndef SVIMAGE_H +#define SVIMAGE_H + +#include +#include +#include + +class SvImage +{ +protected: + QImage* m_image; + +public: + int getPixel(int x, int y, int channel); + int getPixelHue(int x, int y); + int getPixelValue(int x, int y); + void putPixel(int x, int y, int val); + + unsigned int getHeight(); + unsigned int getWidth(); + + QImage& getImage(); + + SvImage(QImage& image); + virtual ~SvImage(); +}; + +#endif // SVIMAGE_H diff --git a/svimageprovider.cpp b/svimageprovider.cpp new file mode 100644 index 0000000..9df38fb --- /dev/null +++ b/svimageprovider.cpp @@ -0,0 +1,27 @@ +#include "svimageprovider.h" + +SvImageProvider::SvImageProvider(): + QQuickImageProvider(QQuickImageProvider::Image) +{ + +} + +QImage SvImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize) +{ + Q_UNUSED(requestedSize) + + SvImage* image = m_images[id]; + + if (image) { + *size = QSize(image->getWidth(), image->getHeight()); + + return image->getImage(); + } + + return QImage(0, 0, QImage::Format_RGB32); +} + +void SvImageProvider::addImage(const QString &name, SvImage *image) +{ + m_images[name] = image; +} diff --git a/svimageprovider.h b/svimageprovider.h new file mode 100644 index 0000000..9f0f0b7 --- /dev/null +++ b/svimageprovider.h @@ -0,0 +1,20 @@ +#ifndef SVIMAGEPROVIDER_H +#define SVIMAGEPROVIDER_H + +#include +#include + +#include "svimage.h" + +class SvImageProvider : public QQuickImageProvider +{ +protected: + QHash m_images; + +public: + SvImageProvider(); + virtual QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize); + void addImage(const QString &name, SvImage* image); +}; + +#endif // SVIMAGEPROVIDER_H diff --git a/svkernelv1.cpp b/svkernelv1.cpp new file mode 100644 index 0000000..e078d85 --- /dev/null +++ b/svkernelv1.cpp @@ -0,0 +1,97 @@ +#include "svkernelv1.h" + +SvKernelV1::SvKernelV1() +{ + +} + +SvKernelV1::~SvKernelV1() +{ + +} + + +int SvKernelV1::getPixelColor(int cursor) +{ + if (cursor == 0) { + return 0; + } + + return ((10 * m_left->getWidth()) / (2.0 * 0.9 * cursor )); +} + +int SvKernelV1::diff(int lx, int ly, int rx, int ry) +{ + int Rvalue, Gvalue, Bvalue, color; + + Rvalue = abs(m_left->getPixel(lx, ly, 0) - m_right->getPixel(rx, ry, 0)); + Gvalue = abs(m_left->getPixel(lx, ly, 1) - m_right->getPixel(rx, ry, 1)); + Bvalue = abs(m_left->getPixel(lx, ly, 2) - m_right->getPixel(rx, ry, 2)); + color = abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue); + + return (Gvalue + Rvalue + Bvalue) + + color * 4; +} + +int SvKernelV1::match(int x, int y, int j) +{ + int error = 0; + int ms = 4; + int c = diff(x, y, x + j, y), + l = 0, r = 0, t = 0, b = 0; + + error = c; + + for (int i = 1; i <= ms; i++) { + l += diff(x - i, y, x + j - i, y); + r += diff(x + i, y, x + j + i, y); + t += diff(x, y - i, x + j, y - i); + b += diff(x, y + i, x + j, y + i); + } + + error += l > r ? r : l; + error += t > b ? b : t; + //error += l + r + b + t; + + return error; +} + +void SvKernelV1::exec(int line) +{ + unsigned int x; + int cursor, closest, tmp; + int minErrorValue, tmpSmoothed, matched; + //int dist; + + cursor = 0; + + for (x = 0; x < m_result->getWidth(); x++) { + closest = -1; minErrorValue = -1;matched=0; + minErrorValue=-1; + + for (int i = 1; i < m_windowSize; i++) { + //dist = (abs(cursor - i)); + + tmp = match(x, line, i); + + tmpSmoothed = tmp;// + (dist) * (1.0/diff); + + if (tmpSmoothed < minErrorValue || minErrorValue == -1) { + minErrorValue = tmpSmoothed; + closest = i; + matched = 1; + } else if (tmpSmoothed == minErrorValue) { + if (abs(cursor - i) < abs(cursor - closest)) { + closest = i; + matched++; + } + } + } + + if (matched == 1) { + cursor = closest; + } + + m_result->putPixel(x, line, getPixelColor(cursor)); + } +} diff --git a/svkernelv1.h b/svkernelv1.h new file mode 100644 index 0000000..4a11ca8 --- /dev/null +++ b/svkernelv1.h @@ -0,0 +1,23 @@ +#ifndef SVKERNELV1_H +#define SVKERNELV1_H + +#include "svabstractkernel.h" + +class SvKernelV1: public SvAbstractKernel +{ + +protected: + int m_windowSize = 90; + +public: + void exec(int line) override; + SvKernelV1(); + virtual ~SvKernelV1(); + +protected: + int getPixelColor(int cursor); + int diff(int lx, int ly, int rx, int ry); + int match(int x, int y, int i); +}; + +#endif // SVKERNELV1_H diff --git a/svkernelv2.cpp b/svkernelv2.cpp new file mode 100644 index 0000000..1995176 --- /dev/null +++ b/svkernelv2.cpp @@ -0,0 +1,16 @@ +#include "svkernelv2.h" + +SvKernelV2::SvKernelV2() +{ + +} + +SvKernelV2::~SvKernelV2() +{ + +} + +void SvKernelV2::exec(int line) +{ + +} diff --git a/svkernelv2.h b/svkernelv2.h new file mode 100644 index 0000000..6411f26 --- /dev/null +++ b/svkernelv2.h @@ -0,0 +1,14 @@ +#ifndef SVKERNELV2_H +#define SVKERNELV2_H + +#include "svabstractkernel.h" + +class SvKernelV2: public SvAbstractKernel +{ +public: + SvKernelV2(); + virtual ~SvKernelV2(); + void exec(int line) override; +}; + +#endif // SVKERNELV2_H diff --git a/svprocessor.cpp b/svprocessor.cpp new file mode 100644 index 0000000..8a774e6 --- /dev/null +++ b/svprocessor.cpp @@ -0,0 +1,74 @@ +#include "svprocessor.h" + +SvProcessor::SvProcessor(QObject *parent): + QObject(parent) +{ + +} + +SvProcessor::SvProcessor(SvImage* left, SvImage* right, SvImage* result, int numberOfWorkers, int version) +{ + unsigned int i; + + if (version == 1) { + m_kernel = new SvKernelV1(); + } else if (version == 2) { + m_kernel = new SvKernelV2(); + } + + m_kernel->setLeftImage(left); + m_kernel->setRightImage(right); + m_kernel->setResultImage(result); + + m_numberOfWorkers = numberOfWorkers; + m_workers = new SvWorker[m_numberOfWorkers]; + m_threads = new QThread[m_numberOfWorkers]; + + for (i = 0; i < m_numberOfWorkers; i++) { + m_workers[i].setId(i); + m_workers[i].setKernel(m_kernel); + m_workers[i].moveToThread(&m_threads[i]); + + connect(this, &SvProcessor::stopped, &m_workers[i], &SvWorker::stop); + connect(this, &SvProcessor::started, &m_workers[i], &SvWorker::start); + connect(&m_workers[i], &SvWorker::finished, this, &SvProcessor::workerFinished); + } + + for (i = 0; i < result->getHeight(); i++) { + m_workers[i].addTask(i % m_numberOfWorkers); + } +} +SvProcessor::~SvProcessor() +{ + delete m_kernel; + delete[] m_workers; +} + +void SvProcessor::workerFinished(int workerId) +{ + Q_UNUSED(workerId) + + m_workersFinished++; + if (m_workersFinished == m_numberOfWorkers) { + emit finished(m_startTime - 0); + } +} + +void SvProcessor::start() +{ + unsigned int i; + + m_startTime = 0; + m_workersFinished = 0; + + for (i = 0; i < m_numberOfWorkers; i++) { + m_threads[i].start(); + } + + emit started(); +} + +void SvProcessor::stop() +{ + emit stopped(m_startTime - 0); +} diff --git a/svprocessor.h b/svprocessor.h new file mode 100644 index 0000000..dc45214 --- /dev/null +++ b/svprocessor.h @@ -0,0 +1,44 @@ +#ifndef SVPROCESSOR_H +#define SVPROCESSOR_H + +#include +#include + +#include "svimage.h" +#include "svworker.h" +#include "svabstractkernel.h" +#include "svkernelv1.h" +#include "svkernelv2.h" + +class SvProcessor: public QObject +{ + Q_OBJECT + +protected: + QThread* m_threads; + SvWorker* m_workers; + SvAbstractKernel* m_kernel; + unsigned int m_numberOfWorkers; + unsigned int m_workersFinished; + int m_startTime; + +public: + explicit SvProcessor(QObject *parent = 0); + SvProcessor(SvImage *left, SvImage *right, SvImage *result, int numberOfWorkers = 1, int version = 1); + ~SvProcessor(); + void execute(); + +protected slots: + void workerFinished(int workerId); + +public slots: + void start(); + void stop(); + +signals: + void started(); + void finished(int elapsedTime); + void stopped(int elapsedTime); +}; + +#endif // SVPROCESSOR_H diff --git a/svworker.cpp b/svworker.cpp new file mode 100644 index 0000000..1e3f0b0 --- /dev/null +++ b/svworker.cpp @@ -0,0 +1,26 @@ +#include "svworker.h" + +SvWorker::SvWorker(QObject *parent) : + QObject(parent) +{ + +} + +SvWorker::SvWorker(SvAbstractKernel* kernel) +{ + m_kernel = kernel; +} + +void SvWorker::stop() +{ + +} + +void SvWorker::start() +{ + for (int i: m_tasks) { + m_kernel->exec(i); + } + + emit finished(m_id); +} diff --git a/svworker.h b/svworker.h new file mode 100644 index 0000000..87a10d8 --- /dev/null +++ b/svworker.h @@ -0,0 +1,36 @@ +#ifndef SVWORKER_H +#define SVWORKER_H + +#include +#include + +#include "svabstractkernel.h" +#include "svimage.h" + +class SvWorker : public QObject +{ + Q_OBJECT + +protected: + int m_id; + SvAbstractKernel* m_kernel; + QList m_tasks; + +public: + explicit SvWorker(QObject *parent = 0); + SvWorker(SvAbstractKernel* kernel); + + void setId(int id) {m_id = id;} + void addTask(int line) {m_tasks << line;} + void setKernel(SvAbstractKernel* kernel) {m_kernel = kernel;} + +signals: + void finished(int id); + +public slots: + void stop(); + void start(); + +}; + +#endif // SVWORKER_H