248 Q_DECLARE_PRIVATE(QOpenGLExtraFunctions)
251 QOpenGLExtraFunctions();
252 QOpenGLExtraFunctions(QOpenGLContext *context);
253 ~QOpenGLExtraFunctions() {}
256 void glReadBuffer(GLenum mode);
257 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const void *indices);
258 void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type,
const void *pixels);
259 void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
const void *pixels);
260 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
261 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize,
const void *data);
262 void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
const void *data);
263 void glGenQueries(GLsizei n, GLuint *ids);
264 void glDeleteQueries(GLsizei n,
const GLuint *ids);
265 GLboolean glIsQuery(GLuint id);
266 void glBeginQuery(GLenum target, GLuint id);
267 void glEndQuery(GLenum target);
268 void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
269 void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
270 GLboolean glUnmapBuffer(GLenum target);
271 void glGetBufferPointerv(GLenum target, GLenum pname,
void **params);
272 void glDrawBuffers(GLsizei n,
const GLenum *bufs);
273 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
274 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
275 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
276 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
277 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
278 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
279 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
280 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
281 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
282 void *glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
283 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
284 void glBindVertexArray(GLuint array);
285 void glDeleteVertexArrays(GLsizei n,
const GLuint *arrays);
286 void glGenVertexArrays(GLsizei n, GLuint *arrays);
287 GLboolean glIsVertexArray(GLuint array);
288 void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
289 void glBeginTransformFeedback(GLenum primitiveMode);
290 void glEndTransformFeedback(
void);
291 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
292 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
293 void glTransformFeedbackVaryings(GLuint program, GLsizei count,
const GLchar *
const*varyings, GLenum bufferMode);
294 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
295 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride,
const void *pointer);
296 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
297 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
298 void glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
299 void glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
300 void glVertexAttribI4iv(GLuint index,
const GLint *v);
301 void glVertexAttribI4uiv(GLuint index,
const GLuint *v);
302 void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
303 GLint glGetFragDataLocation(GLuint program,
const GLchar *name);
304 void glUniform1ui(GLint location, GLuint v0);
305 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
306 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
307 void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
308 void glUniform1uiv(GLint location, GLsizei count,
const GLuint *value);
309 void glUniform2uiv(GLint location, GLsizei count,
const GLuint *value);
310 void glUniform3uiv(GLint location, GLsizei count,
const GLuint *value);
311 void glUniform4uiv(GLint location, GLsizei count,
const GLuint *value);
312 void glClearBufferiv(GLenum buffer, GLint drawbuffer,
const GLint *value);
313 void glClearBufferuiv(GLenum buffer, GLint drawbuffer,
const GLuint *value);
314 void glClearBufferfv(GLenum buffer, GLint drawbuffer,
const GLfloat *value);
315 void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
316 const GLubyte *glGetStringi(GLenum name, GLuint index);
317 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
318 void glGetUniformIndices(GLuint program, GLsizei uniformCount,
const GLchar *
const*uniformNames, GLuint *uniformIndices);
319 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount,
const GLuint *uniformIndices, GLenum pname, GLint *params);
320 GLuint glGetUniformBlockIndex(GLuint program,
const GLchar *uniformBlockName);
321 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
322 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
323 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
324 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
325 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount);
326 GLsync glFenceSync(GLenum condition, GLbitfield flags);
327 GLboolean glIsSync(GLsync sync);
328 void glDeleteSync(GLsync sync);
329 GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
330 void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
331 void glGetInteger64v(GLenum pname, GLint64 *data);
332 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
333 void glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
334 void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
335 void glGenSamplers(GLsizei count, GLuint *samplers);
336 void glDeleteSamplers(GLsizei count,
const GLuint *samplers);
337 GLboolean glIsSampler(GLuint sampler);
338 void glBindSampler(GLuint unit, GLuint sampler);
339 void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
340 void glSamplerParameteriv(GLuint sampler, GLenum pname,
const GLint *param);
341 void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
342 void glSamplerParameterfv(GLuint sampler, GLenum pname,
const GLfloat *param);
343 void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
344 void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
345 void glVertexAttribDivisor(GLuint index, GLuint divisor);
346 void glBindTransformFeedback(GLenum target, GLuint id);
347 void glDeleteTransformFeedbacks(GLsizei n,
const GLuint *ids);
348 void glGenTransformFeedbacks(GLsizei n, GLuint *ids);
349 GLboolean glIsTransformFeedback(GLuint id);
350 void glPauseTransformFeedback(
void);
351 void glResumeTransformFeedback(
void);
352 void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat,
void *binary);
353 void glProgramBinary(GLuint program, GLenum binaryFormat,
const void *binary, GLsizei length);
354 void glProgramParameteri(GLuint program, GLenum pname, GLint value);
355 void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments,
const GLenum *attachments);
356 void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
357 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
358 void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
359 void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
362 void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
363 void glDispatchComputeIndirect(GLintptr indirect);
364 void glDrawArraysIndirect(GLenum mode,
const void *indirect);
365 void glDrawElementsIndirect(GLenum mode, GLenum type,
const void *indirect);
366 void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
367 void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
368 void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
369 GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface,
const GLchar *name);
370 void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
371 void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount,
const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
372 GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface,
const GLchar *name);
373 void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
374 void glActiveShaderProgram(GLuint pipeline, GLuint program);
375 GLuint glCreateShaderProgramv(GLenum type, GLsizei count,
const GLchar *
const*strings);
376 void glBindProgramPipeline(GLuint pipeline);
377 void glDeleteProgramPipelines(GLsizei n,
const GLuint *pipelines);
378 void glGenProgramPipelines(GLsizei n, GLuint *pipelines);
379 GLboolean glIsProgramPipeline(GLuint pipeline);
380 void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
381 void glProgramUniform1i(GLuint program, GLint location, GLint v0);
382 void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
383 void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
384 void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
385 void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
386 void glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
387 void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
388 void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
389 void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
390 void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
391 void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
392 void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
393 void glProgramUniform1iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
394 void glProgramUniform2iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
395 void glProgramUniform3iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
396 void glProgramUniform4iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
397 void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
398 void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
399 void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
400 void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
401 void glProgramUniform1fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
402 void glProgramUniform2fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
403 void glProgramUniform3fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
404 void glProgramUniform4fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
405 void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
406 void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
407 void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
408 void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
409 void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
410 void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
411 void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
412 void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
413 void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
414 void glValidateProgramPipeline(GLuint pipeline);
415 void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
416 void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
417 void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
418 void glMemoryBarrier(GLbitfield barriers);
419 void glMemoryBarrierByRegion(GLbitfield barriers);
420 void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
421 void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
422 void glSampleMaski(GLuint maskNumber, GLbitfield mask);
423 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
424 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
425 void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
426 void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
427 void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
428 void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
429 void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
432 void glBlendBarrier(
void);
433 void glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
434 void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count,
const GLuint *ids, GLboolean enabled);
435 void glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length,
const GLchar *buf);
436 void glDebugMessageCallback(GLDEBUGPROC callback,
const void *userParam);
437 GLuint glGetDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
438 void glPushDebugGroup(GLenum source, GLuint id, GLsizei length,
const GLchar *message);
439 void glPopDebugGroup(
void);
440 void glObjectLabel(GLenum identifier, GLuint name, GLsizei length,
const GLchar *label);
441 void glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
442 void glObjectPtrLabel(
const void *ptr, GLsizei length,
const GLchar *label);
443 void glGetObjectPtrLabel(
const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
444 void glGetPointerv(GLenum pname,
void **params);
445 void glEnablei(GLenum target, GLuint index);
446 void glDisablei(GLenum target, GLuint index);
447 void glBlendEquationi(GLuint buf, GLenum mode);
448 void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
449 void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
450 void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
451 void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
452 GLboolean glIsEnabledi(GLenum target, GLuint index);
453 void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLint basevertex);
454 void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const void *indices, GLint basevertex);
455 void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount, GLint basevertex);
456 void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
457 void glPrimitiveBoundingBox(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
458 GLenum glGetGraphicsResetStatus(
void);
459 void glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize,
void *data);
460 void glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
461 void glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params);
462 void glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
463 void glMinSampleShading(GLfloat value);
464 void glPatchParameteri(GLenum pname, GLint value);
465 void glTexParameterIiv(GLenum target, GLenum pname,
const GLint *params);
466 void glTexParameterIuiv(GLenum target, GLenum pname,
const GLuint *params);
467 void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
468 void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
469 void glSamplerParameterIiv(GLuint sampler, GLenum pname,
const GLint *param);
470 void glSamplerParameterIuiv(GLuint sampler, GLenum pname,
const GLuint *param);
471 void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
472 void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
473 void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
474 void glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
475 void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
478 static bool isInitialized(
const QOpenGLExtraFunctionsPrivate *d) {
return d !=
nullptr; }