From kde-commits Mon Feb 11 12:28:52 2008 From: Torsten Rahn Date: Mon, 11 Feb 2008 12:28:52 +0000 To: kde-commits Subject: KDE/kdeedu/marble Message-Id: <1202732932.200003.23204.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=120273293806406 SVN commit 773569 by rahn: 2008-02-11 Torsten Rahn * data/CMakeLists.txt: * src/lib/TextureColorizer.{cpp,h}: * src/lib/texturepalette.cpp: deleted Patch by Ismael Asensio to make marble use the .leg files instead of using the hardcoded values in texturepalette.cpp. M +9 -0 ChangeLog M +4 -0 data/CMakeLists.txt M +69 -3 src/lib/TextureColorizer.cpp M +7 -2 src/lib/TextureColorizer.h D src/lib/texturepalette.cpp --- trunk/KDE/kdeedu/marble/ChangeLog #773568:773569 @@ -1,3 +1,12 @@ +2008-02-11 Torsten Rahn + + * data/CMakeLists.txt: + * src/lib/TextureColorizer.{cpp,h}: + * src/lib/texturepalette.cpp: deleted + + Patch by Ismael Asensio to make marble use the .leg files + instead of using the hardcoded values in texturepalette.cpp. + 2008-02-10 Inge Wallin Fix issue with integer overflow and some cleaning --- trunk/KDE/kdeedu/marble/data/CMakeLists.txt #773568:773569 @@ -5,6 +5,10 @@ legend.css DESTINATION ${MARBLE_DATA_PATH}) +FILE (GLOB LEGEND_FILES *.leg) +install (FILES ${LEGEND_FILES} +DESTINATION ${MARBLE_DATA_PATH}) + FILE (GLOB BITMAP_FILES bitmaps/*.png) install (FILES ${BITMAP_FILES} DESTINATION ${MARBLE_DATA_PATH}/bitmaps) --- trunk/KDE/kdeedu/marble/src/lib/TextureColorizer.cpp #773568:773569 @@ -19,14 +19,16 @@ #include "global.h" #include "ViewParams.h" -#include "texturepalette.cpp" +uint TextureColorizer::texturepalette[16][512]; TextureColorizer::TextureColorizer( const QString& seafile, const QString& landfile ) { - Q_UNUSED( seafile ); - Q_UNUSED( landfile ); +// Q_UNUSED( seafile ); +// Q_UNUSED( landfile ); + + generatePalette(seafile, landfile); } void TextureColorizer::colorize(ViewParams *viewParams) @@ -161,4 +163,68 @@ } } +void TextureColorizer::generatePalette(const QString& seafile, const QString& landfile) const +{ + //Text copy/pasted from tools/palettegen.cpp + + QImage *gradimg = new QImage( 256, 10, QImage::Format_RGB32 ); + + QStringList filelist; + filelist << seafile << landfile; + QString filename; + + QPainter painter(gradimg); + painter.setPen(Qt::NoPen); + + for ( int j = 0; j < 16; ++j ) { + + int offset = 0; + + foreach ( filename, filelist ) { + + QLinearGradient gradient( 0, 0, 256, 0 ); + + QFile file( filename ); + file.open( QIODevice::ReadOnly ); + QTextStream stream( &file ); // read the data serialized from the file + QString evalstrg; + + while ( !stream.atEnd() ) { + stream >> evalstrg; + if ( !evalstrg.isEmpty() && evalstrg.contains( "=" ) ) { + QString colval = evalstrg.section( "=", 0, 0 ); + QString colpos = evalstrg.section( "=", 1, 1 ); + gradient.setColorAt(colpos.toDouble(), QColor(colval)); + } + } + painter.setBrush( gradient ); + painter.drawRect( 0, 0, 256, 10 ); + + int alpha = j; + + for ( int i = 0; i < 256; ++i) { + + QRgb shadeColor = gradimg->pixel( i, 1 ); + QImage shadeImage ( 256, 10, QImage::Format_RGB32 ); + QLinearGradient shadeGradient( 0, 0, 256, 0 ); + shadeGradient.setColorAt(0.15, QColor(Qt::white)); + shadeGradient.setColorAt(0.496, shadeColor); + shadeGradient.setColorAt(0.504, shadeColor); + shadeGradient.setColorAt(0.75, QColor(Qt::black)); + QPainter shadePainter(&shadeImage); + shadePainter.setPen(Qt::NoPen); + shadePainter.setBrush( shadeGradient ); + shadePainter.drawRect( 0, 0, 256, 10 ); + int shadeIndex = 120 + alpha; +// qDebug() << QString("Shade: %1").arg(shadeIndex); + QRgb palcol = shadeImage.pixel( shadeIndex, 1 ); + + // populate texturepalette[][] + texturepalette[j][offset + i] = (uint)palcol; + } + + offset += 256; + } + } +} --- trunk/KDE/kdeedu/marble/src/lib/TextureColorizer.h #773568:773569 @@ -21,7 +21,12 @@ #include #include #include +#include +#include +//#include +#include #include +#include #include "Quaternion.h" @@ -52,8 +57,8 @@ void colorize(ViewParams *viewParams); private: - static const uint texturepalette[][512]; + static uint texturepalette[16][512]; + void generatePalette(const QString& seafile, const QString& landfile) const; }; - #endif