
SlideShow (GL)
Source (link to git-repo or to original if based on someone elses unmodified work):
I would appreciate any _constructive_ input. I changed some of the features of the screensaver: The images used to have a vignette effect, and you could select the size of the image; now the image is always sized so that it fills the screen. Which is preferable? Should it be an option? Does the incremental jpeg loader work? Does it eliminate the lag between images?
- Added support for png images. They are loaded incrementally just like the jpegs, so skipping shouldn't be a problem. please report any problems.
- Stability improvements. Works on both greyscale and color jpeg's now (before it would crash on greyscale jpegs). Gracefully handles unmounting of drives which images are stored on (i.e. it doesn't crash when it can't read an image). Added an option to display the image name in the lower left hand corner. Also, the screensaver no longer always zooms towards the center of an image. It can zoom to any portion of the image, but gives preference to the top half for portrait oriented images (since that is where the center of focus normally resides in portraits). Didn't update the preview cause I'm too lazy.
- Added line to link to libjpeg. For some reason it worked on my machine without it.
- Image directory selection will now traverse into any subdirectories up to depth 1. This means you can effectively use multiple directories for source images by creating a directory with symlinks to your image directories.
- Much faster load up time, much smaller memory footprint, and uses much less CPU time than before.
- Implemented a incremental jpeg loader that (hopefully) prevents jerkiness between images. Movement should be smooth, unless of course, you set the delay time to something very small and your machine cannot finish loading the next image before it is due for display.
Ratings & Comments
58 Comments
Won't compile in FreeBSD. I guess being forced to use Linux as the only UNIX-like OS isn't quite as evil as being forced to use Windows... ######## ... make all-recursive Making all in kslidesavergl "Makefile", line 307: Unassociated shell command "$(DEPDIR)/kslidesaverkss.Po $(DEPDIR)/main.Po" make: fatal errors encountered -- cannot continue *** Error code 1 ######## Since I'm not a C++ programmer, nor do I ever want to be, can someone who enjoys that $#!& please tell me what DEPDIR is supposed to look for? Every Linux distro has its own directory tree schema, FreeBSD has "man:hier" to specify the "Correct" directory tree scheme. I think if I can translate one to the other, I'll find that I actually DO have all the necessary files where they're "supposed" to be -- at least in the BSD standardized scheme of things.
This one is a wonderful screensaver, but with the newest version of kde - gcc - g++ the compilation fails: kslidesaver.cpp:23:18: qapp.h: No such file or directory kslidesaver.cpp: In member function `void KSlideSaver::loadImage1()': kslidesaver.cpp:247: error: `qApp' undeclared (first use this function) kslidesaver.cpp:247: error: (Each undeclared identifier is reported only once for each function it appears in.) make[3]: *** [kslidesaver.o] Error 1 make[3]: Leaving directory `/sw/kslidesavergl-0.7/kslidesavergl' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/sw/kslidesavergl-0.7/kslidesavergl' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/sw/kslidesavergl-0.7' make: *** [all] Error 2 Any clue?
it seems that qapp.h is a depreciated qt header, change the #include in line 23 of kslidesaver.cpp to qapplication.h instead
hi there.i'm trying ./configure but always got : checking for QT.... configure:error: QT (headers and libraries) not found... but i have qt headers ... anything wrong? (and script is already correct) thanks
I used this: ./configure --with-qt-dir=/usr/share/qt3/ --with-qt-includes=/usr/include/qt3/ --with-qt-libraries=/usr/lib/ --prefix=/usr search your machine to be sure of the correct paths and use this format
Trying to compile on MDK 10.1 with QT 3.3.3 and KDE 3.3 I receive the error: idesaversetup.cpp || echo './'`kslidesaversetup.cpp cc1plus: warning: command line option "-Wbad-function-cast" is valid for C/ObjC but not for C++ cc1plus: warning: command line option "-Wmissing-prototypes" is valid for Ada/C/ObjC but not forC++ kslidesaversetup.cpp: In constructor `KSlideSaverSetup::KSlideSaverSetup(QWidget*, const char*, bool, uint)': kslidesaversetup.cpp:163: error: `spacer4' undeclared (first use this function) kslidesaversetup.cpp:163: error: (Each undeclared identifier is reported only once for each function it appears in.) kslidesaversetup.cpp:167: error: `spacer5' undeclared (first use this function) kslidesaversetup.cpp:174: error: `spacer1' undeclared (first use this function) make[1]: *** [kslidesaversetup.o] Error 1 make[1]: Leaving directory `/damaged/kslidesavergl-0.7/kslidesavergl' make: *** [all-recursive] Error 1 Got any ideas? :)
Have a look here : http://www.mozilla.org/hacking/portable-cpp.html#no_extra_semi_colons and maybe, tell the author that gcc3.4 is much more rigid with this syntax rule than older version... David
Sorry, my mistake, I was thinking to something else, maybe ;-) David
I also had this problem, and corrected it by changing three lines in: kslidesaversetup.cpp Line 163 says: spacer4 = new QSpacerItem... but should be: QSpacerItem* spacer4 = new QSpacerItem... Also add the prefix QSpacerItem* on line 167 and 174 and it will compile correctly.
Confermed fesse's work around. Change those lines and it willwork.
Anyone got this working in debian? if so what commands did you use -//-//-//- ./configure --prefix=/usr configure: error: cannot find install-sh or install.sh in admin ./admin ./configure --prefix=/home/sertmann/ configure: error: cannot find install-sh or install.sh in admin ./admin -//-//-//- help greatly appriciated, want the new version of lphoto installed ;o)
The error was : kflamesaver.cpp: In member function `void KFlameSaver::setCellSize(int, int)': kflamesaver.cpp:207: internal compiler error: in pop_binding, at cp/decl.c:1428 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make[2]: *** [kflamesaver.o] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 What shall I do?
This looks great, however after clicking setup in kcontrol it says to set the directory to load the pictures from under the "advanced" tab, however there does not appear to be an advanced tab
Hi, Question from an absolute newbie, who is complete fed up with windows. Downloaded the tarball en did ./configure, but got the following message: checking for X... configure: error: Can't find X includes. Please check your installation and add the correct paths! Can anyone tell me in newbie-language how to fix this? I'm using Mandrake 9.1. Thanx.
I think you need to install XFree86-devel package. I had the same problem on SuSE 9.0 installing superkaramba 0.33 from source.
This is an awesome screensaver and should be included in the next version of kde as it beats every other slideshow screensaver I have used by far. keep up the good work!
In file included from kslidesaversetup.cpp:22: kslidesaversetup.ui.h: In member function `virtual void KSlideSaverSetup::init()': kslidesaversetup.ui.h:32: `KFile' undeclared (first use this function) kslidesaversetup.ui.h:32: (Each undeclared identifier is reported only once for each function it appears in.) kslidesaversetup.ui.h:32: parse error before `::' token kslidesaversetup.ui.h:35: `mode' undeclared (first use this function) In file included from kslidesaversetup.cpp:22: kslidesaversetup.ui.h: In member function `virtual void KSlideSaverSetup::writeConfig()': kslidesaversetup.ui.h:82: invalid use of undefined type `struct KURLRequester' kslidesaversetup.h:22: forward declaration of `struct KURLRequester' In file included from kslidesaversetup.cpp:22: kslidesaversetup.ui.h: In member function `virtual void KSlideSaverSetup::readConfig()': kslidesaversetup.ui.h:93: invalid use of undefined type `struct KURLRequester' kslidesaversetup.h:22: forward declaration of `struct KURLRequester' kslidesaversetup.cpp: In constructor `KSlideSaverSetup::KSlideSaverSetup(QWidget*, const char*, bool, unsigned int)': kslidesaversetup.cpp:104: invalid use of undefined type `struct KURLRequester' kslidesaversetup.h:22: forward declaration of `struct KURLRequester' kslidesaversetup.cpp:105: invalid use of undefined type `struct KURLRequester' kslidesaversetup.h:22: forward declaration of `struct KURLRequester' kslidesaversetup.cpp:107: no matching function for call to `QGridLayout::addMultiCellWidget(KURLRequester*&, int, int, int, int)' /usr/lib/qt3/include/qlayout.h:326: candidates are: void QGridLayout::addMultiCellWidget(QWidget*, int, int, int, int, int = 0) kslidesaversetup.cpp:196: no matching function for call to `KSlideSaverSetup::connect(KURLRequester*&, const char[31], KSlideSaverSetup* const, const char[30])' /usr/lib/qt3/include/qobject.h:116: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) /usr/lib/qt3/include/qobject.h:227: bool QObject::connect(const QObject*, const char*, const char*) const kslidesaversetup.cpp:197: no matching function for call to `KSlideSaverSetup::connect(KURLRequester*&, const char[29], KSlideSaverSetup* const, const char[30])' /usr/lib/qt3/include/qobject.h:116: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) /usr/lib/qt3/include/qobject.h:227: bool QObject::connect(const QObject*, const char*, const char*) const kslidesaversetup.cpp:202: no matching function for call to `QWidget::setTabOrder(QSlider*&, KURLRequester*&)' /usr/lib/qt3/include/qwidget.h:307: candidates are: static void QWidget::setTabOrder(QWidget*, QWidget*) kslidesaversetup.cpp:203: no matching function for call to `QWidget::setTabOrder(KURLRequester*&, QPushButton*&)' /usr/lib/qt3/include/qwidget.h:307: candidates are: static void QWidget::setTabOrder(QWidget*, QWidget*) kslidesaversetup.cpp: In member function `virtual void KSlideSaverSetup::languageChange()': kslidesaversetup.cpp:226: no matching function for call to `QToolTip::add(KURLRequester*&, QString)' /usr/lib/qt3/include/qtooltip.h:90: candidates are: static void QToolTip::add(QWidget*, const QString&) /usr/lib/qt3/include/qtooltip.h:92: static void QToolTip::add(QWidget*, const QString&, QToolTipGroup*, const QString&) /usr/lib/qt3/include/qtooltip.h:95: static void QToolTip::add(QWidget*, const QRect&, const QString&) /usr/lib/qt3/include/qtooltip.h:97: static void QToolTip::add(QWidget*, const QRect&, const QString&, QToolTipGroup*, const QString&) kslidesaversetup.cpp:227: no matching function for call to `QWhatsThis::add(KURLRequester*&, QString)' /usr/lib/qt3/include/qwhatsthis.h:63: candidates are: static void QWhatsThis::add(QWidget*, const QString&) make[3]: *** [kslidesaversetup.o] Error 1 make[3]: Leaving directory `/home/claus/files/downloads/kslidesavergl-0.7/kslidesavergl' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/claus/files/downloads/kslidesavergl-0.7/kslidesavergl' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/claus/files/downloads/kslidesavergl-0.7' make: *** [all] Error 2 As I haven't been able to find any rpm the compile way was the only one to take, but alas it fails as shown above.. If anyone has a link til a rpm download it would be much appriciated. I need this fine screen saver in my mandrake :) cheers
this seems to be removed from/broken in KDE3.
It is possible to use a screensaver instead of a background image. To do this, call any screensaver with the -inroot parameter, e.g.: kswarm.kss -inroot & Most screensavers will look best of you set the background color to black. However, using a screensaver as background might eat some CPU and X time ... (Source: http://sunsite.bilkent.edu.tr/pub/linux/www.kde.org/faq/kdefaq-6.html)
First of all, EXELLENT work - very slick screensaver. But now would it be possible to implement the screensaver as a desktop background using KDE's background program option? It would be the coolest desktop in the world. I don't know enough about how KDE's desktop elements to know if it is even possible, but if it IS, I would love to know how to implement it.
I love it! I think it would be great if you could add some other effects as well :) Another feature that I would love is the ability to select multiple directories for the slide show. Keep up the good work!
What sort of effects do you have in mind? Also, you can select multiple directories by creating a directory with simlinks to the image directories you want to use. SlideShowGL will recurse into the directory one level. I did this because it seemed like a more flexible solution - you can have as many image directories as you want, and it doesn't clutter the setup interface
i get a parse error when trying to 'make': In file included from kslidesaversetup.h:16, from main.cpp:29: kslidesaver.h:92: error: parse error before `[' token make[3]: *** [main.o] Fehler 1 make[3]: Leaving directory `/home/felix/Software/kslidesavergl-0.7/kslidesavergl' make[2]: *** [all-recursive] Fehler 1 make[2]: Leaving directory `/home/felix/Software/kslidesavergl-0.7/kslidesavergl' make[1]: *** [all-recursive] Fehler 1 make[1]: Leaving directory `/home/felix/Software/kslidesavergl-0.7' make: *** [all] Fehler 2 any idea?
My system: PIII (Coppermine) 733Mhz NS: Debian Woody 3.0 Kerndl: 2.4.16 KDE: 3.1 Qt: 3.1.1 Card: Riva TNT2 M64, 32mb RAM Drivers: official from nvidia v28.80 (those that came with woody) OpenGL works ok on other GL screensavers and in other apps like tux racer or wineX. The bugs (happen sometimes, and*only in fullscreen), all of them are in transitions: Let's imagine that we have four images, A, B, C and D, and that they must be displayed in that order. 1) in transition from A to B (per example), the screen splits horizontally in two. In the upper half of the screen it displays the lower half of A, and in the lower side of the screen it displays the upper side of B. 2) in transition from B to C, happen this: ->zoom B (as desired ;)) ->transition FROM A TO D ->end transition (D is on screen) ->start zooming C The (2) problem appears to be an indexing issue. But the first one, seems quite strange (half portion of one, and the other half of another??) BTW, your work is EXCELLENT. Perhaps this summer, with your permission of course, I and some friends make an slide show viewer (with full control of the effects with the keyboard and the mouse) based on your work... Regards PD: Excuse the tone of this message, but I am not an english speaker :)
The indexing problem that you speak of: are you sure that you do not have randomize images selected in the setup? If you do not have that selected then the images should display in alphabetical order, otherwise they are shuffled. I don't really understand why you are having that split screen problem. I have never run across that. Your card seems rather old and does not have that much video memory. Possibly you are trying to load images that are very very large? If you try to load images that are larger than 2048x2048 the graphics card would need over 50 MB of ram to store that. Somehow i don't think that is the problem, but I am out of ideas. Does this only happen on certain images? Try running the screensaver on a completely different set of images, preferably small images.