Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgspainting.cpp 3 : : --------------------- 4 : : begin : July 2016 5 : : copyright : (C) 2016 by Martin Dobias 6 : : email : wonder dot sk at gmail dot com 7 : : *************************************************************************** 8 : : * * 9 : : * This program is free software; you can redistribute it and/or modify * 10 : : * it under the terms of the GNU General Public License as published by * 11 : : * the Free Software Foundation; either version 2 of the License, or * 12 : : * (at your option) any later version. * 13 : : * * 14 : : ***************************************************************************/ 15 : : 16 : : #include "qgspainting.h" 17 : : 18 : : #include "qgslogger.h" 19 : : 20 : 0 : QPainter::CompositionMode QgsPainting::getCompositionMode( QgsPainting::BlendMode blendMode ) 21 : : { 22 : : // Map QgsPainting::BlendNormal to QPainter::CompositionMode 23 : 0 : switch ( blendMode ) 24 : : { 25 : : case QgsPainting::BlendNormal: 26 : 0 : return QPainter::CompositionMode_SourceOver; 27 : : case QgsPainting::BlendLighten: 28 : 0 : return QPainter::CompositionMode_Lighten; 29 : : case QgsPainting::BlendScreen: 30 : 0 : return QPainter::CompositionMode_Screen; 31 : : case QgsPainting::BlendDodge: 32 : 0 : return QPainter::CompositionMode_ColorDodge; 33 : : case QgsPainting::BlendAddition: 34 : 0 : return QPainter::CompositionMode_Plus; 35 : : case QgsPainting::BlendDarken: 36 : 0 : return QPainter::CompositionMode_Darken; 37 : : case QgsPainting::BlendMultiply: 38 : 0 : return QPainter::CompositionMode_Multiply; 39 : : case QgsPainting::BlendBurn: 40 : 0 : return QPainter::CompositionMode_ColorBurn; 41 : : case QgsPainting::BlendOverlay: 42 : 0 : return QPainter::CompositionMode_Overlay; 43 : : case QgsPainting::BlendSoftLight: 44 : 0 : return QPainter::CompositionMode_SoftLight; 45 : : case QgsPainting::BlendHardLight: 46 : 0 : return QPainter::CompositionMode_HardLight; 47 : : case QgsPainting::BlendDifference: 48 : 0 : return QPainter::CompositionMode_Difference; 49 : : case QgsPainting::BlendSubtract: 50 : 0 : return QPainter::CompositionMode_Exclusion; 51 : : case QgsPainting::BlendSource: 52 : 0 : return QPainter::CompositionMode_Source; 53 : : case QgsPainting::BlendDestinationOver: 54 : 0 : return QPainter::CompositionMode_DestinationOver; 55 : : case QgsPainting::BlendClear: 56 : 0 : return QPainter::CompositionMode_Clear; 57 : : case QgsPainting::BlendDestination: 58 : 0 : return QPainter::CompositionMode_Destination; 59 : : case QgsPainting::BlendSourceIn: 60 : 0 : return QPainter::CompositionMode_SourceIn; 61 : : case QgsPainting::BlendDestinationIn: 62 : 0 : return QPainter::CompositionMode_DestinationIn; 63 : : case QgsPainting::BlendSourceOut: 64 : 0 : return QPainter::CompositionMode_SourceOut; 65 : : case QgsPainting::BlendDestinationOut: 66 : 0 : return QPainter::CompositionMode_DestinationOut; 67 : : case QgsPainting::BlendSourceAtop: 68 : 0 : return QPainter::CompositionMode_SourceAtop; 69 : : case QgsPainting::BlendDestinationAtop: 70 : 0 : return QPainter::CompositionMode_DestinationAtop; 71 : : case QgsPainting::BlendXor: 72 : 0 : return QPainter::CompositionMode_Xor; 73 : : default: 74 : 0 : QgsDebugMsg( QStringLiteral( "Blend mode %1 mapped to SourceOver" ).arg( blendMode ) ); 75 : 0 : return QPainter::CompositionMode_SourceOver; 76 : : } 77 : 0 : } 78 : : 79 : : 80 : 0 : QgsPainting::BlendMode QgsPainting::getBlendModeEnum( QPainter::CompositionMode blendMode ) 81 : : { 82 : : // Map QPainter::CompositionMode to QgsPainting::BlendNormal 83 : 0 : switch ( blendMode ) 84 : : { 85 : : case QPainter::CompositionMode_SourceOver: 86 : 0 : return QgsPainting::BlendNormal; 87 : : case QPainter::CompositionMode_Lighten: 88 : 0 : return QgsPainting::BlendLighten; 89 : : case QPainter::CompositionMode_Screen: 90 : 0 : return QgsPainting::BlendScreen; 91 : : case QPainter::CompositionMode_ColorDodge: 92 : 0 : return QgsPainting::BlendDodge; 93 : : case QPainter::CompositionMode_Plus: 94 : 0 : return QgsPainting::BlendAddition; 95 : : case QPainter::CompositionMode_Darken: 96 : 0 : return QgsPainting::BlendDarken; 97 : : case QPainter::CompositionMode_Multiply: 98 : 0 : return QgsPainting::BlendMultiply; 99 : : case QPainter::CompositionMode_ColorBurn: 100 : 0 : return QgsPainting::BlendBurn; 101 : : case QPainter::CompositionMode_Overlay: 102 : 0 : return QgsPainting::BlendOverlay; 103 : : case QPainter::CompositionMode_SoftLight: 104 : 0 : return QgsPainting::BlendSoftLight; 105 : : case QPainter::CompositionMode_HardLight: 106 : 0 : return QgsPainting::BlendHardLight; 107 : : case QPainter::CompositionMode_Difference: 108 : 0 : return QgsPainting::BlendDifference; 109 : : case QPainter::CompositionMode_Exclusion: 110 : 0 : return QgsPainting::BlendSubtract; 111 : : case QPainter::CompositionMode_Source: 112 : 0 : return QgsPainting::BlendSource; 113 : : case QPainter::CompositionMode_DestinationOver: 114 : 0 : return QgsPainting::BlendDestinationOver; 115 : : case QPainter::CompositionMode_Clear: 116 : 0 : return QgsPainting::BlendClear; 117 : : case QPainter::CompositionMode_Destination: 118 : 0 : return QgsPainting::BlendDestination; 119 : : case QPainter::CompositionMode_SourceIn: 120 : 0 : return QgsPainting::BlendSourceIn; 121 : : case QPainter::CompositionMode_DestinationIn: 122 : 0 : return QgsPainting::BlendDestinationIn; 123 : : case QPainter::CompositionMode_SourceOut: 124 : 0 : return QgsPainting::BlendSourceOut; 125 : : case QPainter::CompositionMode_DestinationOut: 126 : 0 : return QgsPainting::BlendDestinationOut; 127 : : case QPainter::CompositionMode_SourceAtop: 128 : 0 : return QgsPainting::BlendSourceAtop; 129 : : case QPainter::CompositionMode_DestinationAtop: 130 : 0 : return QgsPainting::BlendDestinationAtop; 131 : : case QPainter::CompositionMode_Xor: 132 : 0 : return QgsPainting::BlendXor; 133 : : default: 134 : 0 : QgsDebugMsg( QStringLiteral( "Composition mode %1 mapped to Normal" ).arg( blendMode ) ); 135 : 0 : return QgsPainting::BlendNormal; 136 : : } 137 : 0 : }