diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-07 21:50:33 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-07 21:50:33 -0600 |
commit | 0b6057404f65218182ab27a9483a21065ef61fca (patch) | |
tree | b8b06dfa2deb965bebfbe131a772124e3e693a96 /twin/tools/decobenchmark/main.cpp | |
parent | 43d99cc2477266cb9072e179137f0e8485370b3d (diff) | |
download | tdebase-0b6057404f65218182ab27a9483a21065ef61fca.tar.gz tdebase-0b6057404f65218182ab27a9483a21065ef61fca.zip |
Rename kwin to twin (Part 2 of 2)
Diffstat (limited to 'twin/tools/decobenchmark/main.cpp')
-rw-r--r-- | twin/tools/decobenchmark/main.cpp | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/twin/tools/decobenchmark/main.cpp b/twin/tools/decobenchmark/main.cpp new file mode 100644 index 000000000..59a6e6762 --- /dev/null +++ b/twin/tools/decobenchmark/main.cpp @@ -0,0 +1,138 @@ +/* + * + * Copyright (c) 2005 Sandro Giessl <sandro@giessl.com> + * Copyright (c) 2005 Luciano Montanaro <mikelima@cirulla.net> + * + * 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; |