KMatrix3d

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

2
5 .8
Description:

A nice (IMHO :-) 3D matrix OpenGL screen saver for KDE.
IMPORTANT: Packagers wanted - please contact developer.
Last changelog:

13 years ago

0.1 - initial release

C

MrMadPL

13 years ago

Please post any bugs and issues
on the project tracker:
http://sourceforge.net/tracker/?group_id=188204
Important!
The users that have posted here bugs about:
1) nvidia 64 bits built failure
2) smp machines and timer issue

please repost them on the project tracker
cause some comments dissapeared from here and i'm unable to fix these issues.

Report

C

MrMadPL

13 years ago

Does only I see only last two comments ? I need previous comments to investigate issues on smp and 64 bits !!!

Report

Superstoned

13 years ago

really looking forward to your next version...

Report

yoho

13 years ago

I like both yours and the original matrix3D (discussed above). One feature you could add : add a rotation effect like in the original matrix3D. This would be fantastic. One other suggestion : It would be very cool to have buildings made of "matrix lines", like we see in the movie, this could be a variant of your screensaver.

Report

wroemer

13 years ago

I took a look inside the source code and inside the paintGL method I saw that you start timer over and over again. Actually you have to start the timer only once because a timer initiaited with "QObject::startTimer (...)" is NOT a single shot timer! I made a change inside the code to fix this but realized that the paintGL comes to the wrong conclusion on how much time has passed. I will comment on this as soon as I found the responsible code parts.

WR

Report

wroemer

13 years ago

It seems as if clock() has sometimes problems on SMP machines. Therefore I switched to QTime::msec () because the msecs is what we are interested in. So temps_1 and temps_2 have become QTime objects. And I use the diff of their msec() function. On fast machines the result of the diff can be 0 or even less. This seems to be a problem on fast SMP machines too. So I check if the diff is smaller than 1 and if this is the case, paintGL() should do nothing. The QObject::startTimer () call was put inside a static code path that is only called once. I attach my version of kmatrix3d.cpp and kmatrix3d.h for anybody interested in. By the way: To see the old effect with starting timer over and over again, start the original version of kmatrix3d.kss from the command line.

Report

wroemer

13 years ago

I just realized that I can not attach files as long as I don't make a new/own entry for it. I don't want to do that so I post the important code parts here:

void mQGL::paintGL ()
{
temps_1 = QTime::currentTime();
s_infos_gen.msec = temps_1.msec () - temps_2.msec ();

if (s_infos_gen.msec < 1)
{
temps_2 = temps_1;
return;
}

....

At the end of paintGL():

static bool initialized = false;
if (initialized == false)
{
startTimer (1);
initialized = true;
}

temps_2 = temps_1;
}

Report

C

MrMadPL

13 years ago

Yes it about the timer start it was intended to be like this. It'll be corrected in 0.2 version together with the smp fix.

Report

wroemer

13 years ago

Despite all my comments I want to emphasize here that it is nevertheless a great work!

Report

wroemer

13 years ago

Since a few years there has already been an OpenGL based matrix 3D screensaver that installs as "OpenGL screensaver". Is this an extension of the old project or just a coincidence?

Report

C

MrMadPL

13 years ago

I don't know to which project are you referring to. This is a new project - I didn't found a 3D matrix for Linux or KDE at all. If so let me know such a project home page or app name.

Report

wroemer

13 years ago

It is in the "xscreensaver-gl" package of debian and the executable is named "glmatrix".

WR

Report

rocketpcguy

13 years ago

its glmatrix for xscreensaver, look at the screenshot:
http://www.jwz.org/xscreensaver/screenshots/
yours looks much better

Report

himbeere

13 years ago

opengl use flag was included. my video card is nvidia 6800 something.

best regards
t.

Report

C

MrMadPL

13 years ago

Oh .. I see 64bit system ... Ahh. I need to consider it - seems that it's nvidia issue ... Please wait.

Report

himbeere

13 years ago

/bin/sh ../libtool --silent --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -march=k8 -O2 -pipe -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -L/usr/kde/3.5/lib64 -L/usr/qt/3/lib64 -L/usr/lib64 -L/usr/kde/3.5/lib64 -R /usr/lib64 -R /usr/kde/3.5/lib64 -R /usr/qt/3/lib64 -R /usr/lib64 -R /usr/kde/3.5/lib64 -o kmatrix3d.kss kmatrix3d.o camera.o effet_particule.o ligne3d1.o vector3f.o kmatrix3dui.o kmatrix3d.moc.o -lpng -lglut -lqt-mt -lz -lpng -lz -lm -lXext -lX11 -lSM -lICE -lpthread -lkdecore -lkdeui -lkscreensaver -lm -lkio
kmatrix3d.o: In function `mQGL::paintGL()':
kmatrix3d.cpp:(.text+0x2eb): undefined reference to `glClear'
kmatrix3d.cpp:(.text+0x2f0): undefined reference to `glLoadIdentity'
kmatrix3d.o: In function `mQGL::resizeGL(int, int)':
kmatrix3d.cpp:(.text+0x44c): undefined reference to `glViewport'
kmatrix3d.cpp:(.text+0x456): undefined reference to `glMatrixMode'
kmatrix3d.cpp:(.text+0x45b): undefined reference to `glLoadIdentity'
kmatrix3d.cpp:(.text+0x485): undefined reference to `gluPerspective'
kmatrix3d.cpp:(.text+0x48f): undefined reference to `glMatrixMode'
kmatrix3d.o: In function `mQGL::LoadTexture(unsigned int&, char*)':
kmatrix3d.cpp:(.text+0xf15): undefined reference to `glGenTextures'
kmatrix3d.cpp:(.text+0xf26): undefined reference to `glBindTexture'
kmatrix3d.cpp:(.text+0xf4d): undefined reference to `gluBuild2DMipmaps'
kmatrix3d.cpp:(.text+0xf6c): undefined reference to `glTexParameterf'
kmatrix3d.cpp:(.text+0xf83): undefined reference to `glTexParameterf'
kmatrix3d.cpp:(.text+0xf9a): undefined reference to `glTexParameterf'
kmatrix3d.cpp:(.text+0xfb1): undefined reference to `glTexParameterf'
kmatrix3d.cpp:(.text+0x105d): undefined reference to `gluErrorString'
kmatrix3d.o: In function `mQGL::initializeGL()':
kmatrix3d.cpp:(.text+0x142a): undefined reference to `glEnable'
kmatrix3d.cpp:(.text+0x1434): undefined reference to `glDisable'
kmatrix3d.cpp:(.text+0x143e): undefined reference to `glEnable'
kmatrix3d.cpp:(.text+0x144d): undefined reference to `glBlendFunc'
kmatrix3d.cpp:(.text+0x1457): undefined reference to `glShadeModel'
kmatrix3d.cpp:(.text+0x1466): undefined reference to `glHint'
kmatrix3d.o: In function `mQGL::resizeGL(int, int)':
kmatrix3d.cpp:(.text+0x4a2): undefined reference to `glLoadIdentity'
camera.o: In function `camera::calculer()':
camera.cpp:(.text+0x1e6): undefined reference to `gluLookAt'
effet_particule.o: In function `effet_particule::afficher()':
effet_particule.cpp:(.text+0xde): undefined reference to `glGetFloatv'
effet_particule.cpp:(.text+0x14e): undefined reference to `glBegin'
effet_particule.cpp:(.text+0x43f): undefined reference to `glColor3d'
effet_particule.cpp:(.text+0x44c): undefined reference to `glTexCoord2d'
effet_particule.cpp:(.text+0x460): undefined reference to `glVertex3d'
effet_particule.cpp:(.text+0x471): undefined reference to `glTexCoord2d'
effet_particule.cpp:(.text+0x488): undefined reference to `glVertex3d'
effet_particule.cpp:(.text+0x499): undefined reference to `glTexCoord2d'
effet_particule.cpp:(.text+0x4b6): undefined reference to `glVertex3d'
effet_particule.cpp:(.text+0x4c7): undefined reference to `glTexCoord2d'
effet_particule.cpp:(.text+0x4e4): undefined reference to `glVertex3d'
effet_particule.cpp:(.text+0x501): undefined reference to `glEnd'
ligne3d1.o: In function `Ligne3D1::afficher()':
ligne3d1.cpp:(.text+0x173): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x284): undefined reference to `glColor4d'
ligne3d1.cpp:(.text+0x28e): undefined reference to `glBegin'
ligne3d1.cpp:(.text+0x2bf): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x2e5): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x316): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x344): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x377): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x3ad): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x3e0): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x40e): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x413): undefined reference to `glEnd'
ligne3d1.cpp:(.text+0x462): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x4bb): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x514): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x5df): undefined reference to `glBlendFunc'
ligne3d1.cpp:(.text+0x5f0): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x79b): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x7f3): undefined reference to `glColor4d'
ligne3d1.cpp:(.text+0x7fd): undefined reference to `glBegin'
ligne3d1.cpp:(.text+0x82e): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x854): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x885): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x8b3): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x8e6): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x91c): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x94f): undefined reference to `glTexCoord2f'
ligne3d1.cpp:(.text+0x97d): undefined reference to `glVertex3d'
ligne3d1.cpp:(.text+0x982): undefined reference to `glEnd'
ligne3d1.cpp:(.text+0x993): undefined reference to `glBindTexture'
ligne3d1.cpp:(.text+0x60c): undefined reference to `glBlendFunc'
/usr/lib64/libglut.so: undefined reference to `glPixelStorei'
/usr/lib64/libglut.so: undefined reference to `glBitmap'
/usr/lib64/libglut.so: undefined reference to `glPopAttrib'
/usr/lib64/libglut.so: undefined reference to `glMapGrid2f'
/usr/lib64/libglut.so: undefined reference to `glRotatef'
/usr/lib64/libglut.so: undefined reference to `glEvalMesh2'
/usr/lib64/libglut.so: undefined reference to `glFinish'
/usr/lib64/libglut.so: undefined reference to `glVertex3f'
/usr/lib64/libglut.so: undefined reference to `glXQueryExtension'
/usr/lib64/libglut.so: undefined reference to `glNormal3fv'
/usr/lib64/libglut.so: undefined reference to `gluNewQuadric'
/usr/lib64/libglut.so: undefined reference to `glVertex3fv'
/usr/lib64/libglut.so: undefined reference to `glDrawBuffer'
/usr/lib64/libglut.so: undefined reference to `glXMakeCurrent'
/usr/lib64/libglut.so: undefined reference to `gluQuadricDrawStyle'
/usr/lib64/libglut.so: undefined reference to `glXQueryExtensionsString'
/usr/lib64/libglut.so: undefined reference to `glVertex2f'
/usr/lib64/libglut.so: undefined reference to `glXChooseVisual'
/usr/lib64/libglut.so: undefined reference to `gluCylinder'
/usr/lib64/libglut.so: undefined reference to `glGetError'
/usr/lib64/libglut.so: undefined reference to `glGetIntegerv'
/usr/lib64/libglut.so: undefined reference to `glPushAttrib'
/usr/lib64/libglut.so: undefined reference to `glXDestroyContext'
/usr/lib64/libglut.so: undefined reference to `glPopMatrix'
/usr/lib64/libglut.so: undefined reference to `glXWaitX'
/usr/lib64/libglut.so: undefined reference to `glXGetProcAddressARB'
/usr/lib64/libglut.so: undefined reference to `glXQueryVersion'
/usr/lib64/libglut.so: undefined reference to `glGetString'
/usr/lib64/libglut.so: undefined reference to `gluQuadricNormals'
/usr/lib64/libglut.so: undefined reference to `glXGetClientString'
/usr/lib64/libglut.so: undefined reference to `glPushMatrix'
/usr/lib64/libglut.so: undefined reference to `glNormal3f'
/usr/lib64/libglut.so: undefined reference to `gluSphere'
/usr/lib64/libglut.so: undefined reference to `glPolygonMode'
/usr/lib64/libglut.so: undefined reference to `glMap2f'
/usr/lib64/libglut.so: undefined reference to `glScalef'
/usr/lib64/libglut.so: undefined reference to `glReadBuffer'
/usr/lib64/libglut.so: undefined reference to `glXIsDirect'
/usr/lib64/libglut.so: undefined reference to `glXSwapBuffers'
/usr/lib64/libglut.so: undefined reference to `glTranslatef'
/usr/lib64/libglut.so: undefined reference to `glXCreateContext'
/usr/lib64/libglut.so: undefined reference to `glXGetConfig'
collect2: ld returned 1 exit status
make[2]: *** [kmatrix3d.kss] Error 1
make[2]: Leaving directory `/var/tmp/portage/kde-misc/kmatrix3d-0.1/work/kmatrix3d/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/kde-misc/kmatrix3d-0.1/work/kmatrix3d'
make: *** [all] Error 2

!!! ERROR: kde-misc/kmatrix3d-0.1 failed.
Call stack:
ebuild.sh, line 1611: Called dyn_compile
ebuild.sh, line 968: Called qa_call 'src_compile'
environment, line 4755: Called src_compile
ebuild.sh, line 1301: Called kde_src_compile
kde.eclass, line 170: Called kde_src_compile 'all'
kde.eclass, line 340: Called kde_src_compile 'myconf' 'configure' 'make'
kde.eclass, line 336: Called die

!!! died running emake, kde_src_compile:make
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/kde-misc/kmatrix3d-0.1/temp/build.log'.

!!! This ebuild is from an overlay: '/usr/local/portage'
commander files #

Report

C

MrMadPL

13 years ago

I didn't review the ebuild contributed
but this ebuild doesn't contain all dependencies necessary. new ebuild will
be included tomorrow. Please include opengl in your use flags. What type of video card are you using ?

Report

amdfanatyk

13 years ago

...but maybe it would be better to install it under "opengl screensavers", currently it goes under "other", in my opinion slider has too big step (100).

Report

redrum

13 years ago

Its a great variant on the theme, and builds effortlessly.. Keep up the good work :)

Report

13 years ago

0.1 - initial release

12345678910
1
product-maker otternox May 31 2011 9 excellent
Be the first to comment
pasoad
Sep 01 2018
MoonBlossom
Jun 07 2011
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.1
updated Jan 31 2007
added Jan 31 2007
downloads 24h
0
mediaviews 24h 0
pageviews 24h 6