Fireworks3D (OpenGL) - Source

Screensavers

Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
5.7

Description:
Update 3:
This is my last update. I've fixed some things and i enjoy very much watching the fireworks exploding on the screen.
Now we need the sound!
Have fun and enjoy
KoRaL - 2002/8/3

-----

Some small code changes over the great David Sansome's screen saver.

Screenshots are not attractive and a bit 'static'... you have to see it in motion!

Try it!

KoRaL
Last changelog:

bi-colored fireworks
'sparkling' fireworks
quadratic curve for fading out debris
true spherical random function
better coloring


Ratings & Comments

14 Comments

elvis

Hi -- I'm having some trouble with the configure/make/make install. The configure seems to go OK, but the make errors out (see very bottom of below console output. Any thoughts? Thanks. E [root@homebrew kfiresaver3D-0.3]# ./configure checking build system type... i586-pc-linux-gnu checking host system type... i586-pc-linux-gnu checking target system type... i586-pc-linux-gnu checking for a BSD compatible install... /usr/bin/install -c checking for -p flag to install... yes checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets ${MAKE}... yes checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for executable suffix... checking for object suffix... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking whether g++ supports -Wundef... yes checking whether g++ supports -Wbad-function-cast... yes checking whether g++ supports -Wno-long-long... yes checking whether g++ supports -Wnon-virtual-dtor... yes checking whether g++ supports -fno-exceptions... yes checking whether g++ supports -fno-check-new... yes checking whether g++ supports -fexceptions... yes checking how to run the C++ preprocessor... g++ -E checking whether g++ supports -frepo... yes checking for ld used by GCC... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking for a sed that does not truncate output... checking whether ln -s works... yes checking how to recognise dependant libraries... pass_all checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ranlib... ranlib checking for strip... strip checking if gcc static flag works... no checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating libtool appending configuration tag "CXX" to libtool checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dlopen... (cached) no checking for dlopen in -ldl... (cached) yes checking whether a program can dlopen itself... (cached) yes checking whether a statically linked program can dlopen itself... (cached) yes appending configuration tag "GCJ" to libtool checking if gcj supports -fno-rtti -fno-exceptions... (cached) no checking for gcj option to produce PIC... -fPIC checking if gcj PIC flag -fPIC works... no checking if gcj supports -c -o file.o... no checking whether the gcj linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dlopen... (cached) no checking for dlopen in -ldl... (cached) yes checking whether a program can dlopen itself... (cached) yes checking whether a statically linked program can dlopen itself... (cached) yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for main in -lutil... yes checking for main in -lcompat... no checking for crypt in -lcrypt... yes checking for socklen_t... socklen_t checking for dnet_ntoa in -ldnet... no checking for dnet_ntoa in -ldnet_stub... no checking for inet_ntoa... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking crt_externs.h usability... no checking crt_externs.h presence... no checking for crt_externs.h... no checking for _NSGetEnviron... no checking for sys/types.h... (cached) yes checking for stdint.h... (cached) yes checking for poll in -lpoll... no checking CoreAudio/CoreAudio.h usability... no checking CoreAudio/CoreAudio.h presence... no checking for CoreAudio/CoreAudio.h... no checking for res_init... no checking for killpg in -lucb... no checking for int... yes checking size of int... 4 checking for long... yes checking size of long... 4 checking for char *... yes checking size of char *... 4 checking for char... yes checking size of char... 1 checking for dlopen in -ldl... (cached) yes checking for shl_unload in -ldld... no checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for IceConnectionNumber in -lICE... yes checking for libXext... yes checking for Xinerama... no checking for pthread_create in -lpthread... yes checking for extra includes... no checking for extra libs... no checking for libz... -lz checking for libpng... -lpng -lz -lm checking for libjpeg6b... no checking for libjpeg... -ljpeg checking for Qt... libraries /usr/lib/qt3/lib, headers /usr/lib/qt3/include using -mt checking if Qt compiles without flags... no checking for moc... /usr/lib/qt3/bin/moc checking for uic... /usr/lib/qt3/bin/uic checking whether uic supports -L ... yes checking whether uic supports -nounload ... yes checking if Qt needs -ljpeg... no checking for rpath... yes checking for KDE... libraries /usr/lib, headers /usr/include checking for KDE paths... defaults checking for dcopidl... /usr/bin/dcopidl checking for dcopidl2cpp... /usr/bin/dcopidl2cpp checking for mcopidl... /usr/bin/mcopidl checking for artsc-config... /usr/bin/artsc-config checking for kde-config... /usr/bin/kde-config checking for meinproc... /usr/bin/meinproc checking if admin should be compiled... no checking if kfiresaver should be compiled... yes checking if po should be compiled... yes configure: creating ./config.status fast creating ./Makefile fast creating admin/Makefile fast creating kfiresaver/Makefile fast creating po/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing default-1 commands [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# make cd . \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ /bin/sh ./config.status config.status: creating config.h config.status: config.h is unchanged config.status: executing default-1 commands make all-recursive make[1]: Entering directory `/data0/Common/Downloads/KFiresaver3d/kfiresaver3D-0.3' Making all in kfiresaver make[2]: Entering directory `/data0/Common/Downloads/KFiresaver3d/kfiresaver3D-0.3/kfiresaver' source='kfiresaver.cpp' object='kfiresaver.o' libtool=no \ depfile='.deps/kfiresaver.Po' tmpdepfile='.deps/kfiresaver.TPo' \ depmode=gcc3 /bin/sh ../admin/depcomp \ g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/lib/qt3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wbad-function-cast -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -c -o kfiresaver.o `test -f kfiresaver.cpp || echo './'`kfiresaver.cpp In file included from kfiresaver.cpp:36: /usr/lib/qt3/include/qgl.h:73:21: GL/glu.h: No such file or directory kfiresaver.cpp: In constructor `KFireSaver::KFireSaver(QWidget*, const char*)': kfiresaver.cpp:71: warning: passing `float' for argument 1 of `int QObject::startTimer(int)' make[2]: *** [kfiresaver.o] Error 1 make[2]: Leaving directory `/data0/Common/Downloads/KFiresaver3d/kfiresaver3D-0.3/kfiresaver' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/data0/Common/Downloads/KFiresaver3d/kfiresaver3D-0.3' make: *** [all] Error 2 [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]# [root@homebrew kfiresaver3D-0.3]#

inesmore

Hello I had many problems with my instalation of kdevelop 3.0b1 when i execute the configure file this messages appear: --------------------------------------------- checking build system type... i586-pc-linux-gnu checking host system type... i586-pc-linux-gnu checking target system type... i586-pc-linux-gnu [root@localhost kdevelop-031111]# ./configure --prefix=/usr checking build system type... i586-pc-linux-gnu checking host system type... i586-pc-linux-gnu checking target system type... i586-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking for -p flag to install... yes checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking whether g++ supports -Wmissing-format-attribute... yes checking whether g++ supports -Wundef... yes checking whether g++ supports -Wno-long-long... yes checking whether g++ supports -Wnon-virtual-dtor... yes checking whether g++ supports -fno-exceptions... yes checking whether g++ supports -fno-check-new... yes checking whether g++ supports -fno-common... yes checking whether g++ supports -fexceptions... yes checking how to run the C++ preprocessor... g++ -E checking whether g++ supports -O0... yes checking whether g++ supports -Wl,--no-undefined... yes checking whether g++ supports -Wl,--allow-shlib-undefined... yes not using lib directory suffix checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g77... g77 checking whether we are using the GNU Fortran 77 compiler... yes checking whether g77 accepts -g... yes checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc static flag works... yes checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dlopen... (cached) no checking for dlopen in -ldl... (cached) yes checking whether a program can dlopen itself... (cached) yes checking whether a statically linked program can dlopen itself... (cached) yes appending configuration tag "F77" to libtool checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for g77 option to produce PIC... -fPIC checking if g77 PIC flag -fPIC works... yes checking if g77 supports -c -o file.o... yes checking whether the g77 linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking if C++ programs can be compiled... yes checking for strlcat... no checking if strlcat needs custom prototype... yes - in libkdefakes checking for strlcpy... no checking if strlcpy needs custom prototype... yes - in libkdefakes checking for main in -lutil... yes checking for main in -lcompat... no checking for crypt in -lcrypt... yes checking for socklen_t... socklen_t checking for dnet_ntoa in -ldnet... no checking for dnet_ntoa in -ldnet_stub... no checking for inet_ntoa... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for sys/types.h... (cached) yes checking for stdint.h... (cached) yes checking for poll in -lpoll... no checking CoreAudio/CoreAudio.h usability... no checking CoreAudio/CoreAudio.h presence... no checking for CoreAudio/CoreAudio.h... no checking if res_init needs -lresolv... yes checking if res_init is available... yes checking for killpg in -lucb... no checking for int... yes checking size of int... 4 checking for long... yes checking size of long... 4 checking for char *... yes checking size of char *... 4 checking for dlopen in -ldl... (cached) yes checking for shl_unload in -ldld... no checking for size_t... yes checking size of size_t... 4 checking for unsigned long... yes checking size of unsigned long... 4 checking sizeof size_t == sizeof unsigned long... yes checking crt_externs.h usability... no checking crt_externs.h presence... no checking for crt_externs.h... no checking for _NSGetEnviron... no checking for vsnprintf... yes checking for snprintf... yes checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for IceConnectionNumber in -lICE... yes checking for libXext... yes checking for pthread_create in -lpthread... yes checking for extra includes... no checking for extra libs... no checking for libz... -lz checking for libpng... -lpng -lz -lm checking for libjpeg6b... no checking for libjpeg... -ljpeg checking for perl... /usr/bin/perl checking for Qt... libraries /usr/lib/qt-3.1/lib, headers /usr/lib/qt-3.1/include using -mt checking for moc... /usr/lib/qt-3.1/bin/moc checking for uic... /usr/lib/qt-3.1/bin/uic checking whether uic supports -L ... yes checking whether uic supports -nounload ... yes checking if Qt needs -ljpeg... no checking for rpath... yes checking for KDE... libraries /usr/lib, headers /usr/include/kde checking if UIC has KDE plugins available... yes checking for KDE paths... defaults checking for dcopidl... /usr/bin/dcopidl checking for dcopidl2cpp... /usr/bin/dcopidl2cpp checking for mcopidl... /usr/bin/mcopidl checking for artsc-config... /usr/bin/artsc-config checking for kde-config... /usr/bin/kde-config checking for meinproc... /usr/bin/meinproc checking for xmllint... /usr/bin/xmllint checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for docbase... no checking for Python directory... /usr/local checking if scripting enabled... no checking for Qt >= 3.0.5... yes checking whether to build the compat lib... no checking for Berkeley DB >= 3... yes -

cbiffle

Hm...you may have issues with your configure script. Despite a properly-set KDEDIR variable and a KDE install in /usr/local/bin, your screensaver wound up in /usr/local/kde/bin after the install. Did I break it on my end? FreeBSD 5.0-DP2, KDE 3.0.4.

cbiffle

Why's the install process create /usr/lib/menu and drop a file in it? Seems strange. Perhaps change the make file to only drop the file in if the dir already exists; if it doesn't exist, chances are good the OS doesn't use it. :-)

thorgod

I keep getting flashes that don't look intended while running this screen saver. I'll look again, but is anyone else seeing similar?

aDc

Oh, BTW nice screen saver!

straver

When I run it says it can't load the textures. Which lib do need for this to work?

davidsansome

It sounds like you havn't done the "make install" stage, and you are running the kfiresaver.kss file on it's own. The screensaver looks for it's textures in $KDEDIR/share/apps/kfiresaver, where $KDEDIR is /opt/kde3 or /usr depending on your distribution. Have a look in these folders for the three files particle.bmp, tux.png and kde.png. If they do exist, it sounds like a problem with the screensaver. If not, typing "make install" should install them, failing that, copy them over by hand as root.

Niek

This is really the best fireworks screensaver I've ever seen! Great work! But perhaps you can make the flickering of the screen less, this is not very good for my eyes ;) Keep up the great work, Niek.

vtowel

Your fireworks animate so smoothly on my laptop and look great! I love the occasional surprise explosion shapes, too. It would be nice to be able to configure it so that there were no bright flashes. Or maybe you could make the flashes more localized around the explosions and not fill the whole screen? Otherwise, it's my favourite screensaver!

aDc

here is a patch to disable the flashes: 48a49,50 > #define EXPLODE_FLASH 0 > 200,202c202,206 if(EXPLODE_FLASH) { > glClearColor( 0.5, 0.5, 0.5, 0.0 ); > glClear( GL_COLOR_BUFFER_BIT ); > glClearColor( 0.0, 0.0, 0.0, 0.0 ); > } 232,234c236,240 if(EXPLODE_FLASH) { > glClearColor( 1.0, 1.0, 1.0, 0.0 ); > glClear( GL_COLOR_BUFFER_BIT ); > glClearColor( 0.0, 0.0, 0.0, 1.0 ); > } save the stuff above to a file called patch_info and apply it to the kfiresaver.cpp file under the kfiresaver directory: patch kfiresaver.cpp patch_info

gravis

patching file kfiresaver.cpp patch: **** `>' expected at line 3 of patch meuh :(

uga

It's much more realistic with them!

davidsansome

I love the new fireworks - they're fantastic, well done :-) Not too sure about the flashes though... I'll try to incorporate your changes into my next version.

Pling
0 Affiliates
Details
license
version
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 0

More Screensavers from koral:

KFiresaver3D (OpenGL) - Source
koral
last update date: 21 years ago

Score 5.7

Other Screensavers:

My new desktop.-Modified
compileit
last update date: 19 years ago

Score 5.0

SlideShow (GL) mdk 9.1 rpm
illogic-al
last update date: 22 years ago

Score 5.0

My composition with Sailors
Kamuiu
last update date: 22 years ago

Score 5.0

KarambaSaver
BOSSoNe
last update date: 22 years ago

Score 5.0

Fleas
eisfuchs
last update date: 21 years ago

Score 5.0

fluid psychedelic Screensaver
schorsch
last update date: 21 years ago

Score 5.0