+ if (m_interpolation == interpolation)
+ return true;
+
+ InterpolationMode interpolationMode = InterpolationModeDefault;
+ switch (interpolation)
+ {
+ case wxINTERPOLATION_DEFAULT:
+ interpolationMode = InterpolationModeDefault;
+ break;
+
+ case wxINTERPOLATION_NONE:
+ interpolationMode = InterpolationModeNearestNeighbor;
+ break;
+
+ case wxINTERPOLATION_FAST:
+ interpolationMode = InterpolationModeLowQuality;
+ break;
+
+ case wxINTERPOLATION_GOOD:
+ interpolationMode = InterpolationModeHighQuality;
+ break;
+
+ case wxINTERPOLATION_BEST:
+ interpolationMode = InterpolationModeHighQualityBicubic;
+ break;
+
+ default:
+ return false;
+ }
+
+ if ( m_context->SetInterpolationMode(interpolationMode) != Gdiplus::Ok )
+ return false;
+
+ m_interpolation = interpolation;
+
+ return true;