Skip to content

Commit 4b794a5

Browse files
committedDec 12, 2013
#8725: AA-disabling only for simplify factor>1
AA-disabling only is executed for '1-pixel' geometries when the configuration slider is greater than minimum value. The rendering speed up is lower (http://hub.qgis.org/issues/8725#note-59), but with higher quality result
1 parent 5ceb9ae commit 4b794a5

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed
 

‎src/app/qgsoptions.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
524524
chkUseRenderCaching->setChecked( settings.value( "/qgis/enable_render_caching", false ).toBool() );
525525

526526
// Default simplify drawing configuration
527-
mSimplifyDrawingGroupBox->setChecked( settings.value( "/qgis/simplifyDrawingHints", (int)QgsVectorLayer::FullSimplification ).toInt() != QgsVectorLayer::NoSimplification );
527+
mSimplifyDrawingGroupBox->setChecked( settings.value( "/qgis/simplifyDrawingHints", (int)QgsVectorLayer::DefaultSimplification ).toInt() != QgsVectorLayer::NoSimplification );
528528
mSimplifyDrawingSlider->setValue( (int)(5.0f * (settings.value( "/qgis/simplifyDrawingTol", 1.0F ).toFloat()-1)) );
529529
mSimplifyDrawingPanel->setVisible( mSimplifyDrawingSlider->value()>0 );
530530

@@ -986,8 +986,14 @@ void QgsOptions::saveOptions()
986986
settings.setValue( "/qgis/capitaliseLayerName", capitaliseCheckBox->isChecked() );
987987

988988
// Default simplify drawing configuration
989-
settings.setValue( "/qgis/simplifyDrawingHints", (int)(mSimplifyDrawingGroupBox->isChecked() ? QgsVectorLayer::FullSimplification : QgsVectorLayer::NoSimplification) );
990-
settings.setValue( "/qgis/simplifyDrawingTol", (float)(1.0f + 0.2f*mSimplifyDrawingSlider->value()) );
989+
int simplifyDrawingHints = QgsVectorLayer::NoSimplification;
990+
if ( mSimplifyDrawingGroupBox->isChecked() )
991+
{
992+
simplifyDrawingHints |= QgsVectorLayer::DefaultSimplification;
993+
if ( mSimplifyDrawingSlider->value() > 0 ) simplifyDrawingHints |= QgsVectorLayer::AntialiasingSimplification;
994+
}
995+
settings.setValue( "/qgis/simplifyDrawingHints", simplifyDrawingHints );
996+
settings.setValue( "/qgis/simplifyDrawingTol", 1.0f + 0.2f*mSimplifyDrawingSlider->value() );
991997

992998
// project
993999
settings.setValue( "/qgis/projOpenAtLaunch", mProjectOnLaunchCmbBx->currentIndex() );

‎src/app/qgsvectorlayerproperties.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,13 @@ void QgsVectorLayerProperties::apply()
535535
layer->setMetadataUrlFormat( mLayerMetadataUrlFormatComboBox->currentText() );
536536

537537
//layer simplify drawing configuration
538-
layer->setSimplifyDrawingHints( mSimplifyDrawingGroupBox->isChecked() ? QgsVectorLayer::FullSimplification : QgsVectorLayer::NoSimplification );
538+
int simplifyDrawingHints = QgsVectorLayer::NoSimplification;
539+
if ( mSimplifyDrawingGroupBox->isChecked() )
540+
{
541+
simplifyDrawingHints |= QgsVectorLayer::DefaultSimplification;
542+
if ( mSimplifyDrawingSlider->value() > 0 ) simplifyDrawingHints |= QgsVectorLayer::AntialiasingSimplification;
543+
}
544+
layer->setSimplifyDrawingHints( simplifyDrawingHints );
539545
layer->setSimplifyDrawingTol( 1.0f + 0.2f*mSimplifyDrawingSlider->value() );
540546

541547
// update symbology

‎src/core/qgsfeaturerequest.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "qgsfield.h"
1818
#include "qgsgeometry.h"
1919

20-
#include <limits>
2120
#include <QStringList>
2221

2322
QgsFeatureRequest::QgsFeatureRequest()

‎src/core/qgsvectorlayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ QgsVectorLayer::QgsVectorLayer( QString vectorLayerPath,
137137
, mValidExtent( false )
138138
, mSymbolFeatureCounted( false )
139139
, mCurrentRendererContext( 0 )
140-
, mSimplifyDrawingHints( QgsVectorLayer::FullSimplification )
140+
, mSimplifyDrawingHints( QGis::DEFAULT_MAPTOPIXEL_THRESHOLD > 1 ? QgsVectorLayer::FullSimplification : QgsVectorLayer::DefaultSimplification )
141141
, mSimplifyDrawingTol( QGis::DEFAULT_MAPTOPIXEL_THRESHOLD )
142142

143143
{

‎src/core/qgsvectorlayer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1374,7 +1374,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
13741374
GeometrySimplification = 1, //!< The geometries can be simplified using the current map2pixel context state
13751375
EnvelopeSimplification = 2, //!< The geometries can be fully simplified by its BoundingBox using the current map2pixel context state
13761376
AntialiasingSimplification = 4, //!< The geometries can be rendered with 'AntiAliasing' disabled because of it is '1-pixel size'
1377-
FullSimplification = 7, //!< All simplification hints can be applied
1377+
DefaultSimplification = 3, //!< Default simplification hints can be applied ( Geometry + Envelope )
1378+
FullSimplification = 7, //!< All simplification hints can be applied ( Geometry + Envelope + AA-disabling )
13781379
};
13791380
/** Set the Map2pixel simplification hints for fast rendering of features */
13801381
void setSimplifyDrawingHints( int simplifyDrawingHints ) { mSimplifyDrawingHints = simplifyDrawingHints; }

0 commit comments

Comments
 (0)
Please sign in to comment.