xtingray / tupi Goto Github PK
View Code? Open in Web Editor NEWTupi 2D Magic
License: GNU General Public License v2.0
Tupi 2D Magic
License: GNU General Public License v2.0
Currently is the freshest Github release 3 years old.
README.md
contains the following:
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.
But there is no copyright notice in README.md
...
This note seems unnecessary as Tupi is under GPL-2+ terms and of course there is a conflict with last statement of this file: See the file COPYING for copying conditions.
.
In INSTALL.md is dependency on qt4 and compilation throw this error:
./configure --prefix=/usr/local/tupi
Please tag releases and use semantic versioning.
See also:
New release of tupi
introduced new dependency on qtmobility-dev
which is available on Linux architectures only. Therefore tupi
FTBFS on other architectures.
Please see details in the original Debian bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747832
Please advise.
(There isn't an indication if that is the case)
Some tags for recent releases seems to be missing...
allow for eye dropper, set color to what ever color is currently clicked on, simple as that.
After installing Tupi 0.2.9 on Windows 8.1 (64-bit) I get an error:
tupi.exe - Entry Point Not Found
The procedure entry point _ZdlPvj could not be located in the dynamic link library C:\Program Files (x86)\Tupi\lib\qt5\Qt55vg.dll
Hi,
I managed to configure and make tupi but when I execute it even as root I get the following backtrace log: http://www.pasteall.org/53365
I am using fedora 20 with the latest updates, gnome shell, and nvidia proprietary drivers if it helps narrow down the possibilities of finding the issue.
Thanks in advance!
Compiling master or experimental I get the following error. disabling ffmpeg compiles fine
ffmpeg version 1.0.7 Copyright (c) 2000-2013 the FFmpeg developers
built on Aug 26 2013 16:47:16 with gcc 4.6.3 (Gentoo 4.6.3 p1.13, pie-0.5.2)
make[4]: Leaving directory `/home/tara/nalaf/nala/program/tupi/src/plugins/export/genericexportplugin'
cd ffmpegplugin/ && make -f Makefile
make[4]: Entering directory `/home/tara/nalaf/nala/program/tupi/src/plugins/export/ffmpegplugin'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DHAVE_FFMPEG -DHAVE_QUAZIP -DHAVE_THEORA -DHAVE_ZLIB -DVERSION=\"0.2\" -DCODE_NAME=\"Ajuba\" -DREVISION=\"git02\" -DK_DEBUG -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../../../framework -I../../../framework/tcore -I../../../framework/tgui -I../../../store -I../../../libtupi -I../../../libbase -I/usr/include/ffmpeg/ -I/usr/include/quazip -I/usr/X11R6/include -I.moc -o .obj/tffmpegmoviegenerator.o tffmpegmoviegenerator.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DHAVE_FFMPEG -DHAVE_QUAZIP -DHAVE_THEORA -DHAVE_ZLIB -DVERSION=\"0.2\" -DCODE_NAME=\"Ajuba\" -DREVISION=\"git02\" -DK_DEBUG -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../../../framework -I../../../framework/tcore -I../../../framework/tgui -I../../../store -I../../../libtupi -I../../../libbase -I/usr/include/ffmpeg/ -I/usr/include/quazip -I/usr/X11R6/include -I.moc -o .obj/ffmpegplugin.o ffmpegplugin.cpp
/usr/bin/moc -DHAVE_FFMPEG -DHAVE_QUAZIP -DHAVE_THEORA -DHAVE_ZLIB -DVERSION=\"0.2\" -DCODE_NAME=\"Ajuba\" -DREVISION=\"git02\" -DK_DEBUG -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../../../framework -I../../../framework/tcore -I../../../framework/tgui -I../../../store -I../../../libtupi -I../../../libbase -I/usr/include/ffmpeg/ -I/usr/include/quazip -I/usr/X11R6/include -I.moc ffmpegplugin.h -o .moc/moc_ffmpegplugin.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DHAVE_FFMPEG -DHAVE_QUAZIP -DHAVE_THEORA -DHAVE_ZLIB -DVERSION=\"0.2\" -DCODE_NAME=\"Ajuba\" -DREVISION=\"git02\" -DK_DEBUG -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../../../framework -I../../../framework/tcore -I../../../framework/tgui -I../../../store -I../../../libtupi -I../../../libbase -I/usr/include/ffmpeg/ -I/usr/include/quazip -I/usr/X11R6/include -I.moc -o .obj/moc_ffmpegplugin.o .moc/moc_ffmpegplugin.cpp
tffmpegmoviegenerator.cpp: In function ‘AVStream* addVideoStream(AVFormatContext*, AVCodec**, AVCodecID, const QString&, int, int, int, const char*)’:
tffmpegmoviegenerator.cpp:119:22: error: ‘AV_PIX_FMT_RGB24’ was not declared in this scope
tffmpegmoviegenerator.cpp:121:22: error: ‘AV_PIX_FMT_YUV420P’ was not declared in this scope
tffmpegmoviegenerator.cpp: In member function ‘bool TFFMpegMovieGenerator::Private::writeVideoFrame(const QString&, const QImage&)’:
tffmpegmoviegenerator.cpp:275:22: error: ‘AV_PIX_FMT_RGB24’ was not declared in this scope
make[4]: *** [.obj/tffmpegmoviegenerator.o] Error 1
make[4]: *** Waiting for unfinished jobs....
ffmpegplugin.cpp: In member function ‘TMovieGeneratorInterface::Format FFMpegPlugin::videoFormat(TupExportInterface::Format)’:
ffmpegplugin.cpp:70:12: warning: enumeration value ‘APNG’ not handled in switch [-Wswitch]
make[4]: Leaving directory `/home/tara/nalaf/nala/program/tupi/src/plugins/export/ffmpegplugin'
make[3]: *** [sub-ffmpegplugin-make_default-ordered] Error 2
make[3]: Leaving directory `/home/tara/nalaf/nala/program/tupi/src/plugins/export'
make[2]: *** [sub-export-make_default-ordered] Error 2
make[2]: Leaving directory `/home/tara/nalaf/nala/program/tupi/src/plugins'
make[1]: *** [sub-plugins-make_default-ordered] Error 2
make[1]: Leaving directory `/home/tara/nalaf/nala/program/tupi/src'
make: *** [sub-src-make_default-ordered] Error 2
"libav" detection algorithm in configure.rb
strikes me as as fragile and incorrect.
Ideally it would be implemented as feature test (like what autotools do) when configure
tries to compile a minimum test and set variables accordingly.
Instead of having three different flavours of src/plugins/export/ffmpegplugin/tffmpegmoviegenerator.cpp
the preferable code could be chosen by conditional compilation according to variables provided by configure
which would also allow easy override on build time when necessary.
At the time there are several serious issues with detection. Even if Debian in particular needs specific libav workaround (which is probably a wrong assumption anyway as Debian strives to stay close to upstream and avoid divergence whenever possible) then detection of OS is better to do according to contents of /etc/issue
rather than /etc/debian_version
which may not exist on other OSes. Similar /etc/lsb-release
may exist on Debian and other flavours so it is not a reliable evidence of running on Ubuntu.
Finally locking detection logic to a particular libav version with '==' relationship instead of '>=' is a time bomb to break compilation on minor upgrade. Such issues create a great deal of maintenance overhead that is time consuming to deal with and also takes fun out of packaging.
Hi there,
I just updated Mageia's tupi package to version 0.2_git04 (in Cauldron, the development version of Mageia).
I had to patch the ffmpeg plugin to get it build with ffmpeg 2.2.1: http://svnweb.mageia.org/packages/cauldron/tupi/current/SOURCES/tupi-0.2-mga-ffmpeg2.patch?view=markup&pathrev=619491
Now I am getting segfaults when loading an existing project. It could be related to my ffmpeg2 patch, I'll have to see if I still get issues when building tupi without ffmpeg support.
In the meantime, here is the gdb output for the segfault (signal 11) when loading an existing project:
'''
*** Fatal error: tupi is crashing with signal 11 :(
Signal 11: Officially known as "segmentation fault", means that the program
accessed a memory location that was not assigned. That's usually a bug in the program.
Running command: "/usr/bin/gdb -n -nw -batch -ex where /usr/bin/tupi.bin --pid=2738"
Running command: "file /usr/bin/tupi.bin"
[void TupCrashWidget::addBacktracePage(const QString&, const QString&)] "/usr/bin/tupi.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]
=3d0752c7ffa1bcb01ee63be534118f362922514b, stripped
" "[New LWP 2740]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1". 0x00007fa3f535a302 in __libc_waitpid (pid=2755, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40 40 int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); gobject.pyc: gdb was not built with custom backtrace support, disabling.
#0 0x00007fa3f535a302 in __libc_waitpid (pid=2755, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
#1 0x000000000042325a in ?? ()
#2
#3 data (this=0x8) at ../../src/corelib/tools/qscopedpointer.h:135
#4 qGetPtrHelper<QScopedPointer > (p=...) at ../../src/corelib/global/qglobal.h:2457
#5 d_func (this=0x0) at kernel/qaction.h:67
#6 QAction::setIconVisibleInMenu (this=0x0, visible=true) at kernel/qaction.cpp:1494
#7 0x00007fa3fc22e035 in TupDocumentView::loadPlugins() () from /usr/lib64/tupi/libtupipaintarea.so.1
#8 0x00007fa3fc26519d in ?? () from /usr/lib64/tupi/libtupipaintarea.so.1
#9 0x00007fa3f597d6d8 in QMetaObject::activate (sender=sender@entry=0x2dcb790, m=m@entry=0x7fa3f5cc9e40 QSingleShotTimer::staticMetaObject, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3547
#10 0x00007fa3f59864fa in timeout (this=0x2dcb790) at .moc/release-shared/qtimer.moc:96
#11 QSingleShotTimer::timerEvent (this=0x2dcb790) at kernel/qtimer.cpp:317
#12 0x00007fa3f59818a1 in QObject::event (this=0x2dcb790, e=) at kernel/qobject.cpp:1156
#13 0x00007fa3f61d93fc in QApplicationPrivate::notify_helper (this=this@entry=0x1b88b80, receiver=receiver@entry=0x2dcb790, e=e@entry=0x7fffdbf5b5a0) at kernel/qapplication.cpp:4562
#14 0x00007fa3f61df9c0 in QApplication::notify (this=0x7fffdbf5bd30, receiver=0x2dcb790, e=0x7fffdbf5b5a0) at kernel/qapplication.cpp:4348
#15 0x00007fa3f5969b9d in QCoreApplication::notifyInternal (this=0x7fffdbf5bd30, receiver=0x2dcb790, event=0x7fffdbf5b5a0) at kernel/qcoreapplication.cpp:949
#16 0x00007fa3f5999133 in sendEvent (event=, receiver=) at kernel/qcoreapplication.h:231
#17 QTimerInfoList::activateTimers (this=0x1b8b260) at kernel/qeventdispatcher_unix.cpp:621
#18 0x00007fa3f5996469 in timerSourceDispatch (source=) at kernel/qeventdispatcher_glib.cpp:186
#19 idleTimerSourceDispatch (source=) at kernel/qeventdispatcher_glib.cpp:233
#20 0x00007fa3efb07be4 in g_main_dispatch (context=0x1b89e90) at gmain.c:3064
#21 g_main_context_dispatch (context=context@entry=0x1b89e90) at gmain.c:3663
#22 0x00007fa3efb07e28 in g_main_context_iterate (context=context@entry=0x1b89e90, block=block@entry=1, dispatch=dispatch@entry=1, self=) at gmain.c:3734
#23 0x00007fa3efb07ecc in g_main_context_iteration (context=0x1b89e90, may_block=1) at gmain.c:3795
#24 0x00007fa3f5996665 in QEventDispatcherGlib::processEvents (this=0x1b89d20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#25 0x00007fa3f6275e56 in QGuiEventDispatcherGlib::processEvents (this=, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#26 0x00007fa3f59687ff in QEventLoop::processEvents (this=this@entry=0x7fffdbf5b810, flags=...) at kernel/qeventloop.cpp:149
#27 0x00007fa3f5968af5 in QEventLoop::exec (this=this@entry=0x7fffdbf5b810, flags=...) at kernel/qeventloop.cpp:204
#28 0x00007fa3f596dbdb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#29 0x000000000041100a in ?? ()
#30 0x00007fa3f479bc85 in __libc_start_main (main=0x410280, argc=1, argv=0x7fffdbf5c0a8, init=, fini=, rtld_fini=, stack_end=0x7fffdbf5c098) at libc-start.c:285
#31 0x0000000000411979 in ?? ()"
'''
I suppose I might be missing some debug packages, if you know which ones from the current output of gdb, I'd be pleased to install them and try to get a better output.
Tupi allocates at least 12 GB memory and gets killed by the oom killer when opening a 320 frame long project, with not that many components.
While creating the file, it took longer and longer to copy/paste frames or elements, and I also noticed that ungrouping elements sometimes ungrouped another object - the one that the target was copied from, and some other problems related to copy/paste and selection. I got the feeling that the internal data structure somehow mixed up elements.
But it held together and I could preview my little amateurish animation, and export it to gifs.
But opening the file again and it runs out of memory.
Attaching the project.
merge5.zip
Hi! It's very hard to draw things like trees, water, hair, and fine detail things in tupi. plz help, thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.