OpenCoverage

qglengineshadermanager.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12class QGLEngineSharedShadersResource : public QOpenGLSharedResource-
13{-
14public:-
15 QGLEngineSharedShadersResource(QOpenGLContext *ctx)-
16 : QOpenGLSharedResource(ctx->shareGroup())-
17 , m_shaders(new QGLEngineSharedShaders(QGLContext::fromOpenGLContext(ctx)))-
18 {-
19 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
20-
21 ~QGLEngineSharedShadersResource()-
22 {-
23 delete m_shaders;-
24 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
25-
26 void invalidateResource() override-
27 {-
28 delete m_shaders;-
29 m_shaders = 0;-
30 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
31-
32 void freeResource(QOpenGLContext *) override-
33 {-
34 }-
35-
36 QGLEngineSharedShaders *shaders() const { return
executed 3 times by 1 test: return m_shaders;
Executed by:
  • tst_qmdiarea - unknown status
m_shaders;
executed 3 times by 1 test: return m_shaders;
Executed by:
  • tst_qmdiarea - unknown status
}
3
37-
38private:-
39 QGLEngineSharedShaders *m_shaders;-
40};-
41-
42class QGLShaderStorage-
43{-
44public:-
45 QGLEngineSharedShaders *shadersForThread(const QGLContext *context) {-
46 QOpenGLMultiGroupSharedResource *&shaders = m_storage.localData();-
47 if (!shaders
!shadersDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
1-2
48 shaders = new QOpenGLMultiGroupSharedResource;
executed 1 time by 1 test: shaders = new QOpenGLMultiGroupSharedResource;
Executed by:
  • tst_qmdiarea - unknown status
1
49 QGLEngineSharedShadersResource *resource =-
50 shaders->value<QGLEngineSharedShadersResource>(context->contextHandle());-
51 return
executed 3 times by 1 test: return resource ? resource->shaders() : 0;
Executed by:
  • tst_qmdiarea - unknown status
resource ? resource->shaders() : 0;
executed 3 times by 1 test: return resource ? resource->shaders() : 0;
Executed by:
  • tst_qmdiarea - unknown status
3
52 }-
53-
54private:-
55 QThreadStorage<QOpenGLMultiGroupSharedResource *> m_storage;-
56};-
57-
58namespace { namespace Q_QGS_qt_shader_storage { typedef QGLShaderStorage Type; QBasicAtomicInt guard = { QtGlobalStatic::Uninitialized }; __attribute__((visibility("hidden"))) inline Type *innerFunction() { struct HolderBase { ~HolderBase() noexcept { if (guard.load() == QtGlobalStatic::Initialized
guard.load() =...c::InitializedDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) guard.store(QtGlobalStatic::Destroyed);
executed 1 time by 1 test: guard.store(QtGlobalStatic::Destroyed);
Executed by:
  • tst_qmdiarea - unknown status
}
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
}; static struct Holder : public HolderBase { Type value; Holder() noexcept(noexcept(Type ())) : value () { guard.store(QtGlobalStatic::Initialized); } } holder; return
executed 3 times by 1 test: return &holder.value;
Executed by:
  • tst_qmdiarea - unknown status
&holder.value;
executed 3 times by 1 test: return &holder.value;
Executed by:
  • tst_qmdiarea - unknown status
} } } static QGlobalStatic<QGLShaderStorage, Q_QGS_qt_shader_storage::innerFunction, Q_QGS_qt_shader_storage::guard> qt_shader_storage;;
0-3
59-
60QGLEngineSharedShaders *QGLEngineSharedShaders::shadersForContext(const QGLContext *context)-
61{-
62 return
executed 3 times by 1 test: return qt_shader_storage()->shadersForThread(context);
Executed by:
  • tst_qmdiarea - unknown status
qt_shader_storage()->shadersForThread(context);
executed 3 times by 1 test: return qt_shader_storage()->shadersForThread(context);
Executed by:
  • tst_qmdiarea - unknown status
3
63}-
64-
65const char* QGLEngineSharedShaders::qShaderSnippets[] = {-
66 0,0,0,0,0,0,0,0,0,0,-
67 0,0,0,0,0,0,0,0,0,0,-
68 0,0,0,0,0,0,0,0,0,0,-
69 0,0,0,0,0-
70};-
71-
72QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context)-
73 : blitShaderProg(0)-
74 , simpleShaderProg(0)-
75{-
76-
77-
78-
79-
80-
81-
82-
83 static bool snippetsPopulated = false;-
84 if (!snippetsPopulated
!snippetsPopulatedDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
85-
86 const char** code = qShaderSnippets;-
87-
88 code[MainVertexShader] = qglslMainVertexShader;-
89 code[MainWithTexCoordsVertexShader] = qglslMainWithTexCoordsVertexShader;-
90 code[MainWithTexCoordsAndOpacityVertexShader] = qglslMainWithTexCoordsAndOpacityVertexShader;-
91-
92 code[UntransformedPositionVertexShader] = qglslUntransformedPositionVertexShader;-
93 code[PositionOnlyVertexShader] = qglslPositionOnlyVertexShader;-
94 code[ComplexGeometryPositionOnlyVertexShader] = qglslComplexGeometryPositionOnlyVertexShader;-
95 code[PositionWithPatternBrushVertexShader] = qglslPositionWithPatternBrushVertexShader;-
96 code[PositionWithLinearGradientBrushVertexShader] = qglslPositionWithLinearGradientBrushVertexShader;-
97 code[PositionWithConicalGradientBrushVertexShader] = qglslPositionWithConicalGradientBrushVertexShader;-
98 code[PositionWithRadialGradientBrushVertexShader] = qglslPositionWithRadialGradientBrushVertexShader;-
99 code[PositionWithTextureBrushVertexShader] = qglslPositionWithTextureBrushVertexShader;-
100 code[AffinePositionWithPatternBrushVertexShader] = qglslAffinePositionWithPatternBrushVertexShader;-
101 code[AffinePositionWithLinearGradientBrushVertexShader] = qglslAffinePositionWithLinearGradientBrushVertexShader;-
102 code[AffinePositionWithConicalGradientBrushVertexShader] = qglslAffinePositionWithConicalGradientBrushVertexShader;-
103 code[AffinePositionWithRadialGradientBrushVertexShader] = qglslAffinePositionWithRadialGradientBrushVertexShader;-
104 code[AffinePositionWithTextureBrushVertexShader] = qglslAffinePositionWithTextureBrushVertexShader;-
105-
106 code[MainFragmentShader_CMO] = qglslMainFragmentShader_CMO;-
107 code[MainFragmentShader_CM] = qglslMainFragmentShader_CM;-
108 code[MainFragmentShader_MO] = qglslMainFragmentShader_MO;-
109 code[MainFragmentShader_M] = qglslMainFragmentShader_M;-
110 code[MainFragmentShader_CO] = qglslMainFragmentShader_CO;-
111 code[MainFragmentShader_C] = qglslMainFragmentShader_C;-
112 code[MainFragmentShader_O] = qglslMainFragmentShader_O;-
113 code[MainFragmentShader] = qglslMainFragmentShader;-
114 code[MainFragmentShader_ImageArrays] = qglslMainFragmentShader_ImageArrays;-
115-
116 code[ImageSrcFragmentShader] = qglslImageSrcFragmentShader;-
117 code[ImageSrcWithPatternFragmentShader] = qglslImageSrcWithPatternFragmentShader;-
118 code[NonPremultipliedImageSrcFragmentShader] = qglslNonPremultipliedImageSrcFragmentShader;-
119 code[CustomImageSrcFragmentShader] = qglslCustomSrcFragmentShader;-
120 code[SolidBrushSrcFragmentShader] = qglslSolidBrushSrcFragmentShader;-
121 if (!context->contextHandle()->isOpenGLES()
!context->cont...->isOpenGLES()Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
122 code[TextureBrushSrcFragmentShader] = qglslTextureBrushSrcFragmentShader_desktop;
executed 1 time by 1 test: code[TextureBrushSrcFragmentShader] = qglslTextureBrushSrcFragmentShader_desktop;
Executed by:
  • tst_qmdiarea - unknown status
1
123 else-
124 code[TextureBrushSrcFragmentShader] = qglslTextureBrushSrcFragmentShader_ES;
never executed: code[TextureBrushSrcFragmentShader] = qglslTextureBrushSrcFragmentShader_ES;
0
125 code[TextureBrushSrcWithPatternFragmentShader] = qglslTextureBrushSrcWithPatternFragmentShader;-
126 code[PatternBrushSrcFragmentShader] = qglslPatternBrushSrcFragmentShader;-
127 code[LinearGradientBrushSrcFragmentShader] = qglslLinearGradientBrushSrcFragmentShader;-
128 code[RadialGradientBrushSrcFragmentShader] = qglslRadialGradientBrushSrcFragmentShader;-
129 code[ConicalGradientBrushSrcFragmentShader] = qglslConicalGradientBrushSrcFragmentShader;-
130 code[ShockingPinkSrcFragmentShader] = qglslShockingPinkSrcFragmentShader;-
131-
132 code[NoMaskFragmentShader] = "";-
133 code[MaskFragmentShader] = qglslMaskFragmentShader;-
134 code[RgbMaskFragmentShaderPass1] = qglslRgbMaskFragmentShaderPass1;-
135 code[RgbMaskFragmentShaderPass2] = qglslRgbMaskFragmentShaderPass2;-
136 code[RgbMaskWithGammaFragmentShader] = "";-
137-
138 code[NoCompositionModeFragmentShader] = "";-
139 code[MultiplyCompositionModeFragmentShader] = "";-
140 code[ScreenCompositionModeFragmentShader] = "";-
141 code[OverlayCompositionModeFragmentShader] = "";-
142 code[DarkenCompositionModeFragmentShader] = "";-
143 code[LightenCompositionModeFragmentShader] = "";-
144 code[ColorDodgeCompositionModeFragmentShader] = "";-
145 code[ColorBurnCompositionModeFragmentShader] = "";-
146 code[HardLightCompositionModeFragmentShader] = "";-
147 code[SoftLightCompositionModeFragmentShader] = "";-
148 code[DifferenceCompositionModeFragmentShader] = "";-
149 code[ExclusionCompositionModeFragmentShader] = "";-
150-
151-
152-
153 for (int i = 0; i < TotalSnippetCount
i < TotalSnippetCountDescription
TRUEevaluated 54 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
; ++i) {
1-54
154 if (__builtin_expect(!!(!qShaderSnippets[i]), false)
__builtin_expe...ts[i]), false)Description
TRUEnever evaluated
FALSEevaluated 54 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-54
155 QMessageLogger(__FILE__, 200, __PRETTY_FUNCTION__).fatal("Shader snippet for %s (#%d) is missing!",-
156 snippetNameStr(SnippetName(i)).constData(), i);-
157 }
never executed: end of block
0
158 }
executed 54 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
54
159-
160 snippetsPopulated = true;-
161 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
162-
163 QGLShader* fragShader;-
164 QGLShader* vertexShader;-
165 QByteArray vertexSource;-
166 QByteArray fragSource;-
167-
168-
169 vertexSource.append(qShaderSnippets[MainVertexShader]);-
170 vertexSource.append(qShaderSnippets[PositionOnlyVertexShader]);-
171-
172 fragSource.append(qShaderSnippets[MainFragmentShader]);-
173 fragSource.append(qShaderSnippets[ShockingPinkSrcFragmentShader]);-
174-
175 simpleShaderProg = new QGLShaderProgram(context, 0);-
176-
177 CachedShader simpleShaderCache(fragSource, vertexSource);-
178-
179 bool inCache = simpleShaderCache.load(simpleShaderProg, context);-
180-
181 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
182 vertexShader = new QGLShader(QGLShader::Vertex, context, 0);-
183 shaders.append(vertexShader);-
184 if (!vertexShader->compileSourceCode(vertexSource)
!vertexShader-...(vertexSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
185 QMessageLogger(__FILE__, 230, __PRETTY_FUNCTION__).warning("Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile");
never executed: QMessageLogger(__FILE__, 230, __PRETTY_FUNCTION__).warning("Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile");
0
186-
187 fragShader = new QGLShader(QGLShader::Fragment, context, 0);-
188 shaders.append(fragShader);-
189 if (!fragShader->compileSourceCode(fragSource)
!fragShader->c...de(fragSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
190 QMessageLogger(__FILE__, 235, __PRETTY_FUNCTION__).warning("Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile");
never executed: QMessageLogger(__FILE__, 235, __PRETTY_FUNCTION__).warning("Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile");
0
191-
192 simpleShaderProg->addShader(vertexShader);-
193 simpleShaderProg->addShader(fragShader);-
194-
195 simpleShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR);-
196 simpleShaderProg->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR);-
197 simpleShaderProg->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR);-
198 simpleShaderProg->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR);-
199 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
200-
201 simpleShaderProg->link();-
202-
203 if (__builtin_expect(!!(!simpleShaderProg->isLinked()), false)
__builtin_expe...ked()), false)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
204 QMessageLogger(__FILE__, 249, __PRETTY_FUNCTION__).critical("Errors linking simple shader: %s", QString(simpleShaderProg->log()).toLocal8Bit().constData());-
205 }
never executed: end of block
else {
0
206 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
207 simpleShaderCache.store(simpleShaderProg, context);
executed 1 time by 1 test: simpleShaderCache.store(simpleShaderProg, context);
Executed by:
  • tst_qmdiarea - unknown status
1
208 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
209-
210-
211 vertexSource.clear();-
212 vertexSource.append(qShaderSnippets[MainWithTexCoordsVertexShader]);-
213 vertexSource.append(qShaderSnippets[UntransformedPositionVertexShader]);-
214-
215 fragSource.clear();-
216 fragSource.append(qShaderSnippets[MainFragmentShader]);-
217 fragSource.append(qShaderSnippets[ImageSrcFragmentShader]);-
218-
219 blitShaderProg = new QGLShaderProgram(context, 0);-
220-
221 CachedShader blitShaderCache(fragSource, vertexSource);-
222-
223 inCache = blitShaderCache.load(blitShaderProg, context);-
224-
225 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
226 vertexShader = new QGLShader(QGLShader::Vertex, context, 0);-
227 shaders.append(vertexShader);-
228 if (!vertexShader->compileSourceCode(vertexSource)
!vertexShader-...(vertexSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
229 QMessageLogger(__FILE__, 274, __PRETTY_FUNCTION__).warning("Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile");
never executed: QMessageLogger(__FILE__, 274, __PRETTY_FUNCTION__).warning("Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile");
0
230-
231 fragShader = new QGLShader(QGLShader::Fragment, context, 0);-
232 shaders.append(fragShader);-
233 if (!fragShader->compileSourceCode(fragSource)
!fragShader->c...de(fragSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
234 QMessageLogger(__FILE__, 279, __PRETTY_FUNCTION__).warning("Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile");
never executed: QMessageLogger(__FILE__, 279, __PRETTY_FUNCTION__).warning("Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile");
0
235-
236 blitShaderProg->addShader(vertexShader);-
237 blitShaderProg->addShader(fragShader);-
238-
239 blitShaderProg->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR);-
240 blitShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR);-
241 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
242-
243 blitShaderProg->link();-
244 if (__builtin_expect(!!(!blitShaderProg->isLinked()), false)
__builtin_expe...ked()), false)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
245 QMessageLogger(__FILE__, 290, __PRETTY_FUNCTION__).critical("Errors linking blit shader: %s", QString(blitShaderProg->log()).toLocal8Bit().constData());-
246 }
never executed: end of block
else {
0
247 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
248 blitShaderCache.store(blitShaderProg, context);
executed 1 time by 1 test: blitShaderCache.store(blitShaderProg, context);
Executed by:
  • tst_qmdiarea - unknown status
1
249 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
250-
251-
252-
253-
254}-
255-
256QGLEngineSharedShaders::~QGLEngineSharedShaders()-
257{-
258-
259-
260-
261 qDeleteAll(shaders);-
262 shaders.clear();-
263-
264 qDeleteAll(cachedPrograms);-
265 cachedPrograms.clear();-
266-
267 if (blitShaderProg
blitShaderProgDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
268 delete blitShaderProg;-
269 blitShaderProg = 0;-
270 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
271-
272 if (simpleShaderProg
simpleShaderProgDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
273 delete simpleShaderProg;-
274 simpleShaderProg = 0;-
275 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
276}
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
277-
278-
279QByteArray QGLEngineSharedShaders::snippetNameStr(SnippetName name)-
280{-
281 QMetaEnum m = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("SnippetName"));-
282 return
executed 6 times by 1 test: return QByteArray(m.valueToKey(name));
Executed by:
  • tst_qmdiarea - unknown status
QByteArray(m.valueToKey(name));
executed 6 times by 1 test: return QByteArray(m.valueToKey(name));
Executed by:
  • tst_qmdiarea - unknown status
6
283}-
284-
285-
286-
287-
288QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineShaderProg &prog)-
289{-
290 for (int i = 0; i < cachedPrograms.size()
i < cachedPrograms.size()Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
; ++i) {
1-2
291 QGLEngineShaderProg *cachedProg = cachedPrograms.at(i);-
292 if (*
*cachedProg == progDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
cachedProg == prog
*cachedProg == progDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-2
293-
294 cachedPrograms.move(i, 0);-
295 cachedProg->program->bind();-
296 return
executed 2 times by 1 test: return cachedProg;
Executed by:
  • tst_qmdiarea - unknown status
cachedProg;
executed 2 times by 1 test: return cachedProg;
Executed by:
  • tst_qmdiarea - unknown status
2
297 }-
298 }
never executed: end of block
0
299-
300 QScopedPointer<QGLEngineShaderProg> newProg;-
301-
302 do {-
303 QByteArray fragSource;-
304-
305-
306 if (prog.srcPixelFragShader == CustomImageSrcFragmentShader
prog.srcPixelF...FragmentShaderDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
307 fragSource.append(prog.customStageSource);
never executed: fragSource.append(prog.customStageSource);
0
308 fragSource.append(qShaderSnippets[prog.mainFragShader]);-
309 fragSource.append(qShaderSnippets[prog.srcPixelFragShader]);-
310 if (prog.compositionFragShader
prog.compositionFragShaderDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
311 fragSource.append(qShaderSnippets[prog.compositionFragShader]);
executed 1 time by 1 test: fragSource.append(qShaderSnippets[prog.compositionFragShader]);
Executed by:
  • tst_qmdiarea - unknown status
1
312 if (prog.maskFragShader
prog.maskFragShaderDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
313 fragSource.append(qShaderSnippets[prog.maskFragShader]);
executed 1 time by 1 test: fragSource.append(qShaderSnippets[prog.maskFragShader]);
Executed by:
  • tst_qmdiarea - unknown status
1
314-
315 QByteArray vertexSource;-
316 vertexSource.append(qShaderSnippets[prog.mainVertexShader]);-
317 vertexSource.append(qShaderSnippets[prog.positionVertexShader]);-
318-
319 QScopedPointer<QGLShaderProgram> shaderProgram(new QGLShaderProgram);-
320-
321 CachedShader shaderCache(fragSource, vertexSource);-
322 bool inCache = shaderCache.load(shaderProgram.data(), QGLContext::currentContext());-
323-
324 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
325-
326 QScopedPointer<QGLShader> fragShader(new QGLShader(QGLShader::Fragment));-
327 QByteArray description;-
328-
329-
330 description.append("Fragment shader: main=");-
331 description.append(snippetNameStr(prog.mainFragShader));-
332 description.append(", srcPixel=");-
333 description.append(snippetNameStr(prog.srcPixelFragShader));-
334 if (prog.compositionFragShader
prog.compositionFragShaderDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
335 description.append(", composition=");-
336 description.append(snippetNameStr(prog.compositionFragShader));-
337 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
338 if (prog.maskFragShader
prog.maskFragShaderDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
339 description.append(", mask=");-
340 description.append(snippetNameStr(prog.maskFragShader));-
341 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
342 fragShader->setObjectName(QString::fromLatin1(description));-
343-
344 if (!fragShader->compileSourceCode(fragSource)
!fragShader->c...de(fragSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
345 QMessageLogger(__FILE__, 390, __PRETTY_FUNCTION__).warning() << "Warning:" << description << "failed to compile!";-
346 break;
never executed: break;
0
347 }-
348-
349 QScopedPointer<QGLShader> vertexShader(new QGLShader(QGLShader::Vertex));-
350-
351-
352 description.clear();-
353 description.append("Vertex shader: main=");-
354 description.append(snippetNameStr(prog.mainVertexShader));-
355 description.append(", position=");-
356 description.append(snippetNameStr(prog.positionVertexShader));-
357 vertexShader->setObjectName(QString::fromLatin1(description));-
358-
359 if (!vertexShader->compileSourceCode(vertexSource)
!vertexShader-...(vertexSource)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
360 QMessageLogger(__FILE__, 405, __PRETTY_FUNCTION__).warning() << "Warning:" << description << "failed to compile!";-
361 break;
never executed: break;
0
362 }-
363-
364 shaders.append(vertexShader.data());-
365 shaders.append(fragShader.data());-
366 shaderProgram->addShader(vertexShader.take());-
367 shaderProgram->addShader(fragShader.take());-
368-
369-
370 shaderProgram->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR);-
371 if (prog.useTextureCoords
prog.useTextureCoordsDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
372 shaderProgram->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR);
never executed: shaderProgram->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR);
0
373 if (prog.useOpacityAttribute
prog.useOpacityAttributeDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-1
374 shaderProgram->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR);
never executed: shaderProgram->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR);
0
375 if (prog.usePmvMatrixAttribute
prog.usePmvMatrixAttributeDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
376 shaderProgram->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR);-
377 shaderProgram->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR);-
378 shaderProgram->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR);-
379 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
380 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
1
381-
382 newProg.reset(new QGLEngineShaderProg(prog));-
383 newProg->program = shaderProgram.take();-
384-
385 newProg->program->link();-
386 if (newProg->program->isLinked()
newProg->program->isLinked()Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
) {
0-1
387 if (!inCache
!inCacheDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-1
388 shaderCache.store(newProg->program, QGLContext::currentContext());
executed 1 time by 1 test: shaderCache.store(newProg->program, QGLContext::currentContext());
Executed by:
  • tst_qmdiarea - unknown status
1
389 }
executed 1 time by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
else {
1
390 QString error;-
391 error = QLatin1String("Shader program failed to link,");-
392-
393 QLatin1String br("\n");-
394 error += QLatin1String("\n Shaders Used:\n");-
395 for (int i = 0; i < newProg->program->shaders().count()
i < newProg->p...ders().count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
396 QGLShader *shader = newProg->program->shaders().at(i);-
397 error += QLatin1String(" ") + shader->objectName() + QLatin1String(": \n")-
398 + QLatin1String(shader->sourceCode()) + br;-
399 }
never executed: end of block
0
400-
401 error += QLatin1String(" Error Log:\n")-
402 + QLatin1String(" ") + newProg->program->log();-
403 QMessageLogger(__FILE__, 448, __PRETTY_FUNCTION__).warning() << error;-
404 break;
never executed: break;
0
405 }-
406-
407 newProg->program->bind();-
408-
409 if (newProg->maskFragShader != QGLEngineSharedShaders::NoMaskFragmentShader
newProg->maskF...FragmentShaderDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
410 GLuint location = newProg->program->uniformLocation("maskTexture");-
411 newProg->program->setUniformValue(location, GLuint(1));-
412 }
never executed: end of block
0
413-
414 if (cachedPrograms.count() > 30
cachedPrograms.count() > 30Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-1
415-
416-
417-
418 for (int i = 0; i < 5
i < 5Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
419 delete cachedPrograms.last();-
420 cachedPrograms.removeLast();-
421 }
never executed: end of block
0
422 }
never executed: end of block
0
423-
424 cachedPrograms.insert(0, newProg.data());-
425 } while (false);-
426-
427 return
executed 1 time by 1 test: return newProg.take();
Executed by:
  • tst_qmdiarea - unknown status
newProg.take();
executed 1 time by 1 test: return newProg.take();
Executed by:
  • tst_qmdiarea - unknown status
1
428}-
429-
430void QGLEngineSharedShaders::cleanupCustomStage(QGLCustomShaderStage* stage)-
431{-
432 auto hasStageAsCustomShaderSouce = [stage](QGLEngineShaderProg *cachedProg) -> bool {-
433 if (cachedProg->customStageSource == stage->source()
cachedProg->cu...tage->source()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
434 delete cachedProg;-
435 return
never executed: return true;
true;
never executed: return true;
0
436 }-
437 return
never executed: return false;
false;
never executed: return false;
0
438 };-
439 cachedPrograms.erase(std::remove_if(cachedPrograms.begin(), cachedPrograms.end(),-
440 hasStageAsCustomShaderSouce),-
441 cachedPrograms.end());-
442}
never executed: end of block
0
443-
444-
445QGLEngineShaderManager::QGLEngineShaderManager(QGLContext* context)-
446 : ctx(context),-
447 shaderProgNeedsChanging(true),-
448 complexGeometry(false),-
449 srcPixelType(Qt::NoBrush),-
450 opacityMode(NoOpacity),-
451 maskType(NoMask),-
452 compositionMode(QPainter::CompositionMode_SourceOver),-
453 customSrcStage(0),-
454 currentShaderProg(0)-
455{-
456 sharedShaders = QGLEngineSharedShaders::shadersForContext(context);-
457}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
458-
459QGLEngineShaderManager::~QGLEngineShaderManager()-
460{-
461-
462 removeCustomStage();-
463}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
464-
465GLuint QGLEngineShaderManager::getUniformLocation(Uniform id)-
466{-
467 if (!currentShaderProg
!currentShaderProgDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-3
468 return
never executed: return 0;
0;
never executed: return 0;
0
469-
470 QVector<uint> &uniformLocations = currentShaderProg->uniformLocations;-
471 if (uniformLocations.isEmpty()
uniformLocations.isEmpty()Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
1-2
472 uniformLocations.fill(GLuint(-1), NumUniforms);
executed 1 time by 1 test: uniformLocations.fill(GLuint(-1), NumUniforms);
Executed by:
  • tst_qmdiarea - unknown status
1
473-
474 static const char *const uniformNames[] = {-
475 "imageTexture",-
476 "patternColor",-
477 "globalOpacity",-
478 "depth",-
479 "maskTexture",-
480 "fragmentColor",-
481 "linearData",-
482 "angle",-
483 "halfViewportSize",-
484 "fmp",-
485 "fmp2_m_radius2",-
486 "inverse_2_fmp2_m_radius2",-
487 "sqrfr",-
488 "bradius",-
489 "invertedTextureSize",-
490 "brushTransform",-
491 "brushTexture",-
492 "matrix",-
493 "translateZ"-
494 };-
495-
496 if (uniformLocations.at(id) == GLuint(-1)
uniformLocatio... == GLuint(-1)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 2 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
1-2
497 uniformLocations[id] = currentShaderProg->program->uniformLocation(uniformNames[id]);
executed 1 time by 1 test: uniformLocations[id] = currentShaderProg->program->uniformLocation(uniformNames[id]);
Executed by:
  • tst_qmdiarea - unknown status
1
498-
499 return
executed 3 times by 1 test: return uniformLocations.at(id);
Executed by:
  • tst_qmdiarea - unknown status
uniformLocations.at(id);
executed 3 times by 1 test: return uniformLocations.at(id);
Executed by:
  • tst_qmdiarea - unknown status
3
500}-
501-
502-
503void QGLEngineShaderManager::optimiseForBrushTransform(QTransform::TransformationType transformType)-
504{-
505 (void)transformType;;-
506}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
507-
508void QGLEngineShaderManager::setDirty()-
509{-
510 shaderProgNeedsChanging = true;-
511}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
512-
513void QGLEngineShaderManager::setSrcPixelType(Qt::BrushStyle style)-
514{-
515 ((!(style != Qt::NoBrush)) ? qt_assert("style != Qt::NoBrush",__FILE__,560) : qt_noop());-
516 if (srcPixelType == PixelSrcType(style)
srcPixelType =...SrcType(style)Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-3
517 return;
never executed: return;
0
518-
519 srcPixelType = style;-
520 shaderProgNeedsChanging = true;-
521}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
522-
523void QGLEngineShaderManager::setSrcPixelType(PixelSrcType type)-
524{-
525 if (srcPixelType == type
srcPixelType == typeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
526 return;
never executed: return;
0
527-
528 srcPixelType = type;-
529 shaderProgNeedsChanging = true;-
530}
never executed: end of block
0
531-
532void QGLEngineShaderManager::setOpacityMode(OpacityMode mode)-
533{-
534 if (opacityMode == mode
opacityMode == modeDescription
TRUEevaluated 42 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-42
535 return;
executed 42 times by 1 test: return;
Executed by:
  • tst_qmdiarea - unknown status
42
536-
537 opacityMode = mode;-
538 shaderProgNeedsChanging = true;-
539}
never executed: end of block
0
540-
541void QGLEngineShaderManager::setMaskType(MaskType type)-
542{-
543 if (maskType == type
maskType == typeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
544 return;
never executed: return;
0
545-
546 maskType = type;-
547 shaderProgNeedsChanging = true;-
548}
never executed: end of block
0
549-
550void QGLEngineShaderManager::setCompositionMode(QPainter::CompositionMode mode)-
551{-
552 if (compositionMode == mode
compositionMode == modeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
553 return;
never executed: return;
0
554-
555 compositionMode = mode;-
556 shaderProgNeedsChanging = true;-
557}
never executed: end of block
0
558-
559void QGLEngineShaderManager::setCustomStage(QGLCustomShaderStage* stage)-
560{-
561 if (customSrcStage
customSrcStageDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
562 removeCustomStage();
never executed: removeCustomStage();
0
563 customSrcStage = stage;-
564 shaderProgNeedsChanging = true;-
565}
never executed: end of block
0
566-
567void QGLEngineShaderManager::removeCustomStage()-
568{-
569 if (customSrcStage
customSrcStageDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-3
570 customSrcStage->setInactive();
never executed: customSrcStage->setInactive();
0
571 customSrcStage = 0;-
572 shaderProgNeedsChanging = true;-
573}
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
574-
575QGLShaderProgram* QGLEngineShaderManager::currentProgram()-
576{-
577 if (currentShaderProg
currentShaderProgDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-3
578 return
executed 3 times by 1 test: return currentShaderProg->program;
Executed by:
  • tst_qmdiarea - unknown status
currentShaderProg->program;
executed 3 times by 1 test: return currentShaderProg->program;
Executed by:
  • tst_qmdiarea - unknown status
3
579 else-
580 return
never executed: return sharedShaders->simpleProgram();
sharedShaders->simpleProgram();
never executed: return sharedShaders->simpleProgram();
0
581}-
582-
583void QGLEngineShaderManager::useSimpleProgram()-
584{-
585 sharedShaders->simpleProgram()->bind();-
586 QGLContextPrivate* ctx_d = ctx->d_func();-
587 ctx_d->setVertexAttribArrayEnabled(QT_VERTEX_COORDS_ATTR, true);-
588 ctx_d->setVertexAttribArrayEnabled(QT_TEXTURE_COORDS_ATTR, false);-
589 ctx_d->setVertexAttribArrayEnabled(QT_OPACITY_ATTR, false);-
590 shaderProgNeedsChanging = true;-
591}
executed 6 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
6
592-
593void QGLEngineShaderManager::useBlitProgram()-
594{-
595 sharedShaders->blitProgram()->bind();-
596 QGLContextPrivate* ctx_d = ctx->d_func();-
597 ctx_d->setVertexAttribArrayEnabled(QT_VERTEX_COORDS_ATTR, true);-
598 ctx_d->setVertexAttribArrayEnabled(QT_TEXTURE_COORDS_ATTR, true);-
599 ctx_d->setVertexAttribArrayEnabled(QT_OPACITY_ATTR, false);-
600 shaderProgNeedsChanging = true;-
601}
never executed: end of block
0
602-
603QGLShaderProgram* QGLEngineShaderManager::simpleProgram()-
604{-
605 return
never executed: return sharedShaders->simpleProgram();
sharedShaders->simpleProgram();
never executed: return sharedShaders->simpleProgram();
0
606}-
607-
608QGLShaderProgram* QGLEngineShaderManager::blitProgram()-
609{-
610 return
never executed: return sharedShaders->blitProgram();
sharedShaders->blitProgram();
never executed: return sharedShaders->blitProgram();
0
611}-
612-
613-
614-
615-
616-
617bool QGLEngineShaderManager::useCorrectShaderProg()-
618{-
619 if (!shaderProgNeedsChanging
!shaderProgNeedsChangingDescription
TRUEevaluated 39 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
3-39
620 return
executed 39 times by 1 test: return false;
Executed by:
  • tst_qmdiarea - unknown status
false;
executed 39 times by 1 test: return false;
Executed by:
  • tst_qmdiarea - unknown status
39
621-
622 bool useCustomSrc = customSrcStage != 0;-
623 if (useCustomSrc
useCustomSrcDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& srcPixelType != QGLEngineShaderManager::ImageSrc
srcPixelType !...ager::ImageSrcDescription
TRUEnever evaluated
FALSEnever evaluated
&& srcPixelType != Qt::TexturePattern
srcPixelType !...TexturePatternDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-3
624 useCustomSrc = false;-
625 QMessageLogger(__FILE__, 670, __PRETTY_FUNCTION__).warning("QGLEngineShaderManager - Ignoring custom shader stage for non image src");-
626 }
never executed: end of block
0
627-
628 QGLEngineShaderProg requiredProgram;-
629-
630 bool texCoords = false;-
631-
632-
633-
634 requiredProgram.positionVertexShader = QGLEngineSharedShaders::InvalidSnippetName;-
635 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::InvalidSnippetName;-
636 bool isAffine = brushTransform.isAffine();-
637 if ( (
(srcPixelType ...Dense1Pattern)Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
srcPixelType >= Qt::Dense1Pattern)
(srcPixelType ...Dense1Pattern)Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& (
(srcPixelType ...gCrossPattern)Description
TRUEnever evaluated
FALSEnever evaluated
srcPixelType <= Qt::DiagCrossPattern)
(srcPixelType ...gCrossPattern)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-3
638 if (isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
639 requiredProgram.positionVertexShader = QGLEngineSharedShaders::AffinePositionWithPatternBrushVertexShader;
never executed: requiredProgram.positionVertexShader = QGLEngineSharedShaders::AffinePositionWithPatternBrushVertexShader;
0
640 else-
641 requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionWithPatternBrushVertexShader;
never executed: requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionWithPatternBrushVertexShader;
0
642-
643 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::PatternBrushSrcFragmentShader;-
644 }
never executed: end of block
0
645 else switch (srcPixelType) {-
646 default
never executed: default:
:
never executed: default:
0
647 case
never executed: case Qt::NoBrush:
Qt::NoBrush:
never executed: case Qt::NoBrush:
0
648 QMessageLogger(__FILE__, 693, __PRETTY_FUNCTION__).fatal("QGLEngineShaderManager::useCorrectShaderProg() - Qt::NoBrush style is set");-
649 break;
never executed: break;
0
650 case
never executed: case QGLEngineShaderManager::ImageSrc:
QGLEngineShaderManager::ImageSrc:
never executed: case QGLEngineShaderManager::ImageSrc:
0
651 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::ImageSrcFragmentShader;-
652 requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionOnlyVertexShader;-
653 texCoords = true;-
654 break;
never executed: break;
0
655 case
never executed: case QGLEngineShaderManager::NonPremultipliedImageSrc:
QGLEngineShaderManager::NonPremultipliedImageSrc:
never executed: case QGLEngineShaderManager::NonPremultipliedImageSrc:
0
656 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::NonPremultipliedImageSrcFragmentShader;-
657 requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionOnlyVertexShader;-
658 texCoords = true;-
659 break;
never executed: break;
0
660 case
never executed: case QGLEngineShaderManager::PatternSrc:
QGLEngineShaderManager::PatternSrc:
never executed: case QGLEngineShaderManager::PatternSrc:
0
661 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::ImageSrcWithPatternFragmentShader;-
662 requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionOnlyVertexShader;-
663 texCoords = true;-
664 break;
never executed: break;
0
665 case
never executed: case QGLEngineShaderManager::TextureSrcWithPattern:
QGLEngineShaderManager::TextureSrcWithPattern:
never executed: case QGLEngineShaderManager::TextureSrcWithPattern:
0
666 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::TextureBrushSrcWithPatternFragmentShader;-
667 requiredProgram.positionVertexShader = isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
? QGLEngineSharedShaders::AffinePositionWithTextureBrushVertexShader
0
668 : QGLEngineSharedShaders::PositionWithTextureBrushVertexShader;-
669 break;
never executed: break;
0
670 case
executed 3 times by 1 test: case Qt::SolidPattern:
Executed by:
  • tst_qmdiarea - unknown status
Qt::SolidPattern:
executed 3 times by 1 test: case Qt::SolidPattern:
Executed by:
  • tst_qmdiarea - unknown status
3
671 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::SolidBrushSrcFragmentShader;-
672 requiredProgram.positionVertexShader = QGLEngineSharedShaders::PositionOnlyVertexShader;-
673 break;
executed 3 times by 1 test: break;
Executed by:
  • tst_qmdiarea - unknown status
3
674 case
never executed: case Qt::LinearGradientPattern:
Qt::LinearGradientPattern:
never executed: case Qt::LinearGradientPattern:
0
675 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::LinearGradientBrushSrcFragmentShader;-
676 requiredProgram.positionVertexShader = isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
? QGLEngineSharedShaders::AffinePositionWithLinearGradientBrushVertexShader
0
677 : QGLEngineSharedShaders::PositionWithLinearGradientBrushVertexShader;-
678 break;
never executed: break;
0
679 case
never executed: case Qt::ConicalGradientPattern:
Qt::ConicalGradientPattern:
never executed: case Qt::ConicalGradientPattern:
0
680 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::ConicalGradientBrushSrcFragmentShader;-
681 requiredProgram.positionVertexShader = isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
? QGLEngineSharedShaders::AffinePositionWithConicalGradientBrushVertexShader
0
682 : QGLEngineSharedShaders::PositionWithConicalGradientBrushVertexShader;-
683 break;
never executed: break;
0
684 case
never executed: case Qt::RadialGradientPattern:
Qt::RadialGradientPattern:
never executed: case Qt::RadialGradientPattern:
0
685 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::RadialGradientBrushSrcFragmentShader;-
686 requiredProgram.positionVertexShader = isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
? QGLEngineSharedShaders::AffinePositionWithRadialGradientBrushVertexShader
0
687 : QGLEngineSharedShaders::PositionWithRadialGradientBrushVertexShader;-
688 break;
never executed: break;
0
689 case
never executed: case Qt::TexturePattern:
Qt::TexturePattern:
never executed: case Qt::TexturePattern:
0
690 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::TextureBrushSrcFragmentShader;-
691 requiredProgram.positionVertexShader = isAffine
isAffineDescription
TRUEnever evaluated
FALSEnever evaluated
? QGLEngineSharedShaders::AffinePositionWithTextureBrushVertexShader
0
692 : QGLEngineSharedShaders::PositionWithTextureBrushVertexShader;-
693 break;
never executed: break;
0
694 };-
695-
696 if (useCustomSrc
useCustomSrcDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
697 requiredProgram.srcPixelFragShader = QGLEngineSharedShaders::CustomImageSrcFragmentShader;-
698 requiredProgram.customStageSource = customSrcStage->source();-
699 }
never executed: end of block
0
700-
701 const bool hasCompose = compositionMode > QPainter::CompositionMode_Plus;-
702 const bool hasMask = maskType != QGLEngineShaderManager::NoMask;-
703-
704-
705 if (opacityMode == AttributeOpacity
opacityMode ==...tributeOpacityDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
706 ((!(!hasCompose && !hasMask)) ? qt_assert("!hasCompose && !hasMask",__FILE__,751) : qt_noop());-
707 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_ImageArrays;-
708 }
never executed: end of block
else {
0
709 bool useGlobalOpacity = (opacityMode == UniformOpacity);-
710 if (hasCompose
hasComposeDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& hasMask
hasMaskDescription
TRUEnever evaluated
FALSEnever evaluated
&& useGlobalOpacity
useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
711 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CMO;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CMO;
0
712 if (hasCompose
hasComposeDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& hasMask
hasMaskDescription
TRUEnever evaluated
FALSEnever evaluated
&& !useGlobalOpacity
!useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
713 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CM;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CM;
0
714 if (!hasCompose
!hasComposeDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& hasMask
hasMaskDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& useGlobalOpacity
useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
715 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_MO;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_MO;
0
716 if (!hasCompose
!hasComposeDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& hasMask
hasMaskDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& !useGlobalOpacity
!useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
717 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_M;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_M;
0
718 if (hasCompose
hasComposeDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& !hasMask
!hasMaskDescription
TRUEnever evaluated
FALSEnever evaluated
&& useGlobalOpacity
useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
719 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CO;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_CO;
0
720 if (hasCompose
hasComposeDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& !hasMask
!hasMaskDescription
TRUEnever evaluated
FALSEnever evaluated
&& !useGlobalOpacity
!useGlobalOpacityDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-3
721 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_C;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_C;
0
722 if (!hasCompose
!hasComposeDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& !hasMask
!hasMaskDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& useGlobalOpacity
useGlobalOpacityDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
)
0-3
723 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_O;
never executed: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader_O;
0
724 if (!hasCompose
!hasComposeDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& !hasMask
!hasMaskDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& !useGlobalOpacity
!useGlobalOpacityDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
)
0-3
725 requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader;
executed 3 times by 1 test: requiredProgram.mainFragShader = QGLEngineSharedShaders::MainFragmentShader;
Executed by:
  • tst_qmdiarea - unknown status
3
726 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
727-
728 if (hasMask
hasMaskDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
729 if (maskType == PixelMask
maskType == PixelMaskDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
730 requiredProgram.maskFragShader = QGLEngineSharedShaders::MaskFragmentShader;-
731 texCoords = true;-
732 }
never executed: end of block
else if (maskType == SubPixelMaskPass1
maskType == SubPixelMaskPass1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
733 requiredProgram.maskFragShader = QGLEngineSharedShaders::RgbMaskFragmentShaderPass1;-
734 texCoords = true;-
735 }
never executed: end of block
else if (maskType == SubPixelMaskPass2
maskType == SubPixelMaskPass2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
736 requiredProgram.maskFragShader = QGLEngineSharedShaders::RgbMaskFragmentShaderPass2;-
737 texCoords = true;-
738 }
never executed: end of block
else if (maskType == SubPixelWithGammaMask
maskType == Su...lWithGammaMaskDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
739 requiredProgram.maskFragShader = QGLEngineSharedShaders::RgbMaskWithGammaFragmentShader;-
740 texCoords = true;-
741 }
never executed: end of block
else {
0
742 QMessageLogger(__FILE__, 787, __PRETTY_FUNCTION__).critical("QGLEngineShaderManager::useCorrectShaderProg() - Unknown mask type");-
743 }
never executed: end of block
0
744 } else {-
745 requiredProgram.maskFragShader = QGLEngineSharedShaders::NoMaskFragmentShader;-
746 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
747-
748 if (hasCompose
hasComposeDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
749 switch (compositionMode) {-
750 case
never executed: case QPainter::CompositionMode_Multiply:
QPainter::CompositionMode_Multiply:
never executed: case QPainter::CompositionMode_Multiply:
0
751 requiredProgram.compositionFragShader = QGLEngineSharedShaders::MultiplyCompositionModeFragmentShader;-
752 break;
never executed: break;
0
753 case
never executed: case QPainter::CompositionMode_Screen:
QPainter::CompositionMode_Screen:
never executed: case QPainter::CompositionMode_Screen:
0
754 requiredProgram.compositionFragShader = QGLEngineSharedShaders::ScreenCompositionModeFragmentShader;-
755 break;
never executed: break;
0
756 case
never executed: case QPainter::CompositionMode_Overlay:
QPainter::CompositionMode_Overlay:
never executed: case QPainter::CompositionMode_Overlay:
0
757 requiredProgram.compositionFragShader = QGLEngineSharedShaders::OverlayCompositionModeFragmentShader;-
758 break;
never executed: break;
0
759 case
never executed: case QPainter::CompositionMode_Darken:
QPainter::CompositionMode_Darken:
never executed: case QPainter::CompositionMode_Darken:
0
760 requiredProgram.compositionFragShader = QGLEngineSharedShaders::DarkenCompositionModeFragmentShader;-
761 break;
never executed: break;
0
762 case
never executed: case QPainter::CompositionMode_Lighten:
QPainter::CompositionMode_Lighten:
never executed: case QPainter::CompositionMode_Lighten:
0
763 requiredProgram.compositionFragShader = QGLEngineSharedShaders::LightenCompositionModeFragmentShader;-
764 break;
never executed: break;
0
765 case
never executed: case QPainter::CompositionMode_ColorDodge:
QPainter::CompositionMode_ColorDodge:
never executed: case QPainter::CompositionMode_ColorDodge:
0
766 requiredProgram.compositionFragShader = QGLEngineSharedShaders::ColorDodgeCompositionModeFragmentShader;-
767 break;
never executed: break;
0
768 case
never executed: case QPainter::CompositionMode_ColorBurn:
QPainter::CompositionMode_ColorBurn:
never executed: case QPainter::CompositionMode_ColorBurn:
0
769 requiredProgram.compositionFragShader = QGLEngineSharedShaders::ColorBurnCompositionModeFragmentShader;-
770 break;
never executed: break;
0
771 case
never executed: case QPainter::CompositionMode_HardLight:
QPainter::CompositionMode_HardLight:
never executed: case QPainter::CompositionMode_HardLight:
0
772 requiredProgram.compositionFragShader = QGLEngineSharedShaders::HardLightCompositionModeFragmentShader;-
773 break;
never executed: break;
0
774 case
never executed: case QPainter::CompositionMode_SoftLight:
QPainter::CompositionMode_SoftLight:
never executed: case QPainter::CompositionMode_SoftLight:
0
775 requiredProgram.compositionFragShader = QGLEngineSharedShaders::SoftLightCompositionModeFragmentShader;-
776 break;
never executed: break;
0
777 case
never executed: case QPainter::CompositionMode_Difference:
QPainter::CompositionMode_Difference:
never executed: case QPainter::CompositionMode_Difference:
0
778 requiredProgram.compositionFragShader = QGLEngineSharedShaders::DifferenceCompositionModeFragmentShader;-
779 break;
never executed: break;
0
780 case
never executed: case QPainter::CompositionMode_Exclusion:
QPainter::CompositionMode_Exclusion:
never executed: case QPainter::CompositionMode_Exclusion:
0
781 requiredProgram.compositionFragShader = QGLEngineSharedShaders::ExclusionCompositionModeFragmentShader;-
782 break;
never executed: break;
0
783 default
never executed: default:
:
never executed: default:
0
784 QMessageLogger(__FILE__, 829, __PRETTY_FUNCTION__).warning("QGLEngineShaderManager::useCorrectShaderProg() - Unsupported composition mode");-
785 }
never executed: end of block
0
786 } else {-
787 requiredProgram.compositionFragShader = QGLEngineSharedShaders::NoCompositionModeFragmentShader;-
788 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
789-
790-
791 if (opacityMode == AttributeOpacity
opacityMode ==...tributeOpacityDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
792 ((!(texCoords)) ? qt_assert("texCoords",__FILE__,837) : qt_noop());-
793 requiredProgram.mainVertexShader = QGLEngineSharedShaders::MainWithTexCoordsAndOpacityVertexShader;-
794 }
never executed: end of block
else if (texCoords
texCoordsDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
795 requiredProgram.mainVertexShader = QGLEngineSharedShaders::MainWithTexCoordsVertexShader;-
796 }
never executed: end of block
else {
0
797 requiredProgram.mainVertexShader = QGLEngineSharedShaders::MainVertexShader;-
798 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
799 requiredProgram.useTextureCoords = texCoords;-
800 requiredProgram.useOpacityAttribute = (opacityMode == AttributeOpacity);-
801 if (complexGeometry
complexGeometryDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
&& srcPixelType == Qt::SolidPattern
srcPixelType =...::SolidPatternDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-3
802 requiredProgram.positionVertexShader = QGLEngineSharedShaders::ComplexGeometryPositionOnlyVertexShader;-
803 requiredProgram.usePmvMatrixAttribute = false;-
804 }
never executed: end of block
else {
0
805 requiredProgram.usePmvMatrixAttribute = true;-
806-
807-
808-
809 complexGeometry = false;-
810 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qmdiarea - unknown status
3
811-
812-
813 currentShaderProg = sharedShaders->findProgramInCache(requiredProgram);-
814-
815 if (currentShaderProg
currentShaderProgDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
FALSEnever evaluated
&& useCustomSrc
useCustomSrcDescription
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qmdiarea - unknown status
) {
0-3
816 customSrcStage->setUniforms(currentShaderProg->program);-
817 }
never executed: end of block
0
818-
819-
820-
821 QGLContextPrivate* ctx_d = ctx->d_func();-
822 ctx_d->setVertexAttribArrayEnabled(QT_VERTEX_COORDS_ATTR, true);-
823 ctx_d->setVertexAttribArrayEnabled(QT_TEXTURE_COORDS_ATTR, currentShaderProg && currentShaderProg->useTextureCoords);-
824 ctx_d->setVertexAttribArrayEnabled(QT_OPACITY_ATTR, currentShaderProg && currentShaderProg->useOpacityAttribute);-
825-
826 shaderProgNeedsChanging = false;-
827 return
executed 3 times by 1 test: return true;
Executed by:
  • tst_qmdiarea - unknown status
true;
executed 3 times by 1 test: return true;
Executed by:
  • tst_qmdiarea - unknown status
3
828}-
829-
830-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9