diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index c838821e04a7..95e34f092a23 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -164,6 +164,9 @@ SET(QGIS_CORE_SRCS raster/qgsrastershader.cpp raster/qgsrastershaderfunction.cpp + raster/qgsrasterrenderer.cpp + raster/qgspalettedrasterrenderer.cpp + renderer/qgscontinuouscolorrenderer.cpp renderer/qgsgraduatedsymbolrenderer.cpp renderer/qgsrenderer.cpp diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp index 5d04a8899673..f06d0772dccb 100644 --- a/src/core/raster/qgsrasterlayer.cpp +++ b/src/core/raster/qgsrasterlayer.cpp @@ -36,6 +36,9 @@ email : tim at linfiniti.com #include "qgsfreakoutshader.h" #include "qgscolorrampshader.h" +//renderers +#include "qgspalettedrasterrenderer.h" + #include #include #include @@ -833,8 +836,22 @@ void QgsRasterLayer::draw( QPainter * theQPainter, { QgsDebugMsg( "PalettedColor drawing type detected..." ); + //test + int bNumber = bandNumber( mGrayBandName ); + QList itemList = mRasterStatsList[ bNumber - 1].colorTable; + QColor* colorArray = new QColor[itemList.size()]; + QList::const_iterator colorIt = itemList.constBegin(); + for ( ; colorIt != itemList.constEnd(); ++colorIt ) + { + colorArray[( int )colorIt->value] = colorIt->color; + } + + QgsPalettedRasterRenderer renderer( mDataProvider, bNumber, colorArray, itemList.size() ); + renderer.draw( theQPainter, theRasterViewPort, theQgsMapToPixel ); +#if 0 drawPalettedSingleBandColor( theQPainter, theRasterViewPort, theQgsMapToPixel, bandNumber( mGrayBandName ) ); +#endif //0 break; } // a "Palette" layer drawn in gray scale (using only one of the color components)