summaryrefslogtreecommitdiffstats
path: root/kscreensaver/kdesavers/wave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kscreensaver/kdesavers/wave.cpp')
-rw-r--r--kscreensaver/kdesavers/wave.cpp324
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;
-}