diff options
Diffstat (limited to 'kwin/tools/decobenchmark')
-rw-r--r-- | kwin/tools/decobenchmark/Makefile.am | 9 | ||||
-rw-r--r-- | kwin/tools/decobenchmark/main.cpp | 138 | ||||
-rw-r--r-- | kwin/tools/decobenchmark/main.h | 51 | ||||
-rw-r--r-- | kwin/tools/decobenchmark/preview.cpp | 412 | ||||
-rw-r--r-- | kwin/tools/decobenchmark/preview.h | 137 |
5 files changed, 0 insertions, 747 deletions
diff --git a/kwin/tools/decobenchmark/Makefile.am b/kwin/tools/decobenchmark/Makefile.am deleted file mode 100644 index bb3e884cd..000000000 --- a/kwin/tools/decobenchmark/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -noinst_PROGRAMS = decobenchmark - -INCLUDES = $(all_includes) - -decobenchmark_SOURCES = main.cpp preview.cpp -decobenchmark_LDFLAGS = $(all_libraries) -decobenchmark_LDADD = ../../lib/libtdecorations.la - -METASOURCES = AUTO diff --git a/kwin/tools/decobenchmark/main.cpp b/kwin/tools/decobenchmark/main.cpp deleted file mode 100644 index 59a6e6762..000000000 --- a/kwin/tools/decobenchmark/main.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - * - * Copyright (c) 2005 Sandro Giessl <[email protected]> - * Copyright (c) 2005 Luciano Montanaro <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include <tqtimer.h> - -#include <kdebug.h> -#include <kconfig.h> -#include <kdecoration_plugins_p.h> -#include <kdecorationfactory.h> - -#include <time.h> -#include <sys/timeb.h> -#include <iostream> - - -#include <kaboutdata.h> -#include <kapplication.h> -#include <kcmdlineargs.h> - -#include "preview.h" -#include "main.h" - -static KCmdLineOptions options[] = -{ - { "+decoration", "Decoration library to use, such as twin3_plastik.", 0 }, - { "+tests", "Which test should be executed ('all', 'tqrepaint', 'caption', 'resize', 'recreation')", 0 }, - { "+repetitions", "Number of test repetitions.", 0 }, - { 0, 0, 0 } -}; - -DecoBenchApplication::DecoBenchApplication(const TQString &library, Tests tests, int count) : - m_tests(tests), - m_count(count) -{ - KConfig twinConfig("twinrc"); - twinConfig.setGroup("Style"); - - plugins = new KDecorationPreviewPlugins( &twinConfig ); - preview = new KDecorationPreview( plugins, 0 ); - - if (plugins->loadPlugin(library) ) - kdDebug() << "Decoration library " << library << " loaded..." << endl; - else - kdError() << "Error loading decoration library " << library << "!" << endl; - - if (preview->recreateDecoration() ) - kdDebug() << "Decoration created..." << endl; - else - kdError() << "Error creating decoration!" << endl; - - preview->show(); -} - -DecoBenchApplication::~DecoBenchApplication() -{ - delete preview; - delete plugins; -} - -void DecoBenchApplication::executeTest() -{ - clock_t stime = clock(); - timeb astart, aend; - ftime(&astart); - - if (m_tests == AllTests || m_tests == RepaintTest) - preview->performRepaintTest(m_count); - if (m_tests == AllTests || m_tests == CaptionTest) - preview->performCaptionTest(m_count); - if (m_tests == AllTests || m_tests == ResizeTest) - preview->performResizeTest(m_count); - if (m_tests == AllTests || m_tests == RecreationTest) - preview->performRecreationTest(m_count); - - clock_t etime = clock(); - ftime(&aend); - - long long time_diff = (aend.time - astart.time)*1000+aend.millitm - astart.millitm; - kdDebug() << "Total:" << (float(time_diff)/1000) << endl; - quit(); -} - -int main(int argc, char** argv) -{ - TQString style = "keramik"; - // KApplication app(argc, argv); - KAboutData about("decobenchmark", "DecoBenchmark", "0.1", "twin decoration performance tester...", KAboutData::License_LGPL, "(C) 2005 Sandro Giessl"); - KCmdLineArgs::init(argc, argv, &about); - KCmdLineArgs::addCmdLineOptions( options ); - - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - - if (args->count() != 3) - KCmdLineArgs::usage("Wrong number of arguments!"); - - TQString library = TQString(args->arg(0) ); - TQString t = TQString(args->arg(1) ); - int count = TQString(args->arg(2) ).toInt(); - - Tests test; - if (t == "all") - test = AllTests; - else if (t == "tqrepaint") - test = RepaintTest; - else if (t == "caption") - test = CaptionTest; - else if (t == "resize") - test = ResizeTest; - else if (t == "recreation") - test = RecreationTest; - else - KCmdLineArgs::usage("Specify a valid test!"); - - DecoBenchApplication app(library, test, count); - - TQTimer::singleShot(0, &app, TQT_SLOT(executeTest())); - app.exec(); -} -#include "main.moc" - -// kate: space-indent off; tab-width 4; diff --git a/kwin/tools/decobenchmark/main.h b/kwin/tools/decobenchmark/main.h deleted file mode 100644 index 65c0c78ae..000000000 --- a/kwin/tools/decobenchmark/main.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * - * Copyright (c) 2005 Sandro Giessl <[email protected]> - * Copyright (c) 2005 Luciano Montanaro <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef BENCH_MAIN_H -#define BENCH_MAIN_H - -enum Tests { - AllTests, - RepaintTest, - CaptionTest, - ResizeTest, - RecreationTest -}; - -class DecoBenchApplication : public KApplication -{ - Q_OBJECT -public: - DecoBenchApplication(const TQString &library, Tests tests, int count); - ~DecoBenchApplication(); - -public slots: - void executeTest(); - -private: - KDecorationPreview *preview; - KDecorationPlugins *plugins; - Tests m_tests; - int m_count; -}; - -#endif // BENCH_MAIN_H - -// kate: space-indent off; tab-width 4; diff --git a/kwin/tools/decobenchmark/preview.cpp b/kwin/tools/decobenchmark/preview.cpp deleted file mode 100644 index ec870abe5..000000000 --- a/kwin/tools/decobenchmark/preview.cpp +++ /dev/null @@ -1,412 +0,0 @@ -/* - * - * Copyright (c) 2003 Lubos Lunak <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "preview.h" - -#include <kdebug.h> - -#include <kapplication.h> -#include <klocale.h> -#include <kconfig.h> -#include <kglobal.h> -#include <tqlabel.h> -#include <tqstyle.h> -#include <kiconloader.h> - -#include <X11/Xlib.h> -#include <X11/extensions/shape.h> - -#include <kdecorationfactory.h> -#include <kdecoration_plugins_p.h> - -// FRAME the preview doesn't update to reflect the changes done in the kcm - -KDecorationPreview::KDecorationPreview( KDecorationPlugins* plugin, TQWidget* parent, const char* name ) - : TQWidget( parent, name ), - m_plugin(plugin) -{ - options = new KDecorationPreviewOptions; - - bridge = new KDecorationPreviewBridge( this, true, "Deco Benchmark" ); - - deco = 0; - - setFixedSize( 600, 500 ); - - positionPreviews(); -} - -KDecorationPreview::~KDecorationPreview() -{ - delete deco; - delete bridge; - delete options; -} - -void KDecorationPreview::performRepaintTest(int n) -{ - kdDebug() << "start " << n << " repaints..." << endl; - bridge->setCaption("Deco Benchmark"); - deco->captionChange(); - positionPreviews(0); - for (int i = 0; i < n; ++i) { - deco->widget()->tqrepaint(); - kapp->processEvents(); - } -} - -void KDecorationPreview::performCaptionTest(int n) -{ - kdDebug() << "start " << n << " caption changes..." << endl; - TQString caption = "Deco Benchmark %1"; - positionPreviews(0); - for (int i = 0; i < n; ++i) { - bridge->setCaption(caption.arg(i) ); - deco->captionChange(); - deco->widget()->tqrepaint(); - kapp->processEvents(); - } -} - -void KDecorationPreview::performResizeTest(int n) -{ - kdDebug() << "start " << n << " resizes..." << endl; - bridge->setCaption("Deco Benchmark"); - deco->captionChange(); - for (int i = 0; i < n; ++i) { - positionPreviews(i % 200); - kapp->processEvents(); - } -} - -void KDecorationPreview::performRecreationTest(int n) -{ - kdDebug() << "start " << n << " resizes..." << endl; - bridge->setCaption("Deco Benchmark"); - deco->captionChange(); - positionPreviews(0); - for (int i = 0; i < n; ++i) { - recreateDecoration(); - kapp->processEvents(); - } -} - -bool KDecorationPreview::recreateDecoration() -{ - delete deco; - deco = m_plugin->createDecoration(bridge); - deco->init(); - - if (!deco) - return false; - - positionPreviews(); - deco->widget()->show(); - - return true; -} - -void KDecorationPreview::positionPreviews(int shrink) -{ - if ( !deco ) - return; - - TQSize size = TQSize(width()-2*10-shrink, height()-2*10-shrink)/*.expandedTo(deco->tqminimumSize()*/; - - TQRect geometry(TQPoint(10, 10), size); - deco->widget()->setGeometry(geometry); -} - -void KDecorationPreview::setPreviewMask( const TQRegion& reg, int mode ) -{ - TQWidget *widget = deco->widget(); - - // FRAME duped from client.cpp - if( mode == Unsorted ) - { - XShapeCombineRegion( qt_xdisplay(), widget->winId(), ShapeBounding, 0, 0, - reg.handle(), ShapeSet ); - } - else - { - TQMemArray< TQRect > rects = reg.rects(); - XRectangle* xrects = new XRectangle[ rects.count() ]; - for( unsigned int i = 0; - i < rects.count(); - ++i ) - { - xrects[ i ].x = rects[ i ].x(); - xrects[ i ].y = rects[ i ].y(); - xrects[ i ].width = rects[ i ].width(); - xrects[ i ].height = rects[ i ].height(); - } - XShapeCombineRectangles( qt_xdisplay(), widget->winId(), ShapeBounding, 0, 0, - xrects, rects.count(), ShapeSet, mode ); - delete[] xrects; - } -} - -TQRect KDecorationPreview::windowGeometry( bool active ) const -{ - TQWidget *widget = deco->widget(); - return widget->geometry(); -} - -TQRegion KDecorationPreview::unobscuredRegion( bool active, const TQRegion& r ) const -{ - return r; -} - -KDecorationPreviewBridge::KDecorationPreviewBridge( KDecorationPreview* p, bool a, const TQString &c ) - : preview( p ), active( a ), m_caption( c ) -{ -} - -void KDecorationPreviewBridge::setCaption(const TQString &c) -{ - m_caption = c; -} - -TQWidget* KDecorationPreviewBridge::initialParentWidget() const - { - return preview; - } - -Qt::WFlags KDecorationPreviewBridge::initialWFlags() const - { - return 0; - } - -bool KDecorationPreviewBridge::isActive() const - { - return active; - } - -bool KDecorationPreviewBridge::isCloseable() const - { - return true; - } - -bool KDecorationPreviewBridge::isMaximizable() const - { - return true; - } - -KDecoration::MaximizeMode KDecorationPreviewBridge::maximizeMode() const - { - return KDecoration::MaximizeRestore; - } - -bool KDecorationPreviewBridge::isMinimizable() const - { - return true; - } - -bool KDecorationPreviewBridge::providesContextHelp() const - { - return true; - } - -int KDecorationPreviewBridge::desktop() const - { - return 1; - } - -bool KDecorationPreviewBridge::isModal() const - { - return false; - } - -bool KDecorationPreviewBridge::isShadeable() const - { - return true; - } - -bool KDecorationPreviewBridge::isShade() const - { - return false; - } - -bool KDecorationPreviewBridge::isSetShade() const - { - return false; - } - -bool KDecorationPreviewBridge::keepAbove() const - { - return false; - } - -bool KDecorationPreviewBridge::keepBelow() const - { - return false; - } - -bool KDecorationPreviewBridge::isMovable() const - { - return true; - } - -bool KDecorationPreviewBridge::isResizable() const - { - return true; - } - -NET::WindowType KDecorationPreviewBridge::windowType( unsigned long ) const - { - return NET::Normal; - } - -TQIconSet KDecorationPreviewBridge::icon() const - { - return SmallIconSet( "xapp" ); - } - -TQString KDecorationPreviewBridge::caption() const -{ - return m_caption; -} - -void KDecorationPreviewBridge::processMousePressEvent( TQMouseEvent* ) - { - } - -void KDecorationPreviewBridge::showWindowMenu( const TQRect &) - { - } - -void KDecorationPreviewBridge::showWindowMenu( TQPoint ) - { - } - -void KDecorationPreviewBridge::performWindowOperation( WindowOperation ) - { - } - -void KDecorationPreviewBridge::setMask( const TQRegion& reg, int mode ) - { - preview->setPreviewMask( reg, mode ); - } - -bool KDecorationPreviewBridge::isPreview() const - { - return false; - } - -TQRect KDecorationPreviewBridge::geometry() const - { - return preview->windowGeometry( active ); - } - -TQRect KDecorationPreviewBridge::iconGeometry() const - { - return TQRect(); - } - -TQRegion KDecorationPreviewBridge::unobscuredRegion( const TQRegion& r ) const - { - return preview->unobscuredRegion( active, r ); - } - -TQWidget* KDecorationPreviewBridge::workspaceWidget() const - { - return preview; - } - -WId KDecorationPreviewBridge::windowId() const - { - return 0; // no decorated window - } - -void KDecorationPreviewBridge::closeWindow() - { - } - -void KDecorationPreviewBridge::maximize( MaximizeMode ) - { - } - -void KDecorationPreviewBridge::minimize() - { - } - -void KDecorationPreviewBridge::showContextHelp() - { - } - -void KDecorationPreviewBridge::setDesktop( int ) - { - } - -void KDecorationPreviewBridge::titlebarDblClickOperation() - { - } - -void KDecorationPreviewBridge::setShade( bool ) - { - } - -void KDecorationPreviewBridge::setKeepAbove( bool ) - { - } - -void KDecorationPreviewBridge::setKeepBelow( bool ) - { - } - -int KDecorationPreviewBridge::currentDesktop() const - { - return 1; - } - -void KDecorationPreviewBridge::helperShowHide( bool ) - { - } - -void KDecorationPreviewBridge::grabXServer( bool ) - { - } - -KDecorationPreviewOptions::KDecorationPreviewOptions() - { - d = new KDecorationOptionsPrivate; - d->defaultKWinSettings(); - updateSettings(); - } - -KDecorationPreviewOptions::~KDecorationPreviewOptions() - { - delete d; - } - -unsigned long KDecorationPreviewOptions::updateSettings() -{ - KConfig cfg( "twinrc", true ); - unsigned long changed = 0; - changed |= d->updateKWinSettings( &cfg ); - - return changed; -} - -bool KDecorationPreviewPlugins::provides( Requirement ) - { - return false; - } - -// #include "preview.moc" diff --git a/kwin/tools/decobenchmark/preview.h b/kwin/tools/decobenchmark/preview.h deleted file mode 100644 index 9f2445036..000000000 --- a/kwin/tools/decobenchmark/preview.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - * Copyright (c) 2003 Lubos Lunak <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KWINDECORATION_PREVIEW_H -#define KWINDECORATION_PREVIEW_H - -#include <tqwidget.h> -#include <kdecoration_p.h> -#include <kdecoration_plugins_p.h> - -class TQLabel; - -class KDecorationPreviewBridge; -class KDecorationPreviewOptions; - -class KDecorationPreview - : public QWidget - { - public: - KDecorationPreview( KDecorationPlugins* plugin, TQWidget* parent = NULL, const char* name = NULL ); - virtual ~KDecorationPreview(); - - void performRepaintTest(int n); - void performCaptionTest(int n); - void performResizeTest(int n); - void performRecreationTest(int n); - - bool recreateDecoration(); - void setPreviewMask( const TQRegion&, int ); - TQRegion unobscuredRegion( bool, const TQRegion& ) const; - TQRect windowGeometry( bool ) const; - private: - void positionPreviews(int shrink = 0); - KDecorationPreviewOptions* options; - KDecorationPreviewBridge* bridge; - KDecoration* deco; - KDecorationPlugins* m_plugin; - }; - -class KDecorationPreviewBridge - : public KDecorationBridge - { - public: - KDecorationPreviewBridge( KDecorationPreview* preview, bool active, const TQString &caption ); - - void setCaption(const TQString &caption); - - virtual bool isActive() const; - virtual bool isCloseable() const; - virtual bool isMaximizable() const; - virtual MaximizeMode maximizeMode() const; - virtual bool isMinimizable() const; - virtual bool providesContextHelp() const; - virtual int desktop() const; - virtual bool isModal() const; - virtual bool isShadeable() const; - virtual bool isShade() const; - virtual bool isSetShade() const; - virtual bool keepAbove() const; - virtual bool keepBelow() const; - virtual bool isMovable() const; - virtual bool isResizable() const; - virtual NET::WindowType windowType( unsigned long supported_types ) const; - virtual TQIconSet icon() const; - virtual TQString caption() const; - virtual void processMousePressEvent( TQMouseEvent* ); - virtual void showWindowMenu( const TQRect &); - virtual void showWindowMenu( TQPoint ); - virtual void performWindowOperation( WindowOperation ); - virtual void setMask( const TQRegion&, int ); - virtual bool isPreview() const; - virtual TQRect geometry() const; - virtual TQRect iconGeometry() const; - virtual TQRegion unobscuredRegion( const TQRegion& r ) const; - virtual TQWidget* workspaceWidget() const; - virtual WId windowId() const; - virtual void closeWindow(); - virtual void maximize( MaximizeMode mode ); - virtual void minimize(); - virtual void showContextHelp(); - virtual void setDesktop( int desktop ); - virtual void titlebarDblClickOperation(); - virtual void setShade( bool set ); - virtual void setKeepAbove( bool ); - virtual void setKeepBelow( bool ); - virtual int currentDesktop() const; - virtual TQWidget* initialParentWidget() const; - virtual Qt::WFlags initialWFlags() const; - virtual void helperShowHide( bool show ); - virtual void grabXServer( bool grab ); - private: - KDecorationPreview* preview; - bool active; - TQString m_caption; - }; - -class KDecorationPreviewOptions - : public KDecorationOptions - { - public: - KDecorationPreviewOptions(); - virtual ~KDecorationPreviewOptions(); - virtual unsigned long updateSettings(); - - private: - }; - -class KDecorationPreviewPlugins - : public KDecorationPlugins - { - public: - KDecorationPreviewPlugins( KConfig* cfg ); - virtual bool provides( Requirement ); - }; - -inline KDecorationPreviewPlugins::KDecorationPreviewPlugins( KConfig* cfg ) - : KDecorationPlugins( cfg ) - { - } - -#endif |