diff options
Diffstat (limited to 'kscreensaver/kdesavers/wave.cpp')
-rw-r--r-- | kscreensaver/kdesavers/wave.cpp | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/kscreensaver/kdesavers/wave.cpp b/kscreensaver/kdesavers/wave.cpp deleted file mode 100644 index f2f03544..00000000 --- a/kscreensaver/kdesavers/wave.cpp +++ /dev/null @@ -1,324 +0,0 @@ -//----------------------------------------------------------------------------- -// -// kwave - Waveing Flag Screen Saver for KDE 2 -// -// Copyright (c) Ian Reinhart Geiser 2001 -// -#include <stdlib.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <kapplication.h> -#include <klocale.h> -#include <kconfig.h> -#include <kcolordialog.h> -#include <kbuttonbox.h> -#include <kcolorbutton.h> -#include <kglobal.h> -#include "wave.h" -#include "wave.moc" -#ifdef TQ_WS_MACX -#include <OpenGL/glu.h> -#include <OpenGL/gl.h> -#else -#include <GL/glu.h> -#include <GL/gl.h> -#endif -#include <tqimage.h> -#include <kdebug.h> -#include <tqpainter.h> -#include <tqradiobutton.h> -#include <tqspinbox.h> -#include <kstandarddirs.h> -#include <math.h> -#include <kmessagebox.h> -#ifndef GLU_NURBS_TEXTURE_COORD -#define GLU_NURBS_TEXTURE_COORD 100168 -#endif -// libkscreensaver interface - -extern "C" -{ - KDE_EXPORT const char *kss_applicationName = "kwave.kss"; - KDE_EXPORT const char *kss_description = I18N_NOOP( "Bitmap Wave Screen Saver" ); - KDE_EXPORT const char *kss_version = "2.2.0"; - - KDE_EXPORT KScreenSaver *kss_create( WId id ) - { - return new KWaveSaver( id ); - } - - KDE_EXPORT TQDialog *kss_setup() - { - return new KWaveSetup(); - } -} - -//----------------------------------------------------------------------------- -// dialog to setup screen saver parameters -// -KWaveSetup::KWaveSetup( TQWidget *parent, const char *name ) - : SetupUi( parent, name, TRUE ) -{ - readSettings(); - - preview->setFixedSize( 220, 170 ); - preview->setBackgroundColor( black ); - preview->show(); // otherwise saver does not get correct size - saver = new KWaveSaver( preview->winId() ); - - connect( PushButton1, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOkPressed() ) ); - connect( PushButton2, TQT_SIGNAL( clicked() ), TQT_SLOT( reject() ) ); - connect( PushButton3, TQT_SIGNAL( clicked() ), TQT_SLOT( aboutPressed() ) ); - connect( SpinBox1, TQT_SIGNAL( valueChanged(int)), saver, TQT_SLOT( updateSize(int))); - connect( RadioButton1, TQT_SIGNAL( toggled(bool)), saver, TQT_SLOT( doStars(bool))); - -} - -KWaveSetup::~KWaveSetup( ) -{ - delete saver; -} - - -// read settings from config file -void KWaveSetup::readSettings() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - -// color = config->readColorEntry( "Color", &black ); -} - -// Ok pressed - save settings and exit -void KWaveSetup::slotOkPressed() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - -// config->writeEntry( "Color", color ); - - config->sync(); - - accept(); -} - -void KWaveSetup::aboutPressed() -{ - KMessageBox::about(this, - i18n("<h3>Bitmap Flag Screen Saver</h3>\n<p>Waving Flag Screen Saver for TDE</p>\nCopyright (c) Ian Reinhart Geiser 2001")); -} -//----------------------------------------------------------------------------- - - -KWaveSaver::KWaveSaver( WId id ) : KScreenSaver( id ) -{ - kdDebug() << "Blank" << endl; - readSettings(); - - timer = new TQTimer( this ); - timer->start( 50, TRUE ); - setBackgroundColor( black ); - erase(); - wave = new Wave(); - embed(wave); - wave->show(); - connect( timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(blank()) );; -} - -KWaveSaver::~KWaveSaver() -{ - -} - -// read configuration settings from config file -void KWaveSaver::readSettings() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - -// color = config->readColorEntry( "Color", &black ); -} - -void KWaveSaver::blank() -{ - // Play wave - - wave->updateGL(); - timer->start( 100, TRUE ); - -} -Wave::Wave( TQWidget * parent, const char * name) : TQGLWidget (parent,name) -{ - pNurb = 0; - - nNumPoints = 4; - index = 0; -} - -Wave::~Wave() -{ - glDeleteTextures( 1, &texture[0] ); - gluDeleteNurbsRenderer(pNurb); -} - -/** setup the GL enviroment */ -void Wave::initializeGL () -{ - - kdDebug() << "InitGL" << endl; - - /* Load in the texture */ - if ( !LoadGLTextures( ) ) - exit(0); - - /* Enable Texture Mapping ( NEW ) */ - glEnable( GL_TEXTURE_2D ); - - /* Enable smooth shading */ - glShadeModel( GL_SMOOTH ); - // Light values and coordinates - GLfloat specular[] = { 0.7f, 0.0f, 0.0f, 1.0f}; - GLfloat shine[] = { 75.0f }; - - glClearColor(0.0f, 0.0f, 0.0f, 0.0f ); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glEnable(GL_COLOR_MATERIAL); - - glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); - glMaterialfv(GL_FRONT, GL_SPECULAR, specular); - glMaterialfv(GL_FRONT, GL_SHININESS, shine); - - glEnable(GL_AUTO_NORMAL); - - - pNurb = gluNewNurbsRenderer(); - - gluNurbsProperty(pNurb, GLU_SAMPLING_TOLERANCE, 25.0f); - // Uncomment the next line and comment the one following to produce a - // wire frame mesh. - //gluNurbsProperty(pNurb, GLU_DISPLAY_MODE, GLU_OUTLINE_POLYGON); - gluNurbsProperty(pNurb, GLU_DISPLAY_MODE, (GLfloat)GLU_FILL); - glEnable(GL_MAP2_TEXTURE_COORD_3); - glEnable(GL_MAP2_VERTEX_3); - glEnable(GL_BLEND); - -} -/** resize the gl view */ -void Wave::resizeGL ( int w, int h) -{ - kdDebug() << "ResizeGL " << w << "," <<h<< endl; - // Prevent a divide by zero - if(h == 0) - h = 1; - - // Set Viewport to window dimensions - glViewport(0, 0, w, h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - // Perspective view - gluPerspective (45.0f, (GLdouble)w/(GLdouble)h, 1.0, 40.0f); - - // Modelview matrix reset - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - // Viewing transformation, position for better view - glTranslatef (0.0f, 0.0f, -20.0f); - -} -/** paint the GL view */ -void Wave::paintGL () -{ - - float ctrlPoints[4][4][3]; - - index++; - float Z[16]; - for( int i = 0; i < 16; i++) - { - Z[i] = 3.0 * sin(16*(3.141592654 * 2.0f) * (index+(i))/360); - } - -// kdDebug() << "-----" << endl; - int counter =15; - for( int i = 0; i < 4; i++) - for( int j = 0; j < 4;j++) - { - ctrlPoints[i][j][0] = float((5*i)-10); - ctrlPoints[i][j][1] = float((3*j)-6); - ctrlPoints[i][j][2] = Z[counter--]; -// kdDebug() << Z[counter] << endl; - } - // Knot sequence for the NURB - float knots[8] = { 0, 0, 0, 0, 1, 1, 1, 1 }; - // Draw in Blu - //glColor3ub(0,0,220); - - // Clear the window with current clearing color - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - // Save the modelview matrix stack - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - - // Rotate the mesh around to make it easier to see - glRotatef(index/2, 1.0f,0.0f,0.0f); - glRotatef(index/5, 0.0f,1.0f,0.0f); - glRotatef(index/6, 0.0f,0.0f,1.0f); - - // Render the NURB - gluBeginSurface( pNurb ); - gluNurbsSurface( pNurb, 8, knots, 8, knots, - 4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_TEXTURE_COORD_3); - //gluNurbsSurface( pNurb, 8, knots, 8, knots, - //4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_NORMAL ); - gluNurbsSurface( pNurb, 8, knots, 8, knots, - 4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_VERTEX_3 ); - gluEndSurface( pNurb ); - - // Restore the modelview matrix - glPopMatrix(); - - glFlush(); -} - -bool Wave::LoadGLTextures() -{ - /* Status indicator */ - bool Status = TRUE; - - TQImage buf; // = TQPixmap::grabWindow ( 0 ).convertToImage(); - kdDebug() << "Loading: " << locate("data", "kscreensaver/image.png") << endl; - if (buf.load( locate("data", "kscreensaver/image.png") ) ) - - { - tex = convertToGLFormat(buf); // flipped 32bit RGBA - kdDebug() << "Texture loaded: " << tex.numBytes () << endl; - } - else - { - TQImage dummy( 64, 64, 64 ); - dummy.fill( TQt::white.rgb() ); - buf = dummy; - tex = convertToGLFormat( buf ); - } - /* Set the status to true */ - //Status = TRUE; - glGenTextures(1, &texture[0]); /* create three textures */ - glBindTexture(GL_TEXTURE_2D, texture[0]); - /* use linear filtering */ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - /* actually generate the texture */ - glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0, - GL_RGBA, GL_UNSIGNED_BYTE, tex.bits()); - kdDebug() << "Texture Loaded: " << tex.width() << "," << tex.height() << endl; - - - return Status; -} |