gluCallLogWrapper.inl revision 314799d1cc4f65ec6503edf7375b9e566fa30fd1
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 *
4 * Generated from Khronos GL API description (gl.xml) revision 29570.
5 */
6
7void CallLogWrapper::glActiveShaderProgram (glw::GLuint pipeline, glw::GLuint program)
8{
9	if (m_enableLog)
10		m_log << TestLog::Message << "glActiveShaderProgram(" << pipeline << ", " << program << ");" << TestLog::EndMessage;
11	m_gl.activeShaderProgram(pipeline, program);
12}
13
14void CallLogWrapper::glActiveTexture (glw::GLenum texture)
15{
16	if (m_enableLog)
17		m_log << TestLog::Message << "glActiveTexture(" << getTextureUnitStr(texture) << ");" << TestLog::EndMessage;
18	m_gl.activeTexture(texture);
19}
20
21void CallLogWrapper::glAttachShader (glw::GLuint program, glw::GLuint shader)
22{
23	if (m_enableLog)
24		m_log << TestLog::Message << "glAttachShader(" << program << ", " << shader << ");" << TestLog::EndMessage;
25	m_gl.attachShader(program, shader);
26}
27
28void CallLogWrapper::glBeginConditionalRender (glw::GLuint id, glw::GLenum mode)
29{
30	if (m_enableLog)
31		m_log << TestLog::Message << "glBeginConditionalRender(" << id << ", " << toHex(mode) << ");" << TestLog::EndMessage;
32	m_gl.beginConditionalRender(id, mode);
33}
34
35void CallLogWrapper::glBeginQuery (glw::GLenum target, glw::GLuint id)
36{
37	if (m_enableLog)
38		m_log << TestLog::Message << "glBeginQuery(" << getQueryTargetStr(target) << ", " << id << ");" << TestLog::EndMessage;
39	m_gl.beginQuery(target, id);
40}
41
42void CallLogWrapper::glBeginQueryIndexed (glw::GLenum target, glw::GLuint index, glw::GLuint id)
43{
44	if (m_enableLog)
45		m_log << TestLog::Message << "glBeginQueryIndexed(" << toHex(target) << ", " << index << ", " << id << ");" << TestLog::EndMessage;
46	m_gl.beginQueryIndexed(target, index, id);
47}
48
49void CallLogWrapper::glBeginTransformFeedback (glw::GLenum primitiveMode)
50{
51	if (m_enableLog)
52		m_log << TestLog::Message << "glBeginTransformFeedback(" << getPrimitiveTypeStr(primitiveMode) << ");" << TestLog::EndMessage;
53	m_gl.beginTransformFeedback(primitiveMode);
54}
55
56void CallLogWrapper::glBindAttribLocation (glw::GLuint program, glw::GLuint index, const glw::GLchar *name)
57{
58	if (m_enableLog)
59		m_log << TestLog::Message << "glBindAttribLocation(" << program << ", " << index << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
60	m_gl.bindAttribLocation(program, index, name);
61}
62
63void CallLogWrapper::glBindBuffer (glw::GLenum target, glw::GLuint buffer)
64{
65	if (m_enableLog)
66		m_log << TestLog::Message << "glBindBuffer(" << getBufferTargetStr(target) << ", " << buffer << ");" << TestLog::EndMessage;
67	m_gl.bindBuffer(target, buffer);
68}
69
70void CallLogWrapper::glBindBufferBase (glw::GLenum target, glw::GLuint index, glw::GLuint buffer)
71{
72	if (m_enableLog)
73		m_log << TestLog::Message << "glBindBufferBase(" << getBufferTargetStr(target) << ", " << index << ", " << buffer << ");" << TestLog::EndMessage;
74	m_gl.bindBufferBase(target, index, buffer);
75}
76
77void CallLogWrapper::glBindBufferRange (glw::GLenum target, glw::GLuint index, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size)
78{
79	if (m_enableLog)
80		m_log << TestLog::Message << "glBindBufferRange(" << getBufferTargetStr(target) << ", " << index << ", " << buffer << ", " << offset << ", " << size << ");" << TestLog::EndMessage;
81	m_gl.bindBufferRange(target, index, buffer, offset, size);
82}
83
84void CallLogWrapper::glBindBuffersBase (glw::GLenum target, glw::GLuint first, glw::GLsizei count, const glw::GLuint *buffers)
85{
86	if (m_enableLog)
87		m_log << TestLog::Message << "glBindBuffersBase(" << toHex(target) << ", " << first << ", " << count << ", " << buffers << ");" << TestLog::EndMessage;
88	m_gl.bindBuffersBase(target, first, count, buffers);
89}
90
91void CallLogWrapper::glBindBuffersRange (glw::GLenum target, glw::GLuint first, glw::GLsizei count, const glw::GLuint *buffers, const glw::GLintptr *offsets, const glw::GLsizeiptr *sizes)
92{
93	if (m_enableLog)
94		m_log << TestLog::Message << "glBindBuffersRange(" << toHex(target) << ", " << first << ", " << count << ", " << buffers << ", " << offsets << ", " << sizes << ");" << TestLog::EndMessage;
95	m_gl.bindBuffersRange(target, first, count, buffers, offsets, sizes);
96}
97
98void CallLogWrapper::glBindFragDataLocation (glw::GLuint program, glw::GLuint color, const glw::GLchar *name)
99{
100	if (m_enableLog)
101		m_log << TestLog::Message << "glBindFragDataLocation(" << program << ", " << color << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
102	m_gl.bindFragDataLocation(program, color, name);
103}
104
105void CallLogWrapper::glBindFragDataLocationIndexed (glw::GLuint program, glw::GLuint colorNumber, glw::GLuint index, const glw::GLchar *name)
106{
107	if (m_enableLog)
108		m_log << TestLog::Message << "glBindFragDataLocationIndexed(" << program << ", " << colorNumber << ", " << index << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
109	m_gl.bindFragDataLocationIndexed(program, colorNumber, index, name);
110}
111
112void CallLogWrapper::glBindFramebuffer (glw::GLenum target, glw::GLuint framebuffer)
113{
114	if (m_enableLog)
115		m_log << TestLog::Message << "glBindFramebuffer(" << getFramebufferTargetStr(target) << ", " << framebuffer << ");" << TestLog::EndMessage;
116	m_gl.bindFramebuffer(target, framebuffer);
117}
118
119void CallLogWrapper::glBindImageTexture (glw::GLuint unit, glw::GLuint texture, glw::GLint level, glw::GLboolean layered, glw::GLint layer, glw::GLenum access, glw::GLenum format)
120{
121	if (m_enableLog)
122		m_log << TestLog::Message << "glBindImageTexture(" << unit << ", " << texture << ", " << level << ", " << getBooleanStr(layered) << ", " << layer << ", " << getImageAccessStr(access) << ", " << getPixelFormatStr(format) << ");" << TestLog::EndMessage;
123	m_gl.bindImageTexture(unit, texture, level, layered, layer, access, format);
124}
125
126void CallLogWrapper::glBindImageTextures (glw::GLuint first, glw::GLsizei count, const glw::GLuint *textures)
127{
128	if (m_enableLog)
129		m_log << TestLog::Message << "glBindImageTextures(" << first << ", " << count << ", " << textures << ");" << TestLog::EndMessage;
130	m_gl.bindImageTextures(first, count, textures);
131}
132
133void CallLogWrapper::glBindProgramPipeline (glw::GLuint pipeline)
134{
135	if (m_enableLog)
136		m_log << TestLog::Message << "glBindProgramPipeline(" << pipeline << ");" << TestLog::EndMessage;
137	m_gl.bindProgramPipeline(pipeline);
138}
139
140void CallLogWrapper::glBindRenderbuffer (glw::GLenum target, glw::GLuint renderbuffer)
141{
142	if (m_enableLog)
143		m_log << TestLog::Message << "glBindRenderbuffer(" << getFramebufferTargetStr(target) << ", " << renderbuffer << ");" << TestLog::EndMessage;
144	m_gl.bindRenderbuffer(target, renderbuffer);
145}
146
147void CallLogWrapper::glBindSampler (glw::GLuint unit, glw::GLuint sampler)
148{
149	if (m_enableLog)
150		m_log << TestLog::Message << "glBindSampler(" << unit << ", " << sampler << ");" << TestLog::EndMessage;
151	m_gl.bindSampler(unit, sampler);
152}
153
154void CallLogWrapper::glBindSamplers (glw::GLuint first, glw::GLsizei count, const glw::GLuint *samplers)
155{
156	if (m_enableLog)
157		m_log << TestLog::Message << "glBindSamplers(" << first << ", " << count << ", " << samplers << ");" << TestLog::EndMessage;
158	m_gl.bindSamplers(first, count, samplers);
159}
160
161void CallLogWrapper::glBindTexture (glw::GLenum target, glw::GLuint texture)
162{
163	if (m_enableLog)
164		m_log << TestLog::Message << "glBindTexture(" << getTextureTargetStr(target) << ", " << texture << ");" << TestLog::EndMessage;
165	m_gl.bindTexture(target, texture);
166}
167
168void CallLogWrapper::glBindTextureUnit (glw::GLuint unit, glw::GLuint texture)
169{
170	if (m_enableLog)
171		m_log << TestLog::Message << "glBindTextureUnit(" << unit << ", " << texture << ");" << TestLog::EndMessage;
172	m_gl.bindTextureUnit(unit, texture);
173}
174
175void CallLogWrapper::glBindTextures (glw::GLuint first, glw::GLsizei count, const glw::GLuint *textures)
176{
177	if (m_enableLog)
178		m_log << TestLog::Message << "glBindTextures(" << first << ", " << count << ", " << textures << ");" << TestLog::EndMessage;
179	m_gl.bindTextures(first, count, textures);
180}
181
182void CallLogWrapper::glBindTransformFeedback (glw::GLenum target, glw::GLuint id)
183{
184	if (m_enableLog)
185		m_log << TestLog::Message << "glBindTransformFeedback(" << getTransformFeedbackTargetStr(target) << ", " << id << ");" << TestLog::EndMessage;
186	m_gl.bindTransformFeedback(target, id);
187}
188
189void CallLogWrapper::glBindVertexArray (glw::GLuint array)
190{
191	if (m_enableLog)
192		m_log << TestLog::Message << "glBindVertexArray(" << array << ");" << TestLog::EndMessage;
193	m_gl.bindVertexArray(array);
194}
195
196void CallLogWrapper::glBindVertexBuffer (glw::GLuint bindingindex, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizei stride)
197{
198	if (m_enableLog)
199		m_log << TestLog::Message << "glBindVertexBuffer(" << bindingindex << ", " << buffer << ", " << offset << ", " << stride << ");" << TestLog::EndMessage;
200	m_gl.bindVertexBuffer(bindingindex, buffer, offset, stride);
201}
202
203void CallLogWrapper::glBindVertexBuffers (glw::GLuint first, glw::GLsizei count, const glw::GLuint *buffers, const glw::GLintptr *offsets, const glw::GLsizei *strides)
204{
205	if (m_enableLog)
206		m_log << TestLog::Message << "glBindVertexBuffers(" << first << ", " << count << ", " << buffers << ", " << offsets << ", " << strides << ");" << TestLog::EndMessage;
207	m_gl.bindVertexBuffers(first, count, buffers, offsets, strides);
208}
209
210void CallLogWrapper::glBlendBarrierKHR (void)
211{
212	if (m_enableLog)
213		m_log << TestLog::Message << "glBlendBarrierKHR(" << ");" << TestLog::EndMessage;
214	m_gl.blendBarrierKHR();
215}
216
217void CallLogWrapper::glBlendColor (glw::GLfloat red, glw::GLfloat green, glw::GLfloat blue, glw::GLfloat alpha)
218{
219	if (m_enableLog)
220		m_log << TestLog::Message << "glBlendColor(" << red << ", " << green << ", " << blue << ", " << alpha << ");" << TestLog::EndMessage;
221	m_gl.blendColor(red, green, blue, alpha);
222}
223
224void CallLogWrapper::glBlendEquation (glw::GLenum mode)
225{
226	if (m_enableLog)
227		m_log << TestLog::Message << "glBlendEquation(" << getBlendEquationStr(mode) << ");" << TestLog::EndMessage;
228	m_gl.blendEquation(mode);
229}
230
231void CallLogWrapper::glBlendEquationSeparate (glw::GLenum modeRGB, glw::GLenum modeAlpha)
232{
233	if (m_enableLog)
234		m_log << TestLog::Message << "glBlendEquationSeparate(" << getBlendEquationStr(modeRGB) << ", " << getBlendEquationStr(modeAlpha) << ");" << TestLog::EndMessage;
235	m_gl.blendEquationSeparate(modeRGB, modeAlpha);
236}
237
238void CallLogWrapper::glBlendEquationSeparatei (glw::GLuint buf, glw::GLenum modeRGB, glw::GLenum modeAlpha)
239{
240	if (m_enableLog)
241		m_log << TestLog::Message << "glBlendEquationSeparatei(" << buf << ", " << toHex(modeRGB) << ", " << toHex(modeAlpha) << ");" << TestLog::EndMessage;
242	m_gl.blendEquationSeparatei(buf, modeRGB, modeAlpha);
243}
244
245void CallLogWrapper::glBlendEquationi (glw::GLuint buf, glw::GLenum mode)
246{
247	if (m_enableLog)
248		m_log << TestLog::Message << "glBlendEquationi(" << buf << ", " << toHex(mode) << ");" << TestLog::EndMessage;
249	m_gl.blendEquationi(buf, mode);
250}
251
252void CallLogWrapper::glBlendFunc (glw::GLenum sfactor, glw::GLenum dfactor)
253{
254	if (m_enableLog)
255		m_log << TestLog::Message << "glBlendFunc(" << getBlendFactorStr(sfactor) << ", " << getBlendFactorStr(dfactor) << ");" << TestLog::EndMessage;
256	m_gl.blendFunc(sfactor, dfactor);
257}
258
259void CallLogWrapper::glBlendFuncSeparate (glw::GLenum sfactorRGB, glw::GLenum dfactorRGB, glw::GLenum sfactorAlpha, glw::GLenum dfactorAlpha)
260{
261	if (m_enableLog)
262		m_log << TestLog::Message << "glBlendFuncSeparate(" << getBlendFactorStr(sfactorRGB) << ", " << getBlendFactorStr(dfactorRGB) << ", " << getBlendFactorStr(sfactorAlpha) << ", " << getBlendFactorStr(dfactorAlpha) << ");" << TestLog::EndMessage;
263	m_gl.blendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
264}
265
266void CallLogWrapper::glBlendFuncSeparatei (glw::GLuint buf, glw::GLenum srcRGB, glw::GLenum dstRGB, glw::GLenum srcAlpha, glw::GLenum dstAlpha)
267{
268	if (m_enableLog)
269		m_log << TestLog::Message << "glBlendFuncSeparatei(" << buf << ", " << toHex(srcRGB) << ", " << toHex(dstRGB) << ", " << toHex(srcAlpha) << ", " << toHex(dstAlpha) << ");" << TestLog::EndMessage;
270	m_gl.blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
271}
272
273void CallLogWrapper::glBlendFunci (glw::GLuint buf, glw::GLenum src, glw::GLenum dst)
274{
275	if (m_enableLog)
276		m_log << TestLog::Message << "glBlendFunci(" << buf << ", " << toHex(src) << ", " << toHex(dst) << ");" << TestLog::EndMessage;
277	m_gl.blendFunci(buf, src, dst);
278}
279
280void CallLogWrapper::glBlitFramebuffer (glw::GLint srcX0, glw::GLint srcY0, glw::GLint srcX1, glw::GLint srcY1, glw::GLint dstX0, glw::GLint dstY0, glw::GLint dstX1, glw::GLint dstY1, glw::GLbitfield mask, glw::GLenum filter)
281{
282	if (m_enableLog)
283		m_log << TestLog::Message << "glBlitFramebuffer(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", " << dstY1 << ", " << getBufferMaskStr(mask) << ", " << getTextureFilterStr(filter) << ");" << TestLog::EndMessage;
284	m_gl.blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
285}
286
287void CallLogWrapper::glBlitNamedFramebuffer (glw::GLuint readFramebuffer, glw::GLuint drawFramebuffer, glw::GLint srcX0, glw::GLint srcY0, glw::GLint srcX1, glw::GLint srcY1, glw::GLint dstX0, glw::GLint dstY0, glw::GLint dstX1, glw::GLint dstY1, glw::GLbitfield mask, glw::GLenum filter)
288{
289	if (m_enableLog)
290		m_log << TestLog::Message << "glBlitNamedFramebuffer(" << readFramebuffer << ", " << drawFramebuffer << ", " << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", " << dstY1 << ", " << toHex(mask) << ", " << toHex(filter) << ");" << TestLog::EndMessage;
291	m_gl.blitNamedFramebuffer(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
292}
293
294void CallLogWrapper::glBufferData (glw::GLenum target, glw::GLsizeiptr size, const void *data, glw::GLenum usage)
295{
296	if (m_enableLog)
297		m_log << TestLog::Message << "glBufferData(" << getBufferTargetStr(target) << ", " << size << ", " << data << ", " << getUsageStr(usage) << ");" << TestLog::EndMessage;
298	m_gl.bufferData(target, size, data, usage);
299}
300
301void CallLogWrapper::glBufferStorage (glw::GLenum target, glw::GLsizeiptr size, const void *data, glw::GLbitfield flags)
302{
303	if (m_enableLog)
304		m_log << TestLog::Message << "glBufferStorage(" << toHex(target) << ", " << size << ", " << data << ", " << toHex(flags) << ");" << TestLog::EndMessage;
305	m_gl.bufferStorage(target, size, data, flags);
306}
307
308void CallLogWrapper::glBufferSubData (glw::GLenum target, glw::GLintptr offset, glw::GLsizeiptr size, const void *data)
309{
310	if (m_enableLog)
311		m_log << TestLog::Message << "glBufferSubData(" << getBufferTargetStr(target) << ", " << offset << ", " << size << ", " << data << ");" << TestLog::EndMessage;
312	m_gl.bufferSubData(target, offset, size, data);
313}
314
315glw::GLenum CallLogWrapper::glCheckFramebufferStatus (glw::GLenum target)
316{
317	if (m_enableLog)
318		m_log << TestLog::Message << "glCheckFramebufferStatus(" << getFramebufferTargetStr(target) << ");" << TestLog::EndMessage;
319	glw::GLenum returnValue = m_gl.checkFramebufferStatus(target);
320	if (m_enableLog)
321		m_log << TestLog::Message << "// " << getFramebufferStatusStr(returnValue) << " returned" << TestLog::EndMessage;
322	return returnValue;
323}
324
325glw::GLenum CallLogWrapper::glCheckNamedFramebufferStatus (glw::GLuint framebuffer, glw::GLenum target)
326{
327	if (m_enableLog)
328		m_log << TestLog::Message << "glCheckNamedFramebufferStatus(" << framebuffer << ", " << toHex(target) << ");" << TestLog::EndMessage;
329	glw::GLenum returnValue = m_gl.checkNamedFramebufferStatus(framebuffer, target);
330	if (m_enableLog)
331		m_log << TestLog::Message << "// " << toHex(returnValue) << " returned" << TestLog::EndMessage;
332	return returnValue;
333}
334
335void CallLogWrapper::glClampColor (glw::GLenum target, glw::GLenum clamp)
336{
337	if (m_enableLog)
338		m_log << TestLog::Message << "glClampColor(" << toHex(target) << ", " << toHex(clamp) << ");" << TestLog::EndMessage;
339	m_gl.clampColor(target, clamp);
340}
341
342void CallLogWrapper::glClear (glw::GLbitfield mask)
343{
344	if (m_enableLog)
345		m_log << TestLog::Message << "glClear(" << getBufferMaskStr(mask) << ");" << TestLog::EndMessage;
346	m_gl.clear(mask);
347}
348
349void CallLogWrapper::glClearBufferData (glw::GLenum target, glw::GLenum internalformat, glw::GLenum format, glw::GLenum type, const void *data)
350{
351	if (m_enableLog)
352		m_log << TestLog::Message << "glClearBufferData(" << toHex(target) << ", " << toHex(internalformat) << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
353	m_gl.clearBufferData(target, internalformat, format, type, data);
354}
355
356void CallLogWrapper::glClearBufferSubData (glw::GLenum target, glw::GLenum internalformat, glw::GLintptr offset, glw::GLsizeiptr size, glw::GLenum format, glw::GLenum type, const void *data)
357{
358	if (m_enableLog)
359		m_log << TestLog::Message << "glClearBufferSubData(" << toHex(target) << ", " << toHex(internalformat) << ", " << offset << ", " << size << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
360	m_gl.clearBufferSubData(target, internalformat, offset, size, format, type, data);
361}
362
363void CallLogWrapper::glClearBufferfi (glw::GLenum buffer, glw::GLint drawbuffer, glw::GLfloat depth, glw::GLint stencil)
364{
365	if (m_enableLog)
366		m_log << TestLog::Message << "glClearBufferfi(" << getBufferStr(buffer) << ", " << drawbuffer << ", " << depth << ", " << stencil << ");" << TestLog::EndMessage;
367	m_gl.clearBufferfi(buffer, drawbuffer, depth, stencil);
368}
369
370void CallLogWrapper::glClearBufferfv (glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLfloat *value)
371{
372	if (m_enableLog)
373		m_log << TestLog::Message << "glClearBufferfv(" << getBufferStr(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
374	m_gl.clearBufferfv(buffer, drawbuffer, value);
375}
376
377void CallLogWrapper::glClearBufferiv (glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLint *value)
378{
379	if (m_enableLog)
380		m_log << TestLog::Message << "glClearBufferiv(" << getBufferStr(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
381	m_gl.clearBufferiv(buffer, drawbuffer, value);
382}
383
384void CallLogWrapper::glClearBufferuiv (glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLuint *value)
385{
386	if (m_enableLog)
387		m_log << TestLog::Message << "glClearBufferuiv(" << getBufferStr(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
388	m_gl.clearBufferuiv(buffer, drawbuffer, value);
389}
390
391void CallLogWrapper::glClearColor (glw::GLfloat red, glw::GLfloat green, glw::GLfloat blue, glw::GLfloat alpha)
392{
393	if (m_enableLog)
394		m_log << TestLog::Message << "glClearColor(" << red << ", " << green << ", " << blue << ", " << alpha << ");" << TestLog::EndMessage;
395	m_gl.clearColor(red, green, blue, alpha);
396}
397
398void CallLogWrapper::glClearDepth (glw::GLdouble depth)
399{
400	if (m_enableLog)
401		m_log << TestLog::Message << "glClearDepth(" << depth << ");" << TestLog::EndMessage;
402	m_gl.clearDepth(depth);
403}
404
405void CallLogWrapper::glClearDepthf (glw::GLfloat d)
406{
407	if (m_enableLog)
408		m_log << TestLog::Message << "glClearDepthf(" << d << ");" << TestLog::EndMessage;
409	m_gl.clearDepthf(d);
410}
411
412void CallLogWrapper::glClearNamedBufferData (glw::GLuint buffer, glw::GLenum internalformat, glw::GLenum format, glw::GLenum type, const void *data)
413{
414	if (m_enableLog)
415		m_log << TestLog::Message << "glClearNamedBufferData(" << buffer << ", " << toHex(internalformat) << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
416	m_gl.clearNamedBufferData(buffer, internalformat, format, type, data);
417}
418
419void CallLogWrapper::glClearNamedBufferSubData (glw::GLuint buffer, glw::GLenum internalformat, glw::GLintptr offset, glw::GLsizeiptr size, glw::GLenum format, glw::GLenum type, const void *data)
420{
421	if (m_enableLog)
422		m_log << TestLog::Message << "glClearNamedBufferSubData(" << buffer << ", " << toHex(internalformat) << ", " << offset << ", " << size << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
423	m_gl.clearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
424}
425
426void CallLogWrapper::glClearNamedFramebufferfi (glw::GLuint framebuffer, glw::GLenum buffer, const glw::GLfloat depth, glw::GLint stencil)
427{
428	if (m_enableLog)
429		m_log << TestLog::Message << "glClearNamedFramebufferfi(" << framebuffer << ", " << toHex(buffer) << ", " << depth << ", " << stencil << ");" << TestLog::EndMessage;
430	m_gl.clearNamedFramebufferfi(framebuffer, buffer, depth, stencil);
431}
432
433void CallLogWrapper::glClearNamedFramebufferfv (glw::GLuint framebuffer, glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLfloat *value)
434{
435	if (m_enableLog)
436		m_log << TestLog::Message << "glClearNamedFramebufferfv(" << framebuffer << ", " << toHex(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
437	m_gl.clearNamedFramebufferfv(framebuffer, buffer, drawbuffer, value);
438}
439
440void CallLogWrapper::glClearNamedFramebufferiv (glw::GLuint framebuffer, glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLint *value)
441{
442	if (m_enableLog)
443		m_log << TestLog::Message << "glClearNamedFramebufferiv(" << framebuffer << ", " << toHex(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
444	m_gl.clearNamedFramebufferiv(framebuffer, buffer, drawbuffer, value);
445}
446
447void CallLogWrapper::glClearNamedFramebufferuiv (glw::GLuint framebuffer, glw::GLenum buffer, glw::GLint drawbuffer, const glw::GLuint *value)
448{
449	if (m_enableLog)
450		m_log << TestLog::Message << "glClearNamedFramebufferuiv(" << framebuffer << ", " << toHex(buffer) << ", " << drawbuffer << ", " << value << ");" << TestLog::EndMessage;
451	m_gl.clearNamedFramebufferuiv(framebuffer, buffer, drawbuffer, value);
452}
453
454void CallLogWrapper::glClearStencil (glw::GLint s)
455{
456	if (m_enableLog)
457		m_log << TestLog::Message << "glClearStencil(" << s << ");" << TestLog::EndMessage;
458	m_gl.clearStencil(s);
459}
460
461void CallLogWrapper::glClearTexImage (glw::GLuint texture, glw::GLint level, glw::GLenum format, glw::GLenum type, const void *data)
462{
463	if (m_enableLog)
464		m_log << TestLog::Message << "glClearTexImage(" << texture << ", " << level << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
465	m_gl.clearTexImage(texture, level, format, type, data);
466}
467
468void CallLogWrapper::glClearTexSubImage (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *data)
469{
470	if (m_enableLog)
471		m_log << TestLog::Message << "glClearTexSubImage(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << toHex(type) << ", " << data << ");" << TestLog::EndMessage;
472	m_gl.clearTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
473}
474
475glw::GLenum CallLogWrapper::glClientWaitSync (glw::GLsync sync, glw::GLbitfield flags, glw::GLuint64 timeout)
476{
477	if (m_enableLog)
478		m_log << TestLog::Message << "glClientWaitSync(" << sync << ", " << toHex(flags) << ", " << timeout << ");" << TestLog::EndMessage;
479	glw::GLenum returnValue = m_gl.clientWaitSync(sync, flags, timeout);
480	if (m_enableLog)
481		m_log << TestLog::Message << "// " << toHex(returnValue) << " returned" << TestLog::EndMessage;
482	return returnValue;
483}
484
485void CallLogWrapper::glClipControl (glw::GLenum origin, glw::GLenum depth)
486{
487	if (m_enableLog)
488		m_log << TestLog::Message << "glClipControl(" << toHex(origin) << ", " << toHex(depth) << ");" << TestLog::EndMessage;
489	m_gl.clipControl(origin, depth);
490}
491
492void CallLogWrapper::glColorMask (glw::GLboolean red, glw::GLboolean green, glw::GLboolean blue, glw::GLboolean alpha)
493{
494	if (m_enableLog)
495		m_log << TestLog::Message << "glColorMask(" << getBooleanStr(red) << ", " << getBooleanStr(green) << ", " << getBooleanStr(blue) << ", " << getBooleanStr(alpha) << ");" << TestLog::EndMessage;
496	m_gl.colorMask(red, green, blue, alpha);
497}
498
499void CallLogWrapper::glColorMaski (glw::GLuint index, glw::GLboolean r, glw::GLboolean g, glw::GLboolean b, glw::GLboolean a)
500{
501	if (m_enableLog)
502		m_log << TestLog::Message << "glColorMaski(" << index << ", " << getBooleanStr(r) << ", " << getBooleanStr(g) << ", " << getBooleanStr(b) << ", " << getBooleanStr(a) << ");" << TestLog::EndMessage;
503	m_gl.colorMaski(index, r, g, b, a);
504}
505
506void CallLogWrapper::glCompileShader (glw::GLuint shader)
507{
508	if (m_enableLog)
509		m_log << TestLog::Message << "glCompileShader(" << shader << ");" << TestLog::EndMessage;
510	m_gl.compileShader(shader);
511}
512
513void CallLogWrapper::glCompressedTexImage1D (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *data)
514{
515	if (m_enableLog)
516		m_log << TestLog::Message << "glCompressedTexImage1D(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << border << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
517	m_gl.compressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
518}
519
520void CallLogWrapper::glCompressedTexImage2D (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLsizei imageSize, const void *data)
521{
522	if (m_enableLog)
523		m_log << TestLog::Message << "glCompressedTexImage2D(" << getTextureTargetStr(target) << ", " << level << ", " << getCompressedTexFormatStr(internalformat) << ", " << width << ", " << height << ", " << border << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
524	m_gl.compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
525}
526
527void CallLogWrapper::glCompressedTexImage3D (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data)
528{
529	if (m_enableLog)
530		m_log << TestLog::Message << "glCompressedTexImage3D(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
531	m_gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
532}
533
534void CallLogWrapper::glCompressedTexSubImage1D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data)
535{
536	if (m_enableLog)
537		m_log << TestLog::Message << "glCompressedTexSubImage1D(" << toHex(target) << ", " << level << ", " << xoffset << ", " << width << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
538	m_gl.compressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
539}
540
541void CallLogWrapper::glCompressedTexSubImage2D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLsizei imageSize, const void *data)
542{
543	if (m_enableLog)
544		m_log << TestLog::Message << "glCompressedTexSubImage2D(" << getTextureTargetStr(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << width << ", " << height << ", " << getCompressedTexFormatStr(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
545	m_gl.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
546}
547
548void CallLogWrapper::glCompressedTexSubImage3D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data)
549{
550	if (m_enableLog)
551		m_log << TestLog::Message << "glCompressedTexSubImage3D(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
552	m_gl.compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
553}
554
555void CallLogWrapper::glCompressedTextureSubImage1D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data)
556{
557	if (m_enableLog)
558		m_log << TestLog::Message << "glCompressedTextureSubImage1D(" << texture << ", " << level << ", " << xoffset << ", " << width << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
559	m_gl.compressedTextureSubImage1D(texture, level, xoffset, width, format, imageSize, data);
560}
561
562void CallLogWrapper::glCompressedTextureSubImage2D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLsizei imageSize, const void *data)
563{
564	if (m_enableLog)
565		m_log << TestLog::Message << "glCompressedTextureSubImage2D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << width << ", " << height << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
566	m_gl.compressedTextureSubImage2D(texture, level, xoffset, yoffset, width, height, format, imageSize, data);
567}
568
569void CallLogWrapper::glCompressedTextureSubImage3D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data)
570{
571	if (m_enableLog)
572		m_log << TestLog::Message << "glCompressedTextureSubImage3D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
573	m_gl.compressedTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
574}
575
576void CallLogWrapper::glCopyBufferSubData (glw::GLenum readTarget, glw::GLenum writeTarget, glw::GLintptr readOffset, glw::GLintptr writeOffset, glw::GLsizeiptr size)
577{
578	if (m_enableLog)
579		m_log << TestLog::Message << "glCopyBufferSubData(" << toHex(readTarget) << ", " << toHex(writeTarget) << ", " << readOffset << ", " << writeOffset << ", " << size << ");" << TestLog::EndMessage;
580	m_gl.copyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
581}
582
583void CallLogWrapper::glCopyImageSubData (glw::GLuint srcName, glw::GLenum srcTarget, glw::GLint srcLevel, glw::GLint srcX, glw::GLint srcY, glw::GLint srcZ, glw::GLuint dstName, glw::GLenum dstTarget, glw::GLint dstLevel, glw::GLint dstX, glw::GLint dstY, glw::GLint dstZ, glw::GLsizei srcWidth, glw::GLsizei srcHeight, glw::GLsizei srcDepth)
584{
585	if (m_enableLog)
586		m_log << TestLog::Message << "glCopyImageSubData(" << srcName << ", " << toHex(srcTarget) << ", " << srcLevel << ", " << srcX << ", " << srcY << ", " << srcZ << ", " << dstName << ", " << toHex(dstTarget) << ", " << dstLevel << ", " << dstX << ", " << dstY << ", " << dstZ << ", " << srcWidth << ", " << srcHeight << ", " << srcDepth << ");" << TestLog::EndMessage;
587	m_gl.copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
588}
589
590void CallLogWrapper::glCopyNamedBufferSubData (glw::GLuint readBuffer, glw::GLuint writeBuffer, glw::GLintptr readOffset, glw::GLintptr writeOffset, glw::GLsizeiptr size)
591{
592	if (m_enableLog)
593		m_log << TestLog::Message << "glCopyNamedBufferSubData(" << readBuffer << ", " << writeBuffer << ", " << readOffset << ", " << writeOffset << ", " << size << ");" << TestLog::EndMessage;
594	m_gl.copyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, size);
595}
596
597void CallLogWrapper::glCopyTexImage1D (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLint border)
598{
599	if (m_enableLog)
600		m_log << TestLog::Message << "glCopyTexImage1D(" << getTextureTargetStr(target) << ", " << level << ", " << getPixelFormatStr(internalformat) << ", " << x << ", " << y << ", " << width << ", " << border << ");" << TestLog::EndMessage;
601	m_gl.copyTexImage1D(target, level, internalformat, x, y, width, border);
602}
603
604void CallLogWrapper::glCopyTexImage2D (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLint border)
605{
606	if (m_enableLog)
607		m_log << TestLog::Message << "glCopyTexImage2D(" << getTextureTargetStr(target) << ", " << level << ", " << getPixelFormatStr(internalformat) << ", " << x << ", " << y << ", " << width << ", " << height << ", " << border << ");" << TestLog::EndMessage;
608	m_gl.copyTexImage2D(target, level, internalformat, x, y, width, height, border);
609}
610
611void CallLogWrapper::glCopyTexSubImage1D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width)
612{
613	if (m_enableLog)
614		m_log << TestLog::Message << "glCopyTexSubImage1D(" << toHex(target) << ", " << level << ", " << xoffset << ", " << x << ", " << y << ", " << width << ");" << TestLog::EndMessage;
615	m_gl.copyTexSubImage1D(target, level, xoffset, x, y, width);
616}
617
618void CallLogWrapper::glCopyTexSubImage2D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
619{
620	if (m_enableLog)
621		m_log << TestLog::Message << "glCopyTexSubImage2D(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
622	m_gl.copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
623}
624
625void CallLogWrapper::glCopyTexSubImage3D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
626{
627	if (m_enableLog)
628		m_log << TestLog::Message << "glCopyTexSubImage3D(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
629	m_gl.copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
630}
631
632void CallLogWrapper::glCopyTextureSubImage1D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width)
633{
634	if (m_enableLog)
635		m_log << TestLog::Message << "glCopyTextureSubImage1D(" << texture << ", " << level << ", " << xoffset << ", " << x << ", " << y << ", " << width << ");" << TestLog::EndMessage;
636	m_gl.copyTextureSubImage1D(texture, level, xoffset, x, y, width);
637}
638
639void CallLogWrapper::glCopyTextureSubImage2D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
640{
641	if (m_enableLog)
642		m_log << TestLog::Message << "glCopyTextureSubImage2D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
643	m_gl.copyTextureSubImage2D(texture, level, xoffset, yoffset, x, y, width, height);
644}
645
646void CallLogWrapper::glCopyTextureSubImage3D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
647{
648	if (m_enableLog)
649		m_log << TestLog::Message << "glCopyTextureSubImage3D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
650	m_gl.copyTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, x, y, width, height);
651}
652
653void CallLogWrapper::glCreateBuffers (glw::GLsizei n, glw::GLuint *buffers)
654{
655	if (m_enableLog)
656		m_log << TestLog::Message << "glCreateBuffers(" << n << ", " << buffers << ");" << TestLog::EndMessage;
657	m_gl.createBuffers(n, buffers);
658}
659
660void CallLogWrapper::glCreateFramebuffers (glw::GLsizei n, glw::GLuint *framebuffers)
661{
662	if (m_enableLog)
663		m_log << TestLog::Message << "glCreateFramebuffers(" << n << ", " << framebuffers << ");" << TestLog::EndMessage;
664	m_gl.createFramebuffers(n, framebuffers);
665}
666
667glw::GLuint CallLogWrapper::glCreateProgram (void)
668{
669	if (m_enableLog)
670		m_log << TestLog::Message << "glCreateProgram(" << ");" << TestLog::EndMessage;
671	glw::GLuint returnValue = m_gl.createProgram();
672	if (m_enableLog)
673		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
674	return returnValue;
675}
676
677void CallLogWrapper::glCreateProgramPipelines (glw::GLsizei n, glw::GLuint *pipelines)
678{
679	if (m_enableLog)
680		m_log << TestLog::Message << "glCreateProgramPipelines(" << n << ", " << pipelines << ");" << TestLog::EndMessage;
681	m_gl.createProgramPipelines(n, pipelines);
682}
683
684void CallLogWrapper::glCreateQueries (glw::GLenum target, glw::GLsizei n, glw::GLuint *ids)
685{
686	if (m_enableLog)
687		m_log << TestLog::Message << "glCreateQueries(" << toHex(target) << ", " << n << ", " << ids << ");" << TestLog::EndMessage;
688	m_gl.createQueries(target, n, ids);
689}
690
691void CallLogWrapper::glCreateRenderbuffers (glw::GLsizei n, glw::GLuint *renderbuffers)
692{
693	if (m_enableLog)
694		m_log << TestLog::Message << "glCreateRenderbuffers(" << n << ", " << renderbuffers << ");" << TestLog::EndMessage;
695	m_gl.createRenderbuffers(n, renderbuffers);
696}
697
698void CallLogWrapper::glCreateSamplers (glw::GLsizei n, glw::GLuint *samplers)
699{
700	if (m_enableLog)
701		m_log << TestLog::Message << "glCreateSamplers(" << n << ", " << samplers << ");" << TestLog::EndMessage;
702	m_gl.createSamplers(n, samplers);
703}
704
705glw::GLuint CallLogWrapper::glCreateShader (glw::GLenum type)
706{
707	if (m_enableLog)
708		m_log << TestLog::Message << "glCreateShader(" << getShaderTypeStr(type) << ");" << TestLog::EndMessage;
709	glw::GLuint returnValue = m_gl.createShader(type);
710	if (m_enableLog)
711		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
712	return returnValue;
713}
714
715glw::GLuint CallLogWrapper::glCreateShaderProgramv (glw::GLenum type, glw::GLsizei count, const glw::GLchar *const*strings)
716{
717	if (m_enableLog)
718		m_log << TestLog::Message << "glCreateShaderProgramv(" << toHex(type) << ", " << count << ", " << strings << ");" << TestLog::EndMessage;
719	glw::GLuint returnValue = m_gl.createShaderProgramv(type, count, strings);
720	if (m_enableLog)
721		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
722	return returnValue;
723}
724
725void CallLogWrapper::glCreateTextures (glw::GLenum target, glw::GLsizei n, glw::GLuint *textures)
726{
727	if (m_enableLog)
728		m_log << TestLog::Message << "glCreateTextures(" << toHex(target) << ", " << n << ", " << textures << ");" << TestLog::EndMessage;
729	m_gl.createTextures(target, n, textures);
730}
731
732void CallLogWrapper::glCreateTransformFeedbacks (glw::GLsizei n, glw::GLuint *ids)
733{
734	if (m_enableLog)
735		m_log << TestLog::Message << "glCreateTransformFeedbacks(" << n << ", " << ids << ");" << TestLog::EndMessage;
736	m_gl.createTransformFeedbacks(n, ids);
737}
738
739void CallLogWrapper::glCreateVertexArrays (glw::GLsizei n, glw::GLuint *arrays)
740{
741	if (m_enableLog)
742		m_log << TestLog::Message << "glCreateVertexArrays(" << n << ", " << arrays << ");" << TestLog::EndMessage;
743	m_gl.createVertexArrays(n, arrays);
744}
745
746void CallLogWrapper::glCullFace (glw::GLenum mode)
747{
748	if (m_enableLog)
749		m_log << TestLog::Message << "glCullFace(" << getFaceStr(mode) << ");" << TestLog::EndMessage;
750	m_gl.cullFace(mode);
751}
752
753void CallLogWrapper::glDebugMessageCallback (glw::GLDEBUGPROC callback, const void *userParam)
754{
755	if (m_enableLog)
756		m_log << TestLog::Message << "glDebugMessageCallback(" << callback << ", " << userParam << ");" << TestLog::EndMessage;
757	m_gl.debugMessageCallback(callback, userParam);
758}
759
760void CallLogWrapper::glDebugMessageControl (glw::GLenum source, glw::GLenum type, glw::GLenum severity, glw::GLsizei count, const glw::GLuint *ids, glw::GLboolean enabled)
761{
762	if (m_enableLog)
763		m_log << TestLog::Message << "glDebugMessageControl(" << getDebugMessageSourceStr(source) << ", " << getDebugMessageTypeStr(type) << ", " << getDebugMessageSeverityStr(severity) << ", " << count << ", " << getPointerStr(ids, (count)) << ", " << getBooleanStr(enabled) << ");" << TestLog::EndMessage;
764	m_gl.debugMessageControl(source, type, severity, count, ids, enabled);
765}
766
767void CallLogWrapper::glDebugMessageInsert (glw::GLenum source, glw::GLenum type, glw::GLuint id, glw::GLenum severity, glw::GLsizei length, const glw::GLchar *buf)
768{
769	if (m_enableLog)
770		m_log << TestLog::Message << "glDebugMessageInsert(" << getDebugMessageSourceStr(source) << ", " << getDebugMessageTypeStr(type) << ", " << id << ", " << getDebugMessageSeverityStr(severity) << ", " << length << ", " << getStringStr(buf) << ");" << TestLog::EndMessage;
771	m_gl.debugMessageInsert(source, type, id, severity, length, buf);
772}
773
774void CallLogWrapper::glDeleteBuffers (glw::GLsizei n, const glw::GLuint *buffers)
775{
776	if (m_enableLog)
777		m_log << TestLog::Message << "glDeleteBuffers(" << n << ", " << getPointerStr(buffers, n) << ");" << TestLog::EndMessage;
778	m_gl.deleteBuffers(n, buffers);
779}
780
781void CallLogWrapper::glDeleteFramebuffers (glw::GLsizei n, const glw::GLuint *framebuffers)
782{
783	if (m_enableLog)
784		m_log << TestLog::Message << "glDeleteFramebuffers(" << n << ", " << getPointerStr(framebuffers, n) << ");" << TestLog::EndMessage;
785	m_gl.deleteFramebuffers(n, framebuffers);
786}
787
788void CallLogWrapper::glDeleteProgram (glw::GLuint program)
789{
790	if (m_enableLog)
791		m_log << TestLog::Message << "glDeleteProgram(" << program << ");" << TestLog::EndMessage;
792	m_gl.deleteProgram(program);
793}
794
795void CallLogWrapper::glDeleteProgramPipelines (glw::GLsizei n, const glw::GLuint *pipelines)
796{
797	if (m_enableLog)
798		m_log << TestLog::Message << "glDeleteProgramPipelines(" << n << ", " << pipelines << ");" << TestLog::EndMessage;
799	m_gl.deleteProgramPipelines(n, pipelines);
800}
801
802void CallLogWrapper::glDeleteQueries (glw::GLsizei n, const glw::GLuint *ids)
803{
804	if (m_enableLog)
805		m_log << TestLog::Message << "glDeleteQueries(" << n << ", " << getPointerStr(ids, n) << ");" << TestLog::EndMessage;
806	m_gl.deleteQueries(n, ids);
807}
808
809void CallLogWrapper::glDeleteRenderbuffers (glw::GLsizei n, const glw::GLuint *renderbuffers)
810{
811	if (m_enableLog)
812		m_log << TestLog::Message << "glDeleteRenderbuffers(" << n << ", " << getPointerStr(renderbuffers, n) << ");" << TestLog::EndMessage;
813	m_gl.deleteRenderbuffers(n, renderbuffers);
814}
815
816void CallLogWrapper::glDeleteSamplers (glw::GLsizei count, const glw::GLuint *samplers)
817{
818	if (m_enableLog)
819		m_log << TestLog::Message << "glDeleteSamplers(" << count << ", " << samplers << ");" << TestLog::EndMessage;
820	m_gl.deleteSamplers(count, samplers);
821}
822
823void CallLogWrapper::glDeleteShader (glw::GLuint shader)
824{
825	if (m_enableLog)
826		m_log << TestLog::Message << "glDeleteShader(" << shader << ");" << TestLog::EndMessage;
827	m_gl.deleteShader(shader);
828}
829
830void CallLogWrapper::glDeleteSync (glw::GLsync sync)
831{
832	if (m_enableLog)
833		m_log << TestLog::Message << "glDeleteSync(" << sync << ");" << TestLog::EndMessage;
834	m_gl.deleteSync(sync);
835}
836
837void CallLogWrapper::glDeleteTextures (glw::GLsizei n, const glw::GLuint *textures)
838{
839	if (m_enableLog)
840		m_log << TestLog::Message << "glDeleteTextures(" << n << ", " << getPointerStr(textures, n) << ");" << TestLog::EndMessage;
841	m_gl.deleteTextures(n, textures);
842}
843
844void CallLogWrapper::glDeleteTransformFeedbacks (glw::GLsizei n, const glw::GLuint *ids)
845{
846	if (m_enableLog)
847		m_log << TestLog::Message << "glDeleteTransformFeedbacks(" << n << ", " << ids << ");" << TestLog::EndMessage;
848	m_gl.deleteTransformFeedbacks(n, ids);
849}
850
851void CallLogWrapper::glDeleteVertexArrays (glw::GLsizei n, const glw::GLuint *arrays)
852{
853	if (m_enableLog)
854		m_log << TestLog::Message << "glDeleteVertexArrays(" << n << ", " << getPointerStr(arrays, n) << ");" << TestLog::EndMessage;
855	m_gl.deleteVertexArrays(n, arrays);
856}
857
858void CallLogWrapper::glDepthFunc (glw::GLenum func)
859{
860	if (m_enableLog)
861		m_log << TestLog::Message << "glDepthFunc(" << getCompareFuncStr(func) << ");" << TestLog::EndMessage;
862	m_gl.depthFunc(func);
863}
864
865void CallLogWrapper::glDepthMask (glw::GLboolean flag)
866{
867	if (m_enableLog)
868		m_log << TestLog::Message << "glDepthMask(" << getBooleanStr(flag) << ");" << TestLog::EndMessage;
869	m_gl.depthMask(flag);
870}
871
872void CallLogWrapper::glDepthRange (glw::GLdouble near, glw::GLdouble far)
873{
874	if (m_enableLog)
875		m_log << TestLog::Message << "glDepthRange(" << near << ", " << far << ");" << TestLog::EndMessage;
876	m_gl.depthRange(near, far);
877}
878
879void CallLogWrapper::glDepthRangeArrayv (glw::GLuint first, glw::GLsizei count, const glw::GLdouble *v)
880{
881	if (m_enableLog)
882		m_log << TestLog::Message << "glDepthRangeArrayv(" << first << ", " << count << ", " << v << ");" << TestLog::EndMessage;
883	m_gl.depthRangeArrayv(first, count, v);
884}
885
886void CallLogWrapper::glDepthRangeIndexed (glw::GLuint index, glw::GLdouble n, glw::GLdouble f)
887{
888	if (m_enableLog)
889		m_log << TestLog::Message << "glDepthRangeIndexed(" << index << ", " << n << ", " << f << ");" << TestLog::EndMessage;
890	m_gl.depthRangeIndexed(index, n, f);
891}
892
893void CallLogWrapper::glDepthRangef (glw::GLfloat n, glw::GLfloat f)
894{
895	if (m_enableLog)
896		m_log << TestLog::Message << "glDepthRangef(" << n << ", " << f << ");" << TestLog::EndMessage;
897	m_gl.depthRangef(n, f);
898}
899
900void CallLogWrapper::glDetachShader (glw::GLuint program, glw::GLuint shader)
901{
902	if (m_enableLog)
903		m_log << TestLog::Message << "glDetachShader(" << program << ", " << shader << ");" << TestLog::EndMessage;
904	m_gl.detachShader(program, shader);
905}
906
907void CallLogWrapper::glDisable (glw::GLenum cap)
908{
909	if (m_enableLog)
910		m_log << TestLog::Message << "glDisable(" << getEnableCapStr(cap) << ");" << TestLog::EndMessage;
911	m_gl.disable(cap);
912}
913
914void CallLogWrapper::glDisableVertexArrayAttrib (glw::GLuint vaobj, glw::GLuint index)
915{
916	if (m_enableLog)
917		m_log << TestLog::Message << "glDisableVertexArrayAttrib(" << vaobj << ", " << index << ");" << TestLog::EndMessage;
918	m_gl.disableVertexArrayAttrib(vaobj, index);
919}
920
921void CallLogWrapper::glDisableVertexAttribArray (glw::GLuint index)
922{
923	if (m_enableLog)
924		m_log << TestLog::Message << "glDisableVertexAttribArray(" << index << ");" << TestLog::EndMessage;
925	m_gl.disableVertexAttribArray(index);
926}
927
928void CallLogWrapper::glDisablei (glw::GLenum target, glw::GLuint index)
929{
930	if (m_enableLog)
931		m_log << TestLog::Message << "glDisablei(" << toHex(target) << ", " << index << ");" << TestLog::EndMessage;
932	m_gl.disablei(target, index);
933}
934
935void CallLogWrapper::glDispatchCompute (glw::GLuint num_groups_x, glw::GLuint num_groups_y, glw::GLuint num_groups_z)
936{
937	if (m_enableLog)
938		m_log << TestLog::Message << "glDispatchCompute(" << num_groups_x << ", " << num_groups_y << ", " << num_groups_z << ");" << TestLog::EndMessage;
939	m_gl.dispatchCompute(num_groups_x, num_groups_y, num_groups_z);
940}
941
942void CallLogWrapper::glDispatchComputeIndirect (glw::GLintptr indirect)
943{
944	if (m_enableLog)
945		m_log << TestLog::Message << "glDispatchComputeIndirect(" << indirect << ");" << TestLog::EndMessage;
946	m_gl.dispatchComputeIndirect(indirect);
947}
948
949void CallLogWrapper::glDrawArrays (glw::GLenum mode, glw::GLint first, glw::GLsizei count)
950{
951	if (m_enableLog)
952		m_log << TestLog::Message << "glDrawArrays(" << getPrimitiveTypeStr(mode) << ", " << first << ", " << count << ");" << TestLog::EndMessage;
953	m_gl.drawArrays(mode, first, count);
954}
955
956void CallLogWrapper::glDrawArraysIndirect (glw::GLenum mode, const void *indirect)
957{
958	if (m_enableLog)
959		m_log << TestLog::Message << "glDrawArraysIndirect(" << getPrimitiveTypeStr(mode) << ", " << indirect << ");" << TestLog::EndMessage;
960	m_gl.drawArraysIndirect(mode, indirect);
961}
962
963void CallLogWrapper::glDrawArraysInstanced (glw::GLenum mode, glw::GLint first, glw::GLsizei count, glw::GLsizei instancecount)
964{
965	if (m_enableLog)
966		m_log << TestLog::Message << "glDrawArraysInstanced(" << getPrimitiveTypeStr(mode) << ", " << first << ", " << count << ", " << instancecount << ");" << TestLog::EndMessage;
967	m_gl.drawArraysInstanced(mode, first, count, instancecount);
968}
969
970void CallLogWrapper::glDrawArraysInstancedBaseInstance (glw::GLenum mode, glw::GLint first, glw::GLsizei count, glw::GLsizei instancecount, glw::GLuint baseinstance)
971{
972	if (m_enableLog)
973		m_log << TestLog::Message << "glDrawArraysInstancedBaseInstance(" << toHex(mode) << ", " << first << ", " << count << ", " << instancecount << ", " << baseinstance << ");" << TestLog::EndMessage;
974	m_gl.drawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
975}
976
977void CallLogWrapper::glDrawBuffer (glw::GLenum buf)
978{
979	if (m_enableLog)
980		m_log << TestLog::Message << "glDrawBuffer(" << toHex(buf) << ");" << TestLog::EndMessage;
981	m_gl.drawBuffer(buf);
982}
983
984void CallLogWrapper::glDrawBuffers (glw::GLsizei n, const glw::GLenum *bufs)
985{
986	if (m_enableLog)
987		m_log << TestLog::Message << "glDrawBuffers(" << n << ", " << getEnumPointerStr(bufs, n, getDrawReadBufferName) << ");" << TestLog::EndMessage;
988	m_gl.drawBuffers(n, bufs);
989}
990
991void CallLogWrapper::glDrawElements (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices)
992{
993	if (m_enableLog)
994		m_log << TestLog::Message << "glDrawElements(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ");" << TestLog::EndMessage;
995	m_gl.drawElements(mode, count, type, indices);
996}
997
998void CallLogWrapper::glDrawElementsBaseVertex (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLint basevertex)
999{
1000	if (m_enableLog)
1001		m_log << TestLog::Message << "glDrawElementsBaseVertex(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << basevertex << ");" << TestLog::EndMessage;
1002	m_gl.drawElementsBaseVertex(mode, count, type, indices, basevertex);
1003}
1004
1005void CallLogWrapper::glDrawElementsIndirect (glw::GLenum mode, glw::GLenum type, const void *indirect)
1006{
1007	if (m_enableLog)
1008		m_log << TestLog::Message << "glDrawElementsIndirect(" << getPrimitiveTypeStr(mode) << ", " << getTypeStr(type) << ", " << indirect << ");" << TestLog::EndMessage;
1009	m_gl.drawElementsIndirect(mode, type, indirect);
1010}
1011
1012void CallLogWrapper::glDrawElementsInstanced (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLsizei instancecount)
1013{
1014	if (m_enableLog)
1015		m_log << TestLog::Message << "glDrawElementsInstanced(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << instancecount << ");" << TestLog::EndMessage;
1016	m_gl.drawElementsInstanced(mode, count, type, indices, instancecount);
1017}
1018
1019void CallLogWrapper::glDrawElementsInstancedBaseInstance (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLsizei instancecount, glw::GLuint baseinstance)
1020{
1021	if (m_enableLog)
1022		m_log << TestLog::Message << "glDrawElementsInstancedBaseInstance(" << toHex(mode) << ", " << count << ", " << toHex(type) << ", " << indices << ", " << instancecount << ", " << baseinstance << ");" << TestLog::EndMessage;
1023	m_gl.drawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
1024}
1025
1026void CallLogWrapper::glDrawElementsInstancedBaseVertex (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLsizei instancecount, glw::GLint basevertex)
1027{
1028	if (m_enableLog)
1029		m_log << TestLog::Message << "glDrawElementsInstancedBaseVertex(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << instancecount << ", " << basevertex << ");" << TestLog::EndMessage;
1030	m_gl.drawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
1031}
1032
1033void CallLogWrapper::glDrawElementsInstancedBaseVertexBaseInstance (glw::GLenum mode, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLsizei instancecount, glw::GLint basevertex, glw::GLuint baseinstance)
1034{
1035	if (m_enableLog)
1036		m_log << TestLog::Message << "glDrawElementsInstancedBaseVertexBaseInstance(" << toHex(mode) << ", " << count << ", " << toHex(type) << ", " << indices << ", " << instancecount << ", " << basevertex << ", " << baseinstance << ");" << TestLog::EndMessage;
1037	m_gl.drawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
1038}
1039
1040void CallLogWrapper::glDrawRangeElements (glw::GLenum mode, glw::GLuint start, glw::GLuint end, glw::GLsizei count, glw::GLenum type, const void *indices)
1041{
1042	if (m_enableLog)
1043		m_log << TestLog::Message << "glDrawRangeElements(" << getPrimitiveTypeStr(mode) << ", " << start << ", " << end << ", " << count << ", " << getTypeStr(type) << ", " << indices << ");" << TestLog::EndMessage;
1044	m_gl.drawRangeElements(mode, start, end, count, type, indices);
1045}
1046
1047void CallLogWrapper::glDrawRangeElementsBaseVertex (glw::GLenum mode, glw::GLuint start, glw::GLuint end, glw::GLsizei count, glw::GLenum type, const void *indices, glw::GLint basevertex)
1048{
1049	if (m_enableLog)
1050		m_log << TestLog::Message << "glDrawRangeElementsBaseVertex(" << getPrimitiveTypeStr(mode) << ", " << start << ", " << end << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << basevertex << ");" << TestLog::EndMessage;
1051	m_gl.drawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
1052}
1053
1054void CallLogWrapper::glDrawTransformFeedback (glw::GLenum mode, glw::GLuint id)
1055{
1056	if (m_enableLog)
1057		m_log << TestLog::Message << "glDrawTransformFeedback(" << toHex(mode) << ", " << id << ");" << TestLog::EndMessage;
1058	m_gl.drawTransformFeedback(mode, id);
1059}
1060
1061void CallLogWrapper::glDrawTransformFeedbackInstanced (glw::GLenum mode, glw::GLuint id, glw::GLsizei instancecount)
1062{
1063	if (m_enableLog)
1064		m_log << TestLog::Message << "glDrawTransformFeedbackInstanced(" << toHex(mode) << ", " << id << ", " << instancecount << ");" << TestLog::EndMessage;
1065	m_gl.drawTransformFeedbackInstanced(mode, id, instancecount);
1066}
1067
1068void CallLogWrapper::glDrawTransformFeedbackStream (glw::GLenum mode, glw::GLuint id, glw::GLuint stream)
1069{
1070	if (m_enableLog)
1071		m_log << TestLog::Message << "glDrawTransformFeedbackStream(" << toHex(mode) << ", " << id << ", " << stream << ");" << TestLog::EndMessage;
1072	m_gl.drawTransformFeedbackStream(mode, id, stream);
1073}
1074
1075void CallLogWrapper::glDrawTransformFeedbackStreamInstanced (glw::GLenum mode, glw::GLuint id, glw::GLuint stream, glw::GLsizei instancecount)
1076{
1077	if (m_enableLog)
1078		m_log << TestLog::Message << "glDrawTransformFeedbackStreamInstanced(" << toHex(mode) << ", " << id << ", " << stream << ", " << instancecount << ");" << TestLog::EndMessage;
1079	m_gl.drawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
1080}
1081
1082void CallLogWrapper::glEGLImageTargetRenderbufferStorageOES (glw::GLenum target, glw::GLeglImageOES image)
1083{
1084	if (m_enableLog)
1085		m_log << TestLog::Message << "glEGLImageTargetRenderbufferStorageOES(" << toHex(target) << ", " << image << ");" << TestLog::EndMessage;
1086	m_gl.eglImageTargetRenderbufferStorageOES(target, image);
1087}
1088
1089void CallLogWrapper::glEGLImageTargetTexture2DOES (glw::GLenum target, glw::GLeglImageOES image)
1090{
1091	if (m_enableLog)
1092		m_log << TestLog::Message << "glEGLImageTargetTexture2DOES(" << toHex(target) << ", " << image << ");" << TestLog::EndMessage;
1093	m_gl.eglImageTargetTexture2DOES(target, image);
1094}
1095
1096void CallLogWrapper::glEnable (glw::GLenum cap)
1097{
1098	if (m_enableLog)
1099		m_log << TestLog::Message << "glEnable(" << getEnableCapStr(cap) << ");" << TestLog::EndMessage;
1100	m_gl.enable(cap);
1101}
1102
1103void CallLogWrapper::glEnableVertexArrayAttrib (glw::GLuint vaobj, glw::GLuint index)
1104{
1105	if (m_enableLog)
1106		m_log << TestLog::Message << "glEnableVertexArrayAttrib(" << vaobj << ", " << index << ");" << TestLog::EndMessage;
1107	m_gl.enableVertexArrayAttrib(vaobj, index);
1108}
1109
1110void CallLogWrapper::glEnableVertexAttribArray (glw::GLuint index)
1111{
1112	if (m_enableLog)
1113		m_log << TestLog::Message << "glEnableVertexAttribArray(" << index << ");" << TestLog::EndMessage;
1114	m_gl.enableVertexAttribArray(index);
1115}
1116
1117void CallLogWrapper::glEnablei (glw::GLenum target, glw::GLuint index)
1118{
1119	if (m_enableLog)
1120		m_log << TestLog::Message << "glEnablei(" << toHex(target) << ", " << index << ");" << TestLog::EndMessage;
1121	m_gl.enablei(target, index);
1122}
1123
1124void CallLogWrapper::glEndConditionalRender (void)
1125{
1126	if (m_enableLog)
1127		m_log << TestLog::Message << "glEndConditionalRender(" << ");" << TestLog::EndMessage;
1128	m_gl.endConditionalRender();
1129}
1130
1131void CallLogWrapper::glEndQuery (glw::GLenum target)
1132{
1133	if (m_enableLog)
1134		m_log << TestLog::Message << "glEndQuery(" << getQueryTargetStr(target) << ");" << TestLog::EndMessage;
1135	m_gl.endQuery(target);
1136}
1137
1138void CallLogWrapper::glEndQueryIndexed (glw::GLenum target, glw::GLuint index)
1139{
1140	if (m_enableLog)
1141		m_log << TestLog::Message << "glEndQueryIndexed(" << toHex(target) << ", " << index << ");" << TestLog::EndMessage;
1142	m_gl.endQueryIndexed(target, index);
1143}
1144
1145void CallLogWrapper::glEndTransformFeedback (void)
1146{
1147	if (m_enableLog)
1148		m_log << TestLog::Message << "glEndTransformFeedback(" << ");" << TestLog::EndMessage;
1149	m_gl.endTransformFeedback();
1150}
1151
1152glw::GLsync CallLogWrapper::glFenceSync (glw::GLenum condition, glw::GLbitfield flags)
1153{
1154	if (m_enableLog)
1155		m_log << TestLog::Message << "glFenceSync(" << toHex(condition) << ", " << toHex(flags) << ");" << TestLog::EndMessage;
1156	glw::GLsync returnValue = m_gl.fenceSync(condition, flags);
1157	if (m_enableLog)
1158		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1159	return returnValue;
1160}
1161
1162void CallLogWrapper::glFinish (void)
1163{
1164	if (m_enableLog)
1165		m_log << TestLog::Message << "glFinish(" << ");" << TestLog::EndMessage;
1166	m_gl.finish();
1167}
1168
1169void CallLogWrapper::glFlush (void)
1170{
1171	if (m_enableLog)
1172		m_log << TestLog::Message << "glFlush(" << ");" << TestLog::EndMessage;
1173	m_gl.flush();
1174}
1175
1176void CallLogWrapper::glFlushMappedBufferRange (glw::GLenum target, glw::GLintptr offset, glw::GLsizeiptr length)
1177{
1178	if (m_enableLog)
1179		m_log << TestLog::Message << "glFlushMappedBufferRange(" << getBufferTargetStr(target) << ", " << offset << ", " << length << ");" << TestLog::EndMessage;
1180	m_gl.flushMappedBufferRange(target, offset, length);
1181}
1182
1183void CallLogWrapper::glFlushMappedNamedBufferRange (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr length)
1184{
1185	if (m_enableLog)
1186		m_log << TestLog::Message << "glFlushMappedNamedBufferRange(" << buffer << ", " << offset << ", " << length << ");" << TestLog::EndMessage;
1187	m_gl.flushMappedNamedBufferRange(buffer, offset, length);
1188}
1189
1190void CallLogWrapper::glFramebufferParameteri (glw::GLenum target, glw::GLenum pname, glw::GLint param)
1191{
1192	if (m_enableLog)
1193		m_log << TestLog::Message << "glFramebufferParameteri(" << getFramebufferTargetStr(target) << ", " << getFramebufferParameterStr(pname) << ", " << param << ");" << TestLog::EndMessage;
1194	m_gl.framebufferParameteri(target, pname, param);
1195}
1196
1197void CallLogWrapper::glFramebufferRenderbuffer (glw::GLenum target, glw::GLenum attachment, glw::GLenum renderbuffertarget, glw::GLuint renderbuffer)
1198{
1199	if (m_enableLog)
1200		m_log << TestLog::Message << "glFramebufferRenderbuffer(" << getFramebufferTargetStr(target) << ", " << getFramebufferAttachmentStr(attachment) << ", " << getFramebufferTargetStr(renderbuffertarget) << ", " << renderbuffer << ");" << TestLog::EndMessage;
1201	m_gl.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
1202}
1203
1204void CallLogWrapper::glFramebufferTexture (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level)
1205{
1206	if (m_enableLog)
1207		m_log << TestLog::Message << "glFramebufferTexture(" << getFramebufferTargetStr(target) << ", " << getFramebufferAttachmentStr(attachment) << ", " << texture << ", " << level << ");" << TestLog::EndMessage;
1208	m_gl.framebufferTexture(target, attachment, texture, level);
1209}
1210
1211void CallLogWrapper::glFramebufferTexture1D (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level)
1212{
1213	if (m_enableLog)
1214		m_log << TestLog::Message << "glFramebufferTexture1D(" << toHex(target) << ", " << toHex(attachment) << ", " << toHex(textarget) << ", " << texture << ", " << level << ");" << TestLog::EndMessage;
1215	m_gl.framebufferTexture1D(target, attachment, textarget, texture, level);
1216}
1217
1218void CallLogWrapper::glFramebufferTexture2D (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level)
1219{
1220	if (m_enableLog)
1221		m_log << TestLog::Message << "glFramebufferTexture2D(" << getFramebufferTargetStr(target) << ", " << getFramebufferAttachmentStr(attachment) << ", " << getTextureTargetStr(textarget) << ", " << texture << ", " << level << ");" << TestLog::EndMessage;
1222	m_gl.framebufferTexture2D(target, attachment, textarget, texture, level);
1223}
1224
1225void CallLogWrapper::glFramebufferTexture3D (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset)
1226{
1227	if (m_enableLog)
1228		m_log << TestLog::Message << "glFramebufferTexture3D(" << toHex(target) << ", " << toHex(attachment) << ", " << toHex(textarget) << ", " << texture << ", " << level << ", " << zoffset << ");" << TestLog::EndMessage;
1229	m_gl.framebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
1230}
1231
1232void CallLogWrapper::glFramebufferTextureLayer (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer)
1233{
1234	if (m_enableLog)
1235		m_log << TestLog::Message << "glFramebufferTextureLayer(" << getFramebufferTargetStr(target) << ", " << getFramebufferAttachmentStr(attachment) << ", " << texture << ", " << level << ", " << layer << ");" << TestLog::EndMessage;
1236	m_gl.framebufferTextureLayer(target, attachment, texture, level, layer);
1237}
1238
1239void CallLogWrapper::glFrontFace (glw::GLenum mode)
1240{
1241	if (m_enableLog)
1242		m_log << TestLog::Message << "glFrontFace(" << getWindingStr(mode) << ");" << TestLog::EndMessage;
1243	m_gl.frontFace(mode);
1244}
1245
1246void CallLogWrapper::glGenBuffers (glw::GLsizei n, glw::GLuint *buffers)
1247{
1248	if (m_enableLog)
1249		m_log << TestLog::Message << "glGenBuffers(" << n << ", " << buffers << ");" << TestLog::EndMessage;
1250	m_gl.genBuffers(n, buffers);
1251	if (m_enableLog)
1252	{
1253		m_log << TestLog::Message << "// buffers = " << getPointerStr(buffers, n) << TestLog::EndMessage;
1254	}
1255}
1256
1257void CallLogWrapper::glGenFramebuffers (glw::GLsizei n, glw::GLuint *framebuffers)
1258{
1259	if (m_enableLog)
1260		m_log << TestLog::Message << "glGenFramebuffers(" << n << ", " << framebuffers << ");" << TestLog::EndMessage;
1261	m_gl.genFramebuffers(n, framebuffers);
1262	if (m_enableLog)
1263	{
1264		m_log << TestLog::Message << "// framebuffers = " << getPointerStr(framebuffers, n) << TestLog::EndMessage;
1265	}
1266}
1267
1268void CallLogWrapper::glGenProgramPipelines (glw::GLsizei n, glw::GLuint *pipelines)
1269{
1270	if (m_enableLog)
1271		m_log << TestLog::Message << "glGenProgramPipelines(" << n << ", " << pipelines << ");" << TestLog::EndMessage;
1272	m_gl.genProgramPipelines(n, pipelines);
1273}
1274
1275void CallLogWrapper::glGenQueries (glw::GLsizei n, glw::GLuint *ids)
1276{
1277	if (m_enableLog)
1278		m_log << TestLog::Message << "glGenQueries(" << n << ", " << ids << ");" << TestLog::EndMessage;
1279	m_gl.genQueries(n, ids);
1280	if (m_enableLog)
1281	{
1282		m_log << TestLog::Message << "// ids = " << getPointerStr(ids, n) << TestLog::EndMessage;
1283	}
1284}
1285
1286void CallLogWrapper::glGenRenderbuffers (glw::GLsizei n, glw::GLuint *renderbuffers)
1287{
1288	if (m_enableLog)
1289		m_log << TestLog::Message << "glGenRenderbuffers(" << n << ", " << renderbuffers << ");" << TestLog::EndMessage;
1290	m_gl.genRenderbuffers(n, renderbuffers);
1291	if (m_enableLog)
1292	{
1293		m_log << TestLog::Message << "// renderbuffers = " << getPointerStr(renderbuffers, n) << TestLog::EndMessage;
1294	}
1295}
1296
1297void CallLogWrapper::glGenSamplers (glw::GLsizei count, glw::GLuint *samplers)
1298{
1299	if (m_enableLog)
1300		m_log << TestLog::Message << "glGenSamplers(" << count << ", " << samplers << ");" << TestLog::EndMessage;
1301	m_gl.genSamplers(count, samplers);
1302}
1303
1304void CallLogWrapper::glGenTextures (glw::GLsizei n, glw::GLuint *textures)
1305{
1306	if (m_enableLog)
1307		m_log << TestLog::Message << "glGenTextures(" << n << ", " << textures << ");" << TestLog::EndMessage;
1308	m_gl.genTextures(n, textures);
1309	if (m_enableLog)
1310	{
1311		m_log << TestLog::Message << "// textures = " << getPointerStr(textures, n) << TestLog::EndMessage;
1312	}
1313}
1314
1315void CallLogWrapper::glGenTransformFeedbacks (glw::GLsizei n, glw::GLuint *ids)
1316{
1317	if (m_enableLog)
1318		m_log << TestLog::Message << "glGenTransformFeedbacks(" << n << ", " << ids << ");" << TestLog::EndMessage;
1319	m_gl.genTransformFeedbacks(n, ids);
1320	if (m_enableLog)
1321	{
1322		m_log << TestLog::Message << "// ids = " << getPointerStr(ids, n) << TestLog::EndMessage;
1323	}
1324}
1325
1326void CallLogWrapper::glGenVertexArrays (glw::GLsizei n, glw::GLuint *arrays)
1327{
1328	if (m_enableLog)
1329		m_log << TestLog::Message << "glGenVertexArrays(" << n << ", " << arrays << ");" << TestLog::EndMessage;
1330	m_gl.genVertexArrays(n, arrays);
1331	if (m_enableLog)
1332	{
1333		m_log << TestLog::Message << "// arrays = " << getPointerStr(arrays, n) << TestLog::EndMessage;
1334	}
1335}
1336
1337void CallLogWrapper::glGenerateMipmap (glw::GLenum target)
1338{
1339	if (m_enableLog)
1340		m_log << TestLog::Message << "glGenerateMipmap(" << getTextureTargetStr(target) << ");" << TestLog::EndMessage;
1341	m_gl.generateMipmap(target);
1342}
1343
1344void CallLogWrapper::glGenerateTextureMipmap (glw::GLuint texture)
1345{
1346	if (m_enableLog)
1347		m_log << TestLog::Message << "glGenerateTextureMipmap(" << texture << ");" << TestLog::EndMessage;
1348	m_gl.generateTextureMipmap(texture);
1349}
1350
1351void CallLogWrapper::glGetActiveAtomicCounterBufferiv (glw::GLuint program, glw::GLuint bufferIndex, glw::GLenum pname, glw::GLint *params)
1352{
1353	if (m_enableLog)
1354		m_log << TestLog::Message << "glGetActiveAtomicCounterBufferiv(" << program << ", " << bufferIndex << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1355	m_gl.getActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
1356}
1357
1358void CallLogWrapper::glGetActiveAttrib (glw::GLuint program, glw::GLuint index, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLint *size, glw::GLenum *type, glw::GLchar *name)
1359{
1360	if (m_enableLog)
1361		m_log << TestLog::Message << "glGetActiveAttrib(" << program << ", " << index << ", " << bufSize << ", " << length << ", " << size << ", " << type << ", " << name << ");" << TestLog::EndMessage;
1362	m_gl.getActiveAttrib(program, index, bufSize, length, size, type, name);
1363}
1364
1365void CallLogWrapper::glGetActiveSubroutineName (glw::GLuint program, glw::GLenum shadertype, glw::GLuint index, glw::GLsizei bufsize, glw::GLsizei *length, glw::GLchar *name)
1366{
1367	if (m_enableLog)
1368		m_log << TestLog::Message << "glGetActiveSubroutineName(" << program << ", " << toHex(shadertype) << ", " << index << ", " << bufsize << ", " << length << ", " << name << ");" << TestLog::EndMessage;
1369	m_gl.getActiveSubroutineName(program, shadertype, index, bufsize, length, name);
1370}
1371
1372void CallLogWrapper::glGetActiveSubroutineUniformName (glw::GLuint program, glw::GLenum shadertype, glw::GLuint index, glw::GLsizei bufsize, glw::GLsizei *length, glw::GLchar *name)
1373{
1374	if (m_enableLog)
1375		m_log << TestLog::Message << "glGetActiveSubroutineUniformName(" << program << ", " << toHex(shadertype) << ", " << index << ", " << bufsize << ", " << length << ", " << name << ");" << TestLog::EndMessage;
1376	m_gl.getActiveSubroutineUniformName(program, shadertype, index, bufsize, length, name);
1377}
1378
1379void CallLogWrapper::glGetActiveSubroutineUniformiv (glw::GLuint program, glw::GLenum shadertype, glw::GLuint index, glw::GLenum pname, glw::GLint *values)
1380{
1381	if (m_enableLog)
1382		m_log << TestLog::Message << "glGetActiveSubroutineUniformiv(" << program << ", " << toHex(shadertype) << ", " << index << ", " << toHex(pname) << ", " << values << ");" << TestLog::EndMessage;
1383	m_gl.getActiveSubroutineUniformiv(program, shadertype, index, pname, values);
1384}
1385
1386void CallLogWrapper::glGetActiveUniform (glw::GLuint program, glw::GLuint index, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLint *size, glw::GLenum *type, glw::GLchar *name)
1387{
1388	if (m_enableLog)
1389		m_log << TestLog::Message << "glGetActiveUniform(" << program << ", " << index << ", " << bufSize << ", " << length << ", " << size << ", " << type << ", " << name << ");" << TestLog::EndMessage;
1390	m_gl.getActiveUniform(program, index, bufSize, length, size, type, name);
1391	if (m_enableLog)
1392	{
1393		m_log << TestLog::Message << "// length = " << getPointerStr(length, 1) << TestLog::EndMessage;
1394		m_log << TestLog::Message << "// size = " << getPointerStr(size, 1) << TestLog::EndMessage;
1395		m_log << TestLog::Message << "// type = " << getEnumPointerStr(type, 1, getShaderVarTypeName) << TestLog::EndMessage;
1396		m_log << TestLog::Message << "// name = " << getStringStr(name) << TestLog::EndMessage;
1397	}
1398}
1399
1400void CallLogWrapper::glGetActiveUniformBlockName (glw::GLuint program, glw::GLuint uniformBlockIndex, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *uniformBlockName)
1401{
1402	if (m_enableLog)
1403		m_log << TestLog::Message << "glGetActiveUniformBlockName(" << program << ", " << uniformBlockIndex << ", " << bufSize << ", " << length << ", " << uniformBlockName << ");" << TestLog::EndMessage;
1404	m_gl.getActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
1405}
1406
1407void CallLogWrapper::glGetActiveUniformBlockiv (glw::GLuint program, glw::GLuint uniformBlockIndex, glw::GLenum pname, glw::GLint *params)
1408{
1409	if (m_enableLog)
1410		m_log << TestLog::Message << "glGetActiveUniformBlockiv(" << program << ", " << uniformBlockIndex << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1411	m_gl.getActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
1412}
1413
1414void CallLogWrapper::glGetActiveUniformName (glw::GLuint program, glw::GLuint uniformIndex, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *uniformName)
1415{
1416	if (m_enableLog)
1417		m_log << TestLog::Message << "glGetActiveUniformName(" << program << ", " << uniformIndex << ", " << bufSize << ", " << length << ", " << uniformName << ");" << TestLog::EndMessage;
1418	m_gl.getActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
1419}
1420
1421void CallLogWrapper::glGetActiveUniformsiv (glw::GLuint program, glw::GLsizei uniformCount, const glw::GLuint *uniformIndices, glw::GLenum pname, glw::GLint *params)
1422{
1423	if (m_enableLog)
1424		m_log << TestLog::Message << "glGetActiveUniformsiv(" << program << ", " << uniformCount << ", " << getPointerStr(uniformIndices, uniformCount) << ", " << getUniformParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1425	m_gl.getActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
1426	if (m_enableLog)
1427	{
1428		m_log << TestLog::Message << "// params = " << getPointerStr(params, uniformCount) << TestLog::EndMessage;
1429	}
1430}
1431
1432void CallLogWrapper::glGetAttachedShaders (glw::GLuint program, glw::GLsizei maxCount, glw::GLsizei *count, glw::GLuint *shaders)
1433{
1434	if (m_enableLog)
1435		m_log << TestLog::Message << "glGetAttachedShaders(" << program << ", " << maxCount << ", " << count << ", " << shaders << ");" << TestLog::EndMessage;
1436	m_gl.getAttachedShaders(program, maxCount, count, shaders);
1437}
1438
1439glw::GLint CallLogWrapper::glGetAttribLocation (glw::GLuint program, const glw::GLchar *name)
1440{
1441	if (m_enableLog)
1442		m_log << TestLog::Message << "glGetAttribLocation(" << program << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1443	glw::GLint returnValue = m_gl.getAttribLocation(program, name);
1444	if (m_enableLog)
1445		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1446	return returnValue;
1447}
1448
1449void CallLogWrapper::glGetBooleani_v (glw::GLenum target, glw::GLuint index, glw::GLboolean *data)
1450{
1451	if (m_enableLog)
1452		m_log << TestLog::Message << "glGetBooleani_v(" << toHex(target) << ", " << index << ", " << data << ");" << TestLog::EndMessage;
1453	m_gl.getBooleani_v(target, index, data);
1454}
1455
1456void CallLogWrapper::glGetBooleanv (glw::GLenum pname, glw::GLboolean *data)
1457{
1458	if (m_enableLog)
1459		m_log << TestLog::Message << "glGetBooleanv(" << getGettableStateStr(pname) << ", " << static_cast<const void*>(data) << ");" << TestLog::EndMessage;
1460	m_gl.getBooleanv(pname, data);
1461	if (m_enableLog)
1462	{
1463		m_log << TestLog::Message << "// data = " << getBooleanPointerStr(data, getBasicQueryNumArgsOut(pname)) << TestLog::EndMessage;
1464	}
1465}
1466
1467void CallLogWrapper::glGetBufferParameteri64v (glw::GLenum target, glw::GLenum pname, glw::GLint64 *params)
1468{
1469	if (m_enableLog)
1470		m_log << TestLog::Message << "glGetBufferParameteri64v(" << getBufferTargetStr(target) << ", " << getBufferQueryStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1471	m_gl.getBufferParameteri64v(target, pname, params);
1472}
1473
1474void CallLogWrapper::glGetBufferParameteriv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
1475{
1476	if (m_enableLog)
1477		m_log << TestLog::Message << "glGetBufferParameteriv(" << getBufferTargetStr(target) << ", " << getBufferQueryStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1478	m_gl.getBufferParameteriv(target, pname, params);
1479}
1480
1481void CallLogWrapper::glGetBufferPointerv (glw::GLenum target, glw::GLenum pname, void **params)
1482{
1483	if (m_enableLog)
1484		m_log << TestLog::Message << "glGetBufferPointerv(" << toHex(target) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1485	m_gl.getBufferPointerv(target, pname, params);
1486}
1487
1488void CallLogWrapper::glGetBufferSubData (glw::GLenum target, glw::GLintptr offset, glw::GLsizeiptr size, void *data)
1489{
1490	if (m_enableLog)
1491		m_log << TestLog::Message << "glGetBufferSubData(" << toHex(target) << ", " << offset << ", " << size << ", " << data << ");" << TestLog::EndMessage;
1492	m_gl.getBufferSubData(target, offset, size, data);
1493}
1494
1495void CallLogWrapper::glGetCompressedTexImage (glw::GLenum target, glw::GLint level, void *img)
1496{
1497	if (m_enableLog)
1498		m_log << TestLog::Message << "glGetCompressedTexImage(" << toHex(target) << ", " << level << ", " << img << ");" << TestLog::EndMessage;
1499	m_gl.getCompressedTexImage(target, level, img);
1500}
1501
1502void CallLogWrapper::glGetCompressedTextureImage (glw::GLuint texture, glw::GLint level, glw::GLsizei bufSize, void *pixels)
1503{
1504	if (m_enableLog)
1505		m_log << TestLog::Message << "glGetCompressedTextureImage(" << texture << ", " << level << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
1506	m_gl.getCompressedTextureImage(texture, level, bufSize, pixels);
1507}
1508
1509void CallLogWrapper::glGetCompressedTextureSubImage (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLsizei bufSize, void *pixels)
1510{
1511	if (m_enableLog)
1512		m_log << TestLog::Message << "glGetCompressedTextureSubImage(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
1513	m_gl.getCompressedTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
1514}
1515
1516glw::GLuint CallLogWrapper::glGetDebugMessageLog (glw::GLuint count, glw::GLsizei bufSize, glw::GLenum *sources, glw::GLenum *types, glw::GLuint *ids, glw::GLenum *severities, glw::GLsizei *lengths, glw::GLchar *messageLog)
1517{
1518	if (m_enableLog)
1519		m_log << TestLog::Message << "glGetDebugMessageLog(" << count << ", " << bufSize << ", " << sources << ", " << types << ", " << ids << ", " << severities << ", " << lengths << ", " << messageLog << ");" << TestLog::EndMessage;
1520	glw::GLuint returnValue = m_gl.getDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog);
1521	if (m_enableLog)
1522		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1523	return returnValue;
1524}
1525
1526void CallLogWrapper::glGetDoublei_v (glw::GLenum target, glw::GLuint index, glw::GLdouble *data)
1527{
1528	if (m_enableLog)
1529		m_log << TestLog::Message << "glGetDoublei_v(" << toHex(target) << ", " << index << ", " << data << ");" << TestLog::EndMessage;
1530	m_gl.getDoublei_v(target, index, data);
1531}
1532
1533void CallLogWrapper::glGetDoublev (glw::GLenum pname, glw::GLdouble *data)
1534{
1535	if (m_enableLog)
1536		m_log << TestLog::Message << "glGetDoublev(" << toHex(pname) << ", " << data << ");" << TestLog::EndMessage;
1537	m_gl.getDoublev(pname, data);
1538}
1539
1540glw::GLenum CallLogWrapper::glGetError (void)
1541{
1542	if (m_enableLog)
1543		m_log << TestLog::Message << "glGetError(" << ");" << TestLog::EndMessage;
1544	glw::GLenum returnValue = m_gl.getError();
1545	if (m_enableLog)
1546		m_log << TestLog::Message << "// " << getErrorStr(returnValue) << " returned" << TestLog::EndMessage;
1547	return returnValue;
1548}
1549
1550void CallLogWrapper::glGetFloati_v (glw::GLenum target, glw::GLuint index, glw::GLfloat *data)
1551{
1552	if (m_enableLog)
1553		m_log << TestLog::Message << "glGetFloati_v(" << toHex(target) << ", " << index << ", " << data << ");" << TestLog::EndMessage;
1554	m_gl.getFloati_v(target, index, data);
1555}
1556
1557void CallLogWrapper::glGetFloatv (glw::GLenum pname, glw::GLfloat *data)
1558{
1559	if (m_enableLog)
1560		m_log << TestLog::Message << "glGetFloatv(" << getGettableStateStr(pname) << ", " << data << ");" << TestLog::EndMessage;
1561	m_gl.getFloatv(pname, data);
1562	if (m_enableLog)
1563	{
1564		m_log << TestLog::Message << "// data = " << getPointerStr(data, getBasicQueryNumArgsOut(pname)) << TestLog::EndMessage;
1565	}
1566}
1567
1568glw::GLint CallLogWrapper::glGetFragDataIndex (glw::GLuint program, const glw::GLchar *name)
1569{
1570	if (m_enableLog)
1571		m_log << TestLog::Message << "glGetFragDataIndex(" << program << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1572	glw::GLint returnValue = m_gl.getFragDataIndex(program, name);
1573	if (m_enableLog)
1574		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1575	return returnValue;
1576}
1577
1578glw::GLint CallLogWrapper::glGetFragDataLocation (glw::GLuint program, const glw::GLchar *name)
1579{
1580	if (m_enableLog)
1581		m_log << TestLog::Message << "glGetFragDataLocation(" << program << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1582	glw::GLint returnValue = m_gl.getFragDataLocation(program, name);
1583	if (m_enableLog)
1584		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1585	return returnValue;
1586}
1587
1588void CallLogWrapper::glGetFramebufferAttachmentParameteriv (glw::GLenum target, glw::GLenum attachment, glw::GLenum pname, glw::GLint *params)
1589{
1590	if (m_enableLog)
1591		m_log << TestLog::Message << "glGetFramebufferAttachmentParameteriv(" << getFramebufferTargetStr(target) << ", " << getFramebufferAttachmentStr(attachment) << ", " << getFramebufferAttachmentParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1592	m_gl.getFramebufferAttachmentParameteriv(target, attachment, pname, params);
1593	if (m_enableLog)
1594	{
1595		m_log << TestLog::Message << "// params = " << getFramebufferAttachmentParameterValueStr(pname, params) << TestLog::EndMessage;
1596	}
1597}
1598
1599void CallLogWrapper::glGetFramebufferParameteriv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
1600{
1601	if (m_enableLog)
1602		m_log << TestLog::Message << "glGetFramebufferParameteriv(" << getFramebufferTargetStr(target) << ", " << getFramebufferParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1603	m_gl.getFramebufferParameteriv(target, pname, params);
1604}
1605
1606glw::GLenum CallLogWrapper::glGetGraphicsResetStatus (void)
1607{
1608	if (m_enableLog)
1609		m_log << TestLog::Message << "glGetGraphicsResetStatus(" << ");" << TestLog::EndMessage;
1610	glw::GLenum returnValue = m_gl.getGraphicsResetStatus();
1611	if (m_enableLog)
1612		m_log << TestLog::Message << "// " << toHex(returnValue) << " returned" << TestLog::EndMessage;
1613	return returnValue;
1614}
1615
1616void CallLogWrapper::glGetInteger64i_v (glw::GLenum target, glw::GLuint index, glw::GLint64 *data)
1617{
1618	if (m_enableLog)
1619		m_log << TestLog::Message << "glGetInteger64i_v(" << getGettableIndexedStateStr(target) << ", " << index << ", " << data << ");" << TestLog::EndMessage;
1620	m_gl.getInteger64i_v(target, index, data);
1621}
1622
1623void CallLogWrapper::glGetInteger64v (glw::GLenum pname, glw::GLint64 *data)
1624{
1625	if (m_enableLog)
1626		m_log << TestLog::Message << "glGetInteger64v(" << getGettableStateStr(pname) << ", " << data << ");" << TestLog::EndMessage;
1627	m_gl.getInteger64v(pname, data);
1628	if (m_enableLog)
1629	{
1630		m_log << TestLog::Message << "// data = " << getPointerStr(data, getBasicQueryNumArgsOut(pname)) << TestLog::EndMessage;
1631	}
1632}
1633
1634void CallLogWrapper::glGetIntegeri_v (glw::GLenum target, glw::GLuint index, glw::GLint *data)
1635{
1636	if (m_enableLog)
1637		m_log << TestLog::Message << "glGetIntegeri_v(" << getGettableIndexedStateStr(target) << ", " << index << ", " << data << ");" << TestLog::EndMessage;
1638	m_gl.getIntegeri_v(target, index, data);
1639}
1640
1641void CallLogWrapper::glGetIntegerv (glw::GLenum pname, glw::GLint *data)
1642{
1643	if (m_enableLog)
1644		m_log << TestLog::Message << "glGetIntegerv(" << getGettableStateStr(pname) << ", " << data << ");" << TestLog::EndMessage;
1645	m_gl.getIntegerv(pname, data);
1646	if (m_enableLog)
1647	{
1648		m_log << TestLog::Message << "// data = " << getPointerStr(data, getBasicQueryNumArgsOut(pname)) << TestLog::EndMessage;
1649	}
1650}
1651
1652void CallLogWrapper::glGetInternalformati64v (glw::GLenum target, glw::GLenum internalformat, glw::GLenum pname, glw::GLsizei bufSize, glw::GLint64 *params)
1653{
1654	if (m_enableLog)
1655		m_log << TestLog::Message << "glGetInternalformati64v(" << toHex(target) << ", " << toHex(internalformat) << ", " << toHex(pname) << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
1656	m_gl.getInternalformati64v(target, internalformat, pname, bufSize, params);
1657}
1658
1659void CallLogWrapper::glGetInternalformativ (glw::GLenum target, glw::GLenum internalformat, glw::GLenum pname, glw::GLsizei bufSize, glw::GLint *params)
1660{
1661	if (m_enableLog)
1662		m_log << TestLog::Message << "glGetInternalformativ(" << getInternalFormatTargetStr(target) << ", " << getPixelFormatStr(internalformat) << ", " << getInternalFormatParameterStr(pname) << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
1663	m_gl.getInternalformativ(target, internalformat, pname, bufSize, params);
1664	if (m_enableLog)
1665	{
1666		m_log << TestLog::Message << "// params = " << getPointerStr(params, bufSize) << TestLog::EndMessage;
1667	}
1668}
1669
1670void CallLogWrapper::glGetMultisamplefv (glw::GLenum pname, glw::GLuint index, glw::GLfloat *val)
1671{
1672	if (m_enableLog)
1673		m_log << TestLog::Message << "glGetMultisamplefv(" << getMultisampleParameterStr(pname) << ", " << index << ", " << val << ");" << TestLog::EndMessage;
1674	m_gl.getMultisamplefv(pname, index, val);
1675	if (m_enableLog)
1676	{
1677		m_log << TestLog::Message << "// val = " << getPointerStr(val, 2) << TestLog::EndMessage;
1678	}
1679}
1680
1681void CallLogWrapper::glGetNamedBufferParameteri64v (glw::GLuint buffer, glw::GLenum pname, glw::GLint64 *params)
1682{
1683	if (m_enableLog)
1684		m_log << TestLog::Message << "glGetNamedBufferParameteri64v(" << buffer << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1685	m_gl.getNamedBufferParameteri64v(buffer, pname, params);
1686}
1687
1688void CallLogWrapper::glGetNamedBufferParameteriv (glw::GLuint buffer, glw::GLenum pname, glw::GLint *params)
1689{
1690	if (m_enableLog)
1691		m_log << TestLog::Message << "glGetNamedBufferParameteriv(" << buffer << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1692	m_gl.getNamedBufferParameteriv(buffer, pname, params);
1693}
1694
1695void CallLogWrapper::glGetNamedBufferPointerv (glw::GLuint buffer, glw::GLenum pname, void **params)
1696{
1697	if (m_enableLog)
1698		m_log << TestLog::Message << "glGetNamedBufferPointerv(" << buffer << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1699	m_gl.getNamedBufferPointerv(buffer, pname, params);
1700}
1701
1702void CallLogWrapper::glGetNamedBufferSubData (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size, void *data)
1703{
1704	if (m_enableLog)
1705		m_log << TestLog::Message << "glGetNamedBufferSubData(" << buffer << ", " << offset << ", " << size << ", " << data << ");" << TestLog::EndMessage;
1706	m_gl.getNamedBufferSubData(buffer, offset, size, data);
1707}
1708
1709void CallLogWrapper::glGetNamedFramebufferAttachmentParameteriv (glw::GLuint framebuffer, glw::GLenum attachment, glw::GLenum pname, glw::GLint *params)
1710{
1711	if (m_enableLog)
1712		m_log << TestLog::Message << "glGetNamedFramebufferAttachmentParameteriv(" << framebuffer << ", " << toHex(attachment) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1713	m_gl.getNamedFramebufferAttachmentParameteriv(framebuffer, attachment, pname, params);
1714}
1715
1716void CallLogWrapper::glGetNamedFramebufferParameteriv (glw::GLuint framebuffer, glw::GLenum pname, glw::GLint *param)
1717{
1718	if (m_enableLog)
1719		m_log << TestLog::Message << "glGetNamedFramebufferParameteriv(" << framebuffer << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
1720	m_gl.getNamedFramebufferParameteriv(framebuffer, pname, param);
1721}
1722
1723void CallLogWrapper::glGetNamedRenderbufferParameteriv (glw::GLuint renderbuffer, glw::GLenum pname, glw::GLint *params)
1724{
1725	if (m_enableLog)
1726		m_log << TestLog::Message << "glGetNamedRenderbufferParameteriv(" << renderbuffer << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1727	m_gl.getNamedRenderbufferParameteriv(renderbuffer, pname, params);
1728}
1729
1730void CallLogWrapper::glGetObjectLabel (glw::GLenum identifier, glw::GLuint name, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *label)
1731{
1732	if (m_enableLog)
1733		m_log << TestLog::Message << "glGetObjectLabel(" << toHex(identifier) << ", " << name << ", " << bufSize << ", " << length << ", " << label << ");" << TestLog::EndMessage;
1734	m_gl.getObjectLabel(identifier, name, bufSize, length, label);
1735}
1736
1737void CallLogWrapper::glGetObjectPtrLabel (const void *ptr, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *label)
1738{
1739	if (m_enableLog)
1740		m_log << TestLog::Message << "glGetObjectPtrLabel(" << ptr << ", " << bufSize << ", " << length << ", " << label << ");" << TestLog::EndMessage;
1741	m_gl.getObjectPtrLabel(ptr, bufSize, length, label);
1742}
1743
1744void CallLogWrapper::glGetPointerv (glw::GLenum pname, void **params)
1745{
1746	if (m_enableLog)
1747		m_log << TestLog::Message << "glGetPointerv(" << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1748	m_gl.getPointerv(pname, params);
1749}
1750
1751void CallLogWrapper::glGetProgramBinary (glw::GLuint program, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLenum *binaryFormat, void *binary)
1752{
1753	if (m_enableLog)
1754		m_log << TestLog::Message << "glGetProgramBinary(" << program << ", " << bufSize << ", " << length << ", " << binaryFormat << ", " << binary << ");" << TestLog::EndMessage;
1755	m_gl.getProgramBinary(program, bufSize, length, binaryFormat, binary);
1756}
1757
1758void CallLogWrapper::glGetProgramInfoLog (glw::GLuint program, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *infoLog)
1759{
1760	if (m_enableLog)
1761		m_log << TestLog::Message << "glGetProgramInfoLog(" << program << ", " << bufSize << ", " << length << ", " << infoLog << ");" << TestLog::EndMessage;
1762	m_gl.getProgramInfoLog(program, bufSize, length, infoLog);
1763}
1764
1765void CallLogWrapper::glGetProgramInterfaceiv (glw::GLuint program, glw::GLenum programInterface, glw::GLenum pname, glw::GLint *params)
1766{
1767	if (m_enableLog)
1768		m_log << TestLog::Message << "glGetProgramInterfaceiv(" << program << ", " << toHex(programInterface) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1769	m_gl.getProgramInterfaceiv(program, programInterface, pname, params);
1770}
1771
1772void CallLogWrapper::glGetProgramPipelineInfoLog (glw::GLuint pipeline, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *infoLog)
1773{
1774	if (m_enableLog)
1775		m_log << TestLog::Message << "glGetProgramPipelineInfoLog(" << pipeline << ", " << bufSize << ", " << length << ", " << infoLog << ");" << TestLog::EndMessage;
1776	m_gl.getProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
1777}
1778
1779void CallLogWrapper::glGetProgramPipelineiv (glw::GLuint pipeline, glw::GLenum pname, glw::GLint *params)
1780{
1781	if (m_enableLog)
1782		m_log << TestLog::Message << "glGetProgramPipelineiv(" << pipeline << ", " << getPipelineParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1783	m_gl.getProgramPipelineiv(pipeline, pname, params);
1784	if (m_enableLog)
1785	{
1786		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1787	}
1788}
1789
1790glw::GLuint CallLogWrapper::glGetProgramResourceIndex (glw::GLuint program, glw::GLenum programInterface, const glw::GLchar *name)
1791{
1792	if (m_enableLog)
1793		m_log << TestLog::Message << "glGetProgramResourceIndex(" << program << ", " << getProgramInterfaceStr(programInterface) << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1794	glw::GLuint returnValue = m_gl.getProgramResourceIndex(program, programInterface, name);
1795	if (m_enableLog)
1796		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1797	return returnValue;
1798}
1799
1800glw::GLint CallLogWrapper::glGetProgramResourceLocation (glw::GLuint program, glw::GLenum programInterface, const glw::GLchar *name)
1801{
1802	if (m_enableLog)
1803		m_log << TestLog::Message << "glGetProgramResourceLocation(" << program << ", " << toHex(programInterface) << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1804	glw::GLint returnValue = m_gl.getProgramResourceLocation(program, programInterface, name);
1805	if (m_enableLog)
1806		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1807	return returnValue;
1808}
1809
1810glw::GLint CallLogWrapper::glGetProgramResourceLocationIndex (glw::GLuint program, glw::GLenum programInterface, const glw::GLchar *name)
1811{
1812	if (m_enableLog)
1813		m_log << TestLog::Message << "glGetProgramResourceLocationIndex(" << program << ", " << toHex(programInterface) << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
1814	glw::GLint returnValue = m_gl.getProgramResourceLocationIndex(program, programInterface, name);
1815	if (m_enableLog)
1816		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
1817	return returnValue;
1818}
1819
1820void CallLogWrapper::glGetProgramResourceName (glw::GLuint program, glw::GLenum programInterface, glw::GLuint index, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *name)
1821{
1822	if (m_enableLog)
1823		m_log << TestLog::Message << "glGetProgramResourceName(" << program << ", " << toHex(programInterface) << ", " << index << ", " << bufSize << ", " << length << ", " << name << ");" << TestLog::EndMessage;
1824	m_gl.getProgramResourceName(program, programInterface, index, bufSize, length, name);
1825}
1826
1827void CallLogWrapper::glGetProgramResourceiv (glw::GLuint program, glw::GLenum programInterface, glw::GLuint index, glw::GLsizei propCount, const glw::GLenum *props, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLint *params)
1828{
1829	if (m_enableLog)
1830		m_log << TestLog::Message << "glGetProgramResourceiv(" << program << ", " << getProgramInterfaceStr(programInterface) << ", " << index << ", " << propCount << ", " << props << ", " << bufSize << ", " << length << ", " << params << ");" << TestLog::EndMessage;
1831	m_gl.getProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
1832}
1833
1834void CallLogWrapper::glGetProgramStageiv (glw::GLuint program, glw::GLenum shadertype, glw::GLenum pname, glw::GLint *values)
1835{
1836	if (m_enableLog)
1837		m_log << TestLog::Message << "glGetProgramStageiv(" << program << ", " << toHex(shadertype) << ", " << toHex(pname) << ", " << values << ");" << TestLog::EndMessage;
1838	m_gl.getProgramStageiv(program, shadertype, pname, values);
1839}
1840
1841void CallLogWrapper::glGetProgramiv (glw::GLuint program, glw::GLenum pname, glw::GLint *params)
1842{
1843	if (m_enableLog)
1844		m_log << TestLog::Message << "glGetProgramiv(" << program << ", " << getProgramParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1845	m_gl.getProgramiv(program, pname, params);
1846	if (m_enableLog)
1847	{
1848		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1849	}
1850}
1851
1852void CallLogWrapper::glGetQueryBufferObjecti64v (glw::GLuint id, glw::GLuint buffer, glw::GLenum pname, glw::GLintptr offset)
1853{
1854	if (m_enableLog)
1855		m_log << TestLog::Message << "glGetQueryBufferObjecti64v(" << id << ", " << buffer << ", " << toHex(pname) << ", " << offset << ");" << TestLog::EndMessage;
1856	m_gl.getQueryBufferObjecti64v(id, buffer, pname, offset);
1857}
1858
1859void CallLogWrapper::glGetQueryBufferObjectiv (glw::GLuint id, glw::GLuint buffer, glw::GLenum pname, glw::GLintptr offset)
1860{
1861	if (m_enableLog)
1862		m_log << TestLog::Message << "glGetQueryBufferObjectiv(" << id << ", " << buffer << ", " << toHex(pname) << ", " << offset << ");" << TestLog::EndMessage;
1863	m_gl.getQueryBufferObjectiv(id, buffer, pname, offset);
1864}
1865
1866void CallLogWrapper::glGetQueryBufferObjectui64v (glw::GLuint id, glw::GLuint buffer, glw::GLenum pname, glw::GLintptr offset)
1867{
1868	if (m_enableLog)
1869		m_log << TestLog::Message << "glGetQueryBufferObjectui64v(" << id << ", " << buffer << ", " << toHex(pname) << ", " << offset << ");" << TestLog::EndMessage;
1870	m_gl.getQueryBufferObjectui64v(id, buffer, pname, offset);
1871}
1872
1873void CallLogWrapper::glGetQueryBufferObjectuiv (glw::GLuint id, glw::GLuint buffer, glw::GLenum pname, glw::GLintptr offset)
1874{
1875	if (m_enableLog)
1876		m_log << TestLog::Message << "glGetQueryBufferObjectuiv(" << id << ", " << buffer << ", " << toHex(pname) << ", " << offset << ");" << TestLog::EndMessage;
1877	m_gl.getQueryBufferObjectuiv(id, buffer, pname, offset);
1878}
1879
1880void CallLogWrapper::glGetQueryIndexediv (glw::GLenum target, glw::GLuint index, glw::GLenum pname, glw::GLint *params)
1881{
1882	if (m_enableLog)
1883		m_log << TestLog::Message << "glGetQueryIndexediv(" << toHex(target) << ", " << index << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1884	m_gl.getQueryIndexediv(target, index, pname, params);
1885}
1886
1887void CallLogWrapper::glGetQueryObjecti64v (glw::GLuint id, glw::GLenum pname, glw::GLint64 *params)
1888{
1889	if (m_enableLog)
1890		m_log << TestLog::Message << "glGetQueryObjecti64v(" << id << ", " << getQueryObjectParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1891	m_gl.getQueryObjecti64v(id, pname, params);
1892	if (m_enableLog)
1893	{
1894		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1895	}
1896}
1897
1898void CallLogWrapper::glGetQueryObjectiv (glw::GLuint id, glw::GLenum pname, glw::GLint *params)
1899{
1900	if (m_enableLog)
1901		m_log << TestLog::Message << "glGetQueryObjectiv(" << id << ", " << getQueryObjectParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1902	m_gl.getQueryObjectiv(id, pname, params);
1903	if (m_enableLog)
1904	{
1905		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1906	}
1907}
1908
1909void CallLogWrapper::glGetQueryObjectui64v (glw::GLuint id, glw::GLenum pname, glw::GLuint64 *params)
1910{
1911	if (m_enableLog)
1912		m_log << TestLog::Message << "glGetQueryObjectui64v(" << id << ", " << getQueryObjectParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1913	m_gl.getQueryObjectui64v(id, pname, params);
1914	if (m_enableLog)
1915	{
1916		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1917	}
1918}
1919
1920void CallLogWrapper::glGetQueryObjectuiv (glw::GLuint id, glw::GLenum pname, glw::GLuint *params)
1921{
1922	if (m_enableLog)
1923		m_log << TestLog::Message << "glGetQueryObjectuiv(" << id << ", " << getQueryObjectParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1924	m_gl.getQueryObjectuiv(id, pname, params);
1925	if (m_enableLog)
1926	{
1927		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1928	}
1929}
1930
1931void CallLogWrapper::glGetQueryiv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
1932{
1933	if (m_enableLog)
1934		m_log << TestLog::Message << "glGetQueryiv(" << getQueryTargetStr(target) << ", " << getQueryParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1935	m_gl.getQueryiv(target, pname, params);
1936	if (m_enableLog)
1937	{
1938		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
1939	}
1940}
1941
1942void CallLogWrapper::glGetRenderbufferParameteriv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
1943{
1944	if (m_enableLog)
1945		m_log << TestLog::Message << "glGetRenderbufferParameteriv(" << getFramebufferTargetStr(target) << ", " << getRenderbufferParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1946	m_gl.getRenderbufferParameteriv(target, pname, params);
1947}
1948
1949void CallLogWrapper::glGetSamplerParameterIiv (glw::GLuint sampler, glw::GLenum pname, glw::GLint *params)
1950{
1951	if (m_enableLog)
1952		m_log << TestLog::Message << "glGetSamplerParameterIiv(" << sampler << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1953	m_gl.getSamplerParameterIiv(sampler, pname, params);
1954}
1955
1956void CallLogWrapper::glGetSamplerParameterIuiv (glw::GLuint sampler, glw::GLenum pname, glw::GLuint *params)
1957{
1958	if (m_enableLog)
1959		m_log << TestLog::Message << "glGetSamplerParameterIuiv(" << sampler << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
1960	m_gl.getSamplerParameterIuiv(sampler, pname, params);
1961}
1962
1963void CallLogWrapper::glGetSamplerParameterfv (glw::GLuint sampler, glw::GLenum pname, glw::GLfloat *params)
1964{
1965	if (m_enableLog)
1966		m_log << TestLog::Message << "glGetSamplerParameterfv(" << sampler << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1967	m_gl.getSamplerParameterfv(sampler, pname, params);
1968}
1969
1970void CallLogWrapper::glGetSamplerParameteriv (glw::GLuint sampler, glw::GLenum pname, glw::GLint *params)
1971{
1972	if (m_enableLog)
1973		m_log << TestLog::Message << "glGetSamplerParameteriv(" << sampler << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
1974	m_gl.getSamplerParameteriv(sampler, pname, params);
1975}
1976
1977void CallLogWrapper::glGetShaderInfoLog (glw::GLuint shader, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *infoLog)
1978{
1979	if (m_enableLog)
1980		m_log << TestLog::Message << "glGetShaderInfoLog(" << shader << ", " << bufSize << ", " << length << ", " << infoLog << ");" << TestLog::EndMessage;
1981	m_gl.getShaderInfoLog(shader, bufSize, length, infoLog);
1982}
1983
1984void CallLogWrapper::glGetShaderPrecisionFormat (glw::GLenum shadertype, glw::GLenum precisiontype, glw::GLint *range, glw::GLint *precision)
1985{
1986	if (m_enableLog)
1987		m_log << TestLog::Message << "glGetShaderPrecisionFormat(" << getShaderTypeStr(shadertype) << ", " << getPrecisionFormatTypeStr(precisiontype) << ", " << range << ", " << precision << ");" << TestLog::EndMessage;
1988	m_gl.getShaderPrecisionFormat(shadertype, precisiontype, range, precision);
1989}
1990
1991void CallLogWrapper::glGetShaderSource (glw::GLuint shader, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLchar *source)
1992{
1993	if (m_enableLog)
1994		m_log << TestLog::Message << "glGetShaderSource(" << shader << ", " << bufSize << ", " << length << ", " << source << ");" << TestLog::EndMessage;
1995	m_gl.getShaderSource(shader, bufSize, length, source);
1996}
1997
1998void CallLogWrapper::glGetShaderiv (glw::GLuint shader, glw::GLenum pname, glw::GLint *params)
1999{
2000	if (m_enableLog)
2001		m_log << TestLog::Message << "glGetShaderiv(" << shader << ", " << getShaderParamStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2002	m_gl.getShaderiv(shader, pname, params);
2003	if (m_enableLog)
2004	{
2005		m_log << TestLog::Message << "// params = " << getPointerStr(params, 1) << TestLog::EndMessage;
2006	}
2007}
2008
2009const glw::GLubyte * CallLogWrapper::glGetString (glw::GLenum name)
2010{
2011	if (m_enableLog)
2012		m_log << TestLog::Message << "glGetString(" << getGettableStringStr(name) << ");" << TestLog::EndMessage;
2013	const glw::GLubyte * returnValue = m_gl.getString(name);
2014	if (m_enableLog)
2015		m_log << TestLog::Message << "// " << getStringStr(returnValue) << " returned" << TestLog::EndMessage;
2016	return returnValue;
2017}
2018
2019const glw::GLubyte * CallLogWrapper::glGetStringi (glw::GLenum name, glw::GLuint index)
2020{
2021	if (m_enableLog)
2022		m_log << TestLog::Message << "glGetStringi(" << getGettableStringStr(name) << ", " << index << ");" << TestLog::EndMessage;
2023	const glw::GLubyte * returnValue = m_gl.getStringi(name, index);
2024	if (m_enableLog)
2025		m_log << TestLog::Message << "// " << getStringStr(returnValue) << " returned" << TestLog::EndMessage;
2026	return returnValue;
2027}
2028
2029glw::GLuint CallLogWrapper::glGetSubroutineIndex (glw::GLuint program, glw::GLenum shadertype, const glw::GLchar *name)
2030{
2031	if (m_enableLog)
2032		m_log << TestLog::Message << "glGetSubroutineIndex(" << program << ", " << toHex(shadertype) << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
2033	glw::GLuint returnValue = m_gl.getSubroutineIndex(program, shadertype, name);
2034	if (m_enableLog)
2035		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2036	return returnValue;
2037}
2038
2039glw::GLint CallLogWrapper::glGetSubroutineUniformLocation (glw::GLuint program, glw::GLenum shadertype, const glw::GLchar *name)
2040{
2041	if (m_enableLog)
2042		m_log << TestLog::Message << "glGetSubroutineUniformLocation(" << program << ", " << toHex(shadertype) << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
2043	glw::GLint returnValue = m_gl.getSubroutineUniformLocation(program, shadertype, name);
2044	if (m_enableLog)
2045		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2046	return returnValue;
2047}
2048
2049void CallLogWrapper::glGetSynciv (glw::GLsync sync, glw::GLenum pname, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLint *values)
2050{
2051	if (m_enableLog)
2052		m_log << TestLog::Message << "glGetSynciv(" << sync << ", " << toHex(pname) << ", " << bufSize << ", " << length << ", " << values << ");" << TestLog::EndMessage;
2053	m_gl.getSynciv(sync, pname, bufSize, length, values);
2054}
2055
2056void CallLogWrapper::glGetTexImage (glw::GLenum target, glw::GLint level, glw::GLenum format, glw::GLenum type, void *pixels)
2057{
2058	if (m_enableLog)
2059		m_log << TestLog::Message << "glGetTexImage(" << toHex(target) << ", " << level << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
2060	m_gl.getTexImage(target, level, format, type, pixels);
2061}
2062
2063void CallLogWrapper::glGetTexLevelParameterfv (glw::GLenum target, glw::GLint level, glw::GLenum pname, glw::GLfloat *params)
2064{
2065	if (m_enableLog)
2066		m_log << TestLog::Message << "glGetTexLevelParameterfv(" << getTextureTargetStr(target) << ", " << level << ", " << getTextureLevelParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2067	m_gl.getTexLevelParameterfv(target, level, pname, params);
2068}
2069
2070void CallLogWrapper::glGetTexLevelParameteriv (glw::GLenum target, glw::GLint level, glw::GLenum pname, glw::GLint *params)
2071{
2072	if (m_enableLog)
2073		m_log << TestLog::Message << "glGetTexLevelParameteriv(" << getTextureTargetStr(target) << ", " << level << ", " << getTextureLevelParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2074	m_gl.getTexLevelParameteriv(target, level, pname, params);
2075}
2076
2077void CallLogWrapper::glGetTexParameterIiv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
2078{
2079	if (m_enableLog)
2080		m_log << TestLog::Message << "glGetTexParameterIiv(" << toHex(target) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2081	m_gl.getTexParameterIiv(target, pname, params);
2082}
2083
2084void CallLogWrapper::glGetTexParameterIuiv (glw::GLenum target, glw::GLenum pname, glw::GLuint *params)
2085{
2086	if (m_enableLog)
2087		m_log << TestLog::Message << "glGetTexParameterIuiv(" << toHex(target) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2088	m_gl.getTexParameterIuiv(target, pname, params);
2089}
2090
2091void CallLogWrapper::glGetTexParameterfv (glw::GLenum target, glw::GLenum pname, glw::GLfloat *params)
2092{
2093	if (m_enableLog)
2094		m_log << TestLog::Message << "glGetTexParameterfv(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2095	m_gl.getTexParameterfv(target, pname, params);
2096}
2097
2098void CallLogWrapper::glGetTexParameteriv (glw::GLenum target, glw::GLenum pname, glw::GLint *params)
2099{
2100	if (m_enableLog)
2101		m_log << TestLog::Message << "glGetTexParameteriv(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2102	m_gl.getTexParameteriv(target, pname, params);
2103}
2104
2105void CallLogWrapper::glGetTextureImage (glw::GLuint texture, glw::GLint level, glw::GLenum format, glw::GLenum type, glw::GLsizei bufSize, void *pixels)
2106{
2107	if (m_enableLog)
2108		m_log << TestLog::Message << "glGetTextureImage(" << texture << ", " << level << ", " << toHex(format) << ", " << toHex(type) << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
2109	m_gl.getTextureImage(texture, level, format, type, bufSize, pixels);
2110}
2111
2112void CallLogWrapper::glGetTextureLevelParameterfv (glw::GLuint texture, glw::GLint level, glw::GLenum pname, glw::GLfloat *params)
2113{
2114	if (m_enableLog)
2115		m_log << TestLog::Message << "glGetTextureLevelParameterfv(" << texture << ", " << level << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2116	m_gl.getTextureLevelParameterfv(texture, level, pname, params);
2117}
2118
2119void CallLogWrapper::glGetTextureLevelParameteriv (glw::GLuint texture, glw::GLint level, glw::GLenum pname, glw::GLint *params)
2120{
2121	if (m_enableLog)
2122		m_log << TestLog::Message << "glGetTextureLevelParameteriv(" << texture << ", " << level << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2123	m_gl.getTextureLevelParameteriv(texture, level, pname, params);
2124}
2125
2126void CallLogWrapper::glGetTextureParameterIiv (glw::GLuint texture, glw::GLenum pname, glw::GLint *params)
2127{
2128	if (m_enableLog)
2129		m_log << TestLog::Message << "glGetTextureParameterIiv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2130	m_gl.getTextureParameterIiv(texture, pname, params);
2131}
2132
2133void CallLogWrapper::glGetTextureParameterIuiv (glw::GLuint texture, glw::GLenum pname, glw::GLuint *params)
2134{
2135	if (m_enableLog)
2136		m_log << TestLog::Message << "glGetTextureParameterIuiv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2137	m_gl.getTextureParameterIuiv(texture, pname, params);
2138}
2139
2140void CallLogWrapper::glGetTextureParameterfv (glw::GLuint texture, glw::GLenum pname, glw::GLfloat *params)
2141{
2142	if (m_enableLog)
2143		m_log << TestLog::Message << "glGetTextureParameterfv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2144	m_gl.getTextureParameterfv(texture, pname, params);
2145}
2146
2147void CallLogWrapper::glGetTextureParameteriv (glw::GLuint texture, glw::GLenum pname, glw::GLint *params)
2148{
2149	if (m_enableLog)
2150		m_log << TestLog::Message << "glGetTextureParameteriv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2151	m_gl.getTextureParameteriv(texture, pname, params);
2152}
2153
2154void CallLogWrapper::glGetTextureSubImage (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, glw::GLsizei bufSize, void *pixels)
2155{
2156	if (m_enableLog)
2157		m_log << TestLog::Message << "glGetTextureSubImage(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << toHex(type) << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
2158	m_gl.getTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
2159}
2160
2161void CallLogWrapper::glGetTransformFeedbackVarying (glw::GLuint program, glw::GLuint index, glw::GLsizei bufSize, glw::GLsizei *length, glw::GLsizei *size, glw::GLenum *type, glw::GLchar *name)
2162{
2163	if (m_enableLog)
2164		m_log << TestLog::Message << "glGetTransformFeedbackVarying(" << program << ", " << index << ", " << bufSize << ", " << length << ", " << size << ", " << type << ", " << name << ");" << TestLog::EndMessage;
2165	m_gl.getTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
2166}
2167
2168void CallLogWrapper::glGetTransformFeedbacki64_v (glw::GLuint xfb, glw::GLenum pname, glw::GLuint index, glw::GLint64 *param)
2169{
2170	if (m_enableLog)
2171		m_log << TestLog::Message << "glGetTransformFeedbacki64_v(" << xfb << ", " << toHex(pname) << ", " << index << ", " << param << ");" << TestLog::EndMessage;
2172	m_gl.getTransformFeedbacki64_v(xfb, pname, index, param);
2173}
2174
2175void CallLogWrapper::glGetTransformFeedbacki_v (glw::GLuint xfb, glw::GLenum pname, glw::GLuint index, glw::GLint *param)
2176{
2177	if (m_enableLog)
2178		m_log << TestLog::Message << "glGetTransformFeedbacki_v(" << xfb << ", " << toHex(pname) << ", " << index << ", " << param << ");" << TestLog::EndMessage;
2179	m_gl.getTransformFeedbacki_v(xfb, pname, index, param);
2180}
2181
2182void CallLogWrapper::glGetTransformFeedbackiv (glw::GLuint xfb, glw::GLenum pname, glw::GLint *param)
2183{
2184	if (m_enableLog)
2185		m_log << TestLog::Message << "glGetTransformFeedbackiv(" << xfb << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2186	m_gl.getTransformFeedbackiv(xfb, pname, param);
2187}
2188
2189glw::GLuint CallLogWrapper::glGetUniformBlockIndex (glw::GLuint program, const glw::GLchar *uniformBlockName)
2190{
2191	if (m_enableLog)
2192		m_log << TestLog::Message << "glGetUniformBlockIndex(" << program << ", " << getStringStr(uniformBlockName) << ");" << TestLog::EndMessage;
2193	glw::GLuint returnValue = m_gl.getUniformBlockIndex(program, uniformBlockName);
2194	if (m_enableLog)
2195		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2196	return returnValue;
2197}
2198
2199void CallLogWrapper::glGetUniformIndices (glw::GLuint program, glw::GLsizei uniformCount, const glw::GLchar *const*uniformNames, glw::GLuint *uniformIndices)
2200{
2201	if (m_enableLog)
2202		m_log << TestLog::Message << "glGetUniformIndices(" << program << ", " << uniformCount << ", " << getPointerStr(uniformNames, uniformCount) << ", " << uniformIndices << ");" << TestLog::EndMessage;
2203	m_gl.getUniformIndices(program, uniformCount, uniformNames, uniformIndices);
2204	if (m_enableLog)
2205	{
2206		m_log << TestLog::Message << "// uniformIndices = " << getPointerStr(uniformIndices, uniformCount) << TestLog::EndMessage;
2207	}
2208}
2209
2210glw::GLint CallLogWrapper::glGetUniformLocation (glw::GLuint program, const glw::GLchar *name)
2211{
2212	if (m_enableLog)
2213		m_log << TestLog::Message << "glGetUniformLocation(" << program << ", " << getStringStr(name) << ");" << TestLog::EndMessage;
2214	glw::GLint returnValue = m_gl.getUniformLocation(program, name);
2215	if (m_enableLog)
2216		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2217	return returnValue;
2218}
2219
2220void CallLogWrapper::glGetUniformSubroutineuiv (glw::GLenum shadertype, glw::GLint location, glw::GLuint *params)
2221{
2222	if (m_enableLog)
2223		m_log << TestLog::Message << "glGetUniformSubroutineuiv(" << toHex(shadertype) << ", " << location << ", " << params << ");" << TestLog::EndMessage;
2224	m_gl.getUniformSubroutineuiv(shadertype, location, params);
2225}
2226
2227void CallLogWrapper::glGetUniformdv (glw::GLuint program, glw::GLint location, glw::GLdouble *params)
2228{
2229	if (m_enableLog)
2230		m_log << TestLog::Message << "glGetUniformdv(" << program << ", " << location << ", " << params << ");" << TestLog::EndMessage;
2231	m_gl.getUniformdv(program, location, params);
2232}
2233
2234void CallLogWrapper::glGetUniformfv (glw::GLuint program, glw::GLint location, glw::GLfloat *params)
2235{
2236	if (m_enableLog)
2237		m_log << TestLog::Message << "glGetUniformfv(" << program << ", " << location << ", " << params << ");" << TestLog::EndMessage;
2238	m_gl.getUniformfv(program, location, params);
2239}
2240
2241void CallLogWrapper::glGetUniformiv (glw::GLuint program, glw::GLint location, glw::GLint *params)
2242{
2243	if (m_enableLog)
2244		m_log << TestLog::Message << "glGetUniformiv(" << program << ", " << location << ", " << params << ");" << TestLog::EndMessage;
2245	m_gl.getUniformiv(program, location, params);
2246}
2247
2248void CallLogWrapper::glGetUniformuiv (glw::GLuint program, glw::GLint location, glw::GLuint *params)
2249{
2250	if (m_enableLog)
2251		m_log << TestLog::Message << "glGetUniformuiv(" << program << ", " << location << ", " << params << ");" << TestLog::EndMessage;
2252	m_gl.getUniformuiv(program, location, params);
2253}
2254
2255void CallLogWrapper::glGetVertexArrayIndexed64iv (glw::GLuint vaobj, glw::GLuint index, glw::GLenum pname, glw::GLint64 *param)
2256{
2257	if (m_enableLog)
2258		m_log << TestLog::Message << "glGetVertexArrayIndexed64iv(" << vaobj << ", " << index << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2259	m_gl.getVertexArrayIndexed64iv(vaobj, index, pname, param);
2260}
2261
2262void CallLogWrapper::glGetVertexArrayIndexediv (glw::GLuint vaobj, glw::GLuint index, glw::GLenum pname, glw::GLint *param)
2263{
2264	if (m_enableLog)
2265		m_log << TestLog::Message << "glGetVertexArrayIndexediv(" << vaobj << ", " << index << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2266	m_gl.getVertexArrayIndexediv(vaobj, index, pname, param);
2267}
2268
2269void CallLogWrapper::glGetVertexArrayiv (glw::GLuint vaobj, glw::GLenum pname, glw::GLint *param)
2270{
2271	if (m_enableLog)
2272		m_log << TestLog::Message << "glGetVertexArrayiv(" << vaobj << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2273	m_gl.getVertexArrayiv(vaobj, pname, param);
2274}
2275
2276void CallLogWrapper::glGetVertexAttribIiv (glw::GLuint index, glw::GLenum pname, glw::GLint *params)
2277{
2278	if (m_enableLog)
2279		m_log << TestLog::Message << "glGetVertexAttribIiv(" << index << ", " << getVertexAttribParameterNameStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2280	m_gl.getVertexAttribIiv(index, pname, params);
2281	if (m_enableLog)
2282	{
2283		m_log << TestLog::Message << "// params = " << getPointerStr(params, getAttributeQueryNumArgsOut(pname)) << TestLog::EndMessage;
2284	}
2285}
2286
2287void CallLogWrapper::glGetVertexAttribIuiv (glw::GLuint index, glw::GLenum pname, glw::GLuint *params)
2288{
2289	if (m_enableLog)
2290		m_log << TestLog::Message << "glGetVertexAttribIuiv(" << index << ", " << getVertexAttribParameterNameStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2291	m_gl.getVertexAttribIuiv(index, pname, params);
2292	if (m_enableLog)
2293	{
2294		m_log << TestLog::Message << "// params = " << getPointerStr(params, getAttributeQueryNumArgsOut(pname)) << TestLog::EndMessage;
2295	}
2296}
2297
2298void CallLogWrapper::glGetVertexAttribLdv (glw::GLuint index, glw::GLenum pname, glw::GLdouble *params)
2299{
2300	if (m_enableLog)
2301		m_log << TestLog::Message << "glGetVertexAttribLdv(" << index << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2302	m_gl.getVertexAttribLdv(index, pname, params);
2303}
2304
2305void CallLogWrapper::glGetVertexAttribPointerv (glw::GLuint index, glw::GLenum pname, void **pointer)
2306{
2307	if (m_enableLog)
2308		m_log << TestLog::Message << "glGetVertexAttribPointerv(" << index << ", " << toHex(pname) << ", " << pointer << ");" << TestLog::EndMessage;
2309	m_gl.getVertexAttribPointerv(index, pname, pointer);
2310}
2311
2312void CallLogWrapper::glGetVertexAttribdv (glw::GLuint index, glw::GLenum pname, glw::GLdouble *params)
2313{
2314	if (m_enableLog)
2315		m_log << TestLog::Message << "glGetVertexAttribdv(" << index << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2316	m_gl.getVertexAttribdv(index, pname, params);
2317}
2318
2319void CallLogWrapper::glGetVertexAttribfv (glw::GLuint index, glw::GLenum pname, glw::GLfloat *params)
2320{
2321	if (m_enableLog)
2322		m_log << TestLog::Message << "glGetVertexAttribfv(" << index << ", " << getVertexAttribParameterNameStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2323	m_gl.getVertexAttribfv(index, pname, params);
2324	if (m_enableLog)
2325	{
2326		m_log << TestLog::Message << "// params = " << getPointerStr(params, getAttributeQueryNumArgsOut(pname)) << TestLog::EndMessage;
2327	}
2328}
2329
2330void CallLogWrapper::glGetVertexAttribiv (glw::GLuint index, glw::GLenum pname, glw::GLint *params)
2331{
2332	if (m_enableLog)
2333		m_log << TestLog::Message << "glGetVertexAttribiv(" << index << ", " << getVertexAttribParameterNameStr(pname) << ", " << params << ");" << TestLog::EndMessage;
2334	m_gl.getVertexAttribiv(index, pname, params);
2335	if (m_enableLog)
2336	{
2337		m_log << TestLog::Message << "// params = " << getPointerStr(params, getAttributeQueryNumArgsOut(pname)) << TestLog::EndMessage;
2338	}
2339}
2340
2341void CallLogWrapper::glGetnCompressedTexImage (glw::GLenum target, glw::GLint lod, glw::GLsizei bufSize, void *pixels)
2342{
2343	if (m_enableLog)
2344		m_log << TestLog::Message << "glGetnCompressedTexImage(" << toHex(target) << ", " << lod << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
2345	m_gl.getnCompressedTexImage(target, lod, bufSize, pixels);
2346}
2347
2348void CallLogWrapper::glGetnTexImage (glw::GLenum target, glw::GLint level, glw::GLenum format, glw::GLenum type, glw::GLsizei bufSize, void *pixels)
2349{
2350	if (m_enableLog)
2351		m_log << TestLog::Message << "glGetnTexImage(" << toHex(target) << ", " << level << ", " << toHex(format) << ", " << toHex(type) << ", " << bufSize << ", " << pixels << ");" << TestLog::EndMessage;
2352	m_gl.getnTexImage(target, level, format, type, bufSize, pixels);
2353}
2354
2355void CallLogWrapper::glGetnUniformdv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLdouble *params)
2356{
2357	if (m_enableLog)
2358		m_log << TestLog::Message << "glGetnUniformdv(" << program << ", " << location << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
2359	m_gl.getnUniformdv(program, location, bufSize, params);
2360}
2361
2362void CallLogWrapper::glGetnUniformfv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLfloat *params)
2363{
2364	if (m_enableLog)
2365		m_log << TestLog::Message << "glGetnUniformfv(" << program << ", " << location << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
2366	m_gl.getnUniformfv(program, location, bufSize, params);
2367}
2368
2369void CallLogWrapper::glGetnUniformiv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLint *params)
2370{
2371	if (m_enableLog)
2372		m_log << TestLog::Message << "glGetnUniformiv(" << program << ", " << location << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
2373	m_gl.getnUniformiv(program, location, bufSize, params);
2374}
2375
2376void CallLogWrapper::glGetnUniformuiv (glw::GLuint program, glw::GLint location, glw::GLsizei bufSize, glw::GLuint *params)
2377{
2378	if (m_enableLog)
2379		m_log << TestLog::Message << "glGetnUniformuiv(" << program << ", " << location << ", " << bufSize << ", " << params << ");" << TestLog::EndMessage;
2380	m_gl.getnUniformuiv(program, location, bufSize, params);
2381}
2382
2383void CallLogWrapper::glHint (glw::GLenum target, glw::GLenum mode)
2384{
2385	if (m_enableLog)
2386		m_log << TestLog::Message << "glHint(" << getHintStr(target) << ", " << getHintModeStr(mode) << ");" << TestLog::EndMessage;
2387	m_gl.hint(target, mode);
2388}
2389
2390void CallLogWrapper::glInvalidateBufferData (glw::GLuint buffer)
2391{
2392	if (m_enableLog)
2393		m_log << TestLog::Message << "glInvalidateBufferData(" << buffer << ");" << TestLog::EndMessage;
2394	m_gl.invalidateBufferData(buffer);
2395}
2396
2397void CallLogWrapper::glInvalidateBufferSubData (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr length)
2398{
2399	if (m_enableLog)
2400		m_log << TestLog::Message << "glInvalidateBufferSubData(" << buffer << ", " << offset << ", " << length << ");" << TestLog::EndMessage;
2401	m_gl.invalidateBufferSubData(buffer, offset, length);
2402}
2403
2404void CallLogWrapper::glInvalidateFramebuffer (glw::GLenum target, glw::GLsizei numAttachments, const glw::GLenum *attachments)
2405{
2406	if (m_enableLog)
2407		m_log << TestLog::Message << "glInvalidateFramebuffer(" << getFramebufferTargetStr(target) << ", " << numAttachments << ", " << getEnumPointerStr(attachments, numAttachments, getInvalidateAttachmentName) << ");" << TestLog::EndMessage;
2408	m_gl.invalidateFramebuffer(target, numAttachments, attachments);
2409}
2410
2411void CallLogWrapper::glInvalidateNamedFramebufferData (glw::GLuint framebuffer, glw::GLsizei numAttachments, const glw::GLenum *attachments)
2412{
2413	if (m_enableLog)
2414		m_log << TestLog::Message << "glInvalidateNamedFramebufferData(" << framebuffer << ", " << numAttachments << ", " << attachments << ");" << TestLog::EndMessage;
2415	m_gl.invalidateNamedFramebufferData(framebuffer, numAttachments, attachments);
2416}
2417
2418void CallLogWrapper::glInvalidateNamedFramebufferSubData (glw::GLuint framebuffer, glw::GLsizei numAttachments, const glw::GLenum *attachments, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
2419{
2420	if (m_enableLog)
2421		m_log << TestLog::Message << "glInvalidateNamedFramebufferSubData(" << framebuffer << ", " << numAttachments << ", " << attachments << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
2422	m_gl.invalidateNamedFramebufferSubData(framebuffer, numAttachments, attachments, x, y, width, height);
2423}
2424
2425void CallLogWrapper::glInvalidateSubFramebuffer (glw::GLenum target, glw::GLsizei numAttachments, const glw::GLenum *attachments, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
2426{
2427	if (m_enableLog)
2428		m_log << TestLog::Message << "glInvalidateSubFramebuffer(" << getFramebufferTargetStr(target) << ", " << numAttachments << ", " << getEnumPointerStr(attachments, numAttachments, getInvalidateAttachmentName) << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
2429	m_gl.invalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
2430}
2431
2432void CallLogWrapper::glInvalidateTexImage (glw::GLuint texture, glw::GLint level)
2433{
2434	if (m_enableLog)
2435		m_log << TestLog::Message << "glInvalidateTexImage(" << texture << ", " << level << ");" << TestLog::EndMessage;
2436	m_gl.invalidateTexImage(texture, level);
2437}
2438
2439void CallLogWrapper::glInvalidateTexSubImage (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth)
2440{
2441	if (m_enableLog)
2442		m_log << TestLog::Message << "glInvalidateTexSubImage(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ");" << TestLog::EndMessage;
2443	m_gl.invalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
2444}
2445
2446glw::GLboolean CallLogWrapper::glIsBuffer (glw::GLuint buffer)
2447{
2448	if (m_enableLog)
2449		m_log << TestLog::Message << "glIsBuffer(" << buffer << ");" << TestLog::EndMessage;
2450	glw::GLboolean returnValue = m_gl.isBuffer(buffer);
2451	if (m_enableLog)
2452		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2453	return returnValue;
2454}
2455
2456glw::GLboolean CallLogWrapper::glIsEnabled (glw::GLenum cap)
2457{
2458	if (m_enableLog)
2459		m_log << TestLog::Message << "glIsEnabled(" << getEnableCapStr(cap) << ");" << TestLog::EndMessage;
2460	glw::GLboolean returnValue = m_gl.isEnabled(cap);
2461	if (m_enableLog)
2462		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2463	return returnValue;
2464}
2465
2466glw::GLboolean CallLogWrapper::glIsEnabledi (glw::GLenum target, glw::GLuint index)
2467{
2468	if (m_enableLog)
2469		m_log << TestLog::Message << "glIsEnabledi(" << toHex(target) << ", " << index << ");" << TestLog::EndMessage;
2470	glw::GLboolean returnValue = m_gl.isEnabledi(target, index);
2471	if (m_enableLog)
2472		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2473	return returnValue;
2474}
2475
2476glw::GLboolean CallLogWrapper::glIsFramebuffer (glw::GLuint framebuffer)
2477{
2478	if (m_enableLog)
2479		m_log << TestLog::Message << "glIsFramebuffer(" << framebuffer << ");" << TestLog::EndMessage;
2480	glw::GLboolean returnValue = m_gl.isFramebuffer(framebuffer);
2481	if (m_enableLog)
2482		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2483	return returnValue;
2484}
2485
2486glw::GLboolean CallLogWrapper::glIsProgram (glw::GLuint program)
2487{
2488	if (m_enableLog)
2489		m_log << TestLog::Message << "glIsProgram(" << program << ");" << TestLog::EndMessage;
2490	glw::GLboolean returnValue = m_gl.isProgram(program);
2491	if (m_enableLog)
2492		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2493	return returnValue;
2494}
2495
2496glw::GLboolean CallLogWrapper::glIsProgramPipeline (glw::GLuint pipeline)
2497{
2498	if (m_enableLog)
2499		m_log << TestLog::Message << "glIsProgramPipeline(" << pipeline << ");" << TestLog::EndMessage;
2500	glw::GLboolean returnValue = m_gl.isProgramPipeline(pipeline);
2501	if (m_enableLog)
2502		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2503	return returnValue;
2504}
2505
2506glw::GLboolean CallLogWrapper::glIsQuery (glw::GLuint id)
2507{
2508	if (m_enableLog)
2509		m_log << TestLog::Message << "glIsQuery(" << id << ");" << TestLog::EndMessage;
2510	glw::GLboolean returnValue = m_gl.isQuery(id);
2511	if (m_enableLog)
2512		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2513	return returnValue;
2514}
2515
2516glw::GLboolean CallLogWrapper::glIsRenderbuffer (glw::GLuint renderbuffer)
2517{
2518	if (m_enableLog)
2519		m_log << TestLog::Message << "glIsRenderbuffer(" << renderbuffer << ");" << TestLog::EndMessage;
2520	glw::GLboolean returnValue = m_gl.isRenderbuffer(renderbuffer);
2521	if (m_enableLog)
2522		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2523	return returnValue;
2524}
2525
2526glw::GLboolean CallLogWrapper::glIsSampler (glw::GLuint sampler)
2527{
2528	if (m_enableLog)
2529		m_log << TestLog::Message << "glIsSampler(" << sampler << ");" << TestLog::EndMessage;
2530	glw::GLboolean returnValue = m_gl.isSampler(sampler);
2531	if (m_enableLog)
2532		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2533	return returnValue;
2534}
2535
2536glw::GLboolean CallLogWrapper::glIsShader (glw::GLuint shader)
2537{
2538	if (m_enableLog)
2539		m_log << TestLog::Message << "glIsShader(" << shader << ");" << TestLog::EndMessage;
2540	glw::GLboolean returnValue = m_gl.isShader(shader);
2541	if (m_enableLog)
2542		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2543	return returnValue;
2544}
2545
2546glw::GLboolean CallLogWrapper::glIsSync (glw::GLsync sync)
2547{
2548	if (m_enableLog)
2549		m_log << TestLog::Message << "glIsSync(" << sync << ");" << TestLog::EndMessage;
2550	glw::GLboolean returnValue = m_gl.isSync(sync);
2551	if (m_enableLog)
2552		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2553	return returnValue;
2554}
2555
2556glw::GLboolean CallLogWrapper::glIsTexture (glw::GLuint texture)
2557{
2558	if (m_enableLog)
2559		m_log << TestLog::Message << "glIsTexture(" << texture << ");" << TestLog::EndMessage;
2560	glw::GLboolean returnValue = m_gl.isTexture(texture);
2561	if (m_enableLog)
2562		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2563	return returnValue;
2564}
2565
2566glw::GLboolean CallLogWrapper::glIsTransformFeedback (glw::GLuint id)
2567{
2568	if (m_enableLog)
2569		m_log << TestLog::Message << "glIsTransformFeedback(" << id << ");" << TestLog::EndMessage;
2570	glw::GLboolean returnValue = m_gl.isTransformFeedback(id);
2571	if (m_enableLog)
2572		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2573	return returnValue;
2574}
2575
2576glw::GLboolean CallLogWrapper::glIsVertexArray (glw::GLuint array)
2577{
2578	if (m_enableLog)
2579		m_log << TestLog::Message << "glIsVertexArray(" << array << ");" << TestLog::EndMessage;
2580	glw::GLboolean returnValue = m_gl.isVertexArray(array);
2581	if (m_enableLog)
2582		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
2583	return returnValue;
2584}
2585
2586void CallLogWrapper::glLineWidth (glw::GLfloat width)
2587{
2588	if (m_enableLog)
2589		m_log << TestLog::Message << "glLineWidth(" << width << ");" << TestLog::EndMessage;
2590	m_gl.lineWidth(width);
2591}
2592
2593void CallLogWrapper::glLinkProgram (glw::GLuint program)
2594{
2595	if (m_enableLog)
2596		m_log << TestLog::Message << "glLinkProgram(" << program << ");" << TestLog::EndMessage;
2597	m_gl.linkProgram(program);
2598}
2599
2600void CallLogWrapper::glLogicOp (glw::GLenum opcode)
2601{
2602	if (m_enableLog)
2603		m_log << TestLog::Message << "glLogicOp(" << toHex(opcode) << ");" << TestLog::EndMessage;
2604	m_gl.logicOp(opcode);
2605}
2606
2607void * CallLogWrapper::glMapBuffer (glw::GLenum target, glw::GLenum access)
2608{
2609	if (m_enableLog)
2610		m_log << TestLog::Message << "glMapBuffer(" << toHex(target) << ", " << toHex(access) << ");" << TestLog::EndMessage;
2611	void * returnValue = m_gl.mapBuffer(target, access);
2612	if (m_enableLog)
2613		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2614	return returnValue;
2615}
2616
2617void * CallLogWrapper::glMapBufferRange (glw::GLenum target, glw::GLintptr offset, glw::GLsizeiptr length, glw::GLbitfield access)
2618{
2619	if (m_enableLog)
2620		m_log << TestLog::Message << "glMapBufferRange(" << getBufferTargetStr(target) << ", " << offset << ", " << length << ", " << getBufferMapFlagsStr(access) << ");" << TestLog::EndMessage;
2621	void * returnValue = m_gl.mapBufferRange(target, offset, length, access);
2622	if (m_enableLog)
2623		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2624	return returnValue;
2625}
2626
2627void * CallLogWrapper::glMapNamedBuffer (glw::GLuint buffer, glw::GLenum access)
2628{
2629	if (m_enableLog)
2630		m_log << TestLog::Message << "glMapNamedBuffer(" << buffer << ", " << toHex(access) << ");" << TestLog::EndMessage;
2631	void * returnValue = m_gl.mapNamedBuffer(buffer, access);
2632	if (m_enableLog)
2633		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2634	return returnValue;
2635}
2636
2637void * CallLogWrapper::glMapNamedBufferRange (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr length, glw::GLbitfield access)
2638{
2639	if (m_enableLog)
2640		m_log << TestLog::Message << "glMapNamedBufferRange(" << buffer << ", " << offset << ", " << length << ", " << toHex(access) << ");" << TestLog::EndMessage;
2641	void * returnValue = m_gl.mapNamedBufferRange(buffer, offset, length, access);
2642	if (m_enableLog)
2643		m_log << TestLog::Message << "// " << returnValue << " returned" << TestLog::EndMessage;
2644	return returnValue;
2645}
2646
2647void CallLogWrapper::glMemoryBarrier (glw::GLbitfield barriers)
2648{
2649	if (m_enableLog)
2650		m_log << TestLog::Message << "glMemoryBarrier(" << getMemoryBarrierFlagsStr(barriers) << ");" << TestLog::EndMessage;
2651	m_gl.memoryBarrier(barriers);
2652}
2653
2654void CallLogWrapper::glMemoryBarrierByRegion (glw::GLbitfield barriers)
2655{
2656	if (m_enableLog)
2657		m_log << TestLog::Message << "glMemoryBarrierByRegion(" << toHex(barriers) << ");" << TestLog::EndMessage;
2658	m_gl.memoryBarrierByRegion(barriers);
2659}
2660
2661void CallLogWrapper::glMinSampleShading (glw::GLfloat value)
2662{
2663	if (m_enableLog)
2664		m_log << TestLog::Message << "glMinSampleShading(" << value << ");" << TestLog::EndMessage;
2665	m_gl.minSampleShading(value);
2666}
2667
2668void CallLogWrapper::glMultiDrawArrays (glw::GLenum mode, const glw::GLint *first, const glw::GLsizei *count, glw::GLsizei drawcount)
2669{
2670	if (m_enableLog)
2671		m_log << TestLog::Message << "glMultiDrawArrays(" << getPrimitiveTypeStr(mode) << ", " << first << ", " << count << ", " << drawcount << ");" << TestLog::EndMessage;
2672	m_gl.multiDrawArrays(mode, first, count, drawcount);
2673}
2674
2675void CallLogWrapper::glMultiDrawArraysIndirect (glw::GLenum mode, const void *indirect, glw::GLsizei drawcount, glw::GLsizei stride)
2676{
2677	if (m_enableLog)
2678		m_log << TestLog::Message << "glMultiDrawArraysIndirect(" << toHex(mode) << ", " << indirect << ", " << drawcount << ", " << stride << ");" << TestLog::EndMessage;
2679	m_gl.multiDrawArraysIndirect(mode, indirect, drawcount, stride);
2680}
2681
2682void CallLogWrapper::glMultiDrawElements (glw::GLenum mode, const glw::GLsizei *count, glw::GLenum type, const void *const*indices, glw::GLsizei drawcount)
2683{
2684	if (m_enableLog)
2685		m_log << TestLog::Message << "glMultiDrawElements(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << drawcount << ");" << TestLog::EndMessage;
2686	m_gl.multiDrawElements(mode, count, type, indices, drawcount);
2687}
2688
2689void CallLogWrapper::glMultiDrawElementsBaseVertex (glw::GLenum mode, const glw::GLsizei *count, glw::GLenum type, const void *const*indices, glw::GLsizei drawcount, const glw::GLint *basevertex)
2690{
2691	if (m_enableLog)
2692		m_log << TestLog::Message << "glMultiDrawElementsBaseVertex(" << getPrimitiveTypeStr(mode) << ", " << count << ", " << getTypeStr(type) << ", " << indices << ", " << drawcount << ", " << basevertex << ");" << TestLog::EndMessage;
2693	m_gl.multiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex);
2694}
2695
2696void CallLogWrapper::glMultiDrawElementsIndirect (glw::GLenum mode, glw::GLenum type, const void *indirect, glw::GLsizei drawcount, glw::GLsizei stride)
2697{
2698	if (m_enableLog)
2699		m_log << TestLog::Message << "glMultiDrawElementsIndirect(" << toHex(mode) << ", " << toHex(type) << ", " << indirect << ", " << drawcount << ", " << stride << ");" << TestLog::EndMessage;
2700	m_gl.multiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
2701}
2702
2703void CallLogWrapper::glNamedBufferData (glw::GLuint buffer, glw::GLsizeiptr size, const void *data, glw::GLenum usage)
2704{
2705	if (m_enableLog)
2706		m_log << TestLog::Message << "glNamedBufferData(" << buffer << ", " << size << ", " << data << ", " << toHex(usage) << ");" << TestLog::EndMessage;
2707	m_gl.namedBufferData(buffer, size, data, usage);
2708}
2709
2710void CallLogWrapper::glNamedBufferStorage (glw::GLuint buffer, glw::GLsizeiptr size, const void *data, glw::GLbitfield flags)
2711{
2712	if (m_enableLog)
2713		m_log << TestLog::Message << "glNamedBufferStorage(" << buffer << ", " << size << ", " << data << ", " << toHex(flags) << ");" << TestLog::EndMessage;
2714	m_gl.namedBufferStorage(buffer, size, data, flags);
2715}
2716
2717void CallLogWrapper::glNamedBufferSubData (glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size, const void *data)
2718{
2719	if (m_enableLog)
2720		m_log << TestLog::Message << "glNamedBufferSubData(" << buffer << ", " << offset << ", " << size << ", " << data << ");" << TestLog::EndMessage;
2721	m_gl.namedBufferSubData(buffer, offset, size, data);
2722}
2723
2724void CallLogWrapper::glNamedFramebufferDrawBuffer (glw::GLuint framebuffer, glw::GLenum buf)
2725{
2726	if (m_enableLog)
2727		m_log << TestLog::Message << "glNamedFramebufferDrawBuffer(" << framebuffer << ", " << toHex(buf) << ");" << TestLog::EndMessage;
2728	m_gl.namedFramebufferDrawBuffer(framebuffer, buf);
2729}
2730
2731void CallLogWrapper::glNamedFramebufferDrawBuffers (glw::GLuint framebuffer, glw::GLsizei n, const glw::GLenum *bufs)
2732{
2733	if (m_enableLog)
2734		m_log << TestLog::Message << "glNamedFramebufferDrawBuffers(" << framebuffer << ", " << n << ", " << bufs << ");" << TestLog::EndMessage;
2735	m_gl.namedFramebufferDrawBuffers(framebuffer, n, bufs);
2736}
2737
2738void CallLogWrapper::glNamedFramebufferParameteri (glw::GLuint framebuffer, glw::GLenum pname, glw::GLint param)
2739{
2740	if (m_enableLog)
2741		m_log << TestLog::Message << "glNamedFramebufferParameteri(" << framebuffer << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2742	m_gl.namedFramebufferParameteri(framebuffer, pname, param);
2743}
2744
2745void CallLogWrapper::glNamedFramebufferReadBuffer (glw::GLuint framebuffer, glw::GLenum src)
2746{
2747	if (m_enableLog)
2748		m_log << TestLog::Message << "glNamedFramebufferReadBuffer(" << framebuffer << ", " << toHex(src) << ");" << TestLog::EndMessage;
2749	m_gl.namedFramebufferReadBuffer(framebuffer, src);
2750}
2751
2752void CallLogWrapper::glNamedFramebufferRenderbuffer (glw::GLuint framebuffer, glw::GLenum attachment, glw::GLenum renderbuffertarget, glw::GLuint renderbuffer)
2753{
2754	if (m_enableLog)
2755		m_log << TestLog::Message << "glNamedFramebufferRenderbuffer(" << framebuffer << ", " << toHex(attachment) << ", " << toHex(renderbuffertarget) << ", " << renderbuffer << ");" << TestLog::EndMessage;
2756	m_gl.namedFramebufferRenderbuffer(framebuffer, attachment, renderbuffertarget, renderbuffer);
2757}
2758
2759void CallLogWrapper::glNamedFramebufferTexture (glw::GLuint framebuffer, glw::GLenum attachment, glw::GLuint texture, glw::GLint level)
2760{
2761	if (m_enableLog)
2762		m_log << TestLog::Message << "glNamedFramebufferTexture(" << framebuffer << ", " << toHex(attachment) << ", " << texture << ", " << level << ");" << TestLog::EndMessage;
2763	m_gl.namedFramebufferTexture(framebuffer, attachment, texture, level);
2764}
2765
2766void CallLogWrapper::glNamedFramebufferTextureLayer (glw::GLuint framebuffer, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer)
2767{
2768	if (m_enableLog)
2769		m_log << TestLog::Message << "glNamedFramebufferTextureLayer(" << framebuffer << ", " << toHex(attachment) << ", " << texture << ", " << level << ", " << layer << ");" << TestLog::EndMessage;
2770	m_gl.namedFramebufferTextureLayer(framebuffer, attachment, texture, level, layer);
2771}
2772
2773void CallLogWrapper::glNamedRenderbufferStorage (glw::GLuint renderbuffer, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
2774{
2775	if (m_enableLog)
2776		m_log << TestLog::Message << "glNamedRenderbufferStorage(" << renderbuffer << ", " << toHex(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
2777	m_gl.namedRenderbufferStorage(renderbuffer, internalformat, width, height);
2778}
2779
2780void CallLogWrapper::glNamedRenderbufferStorageMultisample (glw::GLuint renderbuffer, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
2781{
2782	if (m_enableLog)
2783		m_log << TestLog::Message << "glNamedRenderbufferStorageMultisample(" << renderbuffer << ", " << samples << ", " << toHex(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
2784	m_gl.namedRenderbufferStorageMultisample(renderbuffer, samples, internalformat, width, height);
2785}
2786
2787void CallLogWrapper::glObjectLabel (glw::GLenum identifier, glw::GLuint name, glw::GLsizei length, const glw::GLchar *label)
2788{
2789	if (m_enableLog)
2790		m_log << TestLog::Message << "glObjectLabel(" << toHex(identifier) << ", " << name << ", " << length << ", " << getStringStr(label) << ");" << TestLog::EndMessage;
2791	m_gl.objectLabel(identifier, name, length, label);
2792}
2793
2794void CallLogWrapper::glObjectPtrLabel (const void *ptr, glw::GLsizei length, const glw::GLchar *label)
2795{
2796	if (m_enableLog)
2797		m_log << TestLog::Message << "glObjectPtrLabel(" << ptr << ", " << length << ", " << getStringStr(label) << ");" << TestLog::EndMessage;
2798	m_gl.objectPtrLabel(ptr, length, label);
2799}
2800
2801void CallLogWrapper::glPatchParameterfv (glw::GLenum pname, const glw::GLfloat *values)
2802{
2803	if (m_enableLog)
2804		m_log << TestLog::Message << "glPatchParameterfv(" << toHex(pname) << ", " << values << ");" << TestLog::EndMessage;
2805	m_gl.patchParameterfv(pname, values);
2806}
2807
2808void CallLogWrapper::glPatchParameteri (glw::GLenum pname, glw::GLint value)
2809{
2810	if (m_enableLog)
2811		m_log << TestLog::Message << "glPatchParameteri(" << toHex(pname) << ", " << value << ");" << TestLog::EndMessage;
2812	m_gl.patchParameteri(pname, value);
2813}
2814
2815void CallLogWrapper::glPauseTransformFeedback (void)
2816{
2817	if (m_enableLog)
2818		m_log << TestLog::Message << "glPauseTransformFeedback(" << ");" << TestLog::EndMessage;
2819	m_gl.pauseTransformFeedback();
2820}
2821
2822void CallLogWrapper::glPixelStoref (glw::GLenum pname, glw::GLfloat param)
2823{
2824	if (m_enableLog)
2825		m_log << TestLog::Message << "glPixelStoref(" << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2826	m_gl.pixelStoref(pname, param);
2827}
2828
2829void CallLogWrapper::glPixelStorei (glw::GLenum pname, glw::GLint param)
2830{
2831	if (m_enableLog)
2832		m_log << TestLog::Message << "glPixelStorei(" << getPixelStoreParameterStr(pname) << ", " << param << ");" << TestLog::EndMessage;
2833	m_gl.pixelStorei(pname, param);
2834}
2835
2836void CallLogWrapper::glPointParameterf (glw::GLenum pname, glw::GLfloat param)
2837{
2838	if (m_enableLog)
2839		m_log << TestLog::Message << "glPointParameterf(" << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2840	m_gl.pointParameterf(pname, param);
2841}
2842
2843void CallLogWrapper::glPointParameterfv (glw::GLenum pname, const glw::GLfloat *params)
2844{
2845	if (m_enableLog)
2846		m_log << TestLog::Message << "glPointParameterfv(" << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2847	m_gl.pointParameterfv(pname, params);
2848}
2849
2850void CallLogWrapper::glPointParameteri (glw::GLenum pname, glw::GLint param)
2851{
2852	if (m_enableLog)
2853		m_log << TestLog::Message << "glPointParameteri(" << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
2854	m_gl.pointParameteri(pname, param);
2855}
2856
2857void CallLogWrapper::glPointParameteriv (glw::GLenum pname, const glw::GLint *params)
2858{
2859	if (m_enableLog)
2860		m_log << TestLog::Message << "glPointParameteriv(" << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
2861	m_gl.pointParameteriv(pname, params);
2862}
2863
2864void CallLogWrapper::glPointSize (glw::GLfloat size)
2865{
2866	if (m_enableLog)
2867		m_log << TestLog::Message << "glPointSize(" << size << ");" << TestLog::EndMessage;
2868	m_gl.pointSize(size);
2869}
2870
2871void CallLogWrapper::glPolygonMode (glw::GLenum face, glw::GLenum mode)
2872{
2873	if (m_enableLog)
2874		m_log << TestLog::Message << "glPolygonMode(" << toHex(face) << ", " << toHex(mode) << ");" << TestLog::EndMessage;
2875	m_gl.polygonMode(face, mode);
2876}
2877
2878void CallLogWrapper::glPolygonOffset (glw::GLfloat factor, glw::GLfloat units)
2879{
2880	if (m_enableLog)
2881		m_log << TestLog::Message << "glPolygonOffset(" << factor << ", " << units << ");" << TestLog::EndMessage;
2882	m_gl.polygonOffset(factor, units);
2883}
2884
2885void CallLogWrapper::glPopDebugGroup (void)
2886{
2887	if (m_enableLog)
2888		m_log << TestLog::Message << "glPopDebugGroup(" << ");" << TestLog::EndMessage;
2889	m_gl.popDebugGroup();
2890}
2891
2892void CallLogWrapper::glPrimitiveBoundingBoxEXT (glw::GLfloat minX, glw::GLfloat minY, glw::GLfloat minZ, glw::GLfloat minW, glw::GLfloat maxX, glw::GLfloat maxY, glw::GLfloat maxZ, glw::GLfloat maxW)
2893{
2894	if (m_enableLog)
2895		m_log << TestLog::Message << "glPrimitiveBoundingBoxEXT(" << minX << ", " << minY << ", " << minZ << ", " << minW << ", " << maxX << ", " << maxY << ", " << maxZ << ", " << maxW << ");" << TestLog::EndMessage;
2896	m_gl.primitiveBoundingBoxEXT(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
2897}
2898
2899void CallLogWrapper::glPrimitiveRestartIndex (glw::GLuint index)
2900{
2901	if (m_enableLog)
2902		m_log << TestLog::Message << "glPrimitiveRestartIndex(" << index << ");" << TestLog::EndMessage;
2903	m_gl.primitiveRestartIndex(index);
2904}
2905
2906void CallLogWrapper::glProgramBinary (glw::GLuint program, glw::GLenum binaryFormat, const void *binary, glw::GLsizei length)
2907{
2908	if (m_enableLog)
2909		m_log << TestLog::Message << "glProgramBinary(" << program << ", " << toHex(binaryFormat) << ", " << binary << ", " << length << ");" << TestLog::EndMessage;
2910	m_gl.programBinary(program, binaryFormat, binary, length);
2911}
2912
2913void CallLogWrapper::glProgramParameteri (glw::GLuint program, glw::GLenum pname, glw::GLint value)
2914{
2915	if (m_enableLog)
2916		m_log << TestLog::Message << "glProgramParameteri(" << program << ", " << toHex(pname) << ", " << value << ");" << TestLog::EndMessage;
2917	m_gl.programParameteri(program, pname, value);
2918}
2919
2920void CallLogWrapper::glProgramUniform1d (glw::GLuint program, glw::GLint location, glw::GLdouble v0)
2921{
2922	if (m_enableLog)
2923		m_log << TestLog::Message << "glProgramUniform1d(" << program << ", " << location << ", " << v0 << ");" << TestLog::EndMessage;
2924	m_gl.programUniform1d(program, location, v0);
2925}
2926
2927void CallLogWrapper::glProgramUniform1dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
2928{
2929	if (m_enableLog)
2930		m_log << TestLog::Message << "glProgramUniform1dv(" << program << ", " << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
2931	m_gl.programUniform1dv(program, location, count, value);
2932}
2933
2934void CallLogWrapper::glProgramUniform1f (glw::GLuint program, glw::GLint location, glw::GLfloat v0)
2935{
2936	if (m_enableLog)
2937		m_log << TestLog::Message << "glProgramUniform1f(" << program << ", " << location << ", " << v0 << ");" << TestLog::EndMessage;
2938	m_gl.programUniform1f(program, location, v0);
2939}
2940
2941void CallLogWrapper::glProgramUniform1fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
2942{
2943	if (m_enableLog)
2944		m_log << TestLog::Message << "glProgramUniform1fv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
2945	m_gl.programUniform1fv(program, location, count, value);
2946}
2947
2948void CallLogWrapper::glProgramUniform1i (glw::GLuint program, glw::GLint location, glw::GLint v0)
2949{
2950	if (m_enableLog)
2951		m_log << TestLog::Message << "glProgramUniform1i(" << program << ", " << location << ", " << v0 << ");" << TestLog::EndMessage;
2952	m_gl.programUniform1i(program, location, v0);
2953}
2954
2955void CallLogWrapper::glProgramUniform1iv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLint *value)
2956{
2957	if (m_enableLog)
2958		m_log << TestLog::Message << "glProgramUniform1iv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
2959	m_gl.programUniform1iv(program, location, count, value);
2960}
2961
2962void CallLogWrapper::glProgramUniform1ui (glw::GLuint program, glw::GLint location, glw::GLuint v0)
2963{
2964	if (m_enableLog)
2965		m_log << TestLog::Message << "glProgramUniform1ui(" << program << ", " << location << ", " << v0 << ");" << TestLog::EndMessage;
2966	m_gl.programUniform1ui(program, location, v0);
2967}
2968
2969void CallLogWrapper::glProgramUniform1uiv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
2970{
2971	if (m_enableLog)
2972		m_log << TestLog::Message << "glProgramUniform1uiv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
2973	m_gl.programUniform1uiv(program, location, count, value);
2974}
2975
2976void CallLogWrapper::glProgramUniform2d (glw::GLuint program, glw::GLint location, glw::GLdouble v0, glw::GLdouble v1)
2977{
2978	if (m_enableLog)
2979		m_log << TestLog::Message << "glProgramUniform2d(" << program << ", " << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
2980	m_gl.programUniform2d(program, location, v0, v1);
2981}
2982
2983void CallLogWrapper::glProgramUniform2dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
2984{
2985	if (m_enableLog)
2986		m_log << TestLog::Message << "glProgramUniform2dv(" << program << ", " << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
2987	m_gl.programUniform2dv(program, location, count, value);
2988}
2989
2990void CallLogWrapper::glProgramUniform2f (glw::GLuint program, glw::GLint location, glw::GLfloat v0, glw::GLfloat v1)
2991{
2992	if (m_enableLog)
2993		m_log << TestLog::Message << "glProgramUniform2f(" << program << ", " << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
2994	m_gl.programUniform2f(program, location, v0, v1);
2995}
2996
2997void CallLogWrapper::glProgramUniform2fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
2998{
2999	if (m_enableLog)
3000		m_log << TestLog::Message << "glProgramUniform2fv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3001	m_gl.programUniform2fv(program, location, count, value);
3002}
3003
3004void CallLogWrapper::glProgramUniform2i (glw::GLuint program, glw::GLint location, glw::GLint v0, glw::GLint v1)
3005{
3006	if (m_enableLog)
3007		m_log << TestLog::Message << "glProgramUniform2i(" << program << ", " << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
3008	m_gl.programUniform2i(program, location, v0, v1);
3009}
3010
3011void CallLogWrapper::glProgramUniform2iv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3012{
3013	if (m_enableLog)
3014		m_log << TestLog::Message << "glProgramUniform2iv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3015	m_gl.programUniform2iv(program, location, count, value);
3016}
3017
3018void CallLogWrapper::glProgramUniform2ui (glw::GLuint program, glw::GLint location, glw::GLuint v0, glw::GLuint v1)
3019{
3020	if (m_enableLog)
3021		m_log << TestLog::Message << "glProgramUniform2ui(" << program << ", " << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
3022	m_gl.programUniform2ui(program, location, v0, v1);
3023}
3024
3025void CallLogWrapper::glProgramUniform2uiv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3026{
3027	if (m_enableLog)
3028		m_log << TestLog::Message << "glProgramUniform2uiv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3029	m_gl.programUniform2uiv(program, location, count, value);
3030}
3031
3032void CallLogWrapper::glProgramUniform3d (glw::GLuint program, glw::GLint location, glw::GLdouble v0, glw::GLdouble v1, glw::GLdouble v2)
3033{
3034	if (m_enableLog)
3035		m_log << TestLog::Message << "glProgramUniform3d(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3036	m_gl.programUniform3d(program, location, v0, v1, v2);
3037}
3038
3039void CallLogWrapper::glProgramUniform3dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3040{
3041	if (m_enableLog)
3042		m_log << TestLog::Message << "glProgramUniform3dv(" << program << ", " << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3043	m_gl.programUniform3dv(program, location, count, value);
3044}
3045
3046void CallLogWrapper::glProgramUniform3f (glw::GLuint program, glw::GLint location, glw::GLfloat v0, glw::GLfloat v1, glw::GLfloat v2)
3047{
3048	if (m_enableLog)
3049		m_log << TestLog::Message << "glProgramUniform3f(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3050	m_gl.programUniform3f(program, location, v0, v1, v2);
3051}
3052
3053void CallLogWrapper::glProgramUniform3fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3054{
3055	if (m_enableLog)
3056		m_log << TestLog::Message << "glProgramUniform3fv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3057	m_gl.programUniform3fv(program, location, count, value);
3058}
3059
3060void CallLogWrapper::glProgramUniform3i (glw::GLuint program, glw::GLint location, glw::GLint v0, glw::GLint v1, glw::GLint v2)
3061{
3062	if (m_enableLog)
3063		m_log << TestLog::Message << "glProgramUniform3i(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3064	m_gl.programUniform3i(program, location, v0, v1, v2);
3065}
3066
3067void CallLogWrapper::glProgramUniform3iv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3068{
3069	if (m_enableLog)
3070		m_log << TestLog::Message << "glProgramUniform3iv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3071	m_gl.programUniform3iv(program, location, count, value);
3072}
3073
3074void CallLogWrapper::glProgramUniform3ui (glw::GLuint program, glw::GLint location, glw::GLuint v0, glw::GLuint v1, glw::GLuint v2)
3075{
3076	if (m_enableLog)
3077		m_log << TestLog::Message << "glProgramUniform3ui(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3078	m_gl.programUniform3ui(program, location, v0, v1, v2);
3079}
3080
3081void CallLogWrapper::glProgramUniform3uiv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3082{
3083	if (m_enableLog)
3084		m_log << TestLog::Message << "glProgramUniform3uiv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3085	m_gl.programUniform3uiv(program, location, count, value);
3086}
3087
3088void CallLogWrapper::glProgramUniform4d (glw::GLuint program, glw::GLint location, glw::GLdouble v0, glw::GLdouble v1, glw::GLdouble v2, glw::GLdouble v3)
3089{
3090	if (m_enableLog)
3091		m_log << TestLog::Message << "glProgramUniform4d(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3092	m_gl.programUniform4d(program, location, v0, v1, v2, v3);
3093}
3094
3095void CallLogWrapper::glProgramUniform4dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3096{
3097	if (m_enableLog)
3098		m_log << TestLog::Message << "glProgramUniform4dv(" << program << ", " << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3099	m_gl.programUniform4dv(program, location, count, value);
3100}
3101
3102void CallLogWrapper::glProgramUniform4f (glw::GLuint program, glw::GLint location, glw::GLfloat v0, glw::GLfloat v1, glw::GLfloat v2, glw::GLfloat v3)
3103{
3104	if (m_enableLog)
3105		m_log << TestLog::Message << "glProgramUniform4f(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3106	m_gl.programUniform4f(program, location, v0, v1, v2, v3);
3107}
3108
3109void CallLogWrapper::glProgramUniform4fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3110{
3111	if (m_enableLog)
3112		m_log << TestLog::Message << "glProgramUniform4fv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
3113	m_gl.programUniform4fv(program, location, count, value);
3114}
3115
3116void CallLogWrapper::glProgramUniform4i (glw::GLuint program, glw::GLint location, glw::GLint v0, glw::GLint v1, glw::GLint v2, glw::GLint v3)
3117{
3118	if (m_enableLog)
3119		m_log << TestLog::Message << "glProgramUniform4i(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3120	m_gl.programUniform4i(program, location, v0, v1, v2, v3);
3121}
3122
3123void CallLogWrapper::glProgramUniform4iv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3124{
3125	if (m_enableLog)
3126		m_log << TestLog::Message << "glProgramUniform4iv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
3127	m_gl.programUniform4iv(program, location, count, value);
3128}
3129
3130void CallLogWrapper::glProgramUniform4ui (glw::GLuint program, glw::GLint location, glw::GLuint v0, glw::GLuint v1, glw::GLuint v2, glw::GLuint v3)
3131{
3132	if (m_enableLog)
3133		m_log << TestLog::Message << "glProgramUniform4ui(" << program << ", " << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3134	m_gl.programUniform4ui(program, location, v0, v1, v2, v3);
3135}
3136
3137void CallLogWrapper::glProgramUniform4uiv (glw::GLuint program, glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3138{
3139	if (m_enableLog)
3140		m_log << TestLog::Message << "glProgramUniform4uiv(" << program << ", " << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
3141	m_gl.programUniform4uiv(program, location, count, value);
3142}
3143
3144void CallLogWrapper::glProgramUniformMatrix2dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3145{
3146	if (m_enableLog)
3147		m_log << TestLog::Message << "glProgramUniformMatrix2dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3148	m_gl.programUniformMatrix2dv(program, location, count, transpose, value);
3149}
3150
3151void CallLogWrapper::glProgramUniformMatrix2fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3152{
3153	if (m_enableLog)
3154		m_log << TestLog::Message << "glProgramUniformMatrix2fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*2)) << ");" << TestLog::EndMessage;
3155	m_gl.programUniformMatrix2fv(program, location, count, transpose, value);
3156}
3157
3158void CallLogWrapper::glProgramUniformMatrix2x3dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3159{
3160	if (m_enableLog)
3161		m_log << TestLog::Message << "glProgramUniformMatrix2x3dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3162	m_gl.programUniformMatrix2x3dv(program, location, count, transpose, value);
3163}
3164
3165void CallLogWrapper::glProgramUniformMatrix2x3fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3166{
3167	if (m_enableLog)
3168		m_log << TestLog::Message << "glProgramUniformMatrix2x3fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*3)) << ");" << TestLog::EndMessage;
3169	m_gl.programUniformMatrix2x3fv(program, location, count, transpose, value);
3170}
3171
3172void CallLogWrapper::glProgramUniformMatrix2x4dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3173{
3174	if (m_enableLog)
3175		m_log << TestLog::Message << "glProgramUniformMatrix2x4dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3176	m_gl.programUniformMatrix2x4dv(program, location, count, transpose, value);
3177}
3178
3179void CallLogWrapper::glProgramUniformMatrix2x4fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3180{
3181	if (m_enableLog)
3182		m_log << TestLog::Message << "glProgramUniformMatrix2x4fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*4)) << ");" << TestLog::EndMessage;
3183	m_gl.programUniformMatrix2x4fv(program, location, count, transpose, value);
3184}
3185
3186void CallLogWrapper::glProgramUniformMatrix3dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3187{
3188	if (m_enableLog)
3189		m_log << TestLog::Message << "glProgramUniformMatrix3dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3190	m_gl.programUniformMatrix3dv(program, location, count, transpose, value);
3191}
3192
3193void CallLogWrapper::glProgramUniformMatrix3fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3194{
3195	if (m_enableLog)
3196		m_log << TestLog::Message << "glProgramUniformMatrix3fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*3)) << ");" << TestLog::EndMessage;
3197	m_gl.programUniformMatrix3fv(program, location, count, transpose, value);
3198}
3199
3200void CallLogWrapper::glProgramUniformMatrix3x2dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3201{
3202	if (m_enableLog)
3203		m_log << TestLog::Message << "glProgramUniformMatrix3x2dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3204	m_gl.programUniformMatrix3x2dv(program, location, count, transpose, value);
3205}
3206
3207void CallLogWrapper::glProgramUniformMatrix3x2fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3208{
3209	if (m_enableLog)
3210		m_log << TestLog::Message << "glProgramUniformMatrix3x2fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*2)) << ");" << TestLog::EndMessage;
3211	m_gl.programUniformMatrix3x2fv(program, location, count, transpose, value);
3212}
3213
3214void CallLogWrapper::glProgramUniformMatrix3x4dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3215{
3216	if (m_enableLog)
3217		m_log << TestLog::Message << "glProgramUniformMatrix3x4dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3218	m_gl.programUniformMatrix3x4dv(program, location, count, transpose, value);
3219}
3220
3221void CallLogWrapper::glProgramUniformMatrix3x4fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3222{
3223	if (m_enableLog)
3224		m_log << TestLog::Message << "glProgramUniformMatrix3x4fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*4)) << ");" << TestLog::EndMessage;
3225	m_gl.programUniformMatrix3x4fv(program, location, count, transpose, value);
3226}
3227
3228void CallLogWrapper::glProgramUniformMatrix4dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3229{
3230	if (m_enableLog)
3231		m_log << TestLog::Message << "glProgramUniformMatrix4dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3232	m_gl.programUniformMatrix4dv(program, location, count, transpose, value);
3233}
3234
3235void CallLogWrapper::glProgramUniformMatrix4fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3236{
3237	if (m_enableLog)
3238		m_log << TestLog::Message << "glProgramUniformMatrix4fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*4)) << ");" << TestLog::EndMessage;
3239	m_gl.programUniformMatrix4fv(program, location, count, transpose, value);
3240}
3241
3242void CallLogWrapper::glProgramUniformMatrix4x2dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3243{
3244	if (m_enableLog)
3245		m_log << TestLog::Message << "glProgramUniformMatrix4x2dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3246	m_gl.programUniformMatrix4x2dv(program, location, count, transpose, value);
3247}
3248
3249void CallLogWrapper::glProgramUniformMatrix4x2fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3250{
3251	if (m_enableLog)
3252		m_log << TestLog::Message << "glProgramUniformMatrix4x2fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*2)) << ");" << TestLog::EndMessage;
3253	m_gl.programUniformMatrix4x2fv(program, location, count, transpose, value);
3254}
3255
3256void CallLogWrapper::glProgramUniformMatrix4x3dv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
3257{
3258	if (m_enableLog)
3259		m_log << TestLog::Message << "glProgramUniformMatrix4x3dv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
3260	m_gl.programUniformMatrix4x3dv(program, location, count, transpose, value);
3261}
3262
3263void CallLogWrapper::glProgramUniformMatrix4x3fv (glw::GLuint program, glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
3264{
3265	if (m_enableLog)
3266		m_log << TestLog::Message << "glProgramUniformMatrix4x3fv(" << program << ", " << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*3)) << ");" << TestLog::EndMessage;
3267	m_gl.programUniformMatrix4x3fv(program, location, count, transpose, value);
3268}
3269
3270void CallLogWrapper::glProvokingVertex (glw::GLenum mode)
3271{
3272	if (m_enableLog)
3273		m_log << TestLog::Message << "glProvokingVertex(" << getProvokingVertexStr(mode) << ");" << TestLog::EndMessage;
3274	m_gl.provokingVertex(mode);
3275}
3276
3277void CallLogWrapper::glPushDebugGroup (glw::GLenum source, glw::GLuint id, glw::GLsizei length, const glw::GLchar *message)
3278{
3279	if (m_enableLog)
3280		m_log << TestLog::Message << "glPushDebugGroup(" << getDebugMessageSourceStr(source) << ", " << id << ", " << length << ", " << getStringStr(message) << ");" << TestLog::EndMessage;
3281	m_gl.pushDebugGroup(source, id, length, message);
3282}
3283
3284void CallLogWrapper::glQueryCounter (glw::GLuint id, glw::GLenum target)
3285{
3286	if (m_enableLog)
3287		m_log << TestLog::Message << "glQueryCounter(" << id << ", " << toHex(target) << ");" << TestLog::EndMessage;
3288	m_gl.queryCounter(id, target);
3289}
3290
3291void CallLogWrapper::glReadBuffer (glw::GLenum src)
3292{
3293	if (m_enableLog)
3294		m_log << TestLog::Message << "glReadBuffer(" << getDrawReadBufferStr(src) << ");" << TestLog::EndMessage;
3295	m_gl.readBuffer(src);
3296}
3297
3298void CallLogWrapper::glReadPixels (glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, void *pixels)
3299{
3300	if (m_enableLog)
3301		m_log << TestLog::Message << "glReadPixels(" << x << ", " << y << ", " << width << ", " << height << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3302	m_gl.readPixels(x, y, width, height, format, type, pixels);
3303}
3304
3305void CallLogWrapper::glReadnPixels (glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, glw::GLsizei bufSize, void *data)
3306{
3307	if (m_enableLog)
3308		m_log << TestLog::Message << "glReadnPixels(" << x << ", " << y << ", " << width << ", " << height << ", " << toHex(format) << ", " << toHex(type) << ", " << bufSize << ", " << data << ");" << TestLog::EndMessage;
3309	m_gl.readnPixels(x, y, width, height, format, type, bufSize, data);
3310}
3311
3312void CallLogWrapper::glReleaseShaderCompiler (void)
3313{
3314	if (m_enableLog)
3315		m_log << TestLog::Message << "glReleaseShaderCompiler(" << ");" << TestLog::EndMessage;
3316	m_gl.releaseShaderCompiler();
3317}
3318
3319void CallLogWrapper::glRenderbufferStorage (glw::GLenum target, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
3320{
3321	if (m_enableLog)
3322		m_log << TestLog::Message << "glRenderbufferStorage(" << getFramebufferTargetStr(target) << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3323	m_gl.renderbufferStorage(target, internalformat, width, height);
3324}
3325
3326void CallLogWrapper::glRenderbufferStorageMultisample (glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
3327{
3328	if (m_enableLog)
3329		m_log << TestLog::Message << "glRenderbufferStorageMultisample(" << getFramebufferTargetStr(target) << ", " << samples << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3330	m_gl.renderbufferStorageMultisample(target, samples, internalformat, width, height);
3331}
3332
3333void CallLogWrapper::glResumeTransformFeedback (void)
3334{
3335	if (m_enableLog)
3336		m_log << TestLog::Message << "glResumeTransformFeedback(" << ");" << TestLog::EndMessage;
3337	m_gl.resumeTransformFeedback();
3338}
3339
3340void CallLogWrapper::glSampleCoverage (glw::GLfloat value, glw::GLboolean invert)
3341{
3342	if (m_enableLog)
3343		m_log << TestLog::Message << "glSampleCoverage(" << value << ", " << getBooleanStr(invert) << ");" << TestLog::EndMessage;
3344	m_gl.sampleCoverage(value, invert);
3345}
3346
3347void CallLogWrapper::glSampleMaski (glw::GLuint maskNumber, glw::GLbitfield mask)
3348{
3349	if (m_enableLog)
3350		m_log << TestLog::Message << "glSampleMaski(" << maskNumber << ", " << toHex(mask) << ");" << TestLog::EndMessage;
3351	m_gl.sampleMaski(maskNumber, mask);
3352}
3353
3354void CallLogWrapper::glSamplerParameterIiv (glw::GLuint sampler, glw::GLenum pname, const glw::GLint *param)
3355{
3356	if (m_enableLog)
3357		m_log << TestLog::Message << "glSamplerParameterIiv(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3358	m_gl.samplerParameterIiv(sampler, pname, param);
3359}
3360
3361void CallLogWrapper::glSamplerParameterIuiv (glw::GLuint sampler, glw::GLenum pname, const glw::GLuint *param)
3362{
3363	if (m_enableLog)
3364		m_log << TestLog::Message << "glSamplerParameterIuiv(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3365	m_gl.samplerParameterIuiv(sampler, pname, param);
3366}
3367
3368void CallLogWrapper::glSamplerParameterf (glw::GLuint sampler, glw::GLenum pname, glw::GLfloat param)
3369{
3370	if (m_enableLog)
3371		m_log << TestLog::Message << "glSamplerParameterf(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3372	m_gl.samplerParameterf(sampler, pname, param);
3373}
3374
3375void CallLogWrapper::glSamplerParameterfv (glw::GLuint sampler, glw::GLenum pname, const glw::GLfloat *param)
3376{
3377	if (m_enableLog)
3378		m_log << TestLog::Message << "glSamplerParameterfv(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3379	m_gl.samplerParameterfv(sampler, pname, param);
3380}
3381
3382void CallLogWrapper::glSamplerParameteri (glw::GLuint sampler, glw::GLenum pname, glw::GLint param)
3383{
3384	if (m_enableLog)
3385		m_log << TestLog::Message << "glSamplerParameteri(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3386	m_gl.samplerParameteri(sampler, pname, param);
3387}
3388
3389void CallLogWrapper::glSamplerParameteriv (glw::GLuint sampler, glw::GLenum pname, const glw::GLint *param)
3390{
3391	if (m_enableLog)
3392		m_log << TestLog::Message << "glSamplerParameteriv(" << sampler << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3393	m_gl.samplerParameteriv(sampler, pname, param);
3394}
3395
3396void CallLogWrapper::glScissor (glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
3397{
3398	if (m_enableLog)
3399		m_log << TestLog::Message << "glScissor(" << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3400	m_gl.scissor(x, y, width, height);
3401}
3402
3403void CallLogWrapper::glScissorArrayv (glw::GLuint first, glw::GLsizei count, const glw::GLint *v)
3404{
3405	if (m_enableLog)
3406		m_log << TestLog::Message << "glScissorArrayv(" << first << ", " << count << ", " << v << ");" << TestLog::EndMessage;
3407	m_gl.scissorArrayv(first, count, v);
3408}
3409
3410void CallLogWrapper::glScissorIndexed (glw::GLuint index, glw::GLint left, glw::GLint bottom, glw::GLsizei width, glw::GLsizei height)
3411{
3412	if (m_enableLog)
3413		m_log << TestLog::Message << "glScissorIndexed(" << index << ", " << left << ", " << bottom << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3414	m_gl.scissorIndexed(index, left, bottom, width, height);
3415}
3416
3417void CallLogWrapper::glScissorIndexedv (glw::GLuint index, const glw::GLint *v)
3418{
3419	if (m_enableLog)
3420		m_log << TestLog::Message << "glScissorIndexedv(" << index << ", " << v << ");" << TestLog::EndMessage;
3421	m_gl.scissorIndexedv(index, v);
3422}
3423
3424void CallLogWrapper::glShaderBinary (glw::GLsizei count, const glw::GLuint *shaders, glw::GLenum binaryformat, const void *binary, glw::GLsizei length)
3425{
3426	if (m_enableLog)
3427		m_log << TestLog::Message << "glShaderBinary(" << count << ", " << shaders << ", " << toHex(binaryformat) << ", " << binary << ", " << length << ");" << TestLog::EndMessage;
3428	m_gl.shaderBinary(count, shaders, binaryformat, binary, length);
3429}
3430
3431void CallLogWrapper::glShaderSource (glw::GLuint shader, glw::GLsizei count, const glw::GLchar *const*string, const glw::GLint *length)
3432{
3433	if (m_enableLog)
3434		m_log << TestLog::Message << "glShaderSource(" << shader << ", " << count << ", " << string << ", " << length << ");" << TestLog::EndMessage;
3435	m_gl.shaderSource(shader, count, string, length);
3436}
3437
3438void CallLogWrapper::glShaderStorageBlockBinding (glw::GLuint program, glw::GLuint storageBlockIndex, glw::GLuint storageBlockBinding)
3439{
3440	if (m_enableLog)
3441		m_log << TestLog::Message << "glShaderStorageBlockBinding(" << program << ", " << storageBlockIndex << ", " << storageBlockBinding << ");" << TestLog::EndMessage;
3442	m_gl.shaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
3443}
3444
3445void CallLogWrapper::glStencilFunc (glw::GLenum func, glw::GLint ref, glw::GLuint mask)
3446{
3447	if (m_enableLog)
3448		m_log << TestLog::Message << "glStencilFunc(" << getCompareFuncStr(func) << ", " << ref << ", " << mask << ");" << TestLog::EndMessage;
3449	m_gl.stencilFunc(func, ref, mask);
3450}
3451
3452void CallLogWrapper::glStencilFuncSeparate (glw::GLenum face, glw::GLenum func, glw::GLint ref, glw::GLuint mask)
3453{
3454	if (m_enableLog)
3455		m_log << TestLog::Message << "glStencilFuncSeparate(" << getFaceStr(face) << ", " << getCompareFuncStr(func) << ", " << ref << ", " << mask << ");" << TestLog::EndMessage;
3456	m_gl.stencilFuncSeparate(face, func, ref, mask);
3457}
3458
3459void CallLogWrapper::glStencilMask (glw::GLuint mask)
3460{
3461	if (m_enableLog)
3462		m_log << TestLog::Message << "glStencilMask(" << mask << ");" << TestLog::EndMessage;
3463	m_gl.stencilMask(mask);
3464}
3465
3466void CallLogWrapper::glStencilMaskSeparate (glw::GLenum face, glw::GLuint mask)
3467{
3468	if (m_enableLog)
3469		m_log << TestLog::Message << "glStencilMaskSeparate(" << getFaceStr(face) << ", " << mask << ");" << TestLog::EndMessage;
3470	m_gl.stencilMaskSeparate(face, mask);
3471}
3472
3473void CallLogWrapper::glStencilOp (glw::GLenum fail, glw::GLenum zfail, glw::GLenum zpass)
3474{
3475	if (m_enableLog)
3476		m_log << TestLog::Message << "glStencilOp(" << getStencilOpStr(fail) << ", " << getStencilOpStr(zfail) << ", " << getStencilOpStr(zpass) << ");" << TestLog::EndMessage;
3477	m_gl.stencilOp(fail, zfail, zpass);
3478}
3479
3480void CallLogWrapper::glStencilOpSeparate (glw::GLenum face, glw::GLenum sfail, glw::GLenum dpfail, glw::GLenum dppass)
3481{
3482	if (m_enableLog)
3483		m_log << TestLog::Message << "glStencilOpSeparate(" << getFaceStr(face) << ", " << getStencilOpStr(sfail) << ", " << getStencilOpStr(dpfail) << ", " << getStencilOpStr(dppass) << ");" << TestLog::EndMessage;
3484	m_gl.stencilOpSeparate(face, sfail, dpfail, dppass);
3485}
3486
3487void CallLogWrapper::glTexBuffer (glw::GLenum target, glw::GLenum internalformat, glw::GLuint buffer)
3488{
3489	if (m_enableLog)
3490		m_log << TestLog::Message << "glTexBuffer(" << getBufferTargetStr(target) << ", " << getPixelFormatStr(internalformat) << ", " << buffer << ");" << TestLog::EndMessage;
3491	m_gl.texBuffer(target, internalformat, buffer);
3492}
3493
3494void CallLogWrapper::glTexBufferRange (glw::GLenum target, glw::GLenum internalformat, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size)
3495{
3496	if (m_enableLog)
3497		m_log << TestLog::Message << "glTexBufferRange(" << getBufferTargetStr(target) << ", " << getPixelFormatStr(internalformat) << ", " << buffer << ", " << offset << ", " << size << ");" << TestLog::EndMessage;
3498	m_gl.texBufferRange(target, internalformat, buffer, offset, size);
3499}
3500
3501void CallLogWrapper::glTexImage1D (glw::GLenum target, glw::GLint level, glw::GLint internalformat, glw::GLsizei width, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels)
3502{
3503	if (m_enableLog)
3504		m_log << TestLog::Message << "glTexImage1D(" << getTextureTargetStr(target) << ", " << level << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << border << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3505	m_gl.texImage1D(target, level, internalformat, width, border, format, type, pixels);
3506}
3507
3508void CallLogWrapper::glTexImage2D (glw::GLenum target, glw::GLint level, glw::GLint internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels)
3509{
3510	if (m_enableLog)
3511		m_log << TestLog::Message << "glTexImage2D(" << getTextureTargetStr(target) << ", " << level << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << border << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3512	m_gl.texImage2D(target, level, internalformat, width, height, border, format, type, pixels);
3513}
3514
3515void CallLogWrapper::glTexImage2DMultisample (glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLboolean fixedsamplelocations)
3516{
3517	if (m_enableLog)
3518		m_log << TestLog::Message << "glTexImage2DMultisample(" << getTextureTargetStr(target) << ", " << samples << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3519	m_gl.texImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
3520}
3521
3522void CallLogWrapper::glTexImage3D (glw::GLenum target, glw::GLint level, glw::GLint internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels)
3523{
3524	if (m_enableLog)
3525		m_log << TestLog::Message << "glTexImage3D(" << getTextureTargetStr(target) << ", " << level << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3526	m_gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
3527}
3528
3529void CallLogWrapper::glTexImage3DMultisample (glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean fixedsamplelocations)
3530{
3531	if (m_enableLog)
3532		m_log << TestLog::Message << "glTexImage3DMultisample(" << toHex(target) << ", " << samples << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3533	m_gl.texImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
3534}
3535
3536void CallLogWrapper::glTexParameterIiv (glw::GLenum target, glw::GLenum pname, const glw::GLint *params)
3537{
3538	if (m_enableLog)
3539		m_log << TestLog::Message << "glTexParameterIiv(" << toHex(target) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
3540	m_gl.texParameterIiv(target, pname, params);
3541}
3542
3543void CallLogWrapper::glTexParameterIuiv (glw::GLenum target, glw::GLenum pname, const glw::GLuint *params)
3544{
3545	if (m_enableLog)
3546		m_log << TestLog::Message << "glTexParameterIuiv(" << toHex(target) << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
3547	m_gl.texParameterIuiv(target, pname, params);
3548}
3549
3550void CallLogWrapper::glTexParameterf (glw::GLenum target, glw::GLenum pname, glw::GLfloat param)
3551{
3552	if (m_enableLog)
3553		m_log << TestLog::Message << "glTexParameterf(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << param << ");" << TestLog::EndMessage;
3554	m_gl.texParameterf(target, pname, param);
3555}
3556
3557void CallLogWrapper::glTexParameterfv (glw::GLenum target, glw::GLenum pname, const glw::GLfloat *params)
3558{
3559	if (m_enableLog)
3560		m_log << TestLog::Message << "glTexParameterfv(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
3561	m_gl.texParameterfv(target, pname, params);
3562}
3563
3564void CallLogWrapper::glTexParameteri (glw::GLenum target, glw::GLenum pname, glw::GLint param)
3565{
3566	if (m_enableLog)
3567		m_log << TestLog::Message << "glTexParameteri(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << getTextureParameterValueStr(pname, param) << ");" << TestLog::EndMessage;
3568	m_gl.texParameteri(target, pname, param);
3569}
3570
3571void CallLogWrapper::glTexParameteriv (glw::GLenum target, glw::GLenum pname, const glw::GLint *params)
3572{
3573	if (m_enableLog)
3574		m_log << TestLog::Message << "glTexParameteriv(" << getTextureTargetStr(target) << ", " << getTextureParameterStr(pname) << ", " << params << ");" << TestLog::EndMessage;
3575	m_gl.texParameteriv(target, pname, params);
3576}
3577
3578void CallLogWrapper::glTexStorage1D (glw::GLenum target, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width)
3579{
3580	if (m_enableLog)
3581		m_log << TestLog::Message << "glTexStorage1D(" << toHex(target) << ", " << levels << ", " << toHex(internalformat) << ", " << width << ");" << TestLog::EndMessage;
3582	m_gl.texStorage1D(target, levels, internalformat, width);
3583}
3584
3585void CallLogWrapper::glTexStorage2D (glw::GLenum target, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
3586{
3587	if (m_enableLog)
3588		m_log << TestLog::Message << "glTexStorage2D(" << getTextureTargetStr(target) << ", " << levels << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3589	m_gl.texStorage2D(target, levels, internalformat, width, height);
3590}
3591
3592void CallLogWrapper::glTexStorage2DMultisample (glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLboolean fixedsamplelocations)
3593{
3594	if (m_enableLog)
3595		m_log << TestLog::Message << "glTexStorage2DMultisample(" << getTextureTargetStr(target) << ", " << samples << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3596	m_gl.texStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
3597}
3598
3599void CallLogWrapper::glTexStorage3D (glw::GLenum target, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth)
3600{
3601	if (m_enableLog)
3602		m_log << TestLog::Message << "glTexStorage3D(" << getTextureTargetStr(target) << ", " << levels << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << depth << ");" << TestLog::EndMessage;
3603	m_gl.texStorage3D(target, levels, internalformat, width, height, depth);
3604}
3605
3606void CallLogWrapper::glTexStorage3DMultisample (glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean fixedsamplelocations)
3607{
3608	if (m_enableLog)
3609		m_log << TestLog::Message << "glTexStorage3DMultisample(" << getTextureTargetStr(target) << ", " << samples << ", " << getPixelFormatStr(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3610	m_gl.texStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
3611}
3612
3613void CallLogWrapper::glTexSubImage1D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLenum type, const void *pixels)
3614{
3615	if (m_enableLog)
3616		m_log << TestLog::Message << "glTexSubImage1D(" << getTextureTargetStr(target) << ", " << level << ", " << xoffset << ", " << width << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3617	m_gl.texSubImage1D(target, level, xoffset, width, format, type, pixels);
3618}
3619
3620void CallLogWrapper::glTexSubImage2D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, const void *pixels)
3621{
3622	if (m_enableLog)
3623		m_log << TestLog::Message << "glTexSubImage2D(" << getTextureTargetStr(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << width << ", " << height << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3624	m_gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
3625}
3626
3627void CallLogWrapper::glTexSubImage3D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels)
3628{
3629	if (m_enableLog)
3630		m_log << TestLog::Message << "glTexSubImage3D(" << getTextureTargetStr(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << getPixelFormatStr(format) << ", " << getTypeStr(type) << ", " << pixels << ");" << TestLog::EndMessage;
3631	m_gl.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
3632}
3633
3634void CallLogWrapper::glTextureBarrier (void)
3635{
3636	if (m_enableLog)
3637		m_log << TestLog::Message << "glTextureBarrier(" << ");" << TestLog::EndMessage;
3638	m_gl.textureBarrier();
3639}
3640
3641void CallLogWrapper::glTextureBuffer (glw::GLuint texture, glw::GLenum internalformat, glw::GLuint buffer)
3642{
3643	if (m_enableLog)
3644		m_log << TestLog::Message << "glTextureBuffer(" << texture << ", " << toHex(internalformat) << ", " << buffer << ");" << TestLog::EndMessage;
3645	m_gl.textureBuffer(texture, internalformat, buffer);
3646}
3647
3648void CallLogWrapper::glTextureBufferRange (glw::GLuint texture, glw::GLenum internalformat, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size)
3649{
3650	if (m_enableLog)
3651		m_log << TestLog::Message << "glTextureBufferRange(" << texture << ", " << toHex(internalformat) << ", " << buffer << ", " << offset << ", " << size << ");" << TestLog::EndMessage;
3652	m_gl.textureBufferRange(texture, internalformat, buffer, offset, size);
3653}
3654
3655void CallLogWrapper::glTextureParameterIiv (glw::GLuint texture, glw::GLenum pname, const glw::GLint *params)
3656{
3657	if (m_enableLog)
3658		m_log << TestLog::Message << "glTextureParameterIiv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
3659	m_gl.textureParameterIiv(texture, pname, params);
3660}
3661
3662void CallLogWrapper::glTextureParameterIuiv (glw::GLuint texture, glw::GLenum pname, const glw::GLuint *params)
3663{
3664	if (m_enableLog)
3665		m_log << TestLog::Message << "glTextureParameterIuiv(" << texture << ", " << toHex(pname) << ", " << params << ");" << TestLog::EndMessage;
3666	m_gl.textureParameterIuiv(texture, pname, params);
3667}
3668
3669void CallLogWrapper::glTextureParameterf (glw::GLuint texture, glw::GLenum pname, glw::GLfloat param)
3670{
3671	if (m_enableLog)
3672		m_log << TestLog::Message << "glTextureParameterf(" << texture << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3673	m_gl.textureParameterf(texture, pname, param);
3674}
3675
3676void CallLogWrapper::glTextureParameterfv (glw::GLuint texture, glw::GLenum pname, const glw::GLfloat *param)
3677{
3678	if (m_enableLog)
3679		m_log << TestLog::Message << "glTextureParameterfv(" << texture << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3680	m_gl.textureParameterfv(texture, pname, param);
3681}
3682
3683void CallLogWrapper::glTextureParameteri (glw::GLuint texture, glw::GLenum pname, glw::GLint param)
3684{
3685	if (m_enableLog)
3686		m_log << TestLog::Message << "glTextureParameteri(" << texture << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3687	m_gl.textureParameteri(texture, pname, param);
3688}
3689
3690void CallLogWrapper::glTextureParameteriv (glw::GLuint texture, glw::GLenum pname, const glw::GLint *param)
3691{
3692	if (m_enableLog)
3693		m_log << TestLog::Message << "glTextureParameteriv(" << texture << ", " << toHex(pname) << ", " << param << ");" << TestLog::EndMessage;
3694	m_gl.textureParameteriv(texture, pname, param);
3695}
3696
3697void CallLogWrapper::glTextureStorage1D (glw::GLuint texture, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width)
3698{
3699	if (m_enableLog)
3700		m_log << TestLog::Message << "glTextureStorage1D(" << texture << ", " << levels << ", " << toHex(internalformat) << ", " << width << ");" << TestLog::EndMessage;
3701	m_gl.textureStorage1D(texture, levels, internalformat, width);
3702}
3703
3704void CallLogWrapper::glTextureStorage2D (glw::GLuint texture, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height)
3705{
3706	if (m_enableLog)
3707		m_log << TestLog::Message << "glTextureStorage2D(" << texture << ", " << levels << ", " << toHex(internalformat) << ", " << width << ", " << height << ");" << TestLog::EndMessage;
3708	m_gl.textureStorage2D(texture, levels, internalformat, width, height);
3709}
3710
3711void CallLogWrapper::glTextureStorage2DMultisample (glw::GLuint texture, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLboolean fixedsamplelocations)
3712{
3713	if (m_enableLog)
3714		m_log << TestLog::Message << "glTextureStorage2DMultisample(" << texture << ", " << samples << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3715	m_gl.textureStorage2DMultisample(texture, samples, internalformat, width, height, fixedsamplelocations);
3716}
3717
3718void CallLogWrapper::glTextureStorage3D (glw::GLuint texture, glw::GLsizei levels, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth)
3719{
3720	if (m_enableLog)
3721		m_log << TestLog::Message << "glTextureStorage3D(" << texture << ", " << levels << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ");" << TestLog::EndMessage;
3722	m_gl.textureStorage3D(texture, levels, internalformat, width, height, depth);
3723}
3724
3725void CallLogWrapper::glTextureStorage3DMultisample (glw::GLuint texture, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean fixedsamplelocations)
3726{
3727	if (m_enableLog)
3728		m_log << TestLog::Message << "glTextureStorage3DMultisample(" << texture << ", " << samples << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << getBooleanStr(fixedsamplelocations) << ");" << TestLog::EndMessage;
3729	m_gl.textureStorage3DMultisample(texture, samples, internalformat, width, height, depth, fixedsamplelocations);
3730}
3731
3732void CallLogWrapper::glTextureSubImage1D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLenum type, const void *pixels)
3733{
3734	if (m_enableLog)
3735		m_log << TestLog::Message << "glTextureSubImage1D(" << texture << ", " << level << ", " << xoffset << ", " << width << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
3736	m_gl.textureSubImage1D(texture, level, xoffset, width, format, type, pixels);
3737}
3738
3739void CallLogWrapper::glTextureSubImage2D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, const void *pixels)
3740{
3741	if (m_enableLog)
3742		m_log << TestLog::Message << "glTextureSubImage2D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << width << ", " << height << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
3743	m_gl.textureSubImage2D(texture, level, xoffset, yoffset, width, height, format, type, pixels);
3744}
3745
3746void CallLogWrapper::glTextureSubImage3D (glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels)
3747{
3748	if (m_enableLog)
3749		m_log << TestLog::Message << "glTextureSubImage3D(" << texture << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
3750	m_gl.textureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
3751}
3752
3753void CallLogWrapper::glTextureView (glw::GLuint texture, glw::GLenum target, glw::GLuint origtexture, glw::GLenum internalformat, glw::GLuint minlevel, glw::GLuint numlevels, glw::GLuint minlayer, glw::GLuint numlayers)
3754{
3755	if (m_enableLog)
3756		m_log << TestLog::Message << "glTextureView(" << texture << ", " << toHex(target) << ", " << origtexture << ", " << toHex(internalformat) << ", " << minlevel << ", " << numlevels << ", " << minlayer << ", " << numlayers << ");" << TestLog::EndMessage;
3757	m_gl.textureView(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
3758}
3759
3760void CallLogWrapper::glTransformFeedbackBufferBase (glw::GLuint xfb, glw::GLuint index, glw::GLuint buffer)
3761{
3762	if (m_enableLog)
3763		m_log << TestLog::Message << "glTransformFeedbackBufferBase(" << xfb << ", " << index << ", " << buffer << ");" << TestLog::EndMessage;
3764	m_gl.transformFeedbackBufferBase(xfb, index, buffer);
3765}
3766
3767void CallLogWrapper::glTransformFeedbackBufferRange (glw::GLuint xfb, glw::GLuint index, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizeiptr size)
3768{
3769	if (m_enableLog)
3770		m_log << TestLog::Message << "glTransformFeedbackBufferRange(" << xfb << ", " << index << ", " << buffer << ", " << offset << ", " << size << ");" << TestLog::EndMessage;
3771	m_gl.transformFeedbackBufferRange(xfb, index, buffer, offset, size);
3772}
3773
3774void CallLogWrapper::glTransformFeedbackVaryings (glw::GLuint program, glw::GLsizei count, const glw::GLchar *const*varyings, glw::GLenum bufferMode)
3775{
3776	if (m_enableLog)
3777		m_log << TestLog::Message << "glTransformFeedbackVaryings(" << program << ", " << count << ", " << varyings << ", " << toHex(bufferMode) << ");" << TestLog::EndMessage;
3778	m_gl.transformFeedbackVaryings(program, count, varyings, bufferMode);
3779}
3780
3781void CallLogWrapper::glUniform1d (glw::GLint location, glw::GLdouble x)
3782{
3783	if (m_enableLog)
3784		m_log << TestLog::Message << "glUniform1d(" << location << ", " << x << ");" << TestLog::EndMessage;
3785	m_gl.uniform1d(location, x);
3786}
3787
3788void CallLogWrapper::glUniform1dv (glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3789{
3790	if (m_enableLog)
3791		m_log << TestLog::Message << "glUniform1dv(" << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3792	m_gl.uniform1dv(location, count, value);
3793}
3794
3795void CallLogWrapper::glUniform1f (glw::GLint location, glw::GLfloat v0)
3796{
3797	if (m_enableLog)
3798		m_log << TestLog::Message << "glUniform1f(" << location << ", " << v0 << ");" << TestLog::EndMessage;
3799	m_gl.uniform1f(location, v0);
3800}
3801
3802void CallLogWrapper::glUniform1fv (glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3803{
3804	if (m_enableLog)
3805		m_log << TestLog::Message << "glUniform1fv(" << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
3806	m_gl.uniform1fv(location, count, value);
3807}
3808
3809void CallLogWrapper::glUniform1i (glw::GLint location, glw::GLint v0)
3810{
3811	if (m_enableLog)
3812		m_log << TestLog::Message << "glUniform1i(" << location << ", " << v0 << ");" << TestLog::EndMessage;
3813	m_gl.uniform1i(location, v0);
3814}
3815
3816void CallLogWrapper::glUniform1iv (glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3817{
3818	if (m_enableLog)
3819		m_log << TestLog::Message << "glUniform1iv(" << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
3820	m_gl.uniform1iv(location, count, value);
3821}
3822
3823void CallLogWrapper::glUniform1ui (glw::GLint location, glw::GLuint v0)
3824{
3825	if (m_enableLog)
3826		m_log << TestLog::Message << "glUniform1ui(" << location << ", " << v0 << ");" << TestLog::EndMessage;
3827	m_gl.uniform1ui(location, v0);
3828}
3829
3830void CallLogWrapper::glUniform1uiv (glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3831{
3832	if (m_enableLog)
3833		m_log << TestLog::Message << "glUniform1uiv(" << location << ", " << count << ", " << getPointerStr(value, (count * 1)) << ");" << TestLog::EndMessage;
3834	m_gl.uniform1uiv(location, count, value);
3835}
3836
3837void CallLogWrapper::glUniform2d (glw::GLint location, glw::GLdouble x, glw::GLdouble y)
3838{
3839	if (m_enableLog)
3840		m_log << TestLog::Message << "glUniform2d(" << location << ", " << x << ", " << y << ");" << TestLog::EndMessage;
3841	m_gl.uniform2d(location, x, y);
3842}
3843
3844void CallLogWrapper::glUniform2dv (glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3845{
3846	if (m_enableLog)
3847		m_log << TestLog::Message << "glUniform2dv(" << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3848	m_gl.uniform2dv(location, count, value);
3849}
3850
3851void CallLogWrapper::glUniform2f (glw::GLint location, glw::GLfloat v0, glw::GLfloat v1)
3852{
3853	if (m_enableLog)
3854		m_log << TestLog::Message << "glUniform2f(" << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
3855	m_gl.uniform2f(location, v0, v1);
3856}
3857
3858void CallLogWrapper::glUniform2fv (glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3859{
3860	if (m_enableLog)
3861		m_log << TestLog::Message << "glUniform2fv(" << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3862	m_gl.uniform2fv(location, count, value);
3863}
3864
3865void CallLogWrapper::glUniform2i (glw::GLint location, glw::GLint v0, glw::GLint v1)
3866{
3867	if (m_enableLog)
3868		m_log << TestLog::Message << "glUniform2i(" << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
3869	m_gl.uniform2i(location, v0, v1);
3870}
3871
3872void CallLogWrapper::glUniform2iv (glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3873{
3874	if (m_enableLog)
3875		m_log << TestLog::Message << "glUniform2iv(" << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3876	m_gl.uniform2iv(location, count, value);
3877}
3878
3879void CallLogWrapper::glUniform2ui (glw::GLint location, glw::GLuint v0, glw::GLuint v1)
3880{
3881	if (m_enableLog)
3882		m_log << TestLog::Message << "glUniform2ui(" << location << ", " << v0 << ", " << v1 << ");" << TestLog::EndMessage;
3883	m_gl.uniform2ui(location, v0, v1);
3884}
3885
3886void CallLogWrapper::glUniform2uiv (glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3887{
3888	if (m_enableLog)
3889		m_log << TestLog::Message << "glUniform2uiv(" << location << ", " << count << ", " << getPointerStr(value, (count * 2)) << ");" << TestLog::EndMessage;
3890	m_gl.uniform2uiv(location, count, value);
3891}
3892
3893void CallLogWrapper::glUniform3d (glw::GLint location, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z)
3894{
3895	if (m_enableLog)
3896		m_log << TestLog::Message << "glUniform3d(" << location << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
3897	m_gl.uniform3d(location, x, y, z);
3898}
3899
3900void CallLogWrapper::glUniform3dv (glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3901{
3902	if (m_enableLog)
3903		m_log << TestLog::Message << "glUniform3dv(" << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3904	m_gl.uniform3dv(location, count, value);
3905}
3906
3907void CallLogWrapper::glUniform3f (glw::GLint location, glw::GLfloat v0, glw::GLfloat v1, glw::GLfloat v2)
3908{
3909	if (m_enableLog)
3910		m_log << TestLog::Message << "glUniform3f(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3911	m_gl.uniform3f(location, v0, v1, v2);
3912}
3913
3914void CallLogWrapper::glUniform3fv (glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3915{
3916	if (m_enableLog)
3917		m_log << TestLog::Message << "glUniform3fv(" << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3918	m_gl.uniform3fv(location, count, value);
3919}
3920
3921void CallLogWrapper::glUniform3i (glw::GLint location, glw::GLint v0, glw::GLint v1, glw::GLint v2)
3922{
3923	if (m_enableLog)
3924		m_log << TestLog::Message << "glUniform3i(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3925	m_gl.uniform3i(location, v0, v1, v2);
3926}
3927
3928void CallLogWrapper::glUniform3iv (glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3929{
3930	if (m_enableLog)
3931		m_log << TestLog::Message << "glUniform3iv(" << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3932	m_gl.uniform3iv(location, count, value);
3933}
3934
3935void CallLogWrapper::glUniform3ui (glw::GLint location, glw::GLuint v0, glw::GLuint v1, glw::GLuint v2)
3936{
3937	if (m_enableLog)
3938		m_log << TestLog::Message << "glUniform3ui(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ");" << TestLog::EndMessage;
3939	m_gl.uniform3ui(location, v0, v1, v2);
3940}
3941
3942void CallLogWrapper::glUniform3uiv (glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3943{
3944	if (m_enableLog)
3945		m_log << TestLog::Message << "glUniform3uiv(" << location << ", " << count << ", " << getPointerStr(value, (count * 3)) << ");" << TestLog::EndMessage;
3946	m_gl.uniform3uiv(location, count, value);
3947}
3948
3949void CallLogWrapper::glUniform4d (glw::GLint location, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z, glw::GLdouble w)
3950{
3951	if (m_enableLog)
3952		m_log << TestLog::Message << "glUniform4d(" << location << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
3953	m_gl.uniform4d(location, x, y, z, w);
3954}
3955
3956void CallLogWrapper::glUniform4dv (glw::GLint location, glw::GLsizei count, const glw::GLdouble *value)
3957{
3958	if (m_enableLog)
3959		m_log << TestLog::Message << "glUniform4dv(" << location << ", " << count << ", " << value << ");" << TestLog::EndMessage;
3960	m_gl.uniform4dv(location, count, value);
3961}
3962
3963void CallLogWrapper::glUniform4f (glw::GLint location, glw::GLfloat v0, glw::GLfloat v1, glw::GLfloat v2, glw::GLfloat v3)
3964{
3965	if (m_enableLog)
3966		m_log << TestLog::Message << "glUniform4f(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3967	m_gl.uniform4f(location, v0, v1, v2, v3);
3968}
3969
3970void CallLogWrapper::glUniform4fv (glw::GLint location, glw::GLsizei count, const glw::GLfloat *value)
3971{
3972	if (m_enableLog)
3973		m_log << TestLog::Message << "glUniform4fv(" << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
3974	m_gl.uniform4fv(location, count, value);
3975}
3976
3977void CallLogWrapper::glUniform4i (glw::GLint location, glw::GLint v0, glw::GLint v1, glw::GLint v2, glw::GLint v3)
3978{
3979	if (m_enableLog)
3980		m_log << TestLog::Message << "glUniform4i(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3981	m_gl.uniform4i(location, v0, v1, v2, v3);
3982}
3983
3984void CallLogWrapper::glUniform4iv (glw::GLint location, glw::GLsizei count, const glw::GLint *value)
3985{
3986	if (m_enableLog)
3987		m_log << TestLog::Message << "glUniform4iv(" << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
3988	m_gl.uniform4iv(location, count, value);
3989}
3990
3991void CallLogWrapper::glUniform4ui (glw::GLint location, glw::GLuint v0, glw::GLuint v1, glw::GLuint v2, glw::GLuint v3)
3992{
3993	if (m_enableLog)
3994		m_log << TestLog::Message << "glUniform4ui(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ", " << v3 << ");" << TestLog::EndMessage;
3995	m_gl.uniform4ui(location, v0, v1, v2, v3);
3996}
3997
3998void CallLogWrapper::glUniform4uiv (glw::GLint location, glw::GLsizei count, const glw::GLuint *value)
3999{
4000	if (m_enableLog)
4001		m_log << TestLog::Message << "glUniform4uiv(" << location << ", " << count << ", " << getPointerStr(value, (count * 4)) << ");" << TestLog::EndMessage;
4002	m_gl.uniform4uiv(location, count, value);
4003}
4004
4005void CallLogWrapper::glUniformBlockBinding (glw::GLuint program, glw::GLuint uniformBlockIndex, glw::GLuint uniformBlockBinding)
4006{
4007	if (m_enableLog)
4008		m_log << TestLog::Message << "glUniformBlockBinding(" << program << ", " << uniformBlockIndex << ", " << uniformBlockBinding << ");" << TestLog::EndMessage;
4009	m_gl.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
4010}
4011
4012void CallLogWrapper::glUniformMatrix2dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4013{
4014	if (m_enableLog)
4015		m_log << TestLog::Message << "glUniformMatrix2dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4016	m_gl.uniformMatrix2dv(location, count, transpose, value);
4017}
4018
4019void CallLogWrapper::glUniformMatrix2fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4020{
4021	if (m_enableLog)
4022		m_log << TestLog::Message << "glUniformMatrix2fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*2)) << ");" << TestLog::EndMessage;
4023	m_gl.uniformMatrix2fv(location, count, transpose, value);
4024}
4025
4026void CallLogWrapper::glUniformMatrix2x3dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4027{
4028	if (m_enableLog)
4029		m_log << TestLog::Message << "glUniformMatrix2x3dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4030	m_gl.uniformMatrix2x3dv(location, count, transpose, value);
4031}
4032
4033void CallLogWrapper::glUniformMatrix2x3fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4034{
4035	if (m_enableLog)
4036		m_log << TestLog::Message << "glUniformMatrix2x3fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*3)) << ");" << TestLog::EndMessage;
4037	m_gl.uniformMatrix2x3fv(location, count, transpose, value);
4038}
4039
4040void CallLogWrapper::glUniformMatrix2x4dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4041{
4042	if (m_enableLog)
4043		m_log << TestLog::Message << "glUniformMatrix2x4dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4044	m_gl.uniformMatrix2x4dv(location, count, transpose, value);
4045}
4046
4047void CallLogWrapper::glUniformMatrix2x4fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4048{
4049	if (m_enableLog)
4050		m_log << TestLog::Message << "glUniformMatrix2x4fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 2*4)) << ");" << TestLog::EndMessage;
4051	m_gl.uniformMatrix2x4fv(location, count, transpose, value);
4052}
4053
4054void CallLogWrapper::glUniformMatrix3dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4055{
4056	if (m_enableLog)
4057		m_log << TestLog::Message << "glUniformMatrix3dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4058	m_gl.uniformMatrix3dv(location, count, transpose, value);
4059}
4060
4061void CallLogWrapper::glUniformMatrix3fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4062{
4063	if (m_enableLog)
4064		m_log << TestLog::Message << "glUniformMatrix3fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*3)) << ");" << TestLog::EndMessage;
4065	m_gl.uniformMatrix3fv(location, count, transpose, value);
4066}
4067
4068void CallLogWrapper::glUniformMatrix3x2dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4069{
4070	if (m_enableLog)
4071		m_log << TestLog::Message << "glUniformMatrix3x2dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4072	m_gl.uniformMatrix3x2dv(location, count, transpose, value);
4073}
4074
4075void CallLogWrapper::glUniformMatrix3x2fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4076{
4077	if (m_enableLog)
4078		m_log << TestLog::Message << "glUniformMatrix3x2fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*2)) << ");" << TestLog::EndMessage;
4079	m_gl.uniformMatrix3x2fv(location, count, transpose, value);
4080}
4081
4082void CallLogWrapper::glUniformMatrix3x4dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4083{
4084	if (m_enableLog)
4085		m_log << TestLog::Message << "glUniformMatrix3x4dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4086	m_gl.uniformMatrix3x4dv(location, count, transpose, value);
4087}
4088
4089void CallLogWrapper::glUniformMatrix3x4fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4090{
4091	if (m_enableLog)
4092		m_log << TestLog::Message << "glUniformMatrix3x4fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 3*4)) << ");" << TestLog::EndMessage;
4093	m_gl.uniformMatrix3x4fv(location, count, transpose, value);
4094}
4095
4096void CallLogWrapper::glUniformMatrix4dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4097{
4098	if (m_enableLog)
4099		m_log << TestLog::Message << "glUniformMatrix4dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4100	m_gl.uniformMatrix4dv(location, count, transpose, value);
4101}
4102
4103void CallLogWrapper::glUniformMatrix4fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4104{
4105	if (m_enableLog)
4106		m_log << TestLog::Message << "glUniformMatrix4fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*4)) << ");" << TestLog::EndMessage;
4107	m_gl.uniformMatrix4fv(location, count, transpose, value);
4108}
4109
4110void CallLogWrapper::glUniformMatrix4x2dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4111{
4112	if (m_enableLog)
4113		m_log << TestLog::Message << "glUniformMatrix4x2dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4114	m_gl.uniformMatrix4x2dv(location, count, transpose, value);
4115}
4116
4117void CallLogWrapper::glUniformMatrix4x2fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4118{
4119	if (m_enableLog)
4120		m_log << TestLog::Message << "glUniformMatrix4x2fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*2)) << ");" << TestLog::EndMessage;
4121	m_gl.uniformMatrix4x2fv(location, count, transpose, value);
4122}
4123
4124void CallLogWrapper::glUniformMatrix4x3dv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLdouble *value)
4125{
4126	if (m_enableLog)
4127		m_log << TestLog::Message << "glUniformMatrix4x3dv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << value << ");" << TestLog::EndMessage;
4128	m_gl.uniformMatrix4x3dv(location, count, transpose, value);
4129}
4130
4131void CallLogWrapper::glUniformMatrix4x3fv (glw::GLint location, glw::GLsizei count, glw::GLboolean transpose, const glw::GLfloat *value)
4132{
4133	if (m_enableLog)
4134		m_log << TestLog::Message << "glUniformMatrix4x3fv(" << location << ", " << count << ", " << getBooleanStr(transpose) << ", " << getPointerStr(value, (count * 4*3)) << ");" << TestLog::EndMessage;
4135	m_gl.uniformMatrix4x3fv(location, count, transpose, value);
4136}
4137
4138void CallLogWrapper::glUniformSubroutinesuiv (glw::GLenum shadertype, glw::GLsizei count, const glw::GLuint *indices)
4139{
4140	if (m_enableLog)
4141		m_log << TestLog::Message << "glUniformSubroutinesuiv(" << toHex(shadertype) << ", " << count << ", " << indices << ");" << TestLog::EndMessage;
4142	m_gl.uniformSubroutinesuiv(shadertype, count, indices);
4143}
4144
4145glw::GLboolean CallLogWrapper::glUnmapBuffer (glw::GLenum target)
4146{
4147	if (m_enableLog)
4148		m_log << TestLog::Message << "glUnmapBuffer(" << getBufferTargetStr(target) << ");" << TestLog::EndMessage;
4149	glw::GLboolean returnValue = m_gl.unmapBuffer(target);
4150	if (m_enableLog)
4151		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
4152	return returnValue;
4153}
4154
4155glw::GLboolean CallLogWrapper::glUnmapNamedBuffer (glw::GLuint buffer)
4156{
4157	if (m_enableLog)
4158		m_log << TestLog::Message << "glUnmapNamedBuffer(" << buffer << ");" << TestLog::EndMessage;
4159	glw::GLboolean returnValue = m_gl.unmapNamedBuffer(buffer);
4160	if (m_enableLog)
4161		m_log << TestLog::Message << "// " << getBooleanStr(returnValue) << " returned" << TestLog::EndMessage;
4162	return returnValue;
4163}
4164
4165void CallLogWrapper::glUseProgram (glw::GLuint program)
4166{
4167	if (m_enableLog)
4168		m_log << TestLog::Message << "glUseProgram(" << program << ");" << TestLog::EndMessage;
4169	m_gl.useProgram(program);
4170}
4171
4172void CallLogWrapper::glUseProgramStages (glw::GLuint pipeline, glw::GLbitfield stages, glw::GLuint program)
4173{
4174	if (m_enableLog)
4175		m_log << TestLog::Message << "glUseProgramStages(" << pipeline << ", " << toHex(stages) << ", " << program << ");" << TestLog::EndMessage;
4176	m_gl.useProgramStages(pipeline, stages, program);
4177}
4178
4179void CallLogWrapper::glValidateProgram (glw::GLuint program)
4180{
4181	if (m_enableLog)
4182		m_log << TestLog::Message << "glValidateProgram(" << program << ");" << TestLog::EndMessage;
4183	m_gl.validateProgram(program);
4184}
4185
4186void CallLogWrapper::glValidateProgramPipeline (glw::GLuint pipeline)
4187{
4188	if (m_enableLog)
4189		m_log << TestLog::Message << "glValidateProgramPipeline(" << pipeline << ");" << TestLog::EndMessage;
4190	m_gl.validateProgramPipeline(pipeline);
4191}
4192
4193void CallLogWrapper::glVertexArrayAttribBinding (glw::GLuint vaobj, glw::GLuint attribindex, glw::GLuint bindingindex)
4194{
4195	if (m_enableLog)
4196		m_log << TestLog::Message << "glVertexArrayAttribBinding(" << vaobj << ", " << attribindex << ", " << bindingindex << ");" << TestLog::EndMessage;
4197	m_gl.vertexArrayAttribBinding(vaobj, attribindex, bindingindex);
4198}
4199
4200void CallLogWrapper::glVertexArrayAttribFormat (glw::GLuint vaobj, glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLboolean normalized, glw::GLuint relativeoffset)
4201{
4202	if (m_enableLog)
4203		m_log << TestLog::Message << "glVertexArrayAttribFormat(" << vaobj << ", " << attribindex << ", " << size << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4204	m_gl.vertexArrayAttribFormat(vaobj, attribindex, size, type, normalized, relativeoffset);
4205}
4206
4207void CallLogWrapper::glVertexArrayAttribIFormat (glw::GLuint vaobj, glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLuint relativeoffset)
4208{
4209	if (m_enableLog)
4210		m_log << TestLog::Message << "glVertexArrayAttribIFormat(" << vaobj << ", " << attribindex << ", " << size << ", " << toHex(type) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4211	m_gl.vertexArrayAttribIFormat(vaobj, attribindex, size, type, relativeoffset);
4212}
4213
4214void CallLogWrapper::glVertexArrayAttribLFormat (glw::GLuint vaobj, glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLuint relativeoffset)
4215{
4216	if (m_enableLog)
4217		m_log << TestLog::Message << "glVertexArrayAttribLFormat(" << vaobj << ", " << attribindex << ", " << size << ", " << toHex(type) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4218	m_gl.vertexArrayAttribLFormat(vaobj, attribindex, size, type, relativeoffset);
4219}
4220
4221void CallLogWrapper::glVertexArrayBindingDivisor (glw::GLuint vaobj, glw::GLuint bindingindex, glw::GLuint divisor)
4222{
4223	if (m_enableLog)
4224		m_log << TestLog::Message << "glVertexArrayBindingDivisor(" << vaobj << ", " << bindingindex << ", " << divisor << ");" << TestLog::EndMessage;
4225	m_gl.vertexArrayBindingDivisor(vaobj, bindingindex, divisor);
4226}
4227
4228void CallLogWrapper::glVertexArrayElementBuffer (glw::GLuint vaobj, glw::GLuint buffer)
4229{
4230	if (m_enableLog)
4231		m_log << TestLog::Message << "glVertexArrayElementBuffer(" << vaobj << ", " << buffer << ");" << TestLog::EndMessage;
4232	m_gl.vertexArrayElementBuffer(vaobj, buffer);
4233}
4234
4235void CallLogWrapper::glVertexArrayVertexBuffer (glw::GLuint vaobj, glw::GLuint bindingindex, glw::GLuint buffer, glw::GLintptr offset, glw::GLsizei stride)
4236{
4237	if (m_enableLog)
4238		m_log << TestLog::Message << "glVertexArrayVertexBuffer(" << vaobj << ", " << bindingindex << ", " << buffer << ", " << offset << ", " << stride << ");" << TestLog::EndMessage;
4239	m_gl.vertexArrayVertexBuffer(vaobj, bindingindex, buffer, offset, stride);
4240}
4241
4242void CallLogWrapper::glVertexArrayVertexBuffers (glw::GLuint vaobj, glw::GLuint first, glw::GLsizei count, const glw::GLuint *buffers, const glw::GLintptr *offsets, const glw::GLsizei *strides)
4243{
4244	if (m_enableLog)
4245		m_log << TestLog::Message << "glVertexArrayVertexBuffers(" << vaobj << ", " << first << ", " << count << ", " << buffers << ", " << offsets << ", " << strides << ");" << TestLog::EndMessage;
4246	m_gl.vertexArrayVertexBuffers(vaobj, first, count, buffers, offsets, strides);
4247}
4248
4249void CallLogWrapper::glVertexAttrib1d (glw::GLuint index, glw::GLdouble x)
4250{
4251	if (m_enableLog)
4252		m_log << TestLog::Message << "glVertexAttrib1d(" << index << ", " << x << ");" << TestLog::EndMessage;
4253	m_gl.vertexAttrib1d(index, x);
4254}
4255
4256void CallLogWrapper::glVertexAttrib1dv (glw::GLuint index, const glw::GLdouble *v)
4257{
4258	if (m_enableLog)
4259		m_log << TestLog::Message << "glVertexAttrib1dv(" << index << ", " << getPointerStr(v, 1) << ");" << TestLog::EndMessage;
4260	m_gl.vertexAttrib1dv(index, v);
4261}
4262
4263void CallLogWrapper::glVertexAttrib1f (glw::GLuint index, glw::GLfloat x)
4264{
4265	if (m_enableLog)
4266		m_log << TestLog::Message << "glVertexAttrib1f(" << index << ", " << x << ");" << TestLog::EndMessage;
4267	m_gl.vertexAttrib1f(index, x);
4268}
4269
4270void CallLogWrapper::glVertexAttrib1fv (glw::GLuint index, const glw::GLfloat *v)
4271{
4272	if (m_enableLog)
4273		m_log << TestLog::Message << "glVertexAttrib1fv(" << index << ", " << getPointerStr(v, 1) << ");" << TestLog::EndMessage;
4274	m_gl.vertexAttrib1fv(index, v);
4275}
4276
4277void CallLogWrapper::glVertexAttrib1s (glw::GLuint index, glw::GLshort x)
4278{
4279	if (m_enableLog)
4280		m_log << TestLog::Message << "glVertexAttrib1s(" << index << ", " << x << ");" << TestLog::EndMessage;
4281	m_gl.vertexAttrib1s(index, x);
4282}
4283
4284void CallLogWrapper::glVertexAttrib1sv (glw::GLuint index, const glw::GLshort *v)
4285{
4286	if (m_enableLog)
4287		m_log << TestLog::Message << "glVertexAttrib1sv(" << index << ", " << getPointerStr(v, 1) << ");" << TestLog::EndMessage;
4288	m_gl.vertexAttrib1sv(index, v);
4289}
4290
4291void CallLogWrapper::glVertexAttrib2d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y)
4292{
4293	if (m_enableLog)
4294		m_log << TestLog::Message << "glVertexAttrib2d(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4295	m_gl.vertexAttrib2d(index, x, y);
4296}
4297
4298void CallLogWrapper::glVertexAttrib2dv (glw::GLuint index, const glw::GLdouble *v)
4299{
4300	if (m_enableLog)
4301		m_log << TestLog::Message << "glVertexAttrib2dv(" << index << ", " << getPointerStr(v, 2) << ");" << TestLog::EndMessage;
4302	m_gl.vertexAttrib2dv(index, v);
4303}
4304
4305void CallLogWrapper::glVertexAttrib2f (glw::GLuint index, glw::GLfloat x, glw::GLfloat y)
4306{
4307	if (m_enableLog)
4308		m_log << TestLog::Message << "glVertexAttrib2f(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4309	m_gl.vertexAttrib2f(index, x, y);
4310}
4311
4312void CallLogWrapper::glVertexAttrib2fv (glw::GLuint index, const glw::GLfloat *v)
4313{
4314	if (m_enableLog)
4315		m_log << TestLog::Message << "glVertexAttrib2fv(" << index << ", " << getPointerStr(v, 2) << ");" << TestLog::EndMessage;
4316	m_gl.vertexAttrib2fv(index, v);
4317}
4318
4319void CallLogWrapper::glVertexAttrib2s (glw::GLuint index, glw::GLshort x, glw::GLshort y)
4320{
4321	if (m_enableLog)
4322		m_log << TestLog::Message << "glVertexAttrib2s(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4323	m_gl.vertexAttrib2s(index, x, y);
4324}
4325
4326void CallLogWrapper::glVertexAttrib2sv (glw::GLuint index, const glw::GLshort *v)
4327{
4328	if (m_enableLog)
4329		m_log << TestLog::Message << "glVertexAttrib2sv(" << index << ", " << getPointerStr(v, 2) << ");" << TestLog::EndMessage;
4330	m_gl.vertexAttrib2sv(index, v);
4331}
4332
4333void CallLogWrapper::glVertexAttrib3d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z)
4334{
4335	if (m_enableLog)
4336		m_log << TestLog::Message << "glVertexAttrib3d(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4337	m_gl.vertexAttrib3d(index, x, y, z);
4338}
4339
4340void CallLogWrapper::glVertexAttrib3dv (glw::GLuint index, const glw::GLdouble *v)
4341{
4342	if (m_enableLog)
4343		m_log << TestLog::Message << "glVertexAttrib3dv(" << index << ", " << getPointerStr(v, 3) << ");" << TestLog::EndMessage;
4344	m_gl.vertexAttrib3dv(index, v);
4345}
4346
4347void CallLogWrapper::glVertexAttrib3f (glw::GLuint index, glw::GLfloat x, glw::GLfloat y, glw::GLfloat z)
4348{
4349	if (m_enableLog)
4350		m_log << TestLog::Message << "glVertexAttrib3f(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4351	m_gl.vertexAttrib3f(index, x, y, z);
4352}
4353
4354void CallLogWrapper::glVertexAttrib3fv (glw::GLuint index, const glw::GLfloat *v)
4355{
4356	if (m_enableLog)
4357		m_log << TestLog::Message << "glVertexAttrib3fv(" << index << ", " << getPointerStr(v, 3) << ");" << TestLog::EndMessage;
4358	m_gl.vertexAttrib3fv(index, v);
4359}
4360
4361void CallLogWrapper::glVertexAttrib3s (glw::GLuint index, glw::GLshort x, glw::GLshort y, glw::GLshort z)
4362{
4363	if (m_enableLog)
4364		m_log << TestLog::Message << "glVertexAttrib3s(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4365	m_gl.vertexAttrib3s(index, x, y, z);
4366}
4367
4368void CallLogWrapper::glVertexAttrib3sv (glw::GLuint index, const glw::GLshort *v)
4369{
4370	if (m_enableLog)
4371		m_log << TestLog::Message << "glVertexAttrib3sv(" << index << ", " << getPointerStr(v, 3) << ");" << TestLog::EndMessage;
4372	m_gl.vertexAttrib3sv(index, v);
4373}
4374
4375void CallLogWrapper::glVertexAttrib4Nbv (glw::GLuint index, const glw::GLbyte *v)
4376{
4377	if (m_enableLog)
4378		m_log << TestLog::Message << "glVertexAttrib4Nbv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4379	m_gl.vertexAttrib4Nbv(index, v);
4380}
4381
4382void CallLogWrapper::glVertexAttrib4Niv (glw::GLuint index, const glw::GLint *v)
4383{
4384	if (m_enableLog)
4385		m_log << TestLog::Message << "glVertexAttrib4Niv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4386	m_gl.vertexAttrib4Niv(index, v);
4387}
4388
4389void CallLogWrapper::glVertexAttrib4Nsv (glw::GLuint index, const glw::GLshort *v)
4390{
4391	if (m_enableLog)
4392		m_log << TestLog::Message << "glVertexAttrib4Nsv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4393	m_gl.vertexAttrib4Nsv(index, v);
4394}
4395
4396void CallLogWrapper::glVertexAttrib4Nub (glw::GLuint index, glw::GLubyte x, glw::GLubyte y, glw::GLubyte z, glw::GLubyte w)
4397{
4398	if (m_enableLog)
4399		m_log << TestLog::Message << "glVertexAttrib4Nub(" << index << ", " << toHex(x) << ", " << toHex(y) << ", " << toHex(z) << ", " << toHex(w) << ");" << TestLog::EndMessage;
4400	m_gl.vertexAttrib4Nub(index, x, y, z, w);
4401}
4402
4403void CallLogWrapper::glVertexAttrib4Nubv (glw::GLuint index, const glw::GLubyte *v)
4404{
4405	if (m_enableLog)
4406		m_log << TestLog::Message << "glVertexAttrib4Nubv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4407	m_gl.vertexAttrib4Nubv(index, v);
4408}
4409
4410void CallLogWrapper::glVertexAttrib4Nuiv (glw::GLuint index, const glw::GLuint *v)
4411{
4412	if (m_enableLog)
4413		m_log << TestLog::Message << "glVertexAttrib4Nuiv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4414	m_gl.vertexAttrib4Nuiv(index, v);
4415}
4416
4417void CallLogWrapper::glVertexAttrib4Nusv (glw::GLuint index, const glw::GLushort *v)
4418{
4419	if (m_enableLog)
4420		m_log << TestLog::Message << "glVertexAttrib4Nusv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4421	m_gl.vertexAttrib4Nusv(index, v);
4422}
4423
4424void CallLogWrapper::glVertexAttrib4bv (glw::GLuint index, const glw::GLbyte *v)
4425{
4426	if (m_enableLog)
4427		m_log << TestLog::Message << "glVertexAttrib4bv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4428	m_gl.vertexAttrib4bv(index, v);
4429}
4430
4431void CallLogWrapper::glVertexAttrib4d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z, glw::GLdouble w)
4432{
4433	if (m_enableLog)
4434		m_log << TestLog::Message << "glVertexAttrib4d(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4435	m_gl.vertexAttrib4d(index, x, y, z, w);
4436}
4437
4438void CallLogWrapper::glVertexAttrib4dv (glw::GLuint index, const glw::GLdouble *v)
4439{
4440	if (m_enableLog)
4441		m_log << TestLog::Message << "glVertexAttrib4dv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4442	m_gl.vertexAttrib4dv(index, v);
4443}
4444
4445void CallLogWrapper::glVertexAttrib4f (glw::GLuint index, glw::GLfloat x, glw::GLfloat y, glw::GLfloat z, glw::GLfloat w)
4446{
4447	if (m_enableLog)
4448		m_log << TestLog::Message << "glVertexAttrib4f(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4449	m_gl.vertexAttrib4f(index, x, y, z, w);
4450}
4451
4452void CallLogWrapper::glVertexAttrib4fv (glw::GLuint index, const glw::GLfloat *v)
4453{
4454	if (m_enableLog)
4455		m_log << TestLog::Message << "glVertexAttrib4fv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4456	m_gl.vertexAttrib4fv(index, v);
4457}
4458
4459void CallLogWrapper::glVertexAttrib4iv (glw::GLuint index, const glw::GLint *v)
4460{
4461	if (m_enableLog)
4462		m_log << TestLog::Message << "glVertexAttrib4iv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4463	m_gl.vertexAttrib4iv(index, v);
4464}
4465
4466void CallLogWrapper::glVertexAttrib4s (glw::GLuint index, glw::GLshort x, glw::GLshort y, glw::GLshort z, glw::GLshort w)
4467{
4468	if (m_enableLog)
4469		m_log << TestLog::Message << "glVertexAttrib4s(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4470	m_gl.vertexAttrib4s(index, x, y, z, w);
4471}
4472
4473void CallLogWrapper::glVertexAttrib4sv (glw::GLuint index, const glw::GLshort *v)
4474{
4475	if (m_enableLog)
4476		m_log << TestLog::Message << "glVertexAttrib4sv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4477	m_gl.vertexAttrib4sv(index, v);
4478}
4479
4480void CallLogWrapper::glVertexAttrib4ubv (glw::GLuint index, const glw::GLubyte *v)
4481{
4482	if (m_enableLog)
4483		m_log << TestLog::Message << "glVertexAttrib4ubv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4484	m_gl.vertexAttrib4ubv(index, v);
4485}
4486
4487void CallLogWrapper::glVertexAttrib4uiv (glw::GLuint index, const glw::GLuint *v)
4488{
4489	if (m_enableLog)
4490		m_log << TestLog::Message << "glVertexAttrib4uiv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4491	m_gl.vertexAttrib4uiv(index, v);
4492}
4493
4494void CallLogWrapper::glVertexAttrib4usv (glw::GLuint index, const glw::GLushort *v)
4495{
4496	if (m_enableLog)
4497		m_log << TestLog::Message << "glVertexAttrib4usv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4498	m_gl.vertexAttrib4usv(index, v);
4499}
4500
4501void CallLogWrapper::glVertexAttribBinding (glw::GLuint attribindex, glw::GLuint bindingindex)
4502{
4503	if (m_enableLog)
4504		m_log << TestLog::Message << "glVertexAttribBinding(" << attribindex << ", " << bindingindex << ");" << TestLog::EndMessage;
4505	m_gl.vertexAttribBinding(attribindex, bindingindex);
4506}
4507
4508void CallLogWrapper::glVertexAttribDivisor (glw::GLuint index, glw::GLuint divisor)
4509{
4510	if (m_enableLog)
4511		m_log << TestLog::Message << "glVertexAttribDivisor(" << index << ", " << divisor << ");" << TestLog::EndMessage;
4512	m_gl.vertexAttribDivisor(index, divisor);
4513}
4514
4515void CallLogWrapper::glVertexAttribFormat (glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLboolean normalized, glw::GLuint relativeoffset)
4516{
4517	if (m_enableLog)
4518		m_log << TestLog::Message << "glVertexAttribFormat(" << attribindex << ", " << size << ", " << getTypeStr(type) << ", " << getBooleanStr(normalized) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4519	m_gl.vertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
4520}
4521
4522void CallLogWrapper::glVertexAttribI1i (glw::GLuint index, glw::GLint x)
4523{
4524	if (m_enableLog)
4525		m_log << TestLog::Message << "glVertexAttribI1i(" << index << ", " << x << ");" << TestLog::EndMessage;
4526	m_gl.vertexAttribI1i(index, x);
4527}
4528
4529void CallLogWrapper::glVertexAttribI1iv (glw::GLuint index, const glw::GLint *v)
4530{
4531	if (m_enableLog)
4532		m_log << TestLog::Message << "glVertexAttribI1iv(" << index << ", " << getPointerStr(v, 1) << ");" << TestLog::EndMessage;
4533	m_gl.vertexAttribI1iv(index, v);
4534}
4535
4536void CallLogWrapper::glVertexAttribI1ui (glw::GLuint index, glw::GLuint x)
4537{
4538	if (m_enableLog)
4539		m_log << TestLog::Message << "glVertexAttribI1ui(" << index << ", " << x << ");" << TestLog::EndMessage;
4540	m_gl.vertexAttribI1ui(index, x);
4541}
4542
4543void CallLogWrapper::glVertexAttribI1uiv (glw::GLuint index, const glw::GLuint *v)
4544{
4545	if (m_enableLog)
4546		m_log << TestLog::Message << "glVertexAttribI1uiv(" << index << ", " << getPointerStr(v, 1) << ");" << TestLog::EndMessage;
4547	m_gl.vertexAttribI1uiv(index, v);
4548}
4549
4550void CallLogWrapper::glVertexAttribI2i (glw::GLuint index, glw::GLint x, glw::GLint y)
4551{
4552	if (m_enableLog)
4553		m_log << TestLog::Message << "glVertexAttribI2i(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4554	m_gl.vertexAttribI2i(index, x, y);
4555}
4556
4557void CallLogWrapper::glVertexAttribI2iv (glw::GLuint index, const glw::GLint *v)
4558{
4559	if (m_enableLog)
4560		m_log << TestLog::Message << "glVertexAttribI2iv(" << index << ", " << getPointerStr(v, 2) << ");" << TestLog::EndMessage;
4561	m_gl.vertexAttribI2iv(index, v);
4562}
4563
4564void CallLogWrapper::glVertexAttribI2ui (glw::GLuint index, glw::GLuint x, glw::GLuint y)
4565{
4566	if (m_enableLog)
4567		m_log << TestLog::Message << "glVertexAttribI2ui(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4568	m_gl.vertexAttribI2ui(index, x, y);
4569}
4570
4571void CallLogWrapper::glVertexAttribI2uiv (glw::GLuint index, const glw::GLuint *v)
4572{
4573	if (m_enableLog)
4574		m_log << TestLog::Message << "glVertexAttribI2uiv(" << index << ", " << getPointerStr(v, 2) << ");" << TestLog::EndMessage;
4575	m_gl.vertexAttribI2uiv(index, v);
4576}
4577
4578void CallLogWrapper::glVertexAttribI3i (glw::GLuint index, glw::GLint x, glw::GLint y, glw::GLint z)
4579{
4580	if (m_enableLog)
4581		m_log << TestLog::Message << "glVertexAttribI3i(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4582	m_gl.vertexAttribI3i(index, x, y, z);
4583}
4584
4585void CallLogWrapper::glVertexAttribI3iv (glw::GLuint index, const glw::GLint *v)
4586{
4587	if (m_enableLog)
4588		m_log << TestLog::Message << "glVertexAttribI3iv(" << index << ", " << getPointerStr(v, 3) << ");" << TestLog::EndMessage;
4589	m_gl.vertexAttribI3iv(index, v);
4590}
4591
4592void CallLogWrapper::glVertexAttribI3ui (glw::GLuint index, glw::GLuint x, glw::GLuint y, glw::GLuint z)
4593{
4594	if (m_enableLog)
4595		m_log << TestLog::Message << "glVertexAttribI3ui(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4596	m_gl.vertexAttribI3ui(index, x, y, z);
4597}
4598
4599void CallLogWrapper::glVertexAttribI3uiv (glw::GLuint index, const glw::GLuint *v)
4600{
4601	if (m_enableLog)
4602		m_log << TestLog::Message << "glVertexAttribI3uiv(" << index << ", " << getPointerStr(v, 3) << ");" << TestLog::EndMessage;
4603	m_gl.vertexAttribI3uiv(index, v);
4604}
4605
4606void CallLogWrapper::glVertexAttribI4bv (glw::GLuint index, const glw::GLbyte *v)
4607{
4608	if (m_enableLog)
4609		m_log << TestLog::Message << "glVertexAttribI4bv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4610	m_gl.vertexAttribI4bv(index, v);
4611}
4612
4613void CallLogWrapper::glVertexAttribI4i (glw::GLuint index, glw::GLint x, glw::GLint y, glw::GLint z, glw::GLint w)
4614{
4615	if (m_enableLog)
4616		m_log << TestLog::Message << "glVertexAttribI4i(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4617	m_gl.vertexAttribI4i(index, x, y, z, w);
4618}
4619
4620void CallLogWrapper::glVertexAttribI4iv (glw::GLuint index, const glw::GLint *v)
4621{
4622	if (m_enableLog)
4623		m_log << TestLog::Message << "glVertexAttribI4iv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4624	m_gl.vertexAttribI4iv(index, v);
4625}
4626
4627void CallLogWrapper::glVertexAttribI4sv (glw::GLuint index, const glw::GLshort *v)
4628{
4629	if (m_enableLog)
4630		m_log << TestLog::Message << "glVertexAttribI4sv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4631	m_gl.vertexAttribI4sv(index, v);
4632}
4633
4634void CallLogWrapper::glVertexAttribI4ubv (glw::GLuint index, const glw::GLubyte *v)
4635{
4636	if (m_enableLog)
4637		m_log << TestLog::Message << "glVertexAttribI4ubv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4638	m_gl.vertexAttribI4ubv(index, v);
4639}
4640
4641void CallLogWrapper::glVertexAttribI4ui (glw::GLuint index, glw::GLuint x, glw::GLuint y, glw::GLuint z, glw::GLuint w)
4642{
4643	if (m_enableLog)
4644		m_log << TestLog::Message << "glVertexAttribI4ui(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4645	m_gl.vertexAttribI4ui(index, x, y, z, w);
4646}
4647
4648void CallLogWrapper::glVertexAttribI4uiv (glw::GLuint index, const glw::GLuint *v)
4649{
4650	if (m_enableLog)
4651		m_log << TestLog::Message << "glVertexAttribI4uiv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4652	m_gl.vertexAttribI4uiv(index, v);
4653}
4654
4655void CallLogWrapper::glVertexAttribI4usv (glw::GLuint index, const glw::GLushort *v)
4656{
4657	if (m_enableLog)
4658		m_log << TestLog::Message << "glVertexAttribI4usv(" << index << ", " << getPointerStr(v, 4) << ");" << TestLog::EndMessage;
4659	m_gl.vertexAttribI4usv(index, v);
4660}
4661
4662void CallLogWrapper::glVertexAttribIFormat (glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLuint relativeoffset)
4663{
4664	if (m_enableLog)
4665		m_log << TestLog::Message << "glVertexAttribIFormat(" << attribindex << ", " << size << ", " << getTypeStr(type) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4666	m_gl.vertexAttribIFormat(attribindex, size, type, relativeoffset);
4667}
4668
4669void CallLogWrapper::glVertexAttribIPointer (glw::GLuint index, glw::GLint size, glw::GLenum type, glw::GLsizei stride, const void *pointer)
4670{
4671	if (m_enableLog)
4672		m_log << TestLog::Message << "glVertexAttribIPointer(" << index << ", " << size << ", " << getTypeStr(type) << ", " << stride << ", " << pointer << ");" << TestLog::EndMessage;
4673	m_gl.vertexAttribIPointer(index, size, type, stride, pointer);
4674}
4675
4676void CallLogWrapper::glVertexAttribL1d (glw::GLuint index, glw::GLdouble x)
4677{
4678	if (m_enableLog)
4679		m_log << TestLog::Message << "glVertexAttribL1d(" << index << ", " << x << ");" << TestLog::EndMessage;
4680	m_gl.vertexAttribL1d(index, x);
4681}
4682
4683void CallLogWrapper::glVertexAttribL1dv (glw::GLuint index, const glw::GLdouble *v)
4684{
4685	if (m_enableLog)
4686		m_log << TestLog::Message << "glVertexAttribL1dv(" << index << ", " << v << ");" << TestLog::EndMessage;
4687	m_gl.vertexAttribL1dv(index, v);
4688}
4689
4690void CallLogWrapper::glVertexAttribL2d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y)
4691{
4692	if (m_enableLog)
4693		m_log << TestLog::Message << "glVertexAttribL2d(" << index << ", " << x << ", " << y << ");" << TestLog::EndMessage;
4694	m_gl.vertexAttribL2d(index, x, y);
4695}
4696
4697void CallLogWrapper::glVertexAttribL2dv (glw::GLuint index, const glw::GLdouble *v)
4698{
4699	if (m_enableLog)
4700		m_log << TestLog::Message << "glVertexAttribL2dv(" << index << ", " << v << ");" << TestLog::EndMessage;
4701	m_gl.vertexAttribL2dv(index, v);
4702}
4703
4704void CallLogWrapper::glVertexAttribL3d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z)
4705{
4706	if (m_enableLog)
4707		m_log << TestLog::Message << "glVertexAttribL3d(" << index << ", " << x << ", " << y << ", " << z << ");" << TestLog::EndMessage;
4708	m_gl.vertexAttribL3d(index, x, y, z);
4709}
4710
4711void CallLogWrapper::glVertexAttribL3dv (glw::GLuint index, const glw::GLdouble *v)
4712{
4713	if (m_enableLog)
4714		m_log << TestLog::Message << "glVertexAttribL3dv(" << index << ", " << v << ");" << TestLog::EndMessage;
4715	m_gl.vertexAttribL3dv(index, v);
4716}
4717
4718void CallLogWrapper::glVertexAttribL4d (glw::GLuint index, glw::GLdouble x, glw::GLdouble y, glw::GLdouble z, glw::GLdouble w)
4719{
4720	if (m_enableLog)
4721		m_log << TestLog::Message << "glVertexAttribL4d(" << index << ", " << x << ", " << y << ", " << z << ", " << w << ");" << TestLog::EndMessage;
4722	m_gl.vertexAttribL4d(index, x, y, z, w);
4723}
4724
4725void CallLogWrapper::glVertexAttribL4dv (glw::GLuint index, const glw::GLdouble *v)
4726{
4727	if (m_enableLog)
4728		m_log << TestLog::Message << "glVertexAttribL4dv(" << index << ", " << v << ");" << TestLog::EndMessage;
4729	m_gl.vertexAttribL4dv(index, v);
4730}
4731
4732void CallLogWrapper::glVertexAttribLFormat (glw::GLuint attribindex, glw::GLint size, glw::GLenum type, glw::GLuint relativeoffset)
4733{
4734	if (m_enableLog)
4735		m_log << TestLog::Message << "glVertexAttribLFormat(" << attribindex << ", " << size << ", " << toHex(type) << ", " << relativeoffset << ");" << TestLog::EndMessage;
4736	m_gl.vertexAttribLFormat(attribindex, size, type, relativeoffset);
4737}
4738
4739void CallLogWrapper::glVertexAttribLPointer (glw::GLuint index, glw::GLint size, glw::GLenum type, glw::GLsizei stride, const void *pointer)
4740{
4741	if (m_enableLog)
4742		m_log << TestLog::Message << "glVertexAttribLPointer(" << index << ", " << size << ", " << toHex(type) << ", " << stride << ", " << pointer << ");" << TestLog::EndMessage;
4743	m_gl.vertexAttribLPointer(index, size, type, stride, pointer);
4744}
4745
4746void CallLogWrapper::glVertexAttribP1ui (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, glw::GLuint value)
4747{
4748	if (m_enableLog)
4749		m_log << TestLog::Message << "glVertexAttribP1ui(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4750	m_gl.vertexAttribP1ui(index, type, normalized, value);
4751}
4752
4753void CallLogWrapper::glVertexAttribP1uiv (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, const glw::GLuint *value)
4754{
4755	if (m_enableLog)
4756		m_log << TestLog::Message << "glVertexAttribP1uiv(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4757	m_gl.vertexAttribP1uiv(index, type, normalized, value);
4758}
4759
4760void CallLogWrapper::glVertexAttribP2ui (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, glw::GLuint value)
4761{
4762	if (m_enableLog)
4763		m_log << TestLog::Message << "glVertexAttribP2ui(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4764	m_gl.vertexAttribP2ui(index, type, normalized, value);
4765}
4766
4767void CallLogWrapper::glVertexAttribP2uiv (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, const glw::GLuint *value)
4768{
4769	if (m_enableLog)
4770		m_log << TestLog::Message << "glVertexAttribP2uiv(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4771	m_gl.vertexAttribP2uiv(index, type, normalized, value);
4772}
4773
4774void CallLogWrapper::glVertexAttribP3ui (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, glw::GLuint value)
4775{
4776	if (m_enableLog)
4777		m_log << TestLog::Message << "glVertexAttribP3ui(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4778	m_gl.vertexAttribP3ui(index, type, normalized, value);
4779}
4780
4781void CallLogWrapper::glVertexAttribP3uiv (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, const glw::GLuint *value)
4782{
4783	if (m_enableLog)
4784		m_log << TestLog::Message << "glVertexAttribP3uiv(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4785	m_gl.vertexAttribP3uiv(index, type, normalized, value);
4786}
4787
4788void CallLogWrapper::glVertexAttribP4ui (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, glw::GLuint value)
4789{
4790	if (m_enableLog)
4791		m_log << TestLog::Message << "glVertexAttribP4ui(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4792	m_gl.vertexAttribP4ui(index, type, normalized, value);
4793}
4794
4795void CallLogWrapper::glVertexAttribP4uiv (glw::GLuint index, glw::GLenum type, glw::GLboolean normalized, const glw::GLuint *value)
4796{
4797	if (m_enableLog)
4798		m_log << TestLog::Message << "glVertexAttribP4uiv(" << index << ", " << toHex(type) << ", " << getBooleanStr(normalized) << ", " << value << ");" << TestLog::EndMessage;
4799	m_gl.vertexAttribP4uiv(index, type, normalized, value);
4800}
4801
4802void CallLogWrapper::glVertexAttribPointer (glw::GLuint index, glw::GLint size, glw::GLenum type, glw::GLboolean normalized, glw::GLsizei stride, const void *pointer)
4803{
4804	if (m_enableLog)
4805		m_log << TestLog::Message << "glVertexAttribPointer(" << index << ", " << size << ", " << getTypeStr(type) << ", " << getBooleanStr(normalized) << ", " << stride << ", " << pointer << ");" << TestLog::EndMessage;
4806	m_gl.vertexAttribPointer(index, size, type, normalized, stride, pointer);
4807}
4808
4809void CallLogWrapper::glVertexBindingDivisor (glw::GLuint bindingindex, glw::GLuint divisor)
4810{
4811	if (m_enableLog)
4812		m_log << TestLog::Message << "glVertexBindingDivisor(" << bindingindex << ", " << divisor << ");" << TestLog::EndMessage;
4813	m_gl.vertexBindingDivisor(bindingindex, divisor);
4814}
4815
4816void CallLogWrapper::glViewport (glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
4817{
4818	if (m_enableLog)
4819		m_log << TestLog::Message << "glViewport(" << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
4820	m_gl.viewport(x, y, width, height);
4821}
4822
4823void CallLogWrapper::glViewportArrayv (glw::GLuint first, glw::GLsizei count, const glw::GLfloat *v)
4824{
4825	if (m_enableLog)
4826		m_log << TestLog::Message << "glViewportArrayv(" << first << ", " << count << ", " << v << ");" << TestLog::EndMessage;
4827	m_gl.viewportArrayv(first, count, v);
4828}
4829
4830void CallLogWrapper::glViewportIndexedf (glw::GLuint index, glw::GLfloat x, glw::GLfloat y, glw::GLfloat w, glw::GLfloat h)
4831{
4832	if (m_enableLog)
4833		m_log << TestLog::Message << "glViewportIndexedf(" << index << ", " << x << ", " << y << ", " << w << ", " << h << ");" << TestLog::EndMessage;
4834	m_gl.viewportIndexedf(index, x, y, w, h);
4835}
4836
4837void CallLogWrapper::glViewportIndexedfv (glw::GLuint index, const glw::GLfloat *v)
4838{
4839	if (m_enableLog)
4840		m_log << TestLog::Message << "glViewportIndexedfv(" << index << ", " << v << ");" << TestLog::EndMessage;
4841	m_gl.viewportIndexedfv(index, v);
4842}
4843
4844void CallLogWrapper::glWaitSync (glw::GLsync sync, glw::GLbitfield flags, glw::GLuint64 timeout)
4845{
4846	if (m_enableLog)
4847		m_log << TestLog::Message << "glWaitSync(" << sync << ", " << toHex(flags) << ", " << timeout << ");" << TestLog::EndMessage;
4848	m_gl.waitSync(sync, flags, timeout);
4849}
4850