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

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