Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/opengl/qglshaderprogram.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||||||||
3 | class QGLShaderPrivate : public QObjectPrivate | - | ||||||||||||||||||||||||||||||
4 | { | - | ||||||||||||||||||||||||||||||
5 | inline QGLShader* q_func() { return static_cast<QGLShader *>(q_ptr); } inline const QGLShader* q_func() const { return static_cast<const QGLShader *>(q_ptr); } friend class QGLShader; | - | ||||||||||||||||||||||||||||||
6 | public: | - | ||||||||||||||||||||||||||||||
7 | QGLShaderPrivate(const QGLContext *ctx, QGLShader::ShaderType type) | - | ||||||||||||||||||||||||||||||
8 | : shaderGuard(0) | - | ||||||||||||||||||||||||||||||
9 | , shaderType(type) | - | ||||||||||||||||||||||||||||||
10 | , compiled(false) | - | ||||||||||||||||||||||||||||||
11 | , glfuncs(new QOpenGLFunctions(ctx->contextHandle())) | - | ||||||||||||||||||||||||||||||
12 | { | - | ||||||||||||||||||||||||||||||
13 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||||||||
14 | ~QGLShaderPrivate(); | - | ||||||||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||||||||
16 | QGLSharedResourceGuardBase *shaderGuard; | - | ||||||||||||||||||||||||||||||
17 | QGLShader::ShaderType shaderType; | - | ||||||||||||||||||||||||||||||
18 | bool compiled; | - | ||||||||||||||||||||||||||||||
19 | QString log; | - | ||||||||||||||||||||||||||||||
20 | - | |||||||||||||||||||||||||||||||
21 | QOpenGLFunctions *glfuncs; | - | ||||||||||||||||||||||||||||||
22 | - | |||||||||||||||||||||||||||||||
23 | bool create(); | - | ||||||||||||||||||||||||||||||
24 | bool compile(QGLShader *q); | - | ||||||||||||||||||||||||||||||
25 | void deleteShader(); | - | ||||||||||||||||||||||||||||||
26 | }; | - | ||||||||||||||||||||||||||||||
27 | - | |||||||||||||||||||||||||||||||
28 | namespace { | - | ||||||||||||||||||||||||||||||
29 | void freeShaderFunc(QGLContext *ctx, GLuint id) | - | ||||||||||||||||||||||||||||||
30 | { | - | ||||||||||||||||||||||||||||||
31 | ((!(ctx)) ? qt_assert("ctx",__FILE__,223) : qt_noop()); | - | ||||||||||||||||||||||||||||||
32 | ctx->contextHandle()->functions()->glDeleteShader(id); | - | ||||||||||||||||||||||||||||||
33 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
34 | } | - | ||||||||||||||||||||||||||||||
35 | - | |||||||||||||||||||||||||||||||
36 | - | |||||||||||||||||||||||||||||||
37 | - | |||||||||||||||||||||||||||||||
38 | QGLShaderPrivate::~QGLShaderPrivate() | - | ||||||||||||||||||||||||||||||
39 | { | - | ||||||||||||||||||||||||||||||
40 | delete glfuncs; | - | ||||||||||||||||||||||||||||||
41 | if (shaderGuard
| 0-6 | ||||||||||||||||||||||||||||||
42 | shaderGuard->free(); executed 6 times by 1 test: shaderGuard->free(); Executed by:
| 6 | ||||||||||||||||||||||||||||||
43 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||||||||
45 | bool QGLShaderPrivate::create() | - | ||||||||||||||||||||||||||||||
46 | { | - | ||||||||||||||||||||||||||||||
47 | QGLContext *context = const_cast<QGLContext *>(QGLContext::currentContext()); | - | ||||||||||||||||||||||||||||||
48 | if (!context
| 0-6 | ||||||||||||||||||||||||||||||
49 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
50 | - | |||||||||||||||||||||||||||||||
51 | if (glfuncs->hasOpenGLFeature(QOpenGLFunctions::Shaders)
| 0-6 | ||||||||||||||||||||||||||||||
52 | GLuint shader; | - | ||||||||||||||||||||||||||||||
53 | if (shaderType == QGLShader::Vertex
| 3 | ||||||||||||||||||||||||||||||
54 | shader = glfuncs->glCreateShader(0x8B31); executed 3 times by 1 test: shader = glfuncs->glCreateShader(0x8B31); Executed by:
| 3 | ||||||||||||||||||||||||||||||
55 | - | |||||||||||||||||||||||||||||||
56 | else if (shaderType == QGLShader::Geometry
| 0-3 | ||||||||||||||||||||||||||||||
57 | && !context->contextHandle()->isOpenGLES()
| 0 | ||||||||||||||||||||||||||||||
58 | shader = glfuncs->glCreateShader(0x8DD9); never executed: shader = glfuncs->glCreateShader(0x8DD9); | 0 | ||||||||||||||||||||||||||||||
59 | - | |||||||||||||||||||||||||||||||
60 | else | - | ||||||||||||||||||||||||||||||
61 | shader = glfuncs->glCreateShader(0x8B30); executed 3 times by 1 test: shader = glfuncs->glCreateShader(0x8B30); Executed by:
| 3 | ||||||||||||||||||||||||||||||
62 | if (!shader
| 0-6 | ||||||||||||||||||||||||||||||
63 | QMessageLogger(__FILE__, 255, __PRETTY_FUNCTION__).warning("Could not create shader of type %d.", int(shaderType)); | - | ||||||||||||||||||||||||||||||
64 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
65 | } | - | ||||||||||||||||||||||||||||||
66 | shaderGuard = createSharedResourceGuard(context, shader, freeShaderFunc); | - | ||||||||||||||||||||||||||||||
67 | return executed 6 times by 1 test: true;return true; Executed by:
executed 6 times by 1 test: return true; Executed by:
| 6 | ||||||||||||||||||||||||||||||
68 | } else { | - | ||||||||||||||||||||||||||||||
69 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
70 | } | - | ||||||||||||||||||||||||||||||
71 | } | - | ||||||||||||||||||||||||||||||
72 | - | |||||||||||||||||||||||||||||||
73 | bool QGLShaderPrivate::compile(QGLShader *q) | - | ||||||||||||||||||||||||||||||
74 | { | - | ||||||||||||||||||||||||||||||
75 | GLuint shader = shaderGuard
| 0-6 | ||||||||||||||||||||||||||||||
76 | if (!shader
| 0-6 | ||||||||||||||||||||||||||||||
77 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
78 | glfuncs->glCompileShader(shader); | - | ||||||||||||||||||||||||||||||
79 | GLint value = 0; | - | ||||||||||||||||||||||||||||||
80 | glfuncs->glGetShaderiv(shader, 0x8B81, &value); | - | ||||||||||||||||||||||||||||||
81 | compiled = (value != 0); | - | ||||||||||||||||||||||||||||||
82 | value = 0; | - | ||||||||||||||||||||||||||||||
83 | glfuncs->glGetShaderiv(shader, 0x8B84, &value); | - | ||||||||||||||||||||||||||||||
84 | if (!compiled
| 0-6 | ||||||||||||||||||||||||||||||
85 | char *logbuf = new char [value]; | - | ||||||||||||||||||||||||||||||
86 | GLint len; | - | ||||||||||||||||||||||||||||||
87 | glfuncs->glGetShaderInfoLog(shader, value, &len, logbuf); | - | ||||||||||||||||||||||||||||||
88 | log = QString::fromLatin1(logbuf); | - | ||||||||||||||||||||||||||||||
89 | QString name = q->objectName(); | - | ||||||||||||||||||||||||||||||
90 | - | |||||||||||||||||||||||||||||||
91 | const char *types[] = { | - | ||||||||||||||||||||||||||||||
92 | "Fragment", | - | ||||||||||||||||||||||||||||||
93 | "Vertex", | - | ||||||||||||||||||||||||||||||
94 | "Geometry", | - | ||||||||||||||||||||||||||||||
95 | "" | - | ||||||||||||||||||||||||||||||
96 | }; | - | ||||||||||||||||||||||||||||||
97 | - | |||||||||||||||||||||||||||||||
98 | const char *type = types[3]; | - | ||||||||||||||||||||||||||||||
99 | if (shaderType == QGLShader::Fragment
| 0 | ||||||||||||||||||||||||||||||
100 | type = types[0]; never executed: type = types[0]; | 0 | ||||||||||||||||||||||||||||||
101 | else if (shaderType == QGLShader::Vertex
| 0 | ||||||||||||||||||||||||||||||
102 | type = types[1]; never executed: type = types[1]; | 0 | ||||||||||||||||||||||||||||||
103 | else if (shaderType == QGLShader::Geometry
| 0 | ||||||||||||||||||||||||||||||
104 | type = types[2]; never executed: type = types[2]; | 0 | ||||||||||||||||||||||||||||||
105 | - | |||||||||||||||||||||||||||||||
106 | if (name.isEmpty()
| 0 | ||||||||||||||||||||||||||||||
107 | QMessageLogger(__FILE__, 299, __PRETTY_FUNCTION__).warning("QGLShader::compile(%s): %s", type, QString(log).toLocal8Bit().constData()); never executed: QMessageLogger(__FILE__, 299, __PRETTY_FUNCTION__).warning("QGLShader::compile(%s): %s", type, QString(log).toLocal8Bit().constData()); | 0 | ||||||||||||||||||||||||||||||
108 | else | - | ||||||||||||||||||||||||||||||
109 | QMessageLogger(__FILE__, 301, __PRETTY_FUNCTION__).warning("QGLShader::compile(%s)[%s]: %s", type, QString(name).toLocal8Bit().constData(), QString(log).toLocal8Bit().constData()); never executed: QMessageLogger(__FILE__, 301, __PRETTY_FUNCTION__).warning("QGLShader::compile(%s)[%s]: %s", type, QString(name).toLocal8Bit().constData(), QString(log).toLocal8Bit().constData()); | 0 | ||||||||||||||||||||||||||||||
110 | - | |||||||||||||||||||||||||||||||
111 | delete [] logbuf; | - | ||||||||||||||||||||||||||||||
112 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
113 | return executed 6 times by 1 test: compiled;return compiled; Executed by:
executed 6 times by 1 test: return compiled; Executed by:
| 6 | ||||||||||||||||||||||||||||||
114 | } | - | ||||||||||||||||||||||||||||||
115 | - | |||||||||||||||||||||||||||||||
116 | void QGLShaderPrivate::deleteShader() | - | ||||||||||||||||||||||||||||||
117 | { | - | ||||||||||||||||||||||||||||||
118 | if (shaderGuard
| 0 | ||||||||||||||||||||||||||||||
119 | shaderGuard->free(); | - | ||||||||||||||||||||||||||||||
120 | shaderGuard = 0; | - | ||||||||||||||||||||||||||||||
121 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
122 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
123 | QGLShader::QGLShader(QGLShader::ShaderType type, QObject *parent) | - | ||||||||||||||||||||||||||||||
124 | : QObject(*new QGLShaderPrivate(QGLContext::currentContext(), type), parent) | - | ||||||||||||||||||||||||||||||
125 | { | - | ||||||||||||||||||||||||||||||
126 | QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
127 | d->create(); | - | ||||||||||||||||||||||||||||||
128 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||||||||||||||||||||
129 | QGLShader::QGLShader(QGLShader::ShaderType type, const QGLContext *context, QObject *parent) | - | ||||||||||||||||||||||||||||||
130 | : QObject(*new QGLShaderPrivate(context ? context : QGLContext::currentContext(), type), parent) | - | ||||||||||||||||||||||||||||||
131 | { | - | ||||||||||||||||||||||||||||||
132 | QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
133 | - | |||||||||||||||||||||||||||||||
134 | if (context
| 0-4 | ||||||||||||||||||||||||||||||
135 | QMessageLogger(__FILE__, 353, __PRETTY_FUNCTION__).warning("QGLShader::QGLShader: \'context\' must be the current context or sharing with it."); | - | ||||||||||||||||||||||||||||||
136 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||
137 | } | - | ||||||||||||||||||||||||||||||
138 | - | |||||||||||||||||||||||||||||||
139 | d->create(); | - | ||||||||||||||||||||||||||||||
140 | } executed 4 times by 1 test: end of block Executed by:
| 4 | ||||||||||||||||||||||||||||||
141 | - | |||||||||||||||||||||||||||||||
142 | - | |||||||||||||||||||||||||||||||
143 | - | |||||||||||||||||||||||||||||||
144 | - | |||||||||||||||||||||||||||||||
145 | - | |||||||||||||||||||||||||||||||
146 | - | |||||||||||||||||||||||||||||||
147 | QGLShader::~QGLShader() | - | ||||||||||||||||||||||||||||||
148 | { | - | ||||||||||||||||||||||||||||||
149 | } | - | ||||||||||||||||||||||||||||||
150 | - | |||||||||||||||||||||||||||||||
151 | - | |||||||||||||||||||||||||||||||
152 | - | |||||||||||||||||||||||||||||||
153 | - | |||||||||||||||||||||||||||||||
154 | QGLShader::ShaderType QGLShader::shaderType() const | - | ||||||||||||||||||||||||||||||
155 | { | - | ||||||||||||||||||||||||||||||
156 | const QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
157 | return executed 6 times by 1 test: d->shaderType;return d->shaderType; Executed by:
executed 6 times by 1 test: return d->shaderType; Executed by:
| 6 | ||||||||||||||||||||||||||||||
158 | } | - | ||||||||||||||||||||||||||||||
159 | - | |||||||||||||||||||||||||||||||
160 | - | |||||||||||||||||||||||||||||||
161 | - | |||||||||||||||||||||||||||||||
162 | - | |||||||||||||||||||||||||||||||
163 | - | |||||||||||||||||||||||||||||||
164 | - | |||||||||||||||||||||||||||||||
165 | static const char qualifierDefines[] = | - | ||||||||||||||||||||||||||||||
166 | "#define lowp\n" | - | ||||||||||||||||||||||||||||||
167 | "#define mediump\n" | - | ||||||||||||||||||||||||||||||
168 | "#define highp\n"; | - | ||||||||||||||||||||||||||||||
169 | bool QGLShader::compileSourceCode(const char *source) | - | ||||||||||||||||||||||||||||||
170 | { | - | ||||||||||||||||||||||||||||||
171 | QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
172 | if (d->shaderGuard
| 0-6 | ||||||||||||||||||||||||||||||
173 | QVarLengthArray<const char *, 4> src; | - | ||||||||||||||||||||||||||||||
174 | QVarLengthArray<GLint, 4> srclen; | - | ||||||||||||||||||||||||||||||
175 | int headerLen = 0; | - | ||||||||||||||||||||||||||||||
176 | while (source
| 0-6 | ||||||||||||||||||||||||||||||
177 | - | |||||||||||||||||||||||||||||||
178 | - | |||||||||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||||||||
180 | if (qstrncmp(source + headerLen, "#version", 8) != 0
| 0 | ||||||||||||||||||||||||||||||
181 | qstrncmp(source + headerLen, "#extension", 10) != 0
| 0 | ||||||||||||||||||||||||||||||
182 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
183 | } | - | ||||||||||||||||||||||||||||||
184 | while (source[headerLen] != '\0'
| 0 | ||||||||||||||||||||||||||||||
185 | ++ never executed: headerLen;++headerLen; never executed: ++headerLen; | 0 | ||||||||||||||||||||||||||||||
186 | if (source[headerLen] == '\n'
| 0 | ||||||||||||||||||||||||||||||
187 | ++ never executed: headerLen;++headerLen; never executed: ++headerLen; | 0 | ||||||||||||||||||||||||||||||
188 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
189 | if (headerLen > 0
| 0-6 | ||||||||||||||||||||||||||||||
190 | src.append(source); | - | ||||||||||||||||||||||||||||||
191 | srclen.append(GLint(headerLen)); | - | ||||||||||||||||||||||||||||||
192 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
193 | - | |||||||||||||||||||||||||||||||
194 | if (!QOpenGLContext::currentContext()->isOpenGLES()
| 0-6 | ||||||||||||||||||||||||||||||
195 | src.append(qualifierDefines); | - | ||||||||||||||||||||||||||||||
196 | srclen.append(GLint(sizeof(qualifierDefines) - 1)); | - | ||||||||||||||||||||||||||||||
197 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||||||||
198 | src.append(source + headerLen); | - | ||||||||||||||||||||||||||||||
199 | srclen.append(GLint(qstrlen(source + headerLen))); | - | ||||||||||||||||||||||||||||||
200 | d->glfuncs->glShaderSource(d->shaderGuard->id(), src.size(), src.data(), srclen.data()); | - | ||||||||||||||||||||||||||||||
201 | return executed 6 times by 1 test: d->compile(this);return d->compile(this); Executed by:
executed 6 times by 1 test: return d->compile(this); Executed by:
| 6 | ||||||||||||||||||||||||||||||
202 | } else { | - | ||||||||||||||||||||||||||||||
203 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
204 | } | - | ||||||||||||||||||||||||||||||
205 | } | - | ||||||||||||||||||||||||||||||
206 | bool QGLShader::compileSourceCode(const QByteArray& source) | - | ||||||||||||||||||||||||||||||
207 | { | - | ||||||||||||||||||||||||||||||
208 | return executed 6 times by 1 test: compileSourceCode(source.constData());return compileSourceCode(source.constData()); Executed by:
executed 6 times by 1 test: return compileSourceCode(source.constData()); Executed by:
| 6 | ||||||||||||||||||||||||||||||
209 | } | - | ||||||||||||||||||||||||||||||
210 | bool QGLShader::compileSourceCode(const QString& source) | - | ||||||||||||||||||||||||||||||
211 | { | - | ||||||||||||||||||||||||||||||
212 | return never executed: compileSourceCode(source.toLatin1().constData());return compileSourceCode(source.toLatin1().constData()); never executed: return compileSourceCode(source.toLatin1().constData()); | 0 | ||||||||||||||||||||||||||||||
213 | } | - | ||||||||||||||||||||||||||||||
214 | bool QGLShader::compileSourceFile(const QString& fileName) | - | ||||||||||||||||||||||||||||||
215 | { | - | ||||||||||||||||||||||||||||||
216 | QFile file(fileName); | - | ||||||||||||||||||||||||||||||
217 | if (!file.open(QFile::ReadOnly)
| 0 | ||||||||||||||||||||||||||||||
218 | QMessageLogger(__FILE__, 488, __PRETTY_FUNCTION__).warning() << "QGLShader: Unable to open file" << fileName; | - | ||||||||||||||||||||||||||||||
219 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
220 | } | - | ||||||||||||||||||||||||||||||
221 | - | |||||||||||||||||||||||||||||||
222 | QByteArray contents = file.readAll(); | - | ||||||||||||||||||||||||||||||
223 | return never executed: compileSourceCode(contents.constData());return compileSourceCode(contents.constData()); never executed: return compileSourceCode(contents.constData()); | 0 | ||||||||||||||||||||||||||||||
224 | } | - | ||||||||||||||||||||||||||||||
225 | - | |||||||||||||||||||||||||||||||
226 | - | |||||||||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||||||||
228 | - | |||||||||||||||||||||||||||||||
229 | - | |||||||||||||||||||||||||||||||
230 | - | |||||||||||||||||||||||||||||||
231 | QByteArray QGLShader::sourceCode() const | - | ||||||||||||||||||||||||||||||
232 | { | - | ||||||||||||||||||||||||||||||
233 | const QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
234 | GLuint shader = d->shaderGuard
| 0 | ||||||||||||||||||||||||||||||
235 | if (!shader
| 0 | ||||||||||||||||||||||||||||||
236 | return never executed: QByteArray();return QByteArray(); never executed: return QByteArray(); | 0 | ||||||||||||||||||||||||||||||
237 | GLint size = 0; | - | ||||||||||||||||||||||||||||||
238 | d->glfuncs->glGetShaderiv(shader, 0x8B88, &size); | - | ||||||||||||||||||||||||||||||
239 | if (size <= 0
| 0 | ||||||||||||||||||||||||||||||
240 | return never executed: QByteArray();return QByteArray(); never executed: return QByteArray(); | 0 | ||||||||||||||||||||||||||||||
241 | GLint len = 0; | - | ||||||||||||||||||||||||||||||
242 | char *source = new char [size]; | - | ||||||||||||||||||||||||||||||
243 | d->glfuncs->glGetShaderSource(shader, size, &len, source); | - | ||||||||||||||||||||||||||||||
244 | QByteArray src(source); | - | ||||||||||||||||||||||||||||||
245 | delete [] source; | - | ||||||||||||||||||||||||||||||
246 | return never executed: src;return src; never executed: return src; | 0 | ||||||||||||||||||||||||||||||
247 | } | - | ||||||||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||||||||
249 | - | |||||||||||||||||||||||||||||||
250 | - | |||||||||||||||||||||||||||||||
251 | - | |||||||||||||||||||||||||||||||
252 | - | |||||||||||||||||||||||||||||||
253 | - | |||||||||||||||||||||||||||||||
254 | bool QGLShader::isCompiled() const | - | ||||||||||||||||||||||||||||||
255 | { | - | ||||||||||||||||||||||||||||||
256 | const QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
257 | return never executed: d->compiled;return d->compiled; never executed: return d->compiled; | 0 | ||||||||||||||||||||||||||||||
258 | } | - | ||||||||||||||||||||||||||||||
259 | - | |||||||||||||||||||||||||||||||
260 | - | |||||||||||||||||||||||||||||||
261 | - | |||||||||||||||||||||||||||||||
262 | - | |||||||||||||||||||||||||||||||
263 | - | |||||||||||||||||||||||||||||||
264 | - | |||||||||||||||||||||||||||||||
265 | QString QGLShader::log() const | - | ||||||||||||||||||||||||||||||
266 | { | - | ||||||||||||||||||||||||||||||
267 | const QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
268 | return never executed: d->log;return d->log; never executed: return d->log; | 0 | ||||||||||||||||||||||||||||||
269 | } | - | ||||||||||||||||||||||||||||||
270 | - | |||||||||||||||||||||||||||||||
271 | - | |||||||||||||||||||||||||||||||
272 | - | |||||||||||||||||||||||||||||||
273 | - | |||||||||||||||||||||||||||||||
274 | - | |||||||||||||||||||||||||||||||
275 | - | |||||||||||||||||||||||||||||||
276 | GLuint QGLShader::shaderId() const | - | ||||||||||||||||||||||||||||||
277 | { | - | ||||||||||||||||||||||||||||||
278 | const QGLShaderPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
279 | return never executed: d->shaderGuard ? d->shaderGuard->id() : 0;return d->shaderGuard ? d->shaderGuard->id() : 0; never executed: return d->shaderGuard ? d->shaderGuard->id() : 0; | 0 | ||||||||||||||||||||||||||||||
280 | } | - | ||||||||||||||||||||||||||||||
281 | - | |||||||||||||||||||||||||||||||
282 | - | |||||||||||||||||||||||||||||||
283 | - | |||||||||||||||||||||||||||||||
284 | class ShaderProgramOpenGLFunctions : public QOpenGLFunctions | - | ||||||||||||||||||||||||||||||
285 | { | - | ||||||||||||||||||||||||||||||
286 | public: | - | ||||||||||||||||||||||||||||||
287 | ShaderProgramOpenGLFunctions() | - | ||||||||||||||||||||||||||||||
288 | : QOpenGLFunctions() | - | ||||||||||||||||||||||||||||||
289 | , glProgramParameteri(0) | - | ||||||||||||||||||||||||||||||
290 | { | - | ||||||||||||||||||||||||||||||
291 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
292 | - | |||||||||||||||||||||||||||||||
293 | typedef void ( * type_glProgramParameteri)(GLuint program, GLenum pname, GLint value); | - | ||||||||||||||||||||||||||||||
294 | - | |||||||||||||||||||||||||||||||
295 | void initializeGeometryShaderFunctions() | - | ||||||||||||||||||||||||||||||
296 | { | - | ||||||||||||||||||||||||||||||
297 | QOpenGLContext *context = QOpenGLContext::currentContext(); | - | ||||||||||||||||||||||||||||||
298 | if (!context->isOpenGLES()
| 0-3 | ||||||||||||||||||||||||||||||
299 | glProgramParameteri = (type_glProgramParameteri) | - | ||||||||||||||||||||||||||||||
300 | context->getProcAddress("glProgramParameteri"); | - | ||||||||||||||||||||||||||||||
301 | - | |||||||||||||||||||||||||||||||
302 | if (!glProgramParameteri
| 0-3 | ||||||||||||||||||||||||||||||
303 | glProgramParameteri = (type_glProgramParameteri) | - | ||||||||||||||||||||||||||||||
304 | context->getProcAddress("glProgramParameteriEXT"); | - | ||||||||||||||||||||||||||||||
305 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
306 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
307 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
308 | - | |||||||||||||||||||||||||||||||
309 | type_glProgramParameteri glProgramParameteri; | - | ||||||||||||||||||||||||||||||
310 | }; | - | ||||||||||||||||||||||||||||||
311 | - | |||||||||||||||||||||||||||||||
312 | class QGLShaderProgramPrivate : public QObjectPrivate | - | ||||||||||||||||||||||||||||||
313 | { | - | ||||||||||||||||||||||||||||||
314 | inline QGLShaderProgram* q_func() { return static_cast<QGLShaderProgram *>(q_ptr); } inline const QGLShaderProgram* q_func() const { return static_cast<const QGLShaderProgram *>(q_ptr); } friend class QGLShaderProgram; | - | ||||||||||||||||||||||||||||||
315 | public: | - | ||||||||||||||||||||||||||||||
316 | QGLShaderProgramPrivate(const QGLContext *) | - | ||||||||||||||||||||||||||||||
317 | : programGuard(0) | - | ||||||||||||||||||||||||||||||
318 | , linked(false) | - | ||||||||||||||||||||||||||||||
319 | , inited(false) | - | ||||||||||||||||||||||||||||||
320 | , removingShaders(false) | - | ||||||||||||||||||||||||||||||
321 | , geometryVertexCount(64) | - | ||||||||||||||||||||||||||||||
322 | , geometryInputType(0) | - | ||||||||||||||||||||||||||||||
323 | , geometryOutputType(0) | - | ||||||||||||||||||||||||||||||
324 | , glfuncs(new ShaderProgramOpenGLFunctions) | - | ||||||||||||||||||||||||||||||
325 | { | - | ||||||||||||||||||||||||||||||
326 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
327 | ~QGLShaderProgramPrivate(); | - | ||||||||||||||||||||||||||||||
328 | - | |||||||||||||||||||||||||||||||
329 | QGLSharedResourceGuardBase *programGuard; | - | ||||||||||||||||||||||||||||||
330 | bool linked; | - | ||||||||||||||||||||||||||||||
331 | bool inited; | - | ||||||||||||||||||||||||||||||
332 | bool removingShaders; | - | ||||||||||||||||||||||||||||||
333 | - | |||||||||||||||||||||||||||||||
334 | int geometryVertexCount; | - | ||||||||||||||||||||||||||||||
335 | GLenum geometryInputType; | - | ||||||||||||||||||||||||||||||
336 | GLenum geometryOutputType; | - | ||||||||||||||||||||||||||||||
337 | - | |||||||||||||||||||||||||||||||
338 | QString log; | - | ||||||||||||||||||||||||||||||
339 | QList<QGLShader *> shaders; | - | ||||||||||||||||||||||||||||||
340 | QList<QGLShader *> anonShaders; | - | ||||||||||||||||||||||||||||||
341 | - | |||||||||||||||||||||||||||||||
342 | ShaderProgramOpenGLFunctions *glfuncs; | - | ||||||||||||||||||||||||||||||
343 | - | |||||||||||||||||||||||||||||||
344 | bool hasShader(QGLShader::ShaderType type) const; | - | ||||||||||||||||||||||||||||||
345 | }; | - | ||||||||||||||||||||||||||||||
346 | - | |||||||||||||||||||||||||||||||
347 | namespace { | - | ||||||||||||||||||||||||||||||
348 | void freeProgramFunc(QGLContext *ctx, GLuint id) | - | ||||||||||||||||||||||||||||||
349 | { | - | ||||||||||||||||||||||||||||||
350 | ((!(ctx)) ? qt_assert("ctx",__FILE__,620) : qt_noop()); | - | ||||||||||||||||||||||||||||||
351 | ctx->contextHandle()->functions()->glDeleteProgram(id); | - | ||||||||||||||||||||||||||||||
352 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
353 | } | - | ||||||||||||||||||||||||||||||
354 | - | |||||||||||||||||||||||||||||||
355 | - | |||||||||||||||||||||||||||||||
356 | QGLShaderProgramPrivate::~QGLShaderProgramPrivate() | - | ||||||||||||||||||||||||||||||
357 | { | - | ||||||||||||||||||||||||||||||
358 | delete glfuncs; | - | ||||||||||||||||||||||||||||||
359 | if (programGuard
| 0-3 | ||||||||||||||||||||||||||||||
360 | programGuard->free(); executed 3 times by 1 test: programGuard->free(); Executed by:
| 3 | ||||||||||||||||||||||||||||||
361 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
362 | - | |||||||||||||||||||||||||||||||
363 | bool QGLShaderProgramPrivate::hasShader(QGLShader::ShaderType type) const | - | ||||||||||||||||||||||||||||||
364 | { | - | ||||||||||||||||||||||||||||||
365 | for (QGLShader *shader : shaders) { | - | ||||||||||||||||||||||||||||||
366 | if (shader->shaderType() == type
| 0 | ||||||||||||||||||||||||||||||
367 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||||||||
368 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
369 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
370 | } | - | ||||||||||||||||||||||||||||||
371 | QGLShaderProgram::QGLShaderProgram(QObject *parent) | - | ||||||||||||||||||||||||||||||
372 | : QObject(*new QGLShaderProgramPrivate(QGLContext::currentContext()), parent) | - | ||||||||||||||||||||||||||||||
373 | { | - | ||||||||||||||||||||||||||||||
374 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||||||||||||||
375 | QGLShaderProgram::QGLShaderProgram(const QGLContext *context, QObject *parent) | - | ||||||||||||||||||||||||||||||
376 | : QObject(*new QGLShaderProgramPrivate(context), parent) | - | ||||||||||||||||||||||||||||||
377 | { | - | ||||||||||||||||||||||||||||||
378 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||||||||||||||||||||
379 | - | |||||||||||||||||||||||||||||||
380 | - | |||||||||||||||||||||||||||||||
381 | - | |||||||||||||||||||||||||||||||
382 | - | |||||||||||||||||||||||||||||||
383 | QGLShaderProgram::~QGLShaderProgram() | - | ||||||||||||||||||||||||||||||
384 | { | - | ||||||||||||||||||||||||||||||
385 | } | - | ||||||||||||||||||||||||||||||
386 | - | |||||||||||||||||||||||||||||||
387 | bool QGLShaderProgram::init() | - | ||||||||||||||||||||||||||||||
388 | { | - | ||||||||||||||||||||||||||||||
389 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
390 | if ((d->programGuard
| 0-13 | ||||||||||||||||||||||||||||||
391 | return executed 13 times by 1 test: true;return true; Executed by:
executed 13 times by 1 test: return true; Executed by:
| 13 | ||||||||||||||||||||||||||||||
392 | d->inited = true; | - | ||||||||||||||||||||||||||||||
393 | QGLContext *context = const_cast<QGLContext *>(QGLContext::currentContext()); | - | ||||||||||||||||||||||||||||||
394 | if (!context
| 0-3 | ||||||||||||||||||||||||||||||
395 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
396 | d->glfuncs->initializeOpenGLFunctions(); | - | ||||||||||||||||||||||||||||||
397 | d->glfuncs->initializeGeometryShaderFunctions(); | - | ||||||||||||||||||||||||||||||
398 | if (d->glfuncs->hasOpenGLFeature(QOpenGLFunctions::Shaders)
| 0-3 | ||||||||||||||||||||||||||||||
399 | GLuint program = d->glfuncs->glCreateProgram(); | - | ||||||||||||||||||||||||||||||
400 | if (!program
| 0-3 | ||||||||||||||||||||||||||||||
401 | QMessageLogger(__FILE__, 691, __PRETTY_FUNCTION__).warning("QGLShaderProgram: could not create shader program"); | - | ||||||||||||||||||||||||||||||
402 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
403 | } | - | ||||||||||||||||||||||||||||||
404 | if (d->programGuard
| 0-3 | ||||||||||||||||||||||||||||||
405 | delete d->programGuard; never executed: delete d->programGuard; | 0 | ||||||||||||||||||||||||||||||
406 | d->programGuard = createSharedResourceGuard(context, program, freeProgramFunc); | - | ||||||||||||||||||||||||||||||
407 | return executed 3 times by 1 test: true;return true; Executed by:
executed 3 times by 1 test: return true; Executed by:
| 3 | ||||||||||||||||||||||||||||||
408 | } else { | - | ||||||||||||||||||||||||||||||
409 | QMessageLogger(__FILE__, 699, __PRETTY_FUNCTION__).warning("QGLShaderProgram: shader programs are not supported"); | - | ||||||||||||||||||||||||||||||
410 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
411 | } | - | ||||||||||||||||||||||||||||||
412 | } | - | ||||||||||||||||||||||||||||||
413 | bool QGLShaderProgram::addShader(QGLShader *shader) | - | ||||||||||||||||||||||||||||||
414 | { | - | ||||||||||||||||||||||||||||||
415 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
416 | if (!init()
| 0-6 | ||||||||||||||||||||||||||||||
417 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
418 | if (d->shaders.contains(shader)
| 0-6 | ||||||||||||||||||||||||||||||
419 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||||||||
420 | if (d->programGuard
| 0-6 | ||||||||||||||||||||||||||||||
421 | if (!shader->d_func()->shaderGuard
| 0-6 | ||||||||||||||||||||||||||||||
422 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
423 | if (d->programGuard->group() != shader->d_func()->shaderGuard->group()
| 0-6 | ||||||||||||||||||||||||||||||
424 | QMessageLogger(__FILE__, 727, __PRETTY_FUNCTION__).warning("QGLShaderProgram::addShader: Program and shader are not associated with same context."); | - | ||||||||||||||||||||||||||||||
425 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
426 | } | - | ||||||||||||||||||||||||||||||
427 | d->glfuncs->glAttachShader(d->programGuard->id(), shader->d_func()->shaderGuard->id()); | - | ||||||||||||||||||||||||||||||
428 | d->linked = false; | - | ||||||||||||||||||||||||||||||
429 | d->shaders.append(shader); | - | ||||||||||||||||||||||||||||||
430 | connect(shader, qFlagLocation("2""destroyed()" "\0" __FILE__ ":" "733"), this, qFlagLocation("1""shaderDestroyed()" "\0" __FILE__ ":" "733")); | - | ||||||||||||||||||||||||||||||
431 | return executed 6 times by 1 test: true;return true; Executed by:
executed 6 times by 1 test: return true; Executed by:
| 6 | ||||||||||||||||||||||||||||||
432 | } else { | - | ||||||||||||||||||||||||||||||
433 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
434 | } | - | ||||||||||||||||||||||||||||||
435 | } | - | ||||||||||||||||||||||||||||||
436 | bool QGLShaderProgram::addShaderFromSourceCode(QGLShader::ShaderType type, const char *source) | - | ||||||||||||||||||||||||||||||
437 | { | - | ||||||||||||||||||||||||||||||
438 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
439 | if (!init()
| 0 | ||||||||||||||||||||||||||||||
440 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
441 | QGLShader *shader = new QGLShader(type, this); | - | ||||||||||||||||||||||||||||||
442 | if (!shader->compileSourceCode(source)
| 0 | ||||||||||||||||||||||||||||||
443 | d->log = shader->log(); | - | ||||||||||||||||||||||||||||||
444 | delete shader; | - | ||||||||||||||||||||||||||||||
445 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
446 | } | - | ||||||||||||||||||||||||||||||
447 | d->anonShaders.append(shader); | - | ||||||||||||||||||||||||||||||
448 | return never executed: addShader(shader);return addShader(shader); never executed: return addShader(shader); | 0 | ||||||||||||||||||||||||||||||
449 | } | - | ||||||||||||||||||||||||||||||
450 | bool QGLShaderProgram::addShaderFromSourceCode(QGLShader::ShaderType type, const QByteArray& source) | - | ||||||||||||||||||||||||||||||
451 | { | - | ||||||||||||||||||||||||||||||
452 | return never executed: addShaderFromSourceCode(type, source.constData());return addShaderFromSourceCode(type, source.constData()); never executed: return addShaderFromSourceCode(type, source.constData()); | 0 | ||||||||||||||||||||||||||||||
453 | } | - | ||||||||||||||||||||||||||||||
454 | bool QGLShaderProgram::addShaderFromSourceCode(QGLShader::ShaderType type, const QString& source) | - | ||||||||||||||||||||||||||||||
455 | { | - | ||||||||||||||||||||||||||||||
456 | return never executed: addShaderFromSourceCode(type, source.toLatin1().constData());return addShaderFromSourceCode(type, source.toLatin1().constData()); never executed: return addShaderFromSourceCode(type, source.toLatin1().constData()); | 0 | ||||||||||||||||||||||||||||||
457 | } | - | ||||||||||||||||||||||||||||||
458 | bool QGLShaderProgram::addShaderFromSourceFile | - | ||||||||||||||||||||||||||||||
459 | (QGLShader::ShaderType type, const QString& fileName) | - | ||||||||||||||||||||||||||||||
460 | { | - | ||||||||||||||||||||||||||||||
461 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
462 | if (!init()
| 0 | ||||||||||||||||||||||||||||||
463 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
464 | QGLShader *shader = new QGLShader(type, this); | - | ||||||||||||||||||||||||||||||
465 | if (!shader->compileSourceFile(fileName)
| 0 | ||||||||||||||||||||||||||||||
466 | d->log = shader->log(); | - | ||||||||||||||||||||||||||||||
467 | delete shader; | - | ||||||||||||||||||||||||||||||
468 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
469 | } | - | ||||||||||||||||||||||||||||||
470 | d->anonShaders.append(shader); | - | ||||||||||||||||||||||||||||||
471 | return never executed: addShader(shader);return addShader(shader); never executed: return addShader(shader); | 0 | ||||||||||||||||||||||||||||||
472 | } | - | ||||||||||||||||||||||||||||||
473 | void QGLShaderProgram::removeShader(QGLShader *shader) | - | ||||||||||||||||||||||||||||||
474 | { | - | ||||||||||||||||||||||||||||||
475 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
476 | if (d->programGuard
| 0 | ||||||||||||||||||||||||||||||
477 | && shader
| 0 | ||||||||||||||||||||||||||||||
478 | { | - | ||||||||||||||||||||||||||||||
479 | d->glfuncs->glDetachShader(d->programGuard->id(), shader->d_func()->shaderGuard->id()); | - | ||||||||||||||||||||||||||||||
480 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
481 | d->linked = false; | - | ||||||||||||||||||||||||||||||
482 | if (shader
| 0 | ||||||||||||||||||||||||||||||
483 | d->shaders.removeAll(shader); | - | ||||||||||||||||||||||||||||||
484 | d->anonShaders.removeAll(shader); | - | ||||||||||||||||||||||||||||||
485 | disconnect(shader, qFlagLocation("2""destroyed()" "\0" __FILE__ ":" "855"), this, qFlagLocation("1""shaderDestroyed()" "\0" __FILE__ ":" "855")); | - | ||||||||||||||||||||||||||||||
486 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
487 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
488 | - | |||||||||||||||||||||||||||||||
489 | - | |||||||||||||||||||||||||||||||
490 | - | |||||||||||||||||||||||||||||||
491 | - | |||||||||||||||||||||||||||||||
492 | - | |||||||||||||||||||||||||||||||
493 | - | |||||||||||||||||||||||||||||||
494 | - | |||||||||||||||||||||||||||||||
495 | QList<QGLShader *> QGLShaderProgram::shaders() const | - | ||||||||||||||||||||||||||||||
496 | { | - | ||||||||||||||||||||||||||||||
497 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
498 | return never executed: d->shaders;return d->shaders; never executed: return d->shaders; | 0 | ||||||||||||||||||||||||||||||
499 | } | - | ||||||||||||||||||||||||||||||
500 | void QGLShaderProgram::removeAllShaders() | - | ||||||||||||||||||||||||||||||
501 | { | - | ||||||||||||||||||||||||||||||
502 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
503 | d->removingShaders = true; | - | ||||||||||||||||||||||||||||||
504 | if (d->programGuard
| 0 | ||||||||||||||||||||||||||||||
505 | if (const
| 0 | ||||||||||||||||||||||||||||||
506 | for (QGLShader *shader : qAsConst(d->shaders)) { | - | ||||||||||||||||||||||||||||||
507 | if (shader
| 0 | ||||||||||||||||||||||||||||||
508 | d->glfuncs->glDetachShader(programGuardId, shader->d_func()->shaderGuard->id()); never executed: d->glfuncs->glDetachShader(programGuardId, shader->d_func()->shaderGuard->id()); | 0 | ||||||||||||||||||||||||||||||
509 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
510 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
511 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
512 | - | |||||||||||||||||||||||||||||||
513 | qDeleteAll(d->anonShaders); | - | ||||||||||||||||||||||||||||||
514 | d->shaders.clear(); | - | ||||||||||||||||||||||||||||||
515 | d->anonShaders.clear(); | - | ||||||||||||||||||||||||||||||
516 | d->linked = false; | - | ||||||||||||||||||||||||||||||
517 | d->removingShaders = false; | - | ||||||||||||||||||||||||||||||
518 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
519 | bool QGLShaderProgram::link() | - | ||||||||||||||||||||||||||||||
520 | { | - | ||||||||||||||||||||||||||||||
521 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
522 | GLuint program = d->programGuard
| 0-3 | ||||||||||||||||||||||||||||||
523 | if (!program
| 0-3 | ||||||||||||||||||||||||||||||
524 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
525 | - | |||||||||||||||||||||||||||||||
526 | GLint value; | - | ||||||||||||||||||||||||||||||
527 | if (d->shaders.isEmpty()
| 0-3 | ||||||||||||||||||||||||||||||
528 | - | |||||||||||||||||||||||||||||||
529 | - | |||||||||||||||||||||||||||||||
530 | - | |||||||||||||||||||||||||||||||
531 | - | |||||||||||||||||||||||||||||||
532 | value = 0; | - | ||||||||||||||||||||||||||||||
533 | d->glfuncs->glGetProgramiv(program, 0x8B82, &value); | - | ||||||||||||||||||||||||||||||
534 | d->linked = (value != 0); | - | ||||||||||||||||||||||||||||||
535 | if (d->linked
| 0 | ||||||||||||||||||||||||||||||
536 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||||||||
537 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
538 | - | |||||||||||||||||||||||||||||||
539 | - | |||||||||||||||||||||||||||||||
540 | - | |||||||||||||||||||||||||||||||
541 | if (!QOpenGLContext::currentContext()->isOpenGLES()
| 0-3 | ||||||||||||||||||||||||||||||
542 | && d->glfuncs->glProgramParameteri
| 0-3 | ||||||||||||||||||||||||||||||
543 | for (QGLShader *shader : qAsConst(d->shaders)) { | - | ||||||||||||||||||||||||||||||
544 | if (shader->shaderType() & QGLShader::Geometry
| 0-6 | ||||||||||||||||||||||||||||||
545 | d->glfuncs->glProgramParameteri(program, 0x8DDB, | - | ||||||||||||||||||||||||||||||
546 | d->geometryInputType); | - | ||||||||||||||||||||||||||||||
547 | d->glfuncs->glProgramParameteri(program, 0x8DDC, | - | ||||||||||||||||||||||||||||||
548 | d->geometryOutputType); | - | ||||||||||||||||||||||||||||||
549 | d->glfuncs->glProgramParameteri(program, 0x8DDA, | - | ||||||||||||||||||||||||||||||
550 | d->geometryVertexCount); | - | ||||||||||||||||||||||||||||||
551 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||
552 | } | - | ||||||||||||||||||||||||||||||
553 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||||||||
554 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
555 | - | |||||||||||||||||||||||||||||||
556 | - | |||||||||||||||||||||||||||||||
557 | d->glfuncs->glLinkProgram(program); | - | ||||||||||||||||||||||||||||||
558 | value = 0; | - | ||||||||||||||||||||||||||||||
559 | d->glfuncs->glGetProgramiv(program, 0x8B82, &value); | - | ||||||||||||||||||||||||||||||
560 | d->linked = (value != 0); | - | ||||||||||||||||||||||||||||||
561 | value = 0; | - | ||||||||||||||||||||||||||||||
562 | d->glfuncs->glGetProgramiv(program, 0x8B84, &value); | - | ||||||||||||||||||||||||||||||
563 | d->log = QString(); | - | ||||||||||||||||||||||||||||||
564 | if (value > 1
| 0-3 | ||||||||||||||||||||||||||||||
565 | char *logbuf = new char [value]; | - | ||||||||||||||||||||||||||||||
566 | GLint len; | - | ||||||||||||||||||||||||||||||
567 | d->glfuncs->glGetProgramInfoLog(program, value, &len, logbuf); | - | ||||||||||||||||||||||||||||||
568 | d->log = QString::fromLatin1(logbuf); | - | ||||||||||||||||||||||||||||||
569 | QString name = objectName(); | - | ||||||||||||||||||||||||||||||
570 | if (!d->linked
| 0 | ||||||||||||||||||||||||||||||
571 | if (name.isEmpty()
| 0 | ||||||||||||||||||||||||||||||
572 | QMessageLogger(__FILE__, 966, __PRETTY_FUNCTION__).warning() << "QGLShader::link:" << d->log; never executed: QMessageLogger(__FILE__, 966, __PRETTY_FUNCTION__).warning() << "QGLShader::link:" << d->log; | 0 | ||||||||||||||||||||||||||||||
573 | else | - | ||||||||||||||||||||||||||||||
574 | QMessageLogger(__FILE__, 968, __PRETTY_FUNCTION__).warning() << "QGLShader::link[" << name << "]:" << d->log; never executed: QMessageLogger(__FILE__, 968, __PRETTY_FUNCTION__).warning() << "QGLShader::link[" << name << "]:" << d->log; | 0 | ||||||||||||||||||||||||||||||
575 | } | - | ||||||||||||||||||||||||||||||
576 | delete [] logbuf; | - | ||||||||||||||||||||||||||||||
577 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
578 | return executed 3 times by 1 test: d->linked;return d->linked; Executed by:
executed 3 times by 1 test: return d->linked; Executed by:
| 3 | ||||||||||||||||||||||||||||||
579 | } | - | ||||||||||||||||||||||||||||||
580 | - | |||||||||||||||||||||||||||||||
581 | - | |||||||||||||||||||||||||||||||
582 | - | |||||||||||||||||||||||||||||||
583 | - | |||||||||||||||||||||||||||||||
584 | - | |||||||||||||||||||||||||||||||
585 | - | |||||||||||||||||||||||||||||||
586 | bool QGLShaderProgram::isLinked() const | - | ||||||||||||||||||||||||||||||
587 | { | - | ||||||||||||||||||||||||||||||
588 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
589 | return executed 3 times by 1 test: d->linked;return d->linked; Executed by:
executed 3 times by 1 test: return d->linked; Executed by:
| 3 | ||||||||||||||||||||||||||||||
590 | } | - | ||||||||||||||||||||||||||||||
591 | - | |||||||||||||||||||||||||||||||
592 | - | |||||||||||||||||||||||||||||||
593 | - | |||||||||||||||||||||||||||||||
594 | - | |||||||||||||||||||||||||||||||
595 | - | |||||||||||||||||||||||||||||||
596 | - | |||||||||||||||||||||||||||||||
597 | - | |||||||||||||||||||||||||||||||
598 | QString QGLShaderProgram::log() const | - | ||||||||||||||||||||||||||||||
599 | { | - | ||||||||||||||||||||||||||||||
600 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
601 | return never executed: d->log;return d->log; never executed: return d->log; | 0 | ||||||||||||||||||||||||||||||
602 | } | - | ||||||||||||||||||||||||||||||
603 | bool QGLShaderProgram::bind() | - | ||||||||||||||||||||||||||||||
604 | { | - | ||||||||||||||||||||||||||||||
605 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
606 | GLuint program = d->programGuard
| 0-9 | ||||||||||||||||||||||||||||||
607 | if (!program
| 0-9 | ||||||||||||||||||||||||||||||
608 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
609 | if (!d->linked
| 0-9 | ||||||||||||||||||||||||||||||
610 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
611 | - | |||||||||||||||||||||||||||||||
612 | if (d->programGuard->group() != QOpenGLContextGroup::currentContextGroup()
| 0-9 | ||||||||||||||||||||||||||||||
613 | QMessageLogger(__FILE__, 1018, __PRETTY_FUNCTION__).warning("QGLShaderProgram::bind: program is not valid in the current context."); | - | ||||||||||||||||||||||||||||||
614 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
615 | } | - | ||||||||||||||||||||||||||||||
616 | - | |||||||||||||||||||||||||||||||
617 | d->glfuncs->glUseProgram(program); | - | ||||||||||||||||||||||||||||||
618 | return executed 9 times by 1 test: true;return true; Executed by:
executed 9 times by 1 test: return true; Executed by:
| 9 | ||||||||||||||||||||||||||||||
619 | } | - | ||||||||||||||||||||||||||||||
620 | void QGLShaderProgram::release() | - | ||||||||||||||||||||||||||||||
621 | { | - | ||||||||||||||||||||||||||||||
622 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
623 | - | |||||||||||||||||||||||||||||||
624 | if (d->programGuard
| 0 | ||||||||||||||||||||||||||||||
625 | QMessageLogger(__FILE__, 1040, __PRETTY_FUNCTION__).warning("QGLShaderProgram::release: program is not valid in the current context."); never executed: QMessageLogger(__FILE__, 1040, __PRETTY_FUNCTION__).warning("QGLShaderProgram::release: program is not valid in the current context."); | 0 | ||||||||||||||||||||||||||||||
626 | - | |||||||||||||||||||||||||||||||
627 | d->glfuncs->glUseProgram(0); | - | ||||||||||||||||||||||||||||||
628 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
629 | - | |||||||||||||||||||||||||||||||
630 | - | |||||||||||||||||||||||||||||||
631 | - | |||||||||||||||||||||||||||||||
632 | - | |||||||||||||||||||||||||||||||
633 | - | |||||||||||||||||||||||||||||||
634 | - | |||||||||||||||||||||||||||||||
635 | GLuint QGLShaderProgram::programId() const | - | ||||||||||||||||||||||||||||||
636 | { | - | ||||||||||||||||||||||||||||||
637 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
638 | GLuint id = d->programGuard
| 0 | ||||||||||||||||||||||||||||||
639 | if (id
| 0 | ||||||||||||||||||||||||||||||
640 | return never executed: id;return id; never executed: return id; | 0 | ||||||||||||||||||||||||||||||
641 | - | |||||||||||||||||||||||||||||||
642 | - | |||||||||||||||||||||||||||||||
643 | - | |||||||||||||||||||||||||||||||
644 | - | |||||||||||||||||||||||||||||||
645 | if (!const_cast<QGLShaderProgram *>(this)->init()
| 0 | ||||||||||||||||||||||||||||||
646 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||
647 | return never executed: d->programGuard ? d->programGuard->id() : 0;return d->programGuard ? d->programGuard->id() : 0; never executed: return d->programGuard ? d->programGuard->id() : 0; | 0 | ||||||||||||||||||||||||||||||
648 | } | - | ||||||||||||||||||||||||||||||
649 | void QGLShaderProgram::bindAttributeLocation(const char *name, int location) | - | ||||||||||||||||||||||||||||||
650 | { | - | ||||||||||||||||||||||||||||||
651 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
652 | if (!init()
| 0-10 | ||||||||||||||||||||||||||||||
653 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||
654 | d->glfuncs->glBindAttribLocation(d->programGuard->id(), location, name); | - | ||||||||||||||||||||||||||||||
655 | d->linked = false; | - | ||||||||||||||||||||||||||||||
656 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||||||||
657 | void QGLShaderProgram::bindAttributeLocation(const QByteArray& name, int location) | - | ||||||||||||||||||||||||||||||
658 | { | - | ||||||||||||||||||||||||||||||
659 | bindAttributeLocation(name.constData(), location); | - | ||||||||||||||||||||||||||||||
660 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
661 | void QGLShaderProgram::bindAttributeLocation(const QString& name, int location) | - | ||||||||||||||||||||||||||||||
662 | { | - | ||||||||||||||||||||||||||||||
663 | bindAttributeLocation(name.toLatin1().constData(), location); | - | ||||||||||||||||||||||||||||||
664 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
665 | int QGLShaderProgram::attributeLocation(const char *name) const | - | ||||||||||||||||||||||||||||||
666 | { | - | ||||||||||||||||||||||||||||||
667 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
668 | if (d->linked
| 0 | ||||||||||||||||||||||||||||||
669 | return never executed: d->glfuncs->glGetAttribLocation(d->programGuard->id(), name);return d->glfuncs->glGetAttribLocation(d->programGuard->id(), name); never executed: return d->glfuncs->glGetAttribLocation(d->programGuard->id(), name); | 0 | ||||||||||||||||||||||||||||||
670 | } else { | - | ||||||||||||||||||||||||||||||
671 | QMessageLogger(__FILE__, 1134, __PRETTY_FUNCTION__).warning() << "QGLShaderProgram::attributeLocation(" << name | - | ||||||||||||||||||||||||||||||
672 | << "): shader program is not linked"; | - | ||||||||||||||||||||||||||||||
673 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
674 | } | - | ||||||||||||||||||||||||||||||
675 | } | - | ||||||||||||||||||||||||||||||
676 | int QGLShaderProgram::attributeLocation(const QByteArray& name) const | - | ||||||||||||||||||||||||||||||
677 | { | - | ||||||||||||||||||||||||||||||
678 | return never executed: attributeLocation(name.constData());return attributeLocation(name.constData()); never executed: return attributeLocation(name.constData()); | 0 | ||||||||||||||||||||||||||||||
679 | } | - | ||||||||||||||||||||||||||||||
680 | int QGLShaderProgram::attributeLocation(const QString& name) const | - | ||||||||||||||||||||||||||||||
681 | { | - | ||||||||||||||||||||||||||||||
682 | return never executed: attributeLocation(name.toLatin1().constData());return attributeLocation(name.toLatin1().constData()); never executed: return attributeLocation(name.toLatin1().constData()); | 0 | ||||||||||||||||||||||||||||||
683 | } | - | ||||||||||||||||||||||||||||||
684 | - | |||||||||||||||||||||||||||||||
685 | - | |||||||||||||||||||||||||||||||
686 | - | |||||||||||||||||||||||||||||||
687 | - | |||||||||||||||||||||||||||||||
688 | - | |||||||||||||||||||||||||||||||
689 | - | |||||||||||||||||||||||||||||||
690 | void QGLShaderProgram::setAttributeValue(int location, GLfloat value) | - | ||||||||||||||||||||||||||||||
691 | { | - | ||||||||||||||||||||||||||||||
692 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
693 | (void)d;; | - | ||||||||||||||||||||||||||||||
694 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
695 | d->glfuncs->glVertexAttrib1fv(location, &value); never executed: d->glfuncs->glVertexAttrib1fv(location, &value); | 0 | ||||||||||||||||||||||||||||||
696 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
697 | void QGLShaderProgram::setAttributeValue(const char *name, GLfloat value) | - | ||||||||||||||||||||||||||||||
698 | { | - | ||||||||||||||||||||||||||||||
699 | setAttributeValue(attributeLocation(name), value); | - | ||||||||||||||||||||||||||||||
700 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
701 | - | |||||||||||||||||||||||||||||||
702 | - | |||||||||||||||||||||||||||||||
703 | - | |||||||||||||||||||||||||||||||
704 | - | |||||||||||||||||||||||||||||||
705 | - | |||||||||||||||||||||||||||||||
706 | - | |||||||||||||||||||||||||||||||
707 | - | |||||||||||||||||||||||||||||||
708 | void QGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y) | - | ||||||||||||||||||||||||||||||
709 | { | - | ||||||||||||||||||||||||||||||
710 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
711 | (void)d;; | - | ||||||||||||||||||||||||||||||
712 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
713 | GLfloat values[2] = {x, y}; | - | ||||||||||||||||||||||||||||||
714 | d->glfuncs->glVertexAttrib2fv(location, values); | - | ||||||||||||||||||||||||||||||
715 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
716 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
717 | void QGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y) | - | ||||||||||||||||||||||||||||||
718 | { | - | ||||||||||||||||||||||||||||||
719 | setAttributeValue(attributeLocation(name), x, y); | - | ||||||||||||||||||||||||||||||
720 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
721 | - | |||||||||||||||||||||||||||||||
722 | - | |||||||||||||||||||||||||||||||
723 | - | |||||||||||||||||||||||||||||||
724 | - | |||||||||||||||||||||||||||||||
725 | - | |||||||||||||||||||||||||||||||
726 | - | |||||||||||||||||||||||||||||||
727 | - | |||||||||||||||||||||||||||||||
728 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
729 | (int location, GLfloat x, GLfloat y, GLfloat z) | - | ||||||||||||||||||||||||||||||
730 | { | - | ||||||||||||||||||||||||||||||
731 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
732 | (void)d;; | - | ||||||||||||||||||||||||||||||
733 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
734 | GLfloat values[3] = {x, y, z}; | - | ||||||||||||||||||||||||||||||
735 | d->glfuncs->glVertexAttrib3fv(location, values); | - | ||||||||||||||||||||||||||||||
736 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
737 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
738 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
739 | (const char *name, GLfloat x, GLfloat y, GLfloat z) | - | ||||||||||||||||||||||||||||||
740 | { | - | ||||||||||||||||||||||||||||||
741 | setAttributeValue(attributeLocation(name), x, y, z); | - | ||||||||||||||||||||||||||||||
742 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
743 | - | |||||||||||||||||||||||||||||||
744 | - | |||||||||||||||||||||||||||||||
745 | - | |||||||||||||||||||||||||||||||
746 | - | |||||||||||||||||||||||||||||||
747 | - | |||||||||||||||||||||||||||||||
748 | - | |||||||||||||||||||||||||||||||
749 | - | |||||||||||||||||||||||||||||||
750 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
751 | (int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) | - | ||||||||||||||||||||||||||||||
752 | { | - | ||||||||||||||||||||||||||||||
753 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
754 | (void)d;; | - | ||||||||||||||||||||||||||||||
755 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
756 | GLfloat values[4] = {x, y, z, w}; | - | ||||||||||||||||||||||||||||||
757 | d->glfuncs->glVertexAttrib4fv(location, values); | - | ||||||||||||||||||||||||||||||
758 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
759 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
760 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
761 | (const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) | - | ||||||||||||||||||||||||||||||
762 | { | - | ||||||||||||||||||||||||||||||
763 | setAttributeValue(attributeLocation(name), x, y, z, w); | - | ||||||||||||||||||||||||||||||
764 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
765 | - | |||||||||||||||||||||||||||||||
766 | - | |||||||||||||||||||||||||||||||
767 | - | |||||||||||||||||||||||||||||||
768 | - | |||||||||||||||||||||||||||||||
769 | - | |||||||||||||||||||||||||||||||
770 | - | |||||||||||||||||||||||||||||||
771 | void QGLShaderProgram::setAttributeValue(int location, const QVector2D& value) | - | ||||||||||||||||||||||||||||||
772 | { | - | ||||||||||||||||||||||||||||||
773 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
774 | (void)d;; | - | ||||||||||||||||||||||||||||||
775 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
776 | d->glfuncs->glVertexAttrib2fv(location, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glVertexAttrib2fv(location, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
777 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
778 | void QGLShaderProgram::setAttributeValue(const char *name, const QVector2D& value) | - | ||||||||||||||||||||||||||||||
779 | { | - | ||||||||||||||||||||||||||||||
780 | setAttributeValue(attributeLocation(name), value); | - | ||||||||||||||||||||||||||||||
781 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
782 | - | |||||||||||||||||||||||||||||||
783 | - | |||||||||||||||||||||||||||||||
784 | - | |||||||||||||||||||||||||||||||
785 | - | |||||||||||||||||||||||||||||||
786 | - | |||||||||||||||||||||||||||||||
787 | - | |||||||||||||||||||||||||||||||
788 | void QGLShaderProgram::setAttributeValue(int location, const QVector3D& value) | - | ||||||||||||||||||||||||||||||
789 | { | - | ||||||||||||||||||||||||||||||
790 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
791 | (void)d;; | - | ||||||||||||||||||||||||||||||
792 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
793 | d->glfuncs->glVertexAttrib3fv(location, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glVertexAttrib3fv(location, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
794 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
795 | void QGLShaderProgram::setAttributeValue(const char *name, const QVector3D& value) | - | ||||||||||||||||||||||||||||||
796 | { | - | ||||||||||||||||||||||||||||||
797 | setAttributeValue(attributeLocation(name), value); | - | ||||||||||||||||||||||||||||||
798 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
799 | - | |||||||||||||||||||||||||||||||
800 | - | |||||||||||||||||||||||||||||||
801 | - | |||||||||||||||||||||||||||||||
802 | - | |||||||||||||||||||||||||||||||
803 | - | |||||||||||||||||||||||||||||||
804 | - | |||||||||||||||||||||||||||||||
805 | void QGLShaderProgram::setAttributeValue(int location, const QVector4D& value) | - | ||||||||||||||||||||||||||||||
806 | { | - | ||||||||||||||||||||||||||||||
807 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
808 | (void)d;; | - | ||||||||||||||||||||||||||||||
809 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
810 | d->glfuncs->glVertexAttrib4fv(location, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glVertexAttrib4fv(location, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
811 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
812 | void QGLShaderProgram::setAttributeValue(const char *name, const QVector4D& value) | - | ||||||||||||||||||||||||||||||
813 | { | - | ||||||||||||||||||||||||||||||
814 | setAttributeValue(attributeLocation(name), value); | - | ||||||||||||||||||||||||||||||
815 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
816 | - | |||||||||||||||||||||||||||||||
817 | - | |||||||||||||||||||||||||||||||
818 | - | |||||||||||||||||||||||||||||||
819 | - | |||||||||||||||||||||||||||||||
820 | - | |||||||||||||||||||||||||||||||
821 | - | |||||||||||||||||||||||||||||||
822 | void QGLShaderProgram::setAttributeValue(int location, const QColor& value) | - | ||||||||||||||||||||||||||||||
823 | { | - | ||||||||||||||||||||||||||||||
824 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
825 | (void)d;; | - | ||||||||||||||||||||||||||||||
826 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
827 | GLfloat values[4] = {GLfloat(value.redF()), GLfloat(value.greenF()), | - | ||||||||||||||||||||||||||||||
828 | GLfloat(value.blueF()), GLfloat(value.alphaF())}; | - | ||||||||||||||||||||||||||||||
829 | d->glfuncs->glVertexAttrib4fv(location, values); | - | ||||||||||||||||||||||||||||||
830 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
831 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
832 | void QGLShaderProgram::setAttributeValue(const char *name, const QColor& value) | - | ||||||||||||||||||||||||||||||
833 | { | - | ||||||||||||||||||||||||||||||
834 | setAttributeValue(attributeLocation(name), value); | - | ||||||||||||||||||||||||||||||
835 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
836 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
837 | (int location, const GLfloat *values, int columns, int rows) | - | ||||||||||||||||||||||||||||||
838 | { | - | ||||||||||||||||||||||||||||||
839 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
840 | (void)d;; | - | ||||||||||||||||||||||||||||||
841 | if (rows < 1
| 0 | ||||||||||||||||||||||||||||||
842 | QMessageLogger(__FILE__, 1402, __PRETTY_FUNCTION__).warning() << "QGLShaderProgram::setAttributeValue: rows" << rows << "not supported"; | - | ||||||||||||||||||||||||||||||
843 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||
844 | } | - | ||||||||||||||||||||||||||||||
845 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
846 | while (columns-- > 0
| 0 | ||||||||||||||||||||||||||||||
847 | if (rows == 1
| 0 | ||||||||||||||||||||||||||||||
848 | d->glfuncs->glVertexAttrib1fv(location, values); never executed: d->glfuncs->glVertexAttrib1fv(location, values); | 0 | ||||||||||||||||||||||||||||||
849 | else if (rows == 2
| 0 | ||||||||||||||||||||||||||||||
850 | d->glfuncs->glVertexAttrib2fv(location, values); never executed: d->glfuncs->glVertexAttrib2fv(location, values); | 0 | ||||||||||||||||||||||||||||||
851 | else if (rows == 3
| 0 | ||||||||||||||||||||||||||||||
852 | d->glfuncs->glVertexAttrib3fv(location, values); never executed: d->glfuncs->glVertexAttrib3fv(location, values); | 0 | ||||||||||||||||||||||||||||||
853 | else | - | ||||||||||||||||||||||||||||||
854 | d->glfuncs->glVertexAttrib4fv(location, values); never executed: d->glfuncs->glVertexAttrib4fv(location, values); | 0 | ||||||||||||||||||||||||||||||
855 | values += rows; | - | ||||||||||||||||||||||||||||||
856 | ++location; | - | ||||||||||||||||||||||||||||||
857 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
858 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
859 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
860 | void QGLShaderProgram::setAttributeValue | - | ||||||||||||||||||||||||||||||
861 | (const char *name, const GLfloat *values, int columns, int rows) | - | ||||||||||||||||||||||||||||||
862 | { | - | ||||||||||||||||||||||||||||||
863 | setAttributeValue(attributeLocation(name), values, columns, rows); | - | ||||||||||||||||||||||||||||||
864 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
865 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
866 | (int location, const GLfloat *values, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
867 | { | - | ||||||||||||||||||||||||||||||
868 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
869 | (void)d;; | - | ||||||||||||||||||||||||||||||
870 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
871 | d->glfuncs->glVertexAttribPointer(location, tupleSize, 0x1406, 0, | - | ||||||||||||||||||||||||||||||
872 | stride, values); | - | ||||||||||||||||||||||||||||||
873 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
874 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
875 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
876 | (int location, const QVector2D *values, int stride) | - | ||||||||||||||||||||||||||||||
877 | { | - | ||||||||||||||||||||||||||||||
878 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
879 | (void)d;; | - | ||||||||||||||||||||||||||||||
880 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
881 | d->glfuncs->glVertexAttribPointer(location, 2, 0x1406, 0, | - | ||||||||||||||||||||||||||||||
882 | stride, values); | - | ||||||||||||||||||||||||||||||
883 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
884 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
885 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
886 | (int location, const QVector3D *values, int stride) | - | ||||||||||||||||||||||||||||||
887 | { | - | ||||||||||||||||||||||||||||||
888 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
889 | (void)d;; | - | ||||||||||||||||||||||||||||||
890 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
891 | d->glfuncs->glVertexAttribPointer(location, 3, 0x1406, 0, | - | ||||||||||||||||||||||||||||||
892 | stride, values); | - | ||||||||||||||||||||||||||||||
893 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
894 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
895 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
896 | (int location, const QVector4D *values, int stride) | - | ||||||||||||||||||||||||||||||
897 | { | - | ||||||||||||||||||||||||||||||
898 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
899 | (void)d;; | - | ||||||||||||||||||||||||||||||
900 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
901 | d->glfuncs->glVertexAttribPointer(location, 4, 0x1406, 0, | - | ||||||||||||||||||||||||||||||
902 | stride, values); | - | ||||||||||||||||||||||||||||||
903 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
904 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
905 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
906 | (int location, GLenum type, const void *values, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
907 | { | - | ||||||||||||||||||||||||||||||
908 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
909 | (void)d;; | - | ||||||||||||||||||||||||||||||
910 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
911 | d->glfuncs->glVertexAttribPointer(location, tupleSize, type, 1, | - | ||||||||||||||||||||||||||||||
912 | stride, values); | - | ||||||||||||||||||||||||||||||
913 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
914 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
915 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
916 | (const char *name, const GLfloat *values, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
917 | { | - | ||||||||||||||||||||||||||||||
918 | setAttributeArray(attributeLocation(name), values, tupleSize, stride); | - | ||||||||||||||||||||||||||||||
919 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
920 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
921 | (const char *name, const QVector2D *values, int stride) | - | ||||||||||||||||||||||||||||||
922 | { | - | ||||||||||||||||||||||||||||||
923 | setAttributeArray(attributeLocation(name), values, stride); | - | ||||||||||||||||||||||||||||||
924 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
925 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
926 | (const char *name, const QVector3D *values, int stride) | - | ||||||||||||||||||||||||||||||
927 | { | - | ||||||||||||||||||||||||||||||
928 | setAttributeArray(attributeLocation(name), values, stride); | - | ||||||||||||||||||||||||||||||
929 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
930 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
931 | (const char *name, const QVector4D *values, int stride) | - | ||||||||||||||||||||||||||||||
932 | { | - | ||||||||||||||||||||||||||||||
933 | setAttributeArray(attributeLocation(name), values, stride); | - | ||||||||||||||||||||||||||||||
934 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
935 | void QGLShaderProgram::setAttributeArray | - | ||||||||||||||||||||||||||||||
936 | (const char *name, GLenum type, const void *values, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
937 | { | - | ||||||||||||||||||||||||||||||
938 | setAttributeArray(attributeLocation(name), type, values, tupleSize, stride); | - | ||||||||||||||||||||||||||||||
939 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
940 | void QGLShaderProgram::setAttributeBuffer | - | ||||||||||||||||||||||||||||||
941 | (int location, GLenum type, int offset, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
942 | { | - | ||||||||||||||||||||||||||||||
943 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
944 | (void)d;; | - | ||||||||||||||||||||||||||||||
945 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
946 | d->glfuncs->glVertexAttribPointer(location, tupleSize, type, 1, stride, | - | ||||||||||||||||||||||||||||||
947 | reinterpret_cast<const void *>(qintptr(offset))); | - | ||||||||||||||||||||||||||||||
948 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
949 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
950 | void QGLShaderProgram::setAttributeBuffer | - | ||||||||||||||||||||||||||||||
951 | (const char *name, GLenum type, int offset, int tupleSize, int stride) | - | ||||||||||||||||||||||||||||||
952 | { | - | ||||||||||||||||||||||||||||||
953 | setAttributeBuffer(attributeLocation(name), type, offset, tupleSize, stride); | - | ||||||||||||||||||||||||||||||
954 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
955 | void QGLShaderProgram::enableAttributeArray(int location) | - | ||||||||||||||||||||||||||||||
956 | { | - | ||||||||||||||||||||||||||||||
957 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
958 | (void)d;; | - | ||||||||||||||||||||||||||||||
959 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
960 | d->glfuncs->glEnableVertexAttribArray(location); never executed: d->glfuncs->glEnableVertexAttribArray(location); | 0 | ||||||||||||||||||||||||||||||
961 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
962 | void QGLShaderProgram::enableAttributeArray(const char *name) | - | ||||||||||||||||||||||||||||||
963 | { | - | ||||||||||||||||||||||||||||||
964 | enableAttributeArray(attributeLocation(name)); | - | ||||||||||||||||||||||||||||||
965 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
966 | void QGLShaderProgram::disableAttributeArray(int location) | - | ||||||||||||||||||||||||||||||
967 | { | - | ||||||||||||||||||||||||||||||
968 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
969 | (void)d;; | - | ||||||||||||||||||||||||||||||
970 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
971 | d->glfuncs->glDisableVertexAttribArray(location); never executed: d->glfuncs->glDisableVertexAttribArray(location); | 0 | ||||||||||||||||||||||||||||||
972 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
973 | void QGLShaderProgram::disableAttributeArray(const char *name) | - | ||||||||||||||||||||||||||||||
974 | { | - | ||||||||||||||||||||||||||||||
975 | disableAttributeArray(attributeLocation(name)); | - | ||||||||||||||||||||||||||||||
976 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
977 | int QGLShaderProgram::uniformLocation(const char *name) const | - | ||||||||||||||||||||||||||||||
978 | { | - | ||||||||||||||||||||||||||||||
979 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
980 | (void)d;; | - | ||||||||||||||||||||||||||||||
981 | if (d->linked
| 0-1 | ||||||||||||||||||||||||||||||
982 | return executed 1 time by 1 test: d->glfuncs->glGetUniformLocation(d->programGuard->id(), name);return d->glfuncs->glGetUniformLocation(d->programGuard->id(), name); Executed by:
executed 1 time by 1 test: return d->glfuncs->glGetUniformLocation(d->programGuard->id(), name); Executed by:
| 1 | ||||||||||||||||||||||||||||||
983 | } else { | - | ||||||||||||||||||||||||||||||
984 | QMessageLogger(__FILE__, 1818, __PRETTY_FUNCTION__).warning() << "QGLShaderProgram::uniformLocation(" << name | - | ||||||||||||||||||||||||||||||
985 | << "): shader program is not linked"; | - | ||||||||||||||||||||||||||||||
986 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||||||||
987 | } | - | ||||||||||||||||||||||||||||||
988 | } | - | ||||||||||||||||||||||||||||||
989 | int QGLShaderProgram::uniformLocation(const QByteArray& name) const | - | ||||||||||||||||||||||||||||||
990 | { | - | ||||||||||||||||||||||||||||||
991 | return never executed: uniformLocation(name.constData());return uniformLocation(name.constData()); never executed: return uniformLocation(name.constData()); | 0 | ||||||||||||||||||||||||||||||
992 | } | - | ||||||||||||||||||||||||||||||
993 | int QGLShaderProgram::uniformLocation(const QString& name) const | - | ||||||||||||||||||||||||||||||
994 | { | - | ||||||||||||||||||||||||||||||
995 | return never executed: uniformLocation(name.toLatin1().constData());return uniformLocation(name.toLatin1().constData()); never executed: return uniformLocation(name.toLatin1().constData()); | 0 | ||||||||||||||||||||||||||||||
996 | } | - | ||||||||||||||||||||||||||||||
997 | - | |||||||||||||||||||||||||||||||
998 | - | |||||||||||||||||||||||||||||||
999 | - | |||||||||||||||||||||||||||||||
1000 | - | |||||||||||||||||||||||||||||||
1001 | - | |||||||||||||||||||||||||||||||
1002 | - | |||||||||||||||||||||||||||||||
1003 | void QGLShaderProgram::setUniformValue(int location, GLfloat value) | - | ||||||||||||||||||||||||||||||
1004 | { | - | ||||||||||||||||||||||||||||||
1005 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1006 | (void)d;; | - | ||||||||||||||||||||||||||||||
1007 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1008 | d->glfuncs->glUniform1fv(location, 1, &value); never executed: d->glfuncs->glUniform1fv(location, 1, &value); | 0 | ||||||||||||||||||||||||||||||
1009 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1010 | void QGLShaderProgram::setUniformValue(const char *name, GLfloat value) | - | ||||||||||||||||||||||||||||||
1011 | { | - | ||||||||||||||||||||||||||||||
1012 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1013 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1014 | - | |||||||||||||||||||||||||||||||
1015 | - | |||||||||||||||||||||||||||||||
1016 | - | |||||||||||||||||||||||||||||||
1017 | - | |||||||||||||||||||||||||||||||
1018 | - | |||||||||||||||||||||||||||||||
1019 | - | |||||||||||||||||||||||||||||||
1020 | void QGLShaderProgram::setUniformValue(int location, GLint value) | - | ||||||||||||||||||||||||||||||
1021 | { | - | ||||||||||||||||||||||||||||||
1022 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1023 | (void)d;; | - | ||||||||||||||||||||||||||||||
1024 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1025 | d->glfuncs->glUniform1i(location, value); never executed: d->glfuncs->glUniform1i(location, value); | 0 | ||||||||||||||||||||||||||||||
1026 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1027 | void QGLShaderProgram::setUniformValue(const char *name, GLint value) | - | ||||||||||||||||||||||||||||||
1028 | { | - | ||||||||||||||||||||||||||||||
1029 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1030 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1031 | - | |||||||||||||||||||||||||||||||
1032 | - | |||||||||||||||||||||||||||||||
1033 | - | |||||||||||||||||||||||||||||||
1034 | - | |||||||||||||||||||||||||||||||
1035 | - | |||||||||||||||||||||||||||||||
1036 | - | |||||||||||||||||||||||||||||||
1037 | - | |||||||||||||||||||||||||||||||
1038 | void QGLShaderProgram::setUniformValue(int location, GLuint value) | - | ||||||||||||||||||||||||||||||
1039 | { | - | ||||||||||||||||||||||||||||||
1040 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1041 | (void)d;; | - | ||||||||||||||||||||||||||||||
1042 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1043 | d->glfuncs->glUniform1i(location, value); never executed: d->glfuncs->glUniform1i(location, value); | 0 | ||||||||||||||||||||||||||||||
1044 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1045 | void QGLShaderProgram::setUniformValue(const char *name, GLuint value) | - | ||||||||||||||||||||||||||||||
1046 | { | - | ||||||||||||||||||||||||||||||
1047 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1048 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1049 | - | |||||||||||||||||||||||||||||||
1050 | - | |||||||||||||||||||||||||||||||
1051 | - | |||||||||||||||||||||||||||||||
1052 | - | |||||||||||||||||||||||||||||||
1053 | - | |||||||||||||||||||||||||||||||
1054 | - | |||||||||||||||||||||||||||||||
1055 | - | |||||||||||||||||||||||||||||||
1056 | void QGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y) | - | ||||||||||||||||||||||||||||||
1057 | { | - | ||||||||||||||||||||||||||||||
1058 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1059 | (void)d;; | - | ||||||||||||||||||||||||||||||
1060 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1061 | GLfloat values[2] = {x, y}; | - | ||||||||||||||||||||||||||||||
1062 | d->glfuncs->glUniform2fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1063 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1064 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1065 | void QGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y) | - | ||||||||||||||||||||||||||||||
1066 | { | - | ||||||||||||||||||||||||||||||
1067 | setUniformValue(uniformLocation(name), x, y); | - | ||||||||||||||||||||||||||||||
1068 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1069 | - | |||||||||||||||||||||||||||||||
1070 | - | |||||||||||||||||||||||||||||||
1071 | - | |||||||||||||||||||||||||||||||
1072 | - | |||||||||||||||||||||||||||||||
1073 | - | |||||||||||||||||||||||||||||||
1074 | - | |||||||||||||||||||||||||||||||
1075 | - | |||||||||||||||||||||||||||||||
1076 | void QGLShaderProgram::setUniformValue | - | ||||||||||||||||||||||||||||||
1077 | (int location, GLfloat x, GLfloat y, GLfloat z) | - | ||||||||||||||||||||||||||||||
1078 | { | - | ||||||||||||||||||||||||||||||
1079 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1080 | (void)d;; | - | ||||||||||||||||||||||||||||||
1081 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1082 | GLfloat values[3] = {x, y, z}; | - | ||||||||||||||||||||||||||||||
1083 | d->glfuncs->glUniform3fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1084 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1085 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1086 | void QGLShaderProgram::setUniformValue | - | ||||||||||||||||||||||||||||||
1087 | (const char *name, GLfloat x, GLfloat y, GLfloat z) | - | ||||||||||||||||||||||||||||||
1088 | { | - | ||||||||||||||||||||||||||||||
1089 | setUniformValue(uniformLocation(name), x, y, z); | - | ||||||||||||||||||||||||||||||
1090 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1091 | - | |||||||||||||||||||||||||||||||
1092 | - | |||||||||||||||||||||||||||||||
1093 | - | |||||||||||||||||||||||||||||||
1094 | - | |||||||||||||||||||||||||||||||
1095 | - | |||||||||||||||||||||||||||||||
1096 | - | |||||||||||||||||||||||||||||||
1097 | - | |||||||||||||||||||||||||||||||
1098 | void QGLShaderProgram::setUniformValue | - | ||||||||||||||||||||||||||||||
1099 | (int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) | - | ||||||||||||||||||||||||||||||
1100 | { | - | ||||||||||||||||||||||||||||||
1101 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1102 | (void)d;; | - | ||||||||||||||||||||||||||||||
1103 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1104 | GLfloat values[4] = {x, y, z, w}; | - | ||||||||||||||||||||||||||||||
1105 | d->glfuncs->glUniform4fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1106 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1107 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1108 | void QGLShaderProgram::setUniformValue | - | ||||||||||||||||||||||||||||||
1109 | (const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) | - | ||||||||||||||||||||||||||||||
1110 | { | - | ||||||||||||||||||||||||||||||
1111 | setUniformValue(uniformLocation(name), x, y, z, w); | - | ||||||||||||||||||||||||||||||
1112 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1113 | - | |||||||||||||||||||||||||||||||
1114 | - | |||||||||||||||||||||||||||||||
1115 | - | |||||||||||||||||||||||||||||||
1116 | - | |||||||||||||||||||||||||||||||
1117 | - | |||||||||||||||||||||||||||||||
1118 | - | |||||||||||||||||||||||||||||||
1119 | void QGLShaderProgram::setUniformValue(int location, const QVector2D& value) | - | ||||||||||||||||||||||||||||||
1120 | { | - | ||||||||||||||||||||||||||||||
1121 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1122 | (void)d;; | - | ||||||||||||||||||||||||||||||
1123 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1124 | d->glfuncs->glUniform2fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glUniform2fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
1125 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1126 | void QGLShaderProgram::setUniformValue(const char *name, const QVector2D& value) | - | ||||||||||||||||||||||||||||||
1127 | { | - | ||||||||||||||||||||||||||||||
1128 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1129 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1130 | - | |||||||||||||||||||||||||||||||
1131 | - | |||||||||||||||||||||||||||||||
1132 | - | |||||||||||||||||||||||||||||||
1133 | - | |||||||||||||||||||||||||||||||
1134 | - | |||||||||||||||||||||||||||||||
1135 | - | |||||||||||||||||||||||||||||||
1136 | void QGLShaderProgram::setUniformValue(int location, const QVector3D& value) | - | ||||||||||||||||||||||||||||||
1137 | { | - | ||||||||||||||||||||||||||||||
1138 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1139 | (void)d;; | - | ||||||||||||||||||||||||||||||
1140 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1141 | d->glfuncs->glUniform3fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glUniform3fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
1142 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1143 | void QGLShaderProgram::setUniformValue(const char *name, const QVector3D& value) | - | ||||||||||||||||||||||||||||||
1144 | { | - | ||||||||||||||||||||||||||||||
1145 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1146 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1147 | - | |||||||||||||||||||||||||||||||
1148 | - | |||||||||||||||||||||||||||||||
1149 | - | |||||||||||||||||||||||||||||||
1150 | - | |||||||||||||||||||||||||||||||
1151 | - | |||||||||||||||||||||||||||||||
1152 | - | |||||||||||||||||||||||||||||||
1153 | void QGLShaderProgram::setUniformValue(int location, const QVector4D& value) | - | ||||||||||||||||||||||||||||||
1154 | { | - | ||||||||||||||||||||||||||||||
1155 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1156 | (void)d;; | - | ||||||||||||||||||||||||||||||
1157 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1158 | d->glfuncs->glUniform4fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); never executed: d->glfuncs->glUniform4fv(location, 1, reinterpret_cast<const GLfloat *>(&value)); | 0 | ||||||||||||||||||||||||||||||
1159 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1160 | void QGLShaderProgram::setUniformValue(const char *name, const QVector4D& value) | - | ||||||||||||||||||||||||||||||
1161 | { | - | ||||||||||||||||||||||||||||||
1162 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1163 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1164 | - | |||||||||||||||||||||||||||||||
1165 | - | |||||||||||||||||||||||||||||||
1166 | - | |||||||||||||||||||||||||||||||
1167 | - | |||||||||||||||||||||||||||||||
1168 | - | |||||||||||||||||||||||||||||||
1169 | - | |||||||||||||||||||||||||||||||
1170 | - | |||||||||||||||||||||||||||||||
1171 | void QGLShaderProgram::setUniformValue(int location, const QColor& color) | - | ||||||||||||||||||||||||||||||
1172 | { | - | ||||||||||||||||||||||||||||||
1173 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1174 | (void)d;; | - | ||||||||||||||||||||||||||||||
1175 | if (location != -1
| 0-3 | ||||||||||||||||||||||||||||||
1176 | GLfloat values[4] = {GLfloat(color.redF()), GLfloat(color.greenF()), | - | ||||||||||||||||||||||||||||||
1177 | GLfloat(color.blueF()), GLfloat(color.alphaF())}; | - | ||||||||||||||||||||||||||||||
1178 | d->glfuncs->glUniform4fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1179 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
1180 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||||||||||||||||||||
1181 | void QGLShaderProgram::setUniformValue(const char *name, const QColor& color) | - | ||||||||||||||||||||||||||||||
1182 | { | - | ||||||||||||||||||||||||||||||
1183 | setUniformValue(uniformLocation(name), color); | - | ||||||||||||||||||||||||||||||
1184 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1185 | - | |||||||||||||||||||||||||||||||
1186 | - | |||||||||||||||||||||||||||||||
1187 | - | |||||||||||||||||||||||||||||||
1188 | - | |||||||||||||||||||||||||||||||
1189 | - | |||||||||||||||||||||||||||||||
1190 | - | |||||||||||||||||||||||||||||||
1191 | - | |||||||||||||||||||||||||||||||
1192 | void QGLShaderProgram::setUniformValue(int location, const QPoint& point) | - | ||||||||||||||||||||||||||||||
1193 | { | - | ||||||||||||||||||||||||||||||
1194 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1195 | (void)d;; | - | ||||||||||||||||||||||||||||||
1196 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1197 | GLfloat values[4] = {GLfloat(point.x()), GLfloat(point.y())}; | - | ||||||||||||||||||||||||||||||
1198 | d->glfuncs->glUniform2fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1199 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1200 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1201 | void QGLShaderProgram::setUniformValue(const char *name, const QPoint& point) | - | ||||||||||||||||||||||||||||||
1202 | { | - | ||||||||||||||||||||||||||||||
1203 | setUniformValue(uniformLocation(name), point); | - | ||||||||||||||||||||||||||||||
1204 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1205 | - | |||||||||||||||||||||||||||||||
1206 | - | |||||||||||||||||||||||||||||||
1207 | - | |||||||||||||||||||||||||||||||
1208 | - | |||||||||||||||||||||||||||||||
1209 | - | |||||||||||||||||||||||||||||||
1210 | - | |||||||||||||||||||||||||||||||
1211 | - | |||||||||||||||||||||||||||||||
1212 | void QGLShaderProgram::setUniformValue(int location, const QPointF& point) | - | ||||||||||||||||||||||||||||||
1213 | { | - | ||||||||||||||||||||||||||||||
1214 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1215 | (void)d;; | - | ||||||||||||||||||||||||||||||
1216 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1217 | GLfloat values[4] = {GLfloat(point.x()), GLfloat(point.y())}; | - | ||||||||||||||||||||||||||||||
1218 | d->glfuncs->glUniform2fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1219 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1220 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1221 | void QGLShaderProgram::setUniformValue(const char *name, const QPointF& point) | - | ||||||||||||||||||||||||||||||
1222 | { | - | ||||||||||||||||||||||||||||||
1223 | setUniformValue(uniformLocation(name), point); | - | ||||||||||||||||||||||||||||||
1224 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1225 | - | |||||||||||||||||||||||||||||||
1226 | - | |||||||||||||||||||||||||||||||
1227 | - | |||||||||||||||||||||||||||||||
1228 | - | |||||||||||||||||||||||||||||||
1229 | - | |||||||||||||||||||||||||||||||
1230 | - | |||||||||||||||||||||||||||||||
1231 | - | |||||||||||||||||||||||||||||||
1232 | void QGLShaderProgram::setUniformValue(int location, const QSize& size) | - | ||||||||||||||||||||||||||||||
1233 | { | - | ||||||||||||||||||||||||||||||
1234 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1235 | (void)d;; | - | ||||||||||||||||||||||||||||||
1236 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1237 | GLfloat values[4] = {GLfloat(size.width()), GLfloat(size.height())}; | - | ||||||||||||||||||||||||||||||
1238 | d->glfuncs->glUniform2fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1239 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1240 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1241 | void QGLShaderProgram::setUniformValue(const char *name, const QSize& size) | - | ||||||||||||||||||||||||||||||
1242 | { | - | ||||||||||||||||||||||||||||||
1243 | setUniformValue(uniformLocation(name), size); | - | ||||||||||||||||||||||||||||||
1244 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1245 | - | |||||||||||||||||||||||||||||||
1246 | - | |||||||||||||||||||||||||||||||
1247 | - | |||||||||||||||||||||||||||||||
1248 | - | |||||||||||||||||||||||||||||||
1249 | - | |||||||||||||||||||||||||||||||
1250 | - | |||||||||||||||||||||||||||||||
1251 | - | |||||||||||||||||||||||||||||||
1252 | void QGLShaderProgram::setUniformValue(int location, const QSizeF& size) | - | ||||||||||||||||||||||||||||||
1253 | { | - | ||||||||||||||||||||||||||||||
1254 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1255 | (void)d;; | - | ||||||||||||||||||||||||||||||
1256 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1257 | GLfloat values[4] = {GLfloat(size.width()), GLfloat(size.height())}; | - | ||||||||||||||||||||||||||||||
1258 | d->glfuncs->glUniform2fv(location, 1, values); | - | ||||||||||||||||||||||||||||||
1259 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1260 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1261 | void QGLShaderProgram::setUniformValue(const char *name, const QSizeF& size) | - | ||||||||||||||||||||||||||||||
1262 | { | - | ||||||||||||||||||||||||||||||
1263 | setUniformValue(uniformLocation(name), size); | - | ||||||||||||||||||||||||||||||
1264 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1265 | - | |||||||||||||||||||||||||||||||
1266 | - | |||||||||||||||||||||||||||||||
1267 | - | |||||||||||||||||||||||||||||||
1268 | - | |||||||||||||||||||||||||||||||
1269 | - | |||||||||||||||||||||||||||||||
1270 | - | |||||||||||||||||||||||||||||||
1271 | - | |||||||||||||||||||||||||||||||
1272 | void QGLShaderProgram::setUniformValue(int location, const QMatrix2x2& value) | - | ||||||||||||||||||||||||||||||
1273 | { | - | ||||||||||||||||||||||||||||||
1274 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1275 | d->glfuncs->glUniformMatrix2fv(location, 1, 0, value.constData()); | - | ||||||||||||||||||||||||||||||
1276 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1277 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix2x2& value) | - | ||||||||||||||||||||||||||||||
1278 | { | - | ||||||||||||||||||||||||||||||
1279 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1280 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1281 | - | |||||||||||||||||||||||||||||||
1282 | - | |||||||||||||||||||||||||||||||
1283 | - | |||||||||||||||||||||||||||||||
1284 | - | |||||||||||||||||||||||||||||||
1285 | - | |||||||||||||||||||||||||||||||
1286 | - | |||||||||||||||||||||||||||||||
1287 | - | |||||||||||||||||||||||||||||||
1288 | void QGLShaderProgram::setUniformValue(int location, const QMatrix2x3& value) | - | ||||||||||||||||||||||||||||||
1289 | { | - | ||||||||||||||||||||||||||||||
1290 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1291 | d->glfuncs->glUniform3fv(location, 2, value.constData()); | - | ||||||||||||||||||||||||||||||
1292 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1293 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix2x3& value) | - | ||||||||||||||||||||||||||||||
1294 | { | - | ||||||||||||||||||||||||||||||
1295 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1296 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1297 | - | |||||||||||||||||||||||||||||||
1298 | - | |||||||||||||||||||||||||||||||
1299 | - | |||||||||||||||||||||||||||||||
1300 | - | |||||||||||||||||||||||||||||||
1301 | - | |||||||||||||||||||||||||||||||
1302 | - | |||||||||||||||||||||||||||||||
1303 | - | |||||||||||||||||||||||||||||||
1304 | void QGLShaderProgram::setUniformValue(int location, const QMatrix2x4& value) | - | ||||||||||||||||||||||||||||||
1305 | { | - | ||||||||||||||||||||||||||||||
1306 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1307 | d->glfuncs->glUniform4fv(location, 2, value.constData()); | - | ||||||||||||||||||||||||||||||
1308 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1309 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix2x4& value) | - | ||||||||||||||||||||||||||||||
1310 | { | - | ||||||||||||||||||||||||||||||
1311 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1312 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1313 | - | |||||||||||||||||||||||||||||||
1314 | - | |||||||||||||||||||||||||||||||
1315 | - | |||||||||||||||||||||||||||||||
1316 | - | |||||||||||||||||||||||||||||||
1317 | - | |||||||||||||||||||||||||||||||
1318 | - | |||||||||||||||||||||||||||||||
1319 | - | |||||||||||||||||||||||||||||||
1320 | void QGLShaderProgram::setUniformValue(int location, const QMatrix3x2& value) | - | ||||||||||||||||||||||||||||||
1321 | { | - | ||||||||||||||||||||||||||||||
1322 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1323 | d->glfuncs->glUniform2fv(location, 3, value.constData()); | - | ||||||||||||||||||||||||||||||
1324 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1325 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix3x2& value) | - | ||||||||||||||||||||||||||||||
1326 | { | - | ||||||||||||||||||||||||||||||
1327 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1328 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1329 | - | |||||||||||||||||||||||||||||||
1330 | - | |||||||||||||||||||||||||||||||
1331 | - | |||||||||||||||||||||||||||||||
1332 | - | |||||||||||||||||||||||||||||||
1333 | - | |||||||||||||||||||||||||||||||
1334 | - | |||||||||||||||||||||||||||||||
1335 | - | |||||||||||||||||||||||||||||||
1336 | void QGLShaderProgram::setUniformValue(int location, const QMatrix3x3& value) | - | ||||||||||||||||||||||||||||||
1337 | { | - | ||||||||||||||||||||||||||||||
1338 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1339 | d->glfuncs->glUniformMatrix3fv(location, 1, 0, value.constData()); | - | ||||||||||||||||||||||||||||||
1340 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1341 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix3x3& value) | - | ||||||||||||||||||||||||||||||
1342 | { | - | ||||||||||||||||||||||||||||||
1343 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1344 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1345 | - | |||||||||||||||||||||||||||||||
1346 | - | |||||||||||||||||||||||||||||||
1347 | - | |||||||||||||||||||||||||||||||
1348 | - | |||||||||||||||||||||||||||||||
1349 | - | |||||||||||||||||||||||||||||||
1350 | - | |||||||||||||||||||||||||||||||
1351 | - | |||||||||||||||||||||||||||||||
1352 | void QGLShaderProgram::setUniformValue(int location, const QMatrix3x4& value) | - | ||||||||||||||||||||||||||||||
1353 | { | - | ||||||||||||||||||||||||||||||
1354 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1355 | d->glfuncs->glUniform4fv(location, 3, value.constData()); | - | ||||||||||||||||||||||||||||||
1356 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1357 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix3x4& value) | - | ||||||||||||||||||||||||||||||
1358 | { | - | ||||||||||||||||||||||||||||||
1359 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1360 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1361 | - | |||||||||||||||||||||||||||||||
1362 | - | |||||||||||||||||||||||||||||||
1363 | - | |||||||||||||||||||||||||||||||
1364 | - | |||||||||||||||||||||||||||||||
1365 | - | |||||||||||||||||||||||||||||||
1366 | - | |||||||||||||||||||||||||||||||
1367 | - | |||||||||||||||||||||||||||||||
1368 | void QGLShaderProgram::setUniformValue(int location, const QMatrix4x2& value) | - | ||||||||||||||||||||||||||||||
1369 | { | - | ||||||||||||||||||||||||||||||
1370 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1371 | d->glfuncs->glUniform2fv(location, 4, value.constData()); | - | ||||||||||||||||||||||||||||||
1372 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1373 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix4x2& value) | - | ||||||||||||||||||||||||||||||
1374 | { | - | ||||||||||||||||||||||||||||||
1375 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1376 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1377 | - | |||||||||||||||||||||||||||||||
1378 | - | |||||||||||||||||||||||||||||||
1379 | - | |||||||||||||||||||||||||||||||
1380 | - | |||||||||||||||||||||||||||||||
1381 | - | |||||||||||||||||||||||||||||||
1382 | - | |||||||||||||||||||||||||||||||
1383 | - | |||||||||||||||||||||||||||||||
1384 | void QGLShaderProgram::setUniformValue(int location, const QMatrix4x3& value) | - | ||||||||||||||||||||||||||||||
1385 | { | - | ||||||||||||||||||||||||||||||
1386 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1387 | d->glfuncs->glUniform3fv(location, 4, value.constData()); | - | ||||||||||||||||||||||||||||||
1388 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1389 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix4x3& value) | - | ||||||||||||||||||||||||||||||
1390 | { | - | ||||||||||||||||||||||||||||||
1391 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1392 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1393 | - | |||||||||||||||||||||||||||||||
1394 | - | |||||||||||||||||||||||||||||||
1395 | - | |||||||||||||||||||||||||||||||
1396 | - | |||||||||||||||||||||||||||||||
1397 | - | |||||||||||||||||||||||||||||||
1398 | - | |||||||||||||||||||||||||||||||
1399 | - | |||||||||||||||||||||||||||||||
1400 | void QGLShaderProgram::setUniformValue(int location, const QMatrix4x4& value) | - | ||||||||||||||||||||||||||||||
1401 | { | - | ||||||||||||||||||||||||||||||
1402 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1403 | d->glfuncs->glUniformMatrix4fv(location, 1, 0, value.constData()); | - | ||||||||||||||||||||||||||||||
1404 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1405 | void QGLShaderProgram::setUniformValue(const char *name, const QMatrix4x4& value) | - | ||||||||||||||||||||||||||||||
1406 | { | - | ||||||||||||||||||||||||||||||
1407 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1408 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1409 | void QGLShaderProgram::setUniformValue(int location, const GLfloat value[2][2]) | - | ||||||||||||||||||||||||||||||
1410 | { | - | ||||||||||||||||||||||||||||||
1411 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1412 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1413 | d->glfuncs->glUniformMatrix2fv(location, 1, 0, value[0]); never executed: d->glfuncs->glUniformMatrix2fv(location, 1, 0, value[0]); | 0 | ||||||||||||||||||||||||||||||
1414 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1415 | void QGLShaderProgram::setUniformValue(int location, const GLfloat value[3][3]) | - | ||||||||||||||||||||||||||||||
1416 | { | - | ||||||||||||||||||||||||||||||
1417 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1418 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1419 | d->glfuncs->glUniformMatrix3fv(location, 1, 0, value[0]); never executed: d->glfuncs->glUniformMatrix3fv(location, 1, 0, value[0]); | 0 | ||||||||||||||||||||||||||||||
1420 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1421 | void QGLShaderProgram::setUniformValue(int location, const GLfloat value[4][4]) | - | ||||||||||||||||||||||||||||||
1422 | { | - | ||||||||||||||||||||||||||||||
1423 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1424 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1425 | d->glfuncs->glUniformMatrix4fv(location, 1, 0, value[0]); never executed: d->glfuncs->glUniformMatrix4fv(location, 1, 0, value[0]); | 0 | ||||||||||||||||||||||||||||||
1426 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1427 | void QGLShaderProgram::setUniformValue(const char *name, const GLfloat value[2][2]) | - | ||||||||||||||||||||||||||||||
1428 | { | - | ||||||||||||||||||||||||||||||
1429 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1430 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1431 | void QGLShaderProgram::setUniformValue(const char *name, const GLfloat value[3][3]) | - | ||||||||||||||||||||||||||||||
1432 | { | - | ||||||||||||||||||||||||||||||
1433 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1434 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1435 | void QGLShaderProgram::setUniformValue(const char *name, const GLfloat value[4][4]) | - | ||||||||||||||||||||||||||||||
1436 | { | - | ||||||||||||||||||||||||||||||
1437 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1438 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1439 | void QGLShaderProgram::setUniformValue(int location, const QTransform& value) | - | ||||||||||||||||||||||||||||||
1440 | { | - | ||||||||||||||||||||||||||||||
1441 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1442 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1443 | GLfloat mat[3][3] = { | - | ||||||||||||||||||||||||||||||
1444 | {GLfloat(value.m11()), GLfloat(value.m12()), GLfloat(value.m13())}, | - | ||||||||||||||||||||||||||||||
1445 | {GLfloat(value.m21()), GLfloat(value.m22()), GLfloat(value.m23())}, | - | ||||||||||||||||||||||||||||||
1446 | {GLfloat(value.m31()), GLfloat(value.m32()), GLfloat(value.m33())} | - | ||||||||||||||||||||||||||||||
1447 | }; | - | ||||||||||||||||||||||||||||||
1448 | d->glfuncs->glUniformMatrix3fv(location, 1, 0, mat[0]); | - | ||||||||||||||||||||||||||||||
1449 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1450 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1451 | void QGLShaderProgram::setUniformValue | - | ||||||||||||||||||||||||||||||
1452 | (const char *name, const QTransform& value) | - | ||||||||||||||||||||||||||||||
1453 | { | - | ||||||||||||||||||||||||||||||
1454 | setUniformValue(uniformLocation(name), value); | - | ||||||||||||||||||||||||||||||
1455 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1456 | - | |||||||||||||||||||||||||||||||
1457 | - | |||||||||||||||||||||||||||||||
1458 | - | |||||||||||||||||||||||||||||||
1459 | - | |||||||||||||||||||||||||||||||
1460 | - | |||||||||||||||||||||||||||||||
1461 | - | |||||||||||||||||||||||||||||||
1462 | - | |||||||||||||||||||||||||||||||
1463 | void QGLShaderProgram::setUniformValueArray(int location, const GLint *values, int count) | - | ||||||||||||||||||||||||||||||
1464 | { | - | ||||||||||||||||||||||||||||||
1465 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1466 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1467 | d->glfuncs->glUniform1iv(location, count, values); never executed: d->glfuncs->glUniform1iv(location, count, values); | 0 | ||||||||||||||||||||||||||||||
1468 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1469 | void QGLShaderProgram::setUniformValueArray | - | ||||||||||||||||||||||||||||||
1470 | (const char *name, const GLint *values, int count) | - | ||||||||||||||||||||||||||||||
1471 | { | - | ||||||||||||||||||||||||||||||
1472 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1473 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1474 | void QGLShaderProgram::setUniformValueArray(int location, const GLuint *values, int count) | - | ||||||||||||||||||||||||||||||
1475 | { | - | ||||||||||||||||||||||||||||||
1476 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1477 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1478 | d->glfuncs->glUniform1iv(location, count, reinterpret_cast<const GLint *>(values)); never executed: d->glfuncs->glUniform1iv(location, count, reinterpret_cast<const GLint *>(values)); | 0 | ||||||||||||||||||||||||||||||
1479 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1480 | void QGLShaderProgram::setUniformValueArray | - | ||||||||||||||||||||||||||||||
1481 | (const char *name, const GLuint *values, int count) | - | ||||||||||||||||||||||||||||||
1482 | { | - | ||||||||||||||||||||||||||||||
1483 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1484 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1485 | void QGLShaderProgram::setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize) | - | ||||||||||||||||||||||||||||||
1486 | { | - | ||||||||||||||||||||||||||||||
1487 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1488 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1489 | if (tupleSize == 1
| 0 | ||||||||||||||||||||||||||||||
1490 | d->glfuncs->glUniform1fv(location, count, values); never executed: d->glfuncs->glUniform1fv(location, count, values); | 0 | ||||||||||||||||||||||||||||||
1491 | else if (tupleSize == 2
| 0 | ||||||||||||||||||||||||||||||
1492 | d->glfuncs->glUniform2fv(location, count, values); never executed: d->glfuncs->glUniform2fv(location, count, values); | 0 | ||||||||||||||||||||||||||||||
1493 | else if (tupleSize == 3
| 0 | ||||||||||||||||||||||||||||||
1494 | d->glfuncs->glUniform3fv(location, count, values); never executed: d->glfuncs->glUniform3fv(location, count, values); | 0 | ||||||||||||||||||||||||||||||
1495 | else if (tupleSize == 4
| 0 | ||||||||||||||||||||||||||||||
1496 | d->glfuncs->glUniform4fv(location, count, values); never executed: d->glfuncs->glUniform4fv(location, count, values); | 0 | ||||||||||||||||||||||||||||||
1497 | else | - | ||||||||||||||||||||||||||||||
1498 | QMessageLogger(__FILE__, 2677, __PRETTY_FUNCTION__).warning() << "QGLShaderProgram::setUniformValue: size" << tupleSize << "not supported"; never executed: QMessageLogger(__FILE__, 2677, __PRETTY_FUNCTION__).warning() << "QGLShaderProgram::setUniformValue: size" << tupleSize << "not supported"; | 0 | ||||||||||||||||||||||||||||||
1499 | } | - | ||||||||||||||||||||||||||||||
1500 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1501 | void QGLShaderProgram::setUniformValueArray | - | ||||||||||||||||||||||||||||||
1502 | (const char *name, const GLfloat *values, int count, int tupleSize) | - | ||||||||||||||||||||||||||||||
1503 | { | - | ||||||||||||||||||||||||||||||
1504 | setUniformValueArray(uniformLocation(name), values, count, tupleSize); | - | ||||||||||||||||||||||||||||||
1505 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1506 | - | |||||||||||||||||||||||||||||||
1507 | - | |||||||||||||||||||||||||||||||
1508 | - | |||||||||||||||||||||||||||||||
1509 | - | |||||||||||||||||||||||||||||||
1510 | - | |||||||||||||||||||||||||||||||
1511 | - | |||||||||||||||||||||||||||||||
1512 | - | |||||||||||||||||||||||||||||||
1513 | void QGLShaderProgram::setUniformValueArray(int location, const QVector2D *values, int count) | - | ||||||||||||||||||||||||||||||
1514 | { | - | ||||||||||||||||||||||||||||||
1515 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1516 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1517 | d->glfuncs->glUniform2fv(location, count, reinterpret_cast<const GLfloat *>(values)); never executed: d->glfuncs->glUniform2fv(location, count, reinterpret_cast<const GLfloat *>(values)); | 0 | ||||||||||||||||||||||||||||||
1518 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1519 | void QGLShaderProgram::setUniformValueArray(const char *name, const QVector2D *values, int count) | - | ||||||||||||||||||||||||||||||
1520 | { | - | ||||||||||||||||||||||||||||||
1521 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1522 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1523 | - | |||||||||||||||||||||||||||||||
1524 | - | |||||||||||||||||||||||||||||||
1525 | - | |||||||||||||||||||||||||||||||
1526 | - | |||||||||||||||||||||||||||||||
1527 | - | |||||||||||||||||||||||||||||||
1528 | - | |||||||||||||||||||||||||||||||
1529 | - | |||||||||||||||||||||||||||||||
1530 | void QGLShaderProgram::setUniformValueArray(int location, const QVector3D *values, int count) | - | ||||||||||||||||||||||||||||||
1531 | { | - | ||||||||||||||||||||||||||||||
1532 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1533 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1534 | d->glfuncs->glUniform3fv(location, count, reinterpret_cast<const GLfloat *>(values)); never executed: d->glfuncs->glUniform3fv(location, count, reinterpret_cast<const GLfloat *>(values)); | 0 | ||||||||||||||||||||||||||||||
1535 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1536 | void QGLShaderProgram::setUniformValueArray(const char *name, const QVector3D *values, int count) | - | ||||||||||||||||||||||||||||||
1537 | { | - | ||||||||||||||||||||||||||||||
1538 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1539 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1540 | - | |||||||||||||||||||||||||||||||
1541 | - | |||||||||||||||||||||||||||||||
1542 | - | |||||||||||||||||||||||||||||||
1543 | - | |||||||||||||||||||||||||||||||
1544 | - | |||||||||||||||||||||||||||||||
1545 | - | |||||||||||||||||||||||||||||||
1546 | - | |||||||||||||||||||||||||||||||
1547 | void QGLShaderProgram::setUniformValueArray(int location, const QVector4D *values, int count) | - | ||||||||||||||||||||||||||||||
1548 | { | - | ||||||||||||||||||||||||||||||
1549 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1550 | (void)d;; | - | ||||||||||||||||||||||||||||||
1551 | if (location != -1
| 0 | ||||||||||||||||||||||||||||||
1552 | d->glfuncs->glUniform4fv(location, count, reinterpret_cast<const GLfloat *>(values)); never executed: d->glfuncs->glUniform4fv(location, count, reinterpret_cast<const GLfloat *>(values)); | 0 | ||||||||||||||||||||||||||||||
1553 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1554 | void QGLShaderProgram::setUniformValueArray(const char *name, const QVector4D *values, int count) | - | ||||||||||||||||||||||||||||||
1555 | { | - | ||||||||||||||||||||||||||||||
1556 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1557 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1558 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix2x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1559 | { | - | ||||||||||||||||||||||||||||||
1560 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1561 | (void)d;; | - | ||||||||||||||||||||||||||||||
1562 | if (location == -1
never executed: if (sizeof(QMatrix2x2) == sizeof(GLfloat) * 2 * 2return;
never executed: else { QVarLengthArray<GLfloat> temp(2 * 2 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniformMatrix2fv(location, count, 0, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1563 | ; | - | ||||||||||||||||||||||||||||||
1564 | } | - | ||||||||||||||||||||||||||||||
1565 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1566 | { | - | ||||||||||||||||||||||||||||||
1567 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1568 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1569 | - | |||||||||||||||||||||||||||||||
1570 | - | |||||||||||||||||||||||||||||||
1571 | - | |||||||||||||||||||||||||||||||
1572 | - | |||||||||||||||||||||||||||||||
1573 | - | |||||||||||||||||||||||||||||||
1574 | - | |||||||||||||||||||||||||||||||
1575 | - | |||||||||||||||||||||||||||||||
1576 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix2x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1577 | { | - | ||||||||||||||||||||||||||||||
1578 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1579 | (void)d;; | - | ||||||||||||||||||||||||||||||
1580 | if (location == -1
never executed: if (sizeof(QMatrix2x3) == sizeof(GLfloat) * 2 * 3return;
never executed: else { QVarLengthArray<GLfloat> temp(2 * 3 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform3fv(location, count * 2, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1581 | - | |||||||||||||||||||||||||||||||
1582 | ; | - | ||||||||||||||||||||||||||||||
1583 | } | - | ||||||||||||||||||||||||||||||
1584 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1585 | { | - | ||||||||||||||||||||||||||||||
1586 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1587 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1588 | - | |||||||||||||||||||||||||||||||
1589 | - | |||||||||||||||||||||||||||||||
1590 | - | |||||||||||||||||||||||||||||||
1591 | - | |||||||||||||||||||||||||||||||
1592 | - | |||||||||||||||||||||||||||||||
1593 | - | |||||||||||||||||||||||||||||||
1594 | - | |||||||||||||||||||||||||||||||
1595 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix2x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1596 | { | - | ||||||||||||||||||||||||||||||
1597 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1598 | (void)d;; | - | ||||||||||||||||||||||||||||||
1599 | if (location == -1
never executed: if (sizeof(QMatrix2x4) == sizeof(GLfloat) * 2 * 4return;
never executed: else { QVarLengthArray<GLfloat> temp(2 * 4 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform4fv(location, count * 2, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1600 | - | |||||||||||||||||||||||||||||||
1601 | ; | - | ||||||||||||||||||||||||||||||
1602 | } | - | ||||||||||||||||||||||||||||||
1603 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1604 | { | - | ||||||||||||||||||||||||||||||
1605 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1606 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1607 | - | |||||||||||||||||||||||||||||||
1608 | - | |||||||||||||||||||||||||||||||
1609 | - | |||||||||||||||||||||||||||||||
1610 | - | |||||||||||||||||||||||||||||||
1611 | - | |||||||||||||||||||||||||||||||
1612 | - | |||||||||||||||||||||||||||||||
1613 | - | |||||||||||||||||||||||||||||||
1614 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix3x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1615 | { | - | ||||||||||||||||||||||||||||||
1616 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1617 | (void)d;; | - | ||||||||||||||||||||||||||||||
1618 | if (location == -1
never executed: if (sizeof(QMatrix3x2) == sizeof(GLfloat) * 3 * 2return;
never executed: else { QVarLengthArray<GLfloat> temp(3 * 2 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform2fv(location, count * 3, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1619 | - | |||||||||||||||||||||||||||||||
1620 | ; | - | ||||||||||||||||||||||||||||||
1621 | } | - | ||||||||||||||||||||||||||||||
1622 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1623 | { | - | ||||||||||||||||||||||||||||||
1624 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1625 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1626 | - | |||||||||||||||||||||||||||||||
1627 | - | |||||||||||||||||||||||||||||||
1628 | - | |||||||||||||||||||||||||||||||
1629 | - | |||||||||||||||||||||||||||||||
1630 | - | |||||||||||||||||||||||||||||||
1631 | - | |||||||||||||||||||||||||||||||
1632 | - | |||||||||||||||||||||||||||||||
1633 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix3x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1634 | { | - | ||||||||||||||||||||||||||||||
1635 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1636 | (void)d;; | - | ||||||||||||||||||||||||||||||
1637 | if (location == -1
never executed: if (sizeof(QMatrix3x3) == sizeof(GLfloat) * 3 * 3return;
never executed: else { QVarLengthArray<GLfloat> temp(3 * 3 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniformMatrix3fv(location, count, 0, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1638 | ; | - | ||||||||||||||||||||||||||||||
1639 | } | - | ||||||||||||||||||||||||||||||
1640 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1641 | { | - | ||||||||||||||||||||||||||||||
1642 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1643 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1644 | - | |||||||||||||||||||||||||||||||
1645 | - | |||||||||||||||||||||||||||||||
1646 | - | |||||||||||||||||||||||||||||||
1647 | - | |||||||||||||||||||||||||||||||
1648 | - | |||||||||||||||||||||||||||||||
1649 | - | |||||||||||||||||||||||||||||||
1650 | - | |||||||||||||||||||||||||||||||
1651 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix3x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1652 | { | - | ||||||||||||||||||||||||||||||
1653 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1654 | (void)d;; | - | ||||||||||||||||||||||||||||||
1655 | if (location == -1
never executed: if (sizeof(QMatrix3x4) == sizeof(GLfloat) * 3 * 4return;
never executed: else { QVarLengthArray<GLfloat> temp(3 * 4 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform4fv(location, count * 3, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1656 | - | |||||||||||||||||||||||||||||||
1657 | ; | - | ||||||||||||||||||||||||||||||
1658 | } | - | ||||||||||||||||||||||||||||||
1659 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1660 | { | - | ||||||||||||||||||||||||||||||
1661 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1662 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1663 | - | |||||||||||||||||||||||||||||||
1664 | - | |||||||||||||||||||||||||||||||
1665 | - | |||||||||||||||||||||||||||||||
1666 | - | |||||||||||||||||||||||||||||||
1667 | - | |||||||||||||||||||||||||||||||
1668 | - | |||||||||||||||||||||||||||||||
1669 | - | |||||||||||||||||||||||||||||||
1670 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix4x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1671 | { | - | ||||||||||||||||||||||||||||||
1672 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1673 | (void)d;; | - | ||||||||||||||||||||||||||||||
1674 | if (location == -1
never executed: if (sizeof(QMatrix4x2) == sizeof(GLfloat) * 4 * 2return;
never executed: else { QVarLengthArray<GLfloat> temp(4 * 2 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform2fv(location, count * 4, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1675 | - | |||||||||||||||||||||||||||||||
1676 | ; | - | ||||||||||||||||||||||||||||||
1677 | } | - | ||||||||||||||||||||||||||||||
1678 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x2 *values, int count) | - | ||||||||||||||||||||||||||||||
1679 | { | - | ||||||||||||||||||||||||||||||
1680 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1681 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1682 | - | |||||||||||||||||||||||||||||||
1683 | - | |||||||||||||||||||||||||||||||
1684 | - | |||||||||||||||||||||||||||||||
1685 | - | |||||||||||||||||||||||||||||||
1686 | - | |||||||||||||||||||||||||||||||
1687 | - | |||||||||||||||||||||||||||||||
1688 | - | |||||||||||||||||||||||||||||||
1689 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix4x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1690 | { | - | ||||||||||||||||||||||||||||||
1691 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1692 | (void)d;; | - | ||||||||||||||||||||||||||||||
1693 | if (location == -1
never executed: if (sizeof(QMatrix4x3) == sizeof(GLfloat) * 4 * 3return;
never executed: else { QVarLengthArray<GLfloat> temp(4 * 3 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniform3fv(location, count * 4, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1694 | - | |||||||||||||||||||||||||||||||
1695 | ; | - | ||||||||||||||||||||||||||||||
1696 | } | - | ||||||||||||||||||||||||||||||
1697 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x3 *values, int count) | - | ||||||||||||||||||||||||||||||
1698 | { | - | ||||||||||||||||||||||||||||||
1699 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1700 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1701 | - | |||||||||||||||||||||||||||||||
1702 | - | |||||||||||||||||||||||||||||||
1703 | - | |||||||||||||||||||||||||||||||
1704 | - | |||||||||||||||||||||||||||||||
1705 | - | |||||||||||||||||||||||||||||||
1706 | - | |||||||||||||||||||||||||||||||
1707 | - | |||||||||||||||||||||||||||||||
1708 | void QGLShaderProgram::setUniformValueArray(int location, const QMatrix4x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1709 | { | - | ||||||||||||||||||||||||||||||
1710 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1711 | (void)d;; | - | ||||||||||||||||||||||||||||||
1712 | if (location == -1
never executed: if (sizeof(QMatrix4x4) == sizeof(GLfloat) * 4 * 4return;
never executed: else { QVarLengthArray<GLfloat> temp(4 * 4 * count); for (int index = 0; index < countend of block
never executed: }end of block never executed: d->glfuncs->glUniformMatrix4fv(location, count, 0, temp.constData()); }end of block never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1713 | ; | - | ||||||||||||||||||||||||||||||
1714 | } | - | ||||||||||||||||||||||||||||||
1715 | void QGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x4 *values, int count) | - | ||||||||||||||||||||||||||||||
1716 | { | - | ||||||||||||||||||||||||||||||
1717 | setUniformValueArray(uniformLocation(name), values, count); | - | ||||||||||||||||||||||||||||||
1718 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1719 | int QGLShaderProgram::maxGeometryOutputVertices() const | - | ||||||||||||||||||||||||||||||
1720 | { | - | ||||||||||||||||||||||||||||||
1721 | GLint n = 0; | - | ||||||||||||||||||||||||||||||
1722 | - | |||||||||||||||||||||||||||||||
1723 | const QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1724 | if (!QOpenGLContext::currentContext()->isOpenGLES()
| 0 | ||||||||||||||||||||||||||||||
1725 | d->glfuncs->glGetIntegerv(0x8DE0, &n); never executed: d->glfuncs->glGetIntegerv(0x8DE0, &n); | 0 | ||||||||||||||||||||||||||||||
1726 | - | |||||||||||||||||||||||||||||||
1727 | return never executed: n;return n; never executed: return n; | 0 | ||||||||||||||||||||||||||||||
1728 | } | - | ||||||||||||||||||||||||||||||
1729 | void QGLShaderProgram::setGeometryOutputVertexCount(int count) | - | ||||||||||||||||||||||||||||||
1730 | { | - | ||||||||||||||||||||||||||||||
1731 | - | |||||||||||||||||||||||||||||||
1732 | int max = maxGeometryOutputVertices(); | - | ||||||||||||||||||||||||||||||
1733 | if (count > max
| 0 | ||||||||||||||||||||||||||||||
1734 | QMessageLogger(__FILE__, 3093, __PRETTY_FUNCTION__).warning("QGLShaderProgram::setGeometryOutputVertexCount: count: %d higher than maximum: %d", | - | ||||||||||||||||||||||||||||||
1735 | count, max); | - | ||||||||||||||||||||||||||||||
1736 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1737 | - | |||||||||||||||||||||||||||||||
1738 | d_func()->geometryVertexCount = count; | - | ||||||||||||||||||||||||||||||
1739 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1740 | int QGLShaderProgram::geometryOutputVertexCount() const | - | ||||||||||||||||||||||||||||||
1741 | { | - | ||||||||||||||||||||||||||||||
1742 | return never executed: d_func()->geometryVertexCount;return d_func()->geometryVertexCount; never executed: return d_func()->geometryVertexCount; | 0 | ||||||||||||||||||||||||||||||
1743 | } | - | ||||||||||||||||||||||||||||||
1744 | - | |||||||||||||||||||||||||||||||
1745 | - | |||||||||||||||||||||||||||||||
1746 | - | |||||||||||||||||||||||||||||||
1747 | - | |||||||||||||||||||||||||||||||
1748 | - | |||||||||||||||||||||||||||||||
1749 | - | |||||||||||||||||||||||||||||||
1750 | - | |||||||||||||||||||||||||||||||
1751 | void QGLShaderProgram::setGeometryInputType(GLenum inputType) | - | ||||||||||||||||||||||||||||||
1752 | { | - | ||||||||||||||||||||||||||||||
1753 | d_func()->geometryInputType = inputType; | - | ||||||||||||||||||||||||||||||
1754 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1755 | GLenum QGLShaderProgram::geometryInputType() const | - | ||||||||||||||||||||||||||||||
1756 | { | - | ||||||||||||||||||||||||||||||
1757 | return never executed: d_func()->geometryInputType;return d_func()->geometryInputType; never executed: return d_func()->geometryInputType; | 0 | ||||||||||||||||||||||||||||||
1758 | } | - | ||||||||||||||||||||||||||||||
1759 | void QGLShaderProgram::setGeometryOutputType(GLenum outputType) | - | ||||||||||||||||||||||||||||||
1760 | { | - | ||||||||||||||||||||||||||||||
1761 | d_func()->geometryOutputType = outputType; | - | ||||||||||||||||||||||||||||||
1762 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1763 | GLenum QGLShaderProgram::geometryOutputType() const | - | ||||||||||||||||||||||||||||||
1764 | { | - | ||||||||||||||||||||||||||||||
1765 | return never executed: d_func()->geometryOutputType;return d_func()->geometryOutputType; never executed: return d_func()->geometryOutputType; | 0 | ||||||||||||||||||||||||||||||
1766 | } | - | ||||||||||||||||||||||||||||||
1767 | bool QGLShaderProgram::hasOpenGLShaderPrograms(const QGLContext *context) | - | ||||||||||||||||||||||||||||||
1768 | { | - | ||||||||||||||||||||||||||||||
1769 | - | |||||||||||||||||||||||||||||||
1770 | if (!context
| 0 | ||||||||||||||||||||||||||||||
1771 | context = QGLContext::currentContext(); never executed: context = QGLContext::currentContext(); | 0 | ||||||||||||||||||||||||||||||
1772 | if (!context
| 0 | ||||||||||||||||||||||||||||||
1773 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
1774 | - | |||||||||||||||||||||||||||||||
1775 | QOpenGLFunctions functions(context->contextHandle()); | - | ||||||||||||||||||||||||||||||
1776 | return never executed: functions.hasOpenGLFeature(QOpenGLFunctions::Shaders);return functions.hasOpenGLFeature(QOpenGLFunctions::Shaders); never executed: return functions.hasOpenGLFeature(QOpenGLFunctions::Shaders); | 0 | ||||||||||||||||||||||||||||||
1777 | - | |||||||||||||||||||||||||||||||
1778 | - | |||||||||||||||||||||||||||||||
1779 | - | |||||||||||||||||||||||||||||||
1780 | - | |||||||||||||||||||||||||||||||
1781 | } | - | ||||||||||||||||||||||||||||||
1782 | - | |||||||||||||||||||||||||||||||
1783 | - | |||||||||||||||||||||||||||||||
1784 | - | |||||||||||||||||||||||||||||||
1785 | - | |||||||||||||||||||||||||||||||
1786 | void QGLShaderProgram::shaderDestroyed() | - | ||||||||||||||||||||||||||||||
1787 | { | - | ||||||||||||||||||||||||||||||
1788 | QGLShaderProgramPrivate * const d = d_func(); | - | ||||||||||||||||||||||||||||||
1789 | QGLShader *shader = qobject_cast<QGLShader *>(sender()); | - | ||||||||||||||||||||||||||||||
1790 | if (shader
| 0-6 | ||||||||||||||||||||||||||||||
1791 | removeShader(shader); never executed: removeShader(shader); | 0 | ||||||||||||||||||||||||||||||
1792 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||||||||
1793 | bool QGLShader::hasOpenGLShaders(ShaderType type, const QGLContext *context) | - | ||||||||||||||||||||||||||||||
1794 | { | - | ||||||||||||||||||||||||||||||
1795 | if (!context
| 0 | ||||||||||||||||||||||||||||||
1796 | context = QGLContext::currentContext(); never executed: context = QGLContext::currentContext(); | 0 | ||||||||||||||||||||||||||||||
1797 | if (!context
| 0 | ||||||||||||||||||||||||||||||
1798 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
1799 | - | |||||||||||||||||||||||||||||||
1800 | if ((
| 0 | ||||||||||||||||||||||||||||||
1801 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
1802 | - | |||||||||||||||||||||||||||||||
1803 | QOpenGLFunctions functions(context->contextHandle()); | - | ||||||||||||||||||||||||||||||
1804 | bool resolved = functions.hasOpenGLFeature(QOpenGLFunctions::Shaders); | - | ||||||||||||||||||||||||||||||
1805 | if (!resolved
| 0 | ||||||||||||||||||||||||||||||
1806 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
1807 | - | |||||||||||||||||||||||||||||||
1808 | if ((
| 0 | ||||||||||||||||||||||||||||||
1809 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||||||||
1810 | - | |||||||||||||||||||||||||||||||
1811 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||||||||
1812 | } | - | ||||||||||||||||||||||||||||||
1813 | - | |||||||||||||||||||||||||||||||
1814 | - | |||||||||||||||||||||||||||||||
Switch to Source code | Preprocessed file |