SlideShow (GL)

Screensavers

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

0
Score 50.0%
Description:

This is a KDE slide show screensaver which uses OpenGL for smooth zooming and crossfades. It has a simular feel to that of the MacOS X slideshow screensaver. Note that since this uses OpenGL textures for the images, you will need significant amounts of texture memory on your card for this to work well (especially for large images).

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?
Last changelog:

16 years ago

- 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.

shupienis

13 years ago

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.

Report

raven1high

14 years ago

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?

Report

GunnerGuyven

13 years ago

it seems that qapp.h is a depreciated qt header, change the #include in line 23 of kslidesaver.cpp to qapplication.h instead

Report

AndreAPLx

14 years ago

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

Report

GunnerGuyven

13 years ago

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

Report

laktose

15 years ago

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? :)

Report

fesse

15 years ago

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.

Report

nimda

14 years ago

Confermed fesse's work around. Change those lines and it willwork.

Report

douardda

15 years ago

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

Report

douardda

15 years ago

Sorry, my mistake, I was thinking to something else, maybe ;-)

David

Report

sert

15 years ago

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)

Report

Bonny

15 years ago

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?

Report

linuxpoweredtrekkie

15 years ago

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

Report

kikkerrr

16 years ago

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.

Report

GnomeSkull

15 years ago

I think you need to install XFree86-devel package. I had the same problem on SuSE 9.0 installing superkaramba 0.33 from source.

Report

computx

16 years ago

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!

Report

Warmaster

16 years ago

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

Report

probono

16 years ago

this seems to be removed from/broken in KDE3.

Report

probono

16 years ago

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)

Report

RadicalEdward

16 years ago

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.

Report

refriedbean

16 years ago

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!

Report

C

wjarosz

16 years ago

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

Report

fezadow

16 years ago

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?

Report

djwilly

16 years ago

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 :)

Report

C

wjarosz

16 years ago

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.

Report

16 years ago

- 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.

12345678910
product-maker Base: 4 x 5.0 Ratings
Be the first to comment
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
0.7
updated May 06 2003
added Apr 02 2003
downloads 24h
0
mediaviews 24h 0
pageviews 24h 3