1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179 |
- /****************************************************************************
- **
- ** Copyright (C) 2016 The Qt Company Ltd.
- ** Contact: https://www.qt.io/licensing/
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and The Qt Company. For licensing terms
- ** and conditions see https://www.qt.io/terms-conditions. For further
- ** information use the contact form at https://www.qt.io/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 3 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL3 included in the
- ** packaging of this file. Please review the following information to
- ** ensure the GNU Lesser General Public License version 3 requirements
- ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 2.0 or (at your option) the GNU General
- ** Public license version 3 or any later version approved by the KDE Free
- ** Qt Foundation. The licenses are as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
- ** included in the packaging of this file. Please review the following
- ** information to ensure the GNU General Public License requirements will
- ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
- ** https://www.gnu.org/licenses/gpl-3.0.html.
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
- #ifndef QOPENGLFUNCTIONS_H
- #define QOPENGLFUNCTIONS_H
- #include <QtCore/qglobal.h>
- #ifndef QT_NO_OPENGL
- #ifdef __GLEW_H__
- #if defined(Q_CC_GNU)
- #warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined
- #warning To use GLEW with Qt, do not include <qopengl.h> or <QOpenGLFunctions> after glew.h
- #endif
- #endif
- #include <QtGui/qopengl.h>
- #include <QtGui/qopenglcontext.h>
- //#define Q_ENABLE_OPENGL_FUNCTIONS_DEBUG
- #ifdef QT_OPENGL_ES
- typedef double GLdouble;
- #endif
- #ifdef Q_ENABLE_OPENGL_FUNCTIONS_DEBUG
- #include <stdio.h>
- #define Q_OPENGL_FUNCTIONS_DEBUG \
- GLenum error = glGetError(); \
- if (error != GL_NO_ERROR) { \
- unsigned clamped = qMin(unsigned(error - GL_INVALID_ENUM), 4U); \
- const char *errors[] = { "GL_INVALID_ENUM", "GL_INVALID_VALUE", "GL_INVALID_OPERATION", "Unknown" }; \
- printf("GL error at %s:%d: %s\n", __FILE__, __LINE__, errors[clamped]); \
- int *value = 0; \
- *value = 0; \
- }
- #else
- #define Q_OPENGL_FUNCTIONS_DEBUG
- #endif
- QT_BEGIN_NAMESPACE
- struct QOpenGLFunctionsPrivate;
- // Undefine any macros from GLEW, qopenglextensions_p.h, etc that
- // may interfere with the definition of QOpenGLFunctions.
- #undef glBindTexture
- #undef glBlendFunc
- #undef glClear
- #undef glClearColor
- #undef glClearStencil
- #undef glColorMask
- #undef glCopyTexImage2D
- #undef glCopyTexSubImage2D
- #undef glCullFace
- #undef glDeleteTextures
- #undef glDepthFunc
- #undef glDepthMask
- #undef glDisable
- #undef glDrawArrays
- #undef glDrawElements
- #undef glEnable
- #undef glFinish
- #undef glFlush
- #undef glFrontFace
- #undef glGenTextures
- #undef glGetBooleanv
- #undef glGetError
- #undef glGetFloatv
- #undef glGetIntegerv
- #undef glGetString
- #undef glGetTexParameterfv
- #undef glGetTexParameteriv
- #undef glHint
- #undef glIsEnabled
- #undef glIsTexture
- #undef glLineWidth
- #undef glPixelStorei
- #undef glPolygonOffset
- #undef glReadPixels
- #undef glScissor
- #undef glStencilFunc
- #undef glStencilMask
- #undef glStencilOp
- #undef glTexImage2D
- #undef glTexParameterf
- #undef glTexParameterfv
- #undef glTexParameteri
- #undef glTexParameteriv
- #undef glTexSubImage2D
- #undef glViewport
- #undef glActiveTexture
- #undef glAttachShader
- #undef glBindAttribLocation
- #undef glBindBuffer
- #undef glBindFramebuffer
- #undef glBindRenderbuffer
- #undef glBlendColor
- #undef glBlendEquation
- #undef glBlendEquationSeparate
- #undef glBlendFuncSeparate
- #undef glBufferData
- #undef glBufferSubData
- #undef glCheckFramebufferStatus
- #undef glClearDepthf
- #undef glCompileShader
- #undef glCompressedTexImage2D
- #undef glCompressedTexSubImage2D
- #undef glCreateProgram
- #undef glCreateShader
- #undef glDeleteBuffers
- #undef glDeleteFramebuffers
- #undef glDeleteProgram
- #undef glDeleteRenderbuffers
- #undef glDeleteShader
- #undef glDepthRangef
- #undef glDetachShader
- #undef glDisableVertexAttribArray
- #undef glEnableVertexAttribArray
- #undef glFramebufferRenderbuffer
- #undef glFramebufferTexture2D
- #undef glGenBuffers
- #undef glGenerateMipmap
- #undef glGenFramebuffers
- #undef glGenRenderbuffers
- #undef glGetActiveAttrib
- #undef glGetActiveUniform
- #undef glGetAttachedShaders
- #undef glGetAttribLocation
- #undef glGetBufferParameteriv
- #undef glGetFramebufferAttachmentParameteriv
- #undef glGetProgramiv
- #undef glGetProgramInfoLog
- #undef glGetRenderbufferParameteriv
- #undef glGetShaderiv
- #undef glGetShaderInfoLog
- #undef glGetShaderPrecisionFormat
- #undef glGetShaderSource
- #undef glGetUniformfv
- #undef glGetUniformiv
- #undef glGetUniformLocation
- #undef glGetVertexAttribfv
- #undef glGetVertexAttribiv
- #undef glGetVertexAttribPointerv
- #undef glIsBuffer
- #undef glIsFramebuffer
- #undef glIsProgram
- #undef glIsRenderbuffer
- #undef glIsShader
- #undef glLinkProgram
- #undef glReleaseShaderCompiler
- #undef glRenderbufferStorage
- #undef glSampleCoverage
- #undef glShaderBinary
- #undef glShaderSource
- #undef glStencilFuncSeparate
- #undef glStencilMaskSeparate
- #undef glStencilOpSeparate
- #undef glUniform1f
- #undef glUniform1fv
- #undef glUniform1i
- #undef glUniform1iv
- #undef glUniform2f
- #undef glUniform2fv
- #undef glUniform2i
- #undef glUniform2iv
- #undef glUniform3f
- #undef glUniform3fv
- #undef glUniform3i
- #undef glUniform3iv
- #undef glUniform4f
- #undef glUniform4fv
- #undef glUniform4i
- #undef glUniform4iv
- #undef glUniformMatrix2fv
- #undef glUniformMatrix3fv
- #undef glUniformMatrix4fv
- #undef glUseProgram
- #undef glValidateProgram
- #undef glVertexAttrib1f
- #undef glVertexAttrib1fv
- #undef glVertexAttrib2f
- #undef glVertexAttrib2fv
- #undef glVertexAttrib3f
- #undef glVertexAttrib3fv
- #undef glVertexAttrib4f
- #undef glVertexAttrib4fv
- #undef glVertexAttribPointer
- #undef glTexLevelParameteriv
- class Q_GUI_EXPORT QOpenGLFunctions
- {
- public:
- QOpenGLFunctions();
- explicit QOpenGLFunctions(QOpenGLContext *context);
- ~QOpenGLFunctions() {}
- enum OpenGLFeature
- {
- Multitexture = 0x0001,
- Shaders = 0x0002,
- Buffers = 0x0004,
- Framebuffers = 0x0008,
- BlendColor = 0x0010,
- BlendEquation = 0x0020,
- BlendEquationSeparate = 0x0040,
- BlendFuncSeparate = 0x0080,
- BlendSubtract = 0x0100,
- CompressedTextures = 0x0200,
- Multisample = 0x0400,
- StencilSeparate = 0x0800,
- NPOTTextures = 0x1000,
- NPOTTextureRepeat = 0x2000,
- FixedFunctionPipeline = 0x4000,
- TextureRGFormats = 0x8000,
- MultipleRenderTargets = 0x10000
- };
- Q_DECLARE_FLAGS(OpenGLFeatures, OpenGLFeature)
- QOpenGLFunctions::OpenGLFeatures openGLFeatures() const;
- bool hasOpenGLFeature(QOpenGLFunctions::OpenGLFeature feature) const;
- void initializeOpenGLFunctions();
- #if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED void initializeGLFunctions() { initializeOpenGLFunctions(); }
- #endif
- // GLES2 + OpenGL1 common subset
- void glBindTexture(GLenum target, GLuint texture);
- void glBlendFunc(GLenum sfactor, GLenum dfactor);
- void glClear(GLbitfield mask);
- void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
- void glClearStencil(GLint s);
- void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
- void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
- void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
- void glCullFace(GLenum mode);
- void glDeleteTextures(GLsizei n, const GLuint* textures);
- void glDepthFunc(GLenum func);
- void glDepthMask(GLboolean flag);
- void glDisable(GLenum cap);
- void glDrawArrays(GLenum mode, GLint first, GLsizei count);
- void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
- void glEnable(GLenum cap);
- void glFinish();
- void glFlush();
- void glFrontFace(GLenum mode);
- void glGenTextures(GLsizei n, GLuint* textures);
- void glGetBooleanv(GLenum pname, GLboolean* params);
- GLenum glGetError();
- void glGetFloatv(GLenum pname, GLfloat* params);
- void glGetIntegerv(GLenum pname, GLint* params);
- const GLubyte *glGetString(GLenum name);
- void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
- void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
- void glHint(GLenum target, GLenum mode);
- GLboolean glIsEnabled(GLenum cap);
- GLboolean glIsTexture(GLuint texture);
- void glLineWidth(GLfloat width);
- void glPixelStorei(GLenum pname, GLint param);
- void glPolygonOffset(GLfloat factor, GLfloat units);
- void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
- void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
- void glStencilFunc(GLenum func, GLint ref, GLuint mask);
- void glStencilMask(GLuint mask);
- void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
- void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
- void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
- void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
- void glTexParameteri(GLenum target, GLenum pname, GLint param);
- void glTexParameteriv(GLenum target, GLenum pname, const GLint* params);
- void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
- void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
- // GL(ES)2
- void glActiveTexture(GLenum texture);
- void glAttachShader(GLuint program, GLuint shader);
- void glBindAttribLocation(GLuint program, GLuint index, const char* name);
- void glBindBuffer(GLenum target, GLuint buffer);
- void glBindFramebuffer(GLenum target, GLuint framebuffer);
- void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
- void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
- void glBlendEquation(GLenum mode);
- void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
- void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
- void glBufferData(GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage);
- void glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data);
- GLenum glCheckFramebufferStatus(GLenum target);
- void glClearDepthf(GLclampf depth);
- void glCompileShader(GLuint shader);
- void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
- void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
- GLuint glCreateProgram();
- GLuint glCreateShader(GLenum type);
- void glDeleteBuffers(GLsizei n, const GLuint* buffers);
- void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
- void glDeleteProgram(GLuint program);
- void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
- void glDeleteShader(GLuint shader);
- void glDepthRangef(GLclampf zNear, GLclampf zFar);
- void glDetachShader(GLuint program, GLuint shader);
- void glDisableVertexAttribArray(GLuint index);
- void glEnableVertexAttribArray(GLuint index);
- void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
- void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
- void glGenBuffers(GLsizei n, GLuint* buffers);
- void glGenerateMipmap(GLenum target);
- void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
- void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
- void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
- void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
- void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
- GLint glGetAttribLocation(GLuint program, const char* name);
- void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
- void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
- void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
- void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
- void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
- void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
- void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
- void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
- void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
- void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
- void glGetUniformiv(GLuint program, GLint location, GLint* params);
- GLint glGetUniformLocation(GLuint program, const char* name);
- void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
- void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
- void glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer);
- GLboolean glIsBuffer(GLuint buffer);
- GLboolean glIsFramebuffer(GLuint framebuffer);
- GLboolean glIsProgram(GLuint program);
- GLboolean glIsRenderbuffer(GLuint renderbuffer);
- GLboolean glIsShader(GLuint shader);
- void glLinkProgram(GLuint program);
- void glReleaseShaderCompiler();
- void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
- void glSampleCoverage(GLclampf value, GLboolean invert);
- void glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
- void glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length);
- void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
- void glStencilMaskSeparate(GLenum face, GLuint mask);
- void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
- void glUniform1f(GLint location, GLfloat x);
- void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
- void glUniform1i(GLint location, GLint x);
- void glUniform1iv(GLint location, GLsizei count, const GLint* v);
- void glUniform2f(GLint location, GLfloat x, GLfloat y);
- void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
- void glUniform2i(GLint location, GLint x, GLint y);
- void glUniform2iv(GLint location, GLsizei count, const GLint* v);
- void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
- void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
- void glUniform3i(GLint location, GLint x, GLint y, GLint z);
- void glUniform3iv(GLint location, GLsizei count, const GLint* v);
- void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
- void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
- void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
- void glUniform4iv(GLint location, GLsizei count, const GLint* v);
- void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
- void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
- void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
- void glUseProgram(GLuint program);
- void glValidateProgram(GLuint program);
- void glVertexAttrib1f(GLuint indx, GLfloat x);
- void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
- void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
- void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
- void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
- void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
- void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
- void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
- void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
- protected:
- QOpenGLFunctionsPrivate *d_ptr;
- static bool isInitialized(const QOpenGLFunctionsPrivate *d) { return d != Q_NULLPTR; }
- };
- Q_DECLARE_OPERATORS_FOR_FLAGS(QOpenGLFunctions::OpenGLFeatures)
- #define QT_OPENGL_DECLARE_FUNCTIONS(ret, name, args) \
- ret (QOPENGLF_APIENTRYP name)args;
- #define QT_OPENGL_COUNT_FUNCTIONS(ret, name, args) +1
- #define QT_OPENGL_DECLARE(FUNCTIONS) \
- public: \
- struct Functions { \
- FUNCTIONS(QT_OPENGL_DECLARE_FUNCTIONS) \
- }; \
- union { \
- QFunctionPointer functions[FUNCTIONS(QT_OPENGL_COUNT_FUNCTIONS)]; \
- Functions f; \
- }; \
- private: \
- void init(QOpenGLContext *context);
- struct QOpenGLFunctionsPrivate
- {
- QOpenGLFunctionsPrivate(QOpenGLContext *ctx);
- #define QT_OPENGL_FUNCTIONS(F) \
- F(void, BindTexture, (GLenum target, GLuint texture)) \
- F(void, BlendFunc, (GLenum sfactor, GLenum dfactor)) \
- F(void, Clear, (GLbitfield mask)) \
- F(void, ClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) \
- F(void, ClearDepthf, (GLclampf depth)) \
- F(void, ClearStencil, (GLint s)) \
- F(void, ColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \
- F(void, CopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \
- F(void, CopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
- F(void, CullFace, (GLenum mode)) \
- F(void, DeleteTextures, (GLsizei n, const GLuint* textures)) \
- F(void, DepthFunc, (GLenum func)) \
- F(void, DepthMask, (GLboolean flag)) \
- F(void, DepthRangef, (GLclampf nearVal, GLclampf farVal)) \
- F(void, Disable, (GLenum cap)) \
- F(void, DrawArrays, (GLenum mode, GLint first, GLsizei count)) \
- F(void, DrawElements, (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)) \
- F(void, Enable, (GLenum cap)) \
- F(void, Finish, ()) \
- F(void, Flush, ()) \
- F(void, FrontFace, (GLenum mode)) \
- F(void, GenTextures, (GLsizei n, GLuint* textures)) \
- F(void, GetBooleanv, (GLenum pname, GLboolean* params)) \
- F(GLenum, GetError, ()) \
- F(void, GetFloatv, (GLenum pname, GLfloat* params)) \
- F(void, GetIntegerv, (GLenum pname, GLint* params)) \
- F(const GLubyte *, GetString, (GLenum name)) \
- F(void, GetTexParameterfv, (GLenum target, GLenum pname, GLfloat* params)) \
- F(void, GetTexParameteriv, (GLenum target, GLenum pname, GLint* params)) \
- F(void, Hint, (GLenum target, GLenum mode)) \
- F(GLboolean, IsEnabled, (GLenum cap)) \
- F(GLboolean, IsTexture, (GLuint texture)) \
- F(void, LineWidth, (GLfloat width)) \
- F(void, PixelStorei, (GLenum pname, GLint param)) \
- F(void, PolygonOffset, (GLfloat factor, GLfloat units)) \
- F(void, ReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)) \
- F(void, Scissor, (GLint x, GLint y, GLsizei width, GLsizei height)) \
- F(void, StencilFunc, (GLenum func, GLint ref, GLuint mask)) \
- F(void, StencilMask, (GLuint mask)) \
- F(void, StencilOp, (GLenum fail, GLenum zfail, GLenum zpass)) \
- F(void, TexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)) \
- F(void, TexParameterf, (GLenum target, GLenum pname, GLfloat param)) \
- F(void, TexParameterfv, (GLenum target, GLenum pname, const GLfloat* params)) \
- F(void, TexParameteri, (GLenum target, GLenum pname, GLint param)) \
- F(void, TexParameteriv, (GLenum target, GLenum pname, const GLint* params)) \
- F(void, TexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)) \
- F(void, Viewport, (GLint x, GLint y, GLsizei width, GLsizei height)) \
- F(void, ActiveTexture, (GLenum texture)) \
- F(void, AttachShader, (GLuint program, GLuint shader)) \
- F(void, BindAttribLocation, (GLuint program, GLuint index, const char* name)) \
- F(void, BindBuffer, (GLenum target, GLuint buffer)) \
- F(void, BindFramebuffer, (GLenum target, GLuint framebuffer)) \
- F(void, BindRenderbuffer, (GLenum target, GLuint renderbuffer)) \
- F(void, BlendColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) \
- F(void, BlendEquation, (GLenum mode)) \
- F(void, BlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha)) \
- F(void, BlendFuncSeparate, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \
- F(void, BufferData, (GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage)) \
- F(void, BufferSubData, (GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data)) \
- F(GLenum, CheckFramebufferStatus, (GLenum target)) \
- F(void, CompileShader, (GLuint shader)) \
- F(void, CompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)) \
- F(void, CompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)) \
- F(GLuint, CreateProgram, ()) \
- F(GLuint, CreateShader, (GLenum type)) \
- F(void, DeleteBuffers, (GLsizei n, const GLuint* buffers)) \
- F(void, DeleteFramebuffers, (GLsizei n, const GLuint* framebuffers)) \
- F(void, DeleteProgram, (GLuint program)) \
- F(void, DeleteRenderbuffers, (GLsizei n, const GLuint* renderbuffers)) \
- F(void, DeleteShader, (GLuint shader)) \
- F(void, DetachShader, (GLuint program, GLuint shader)) \
- F(void, DisableVertexAttribArray, (GLuint index)) \
- F(void, EnableVertexAttribArray, (GLuint index)) \
- F(void, FramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \
- F(void, FramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \
- F(void, GenBuffers, (GLsizei n, GLuint* buffers)) \
- F(void, GenerateMipmap, (GLenum target)) \
- F(void, GenFramebuffers, (GLsizei n, GLuint* framebuffers)) \
- F(void, GenRenderbuffers, (GLsizei n, GLuint* renderbuffers)) \
- F(void, GetActiveAttrib, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)) \
- F(void, GetActiveUniform, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)) \
- F(void, GetAttachedShaders, (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)) \
- F(GLint, GetAttribLocation, (GLuint program, const char* name)) \
- F(void, GetBufferParameteriv, (GLenum target, GLenum pname, GLint* params)) \
- F(void, GetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint* params)) \
- F(void, GetProgramiv, (GLuint program, GLenum pname, GLint* params)) \
- F(void, GetProgramInfoLog, (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)) \
- F(void, GetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint* params)) \
- F(void, GetShaderiv, (GLuint shader, GLenum pname, GLint* params)) \
- F(void, GetShaderInfoLog, (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)) \
- F(void, GetShaderPrecisionFormat, (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)) \
- F(void, GetShaderSource, (GLuint shader, GLsizei bufsize, GLsizei* length, char* source)) \
- F(void, GetUniformfv, (GLuint program, GLint location, GLfloat* params)) \
- F(void, GetUniformiv, (GLuint program, GLint location, GLint* params)) \
- F(GLint, GetUniformLocation, (GLuint program, const char* name)) \
- F(void, GetVertexAttribfv, (GLuint index, GLenum pname, GLfloat* params)) \
- F(void, GetVertexAttribiv, (GLuint index, GLenum pname, GLint* params)) \
- F(void, GetVertexAttribPointerv, (GLuint index, GLenum pname, void** pointer)) \
- F(GLboolean, IsBuffer, (GLuint buffer)) \
- F(GLboolean, IsFramebuffer, (GLuint framebuffer)) \
- F(GLboolean, IsProgram, (GLuint program)) \
- F(GLboolean, IsRenderbuffer, (GLuint renderbuffer)) \
- F(GLboolean, IsShader, (GLuint shader)) \
- F(void, LinkProgram, (GLuint program)) \
- F(void, ReleaseShaderCompiler, ()) \
- F(void, RenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \
- F(void, SampleCoverage, (GLclampf value, GLboolean invert)) \
- F(void, ShaderBinary, (GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)) \
- F(void, ShaderSource, (GLuint shader, GLsizei count, const char** string, const GLint* length)) \
- F(void, StencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask)) \
- F(void, StencilMaskSeparate, (GLenum face, GLuint mask)) \
- F(void, StencilOpSeparate, (GLenum face, GLenum fail, GLenum zfail, GLenum zpass)) \
- F(void, Uniform1f, (GLint location, GLfloat x)) \
- F(void, Uniform1fv, (GLint location, GLsizei count, const GLfloat* v)) \
- F(void, Uniform1i, (GLint location, GLint x)) \
- F(void, Uniform1iv, (GLint location, GLsizei count, const GLint* v)) \
- F(void, Uniform2f, (GLint location, GLfloat x, GLfloat y)) \
- F(void, Uniform2fv, (GLint location, GLsizei count, const GLfloat* v)) \
- F(void, Uniform2i, (GLint location, GLint x, GLint y)) \
- F(void, Uniform2iv, (GLint location, GLsizei count, const GLint* v)) \
- F(void, Uniform3f, (GLint location, GLfloat x, GLfloat y, GLfloat z)) \
- F(void, Uniform3fv, (GLint location, GLsizei count, const GLfloat* v)) \
- F(void, Uniform3i, (GLint location, GLint x, GLint y, GLint z)) \
- F(void, Uniform3iv, (GLint location, GLsizei count, const GLint* v)) \
- F(void, Uniform4f, (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \
- F(void, Uniform4fv, (GLint location, GLsizei count, const GLfloat* v)) \
- F(void, Uniform4i, (GLint location, GLint x, GLint y, GLint z, GLint w)) \
- F(void, Uniform4iv, (GLint location, GLsizei count, const GLint* v)) \
- F(void, UniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)) \
- F(void, UniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)) \
- F(void, UniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)) \
- F(void, UseProgram, (GLuint program)) \
- F(void, ValidateProgram, (GLuint program)) \
- F(void, VertexAttrib1f, (GLuint indx, GLfloat x)) \
- F(void, VertexAttrib1fv, (GLuint indx, const GLfloat* values)) \
- F(void, VertexAttrib2f, (GLuint indx, GLfloat x, GLfloat y)) \
- F(void, VertexAttrib2fv, (GLuint indx, const GLfloat* values)) \
- F(void, VertexAttrib3f, (GLuint indx, GLfloat x, GLfloat y, GLfloat z)) \
- F(void, VertexAttrib3fv, (GLuint indx, const GLfloat* values)) \
- F(void, VertexAttrib4f, (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \
- F(void, VertexAttrib4fv, (GLuint indx, const GLfloat* values)) \
- F(void, VertexAttribPointer, (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)) \
- F(void, ClearDepth, (GLdouble depth)) \
- F(void, DepthRange, (GLdouble zNear, GLdouble zFar)) \
- QT_OPENGL_DECLARE(QT_OPENGL_FUNCTIONS)
- };
- // GLES2 + OpenGL1 common subset
- inline void QOpenGLFunctions::glBindTexture(GLenum target, GLuint texture)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBindTexture(target, texture);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BindTexture(target, texture);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBlendFunc(GLenum sfactor, GLenum dfactor)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBlendFunc(sfactor, dfactor);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BlendFunc(sfactor, dfactor);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glClear(GLbitfield mask)
- {
- #ifdef QT_OPENGL_ES_2
- ::glClear(mask);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Clear(mask);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
- {
- #ifdef QT_OPENGL_ES_2
- ::glClearColor(red, green, blue, alpha);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ClearColor(red, green, blue, alpha);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glClearStencil(GLint s)
- {
- #ifdef QT_OPENGL_ES_2
- ::glClearStencil(s);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ClearStencil(s);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
- {
- #ifdef QT_OPENGL_ES_2
- ::glColorMask(red, green, blue, alpha);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ColorMask(red, green, blue, alpha);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCopyTexImage2D(target, level, internalformat, x, y, width,height, border);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CopyTexImage2D(target, level, internalformat, x, y, width,height, border);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCullFace(GLenum mode)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCullFace(mode);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CullFace(mode);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDeleteTextures(GLsizei n, const GLuint* textures)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteTextures(n, textures);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteTextures(n, textures);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDepthFunc(GLenum func)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDepthFunc(func);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DepthFunc(func);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDepthMask(GLboolean flag)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDepthMask(flag);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DepthMask(flag);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDisable(GLenum cap)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDisable(cap);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Disable(cap);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDrawArrays(GLenum mode, GLint first, GLsizei count)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDrawArrays(mode, first, count);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DrawArrays(mode, first, count);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDrawElements(mode, count, type, indices);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DrawElements(mode, count, type, indices);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glEnable(GLenum cap)
- {
- #ifdef QT_OPENGL_ES_2
- ::glEnable(cap);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Enable(cap);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glFinish()
- {
- #ifdef QT_OPENGL_ES_2
- ::glFinish();
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Finish();
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glFlush()
- {
- #ifdef QT_OPENGL_ES_2
- ::glFlush();
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Flush();
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glFrontFace(GLenum mode)
- {
- #ifdef QT_OPENGL_ES_2
- ::glFrontFace(mode);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.FrontFace(mode);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGenTextures(GLsizei n, GLuint* textures)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGenTextures(n, textures);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GenTextures(n, textures);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetBooleanv(GLenum pname, GLboolean* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetBooleanv(pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetBooleanv(pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLenum QOpenGLFunctions::glGetError()
- {
- #ifdef QT_OPENGL_ES_2
- GLenum result = ::glGetError();
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLenum result = d_ptr->f.GetError();
- #endif
- return result;
- }
- inline void QOpenGLFunctions::glGetFloatv(GLenum pname, GLfloat* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetFloatv(pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetFloatv(pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetIntegerv(GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetIntegerv(pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetIntegerv(pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline const GLubyte *QOpenGLFunctions::glGetString(GLenum name)
- {
- #ifdef QT_OPENGL_ES_2
- const GLubyte *result = ::glGetString(name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- const GLubyte *result = d_ptr->f.GetString(name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetTexParameterfv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetTexParameterfv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetTexParameteriv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetTexParameteriv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glHint(GLenum target, GLenum mode)
- {
- #ifdef QT_OPENGL_ES_2
- ::glHint(target, mode);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Hint(target, mode);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLboolean QOpenGLFunctions::glIsEnabled(GLenum cap)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsEnabled(cap);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsEnabled(cap);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLboolean QOpenGLFunctions::glIsTexture(GLuint texture)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsTexture(texture);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsTexture(texture);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glLineWidth(GLfloat width)
- {
- #ifdef QT_OPENGL_ES_2
- ::glLineWidth(width);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.LineWidth(width);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glPixelStorei(GLenum pname, GLint param)
- {
- #ifdef QT_OPENGL_ES_2
- ::glPixelStorei(pname, param);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.PixelStorei(pname, param);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glPolygonOffset(GLfloat factor, GLfloat units)
- {
- #ifdef QT_OPENGL_ES_2
- ::glPolygonOffset(factor, units);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.PolygonOffset(factor, units);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
- {
- #ifdef QT_OPENGL_ES_2
- ::glReadPixels(x, y, width, height, format, type, pixels);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ReadPixels(x, y, width, height, format, type, pixels);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
- {
- #ifdef QT_OPENGL_ES_2
- ::glScissor(x, y, width, height);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Scissor(x, y, width, height);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilFunc(GLenum func, GLint ref, GLuint mask)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilFunc(func, ref, mask);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilFunc(func, ref, mask);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilMask(GLuint mask)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilMask(mask);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilMask(mask);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilOp(fail, zfail, zpass);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilOp(fail, zfail, zpass);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexImage2D(target, level, internalformat, width,height, border, format, type, pixels);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexImage2D(target, level, internalformat, width,height, border, format, type, pixels);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexParameterf(GLenum target, GLenum pname, GLfloat param)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexParameterf(target, pname, param);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexParameterf(target, pname, param);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexParameterfv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexParameterfv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexParameteri(GLenum target, GLenum pname, GLint param)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexParameteri(target, pname, param);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexParameteri(target, pname, param);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexParameteriv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexParameteriv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
- {
- #ifdef QT_OPENGL_ES_2
- ::glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
- {
- #ifdef QT_OPENGL_ES_2
- ::glViewport(x, y, width, height);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Viewport(x, y, width, height);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- // GL(ES)2
- inline void QOpenGLFunctions::glActiveTexture(GLenum texture)
- {
- #ifdef QT_OPENGL_ES_2
- ::glActiveTexture(texture);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ActiveTexture(texture);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glAttachShader(GLuint program, GLuint shader)
- {
- #ifdef QT_OPENGL_ES_2
- ::glAttachShader(program, shader);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.AttachShader(program, shader);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBindAttribLocation(GLuint program, GLuint index, const char* name)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBindAttribLocation(program, index, name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BindAttribLocation(program, index, name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBindBuffer(GLenum target, GLuint buffer)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBindBuffer(target, buffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BindBuffer(target, buffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBindFramebuffer(GLenum target, GLuint framebuffer)
- {
- if (framebuffer == 0)
- framebuffer = QOpenGLContext::currentContext()->defaultFramebufferObject();
- #ifdef QT_OPENGL_ES_2
- ::glBindFramebuffer(target, framebuffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BindFramebuffer(target, framebuffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBindRenderbuffer(GLenum target, GLuint renderbuffer)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBindRenderbuffer(target, renderbuffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BindRenderbuffer(target, renderbuffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBlendColor(red, green, blue, alpha);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BlendColor(red, green, blue, alpha);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBlendEquation(GLenum mode)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBlendEquation(mode);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BlendEquation(mode);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBlendEquationSeparate(modeRGB, modeAlpha);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BlendEquationSeparate(modeRGB, modeAlpha);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBufferData(GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBufferData(target, size, data, usage);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BufferData(target, size, data, usage);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data)
- {
- #ifdef QT_OPENGL_ES_2
- ::glBufferSubData(target, offset, size, data);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.BufferSubData(target, offset, size, data);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLenum QOpenGLFunctions::glCheckFramebufferStatus(GLenum target)
- {
- #ifdef QT_OPENGL_ES_2
- GLenum result = ::glCheckFramebufferStatus(target);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLenum result = d_ptr->f.CheckFramebufferStatus(target);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glClearDepthf(GLclampf depth)
- {
- #ifndef QT_OPENGL_ES
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ClearDepthf(depth);
- #else
- ::glClearDepthf(depth);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCompileShader(GLuint shader)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCompileShader(shader);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CompileShader(shader);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
- {
- #ifdef QT_OPENGL_ES_2
- ::glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLuint QOpenGLFunctions::glCreateProgram()
- {
- #ifdef QT_OPENGL_ES_2
- GLuint result = ::glCreateProgram();
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLuint result = d_ptr->f.CreateProgram();
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLuint QOpenGLFunctions::glCreateShader(GLenum type)
- {
- #ifdef QT_OPENGL_ES_2
- GLuint result = ::glCreateShader(type);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLuint result = d_ptr->f.CreateShader(type);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glDeleteBuffers(GLsizei n, const GLuint* buffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteBuffers(n, buffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteBuffers(n, buffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteFramebuffers(n, framebuffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteFramebuffers(n, framebuffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDeleteProgram(GLuint program)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteProgram(program);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteProgram(program);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteRenderbuffers(n, renderbuffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteRenderbuffers(n, renderbuffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDeleteShader(GLuint shader)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDeleteShader(shader);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DeleteShader(shader);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDepthRangef(GLclampf zNear, GLclampf zFar)
- {
- #ifndef QT_OPENGL_ES
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DepthRangef(zNear, zFar);
- #else
- ::glDepthRangef(zNear, zFar);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDetachShader(GLuint program, GLuint shader)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDetachShader(program, shader);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DetachShader(program, shader);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glDisableVertexAttribArray(GLuint index)
- {
- #ifdef QT_OPENGL_ES_2
- ::glDisableVertexAttribArray(index);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.DisableVertexAttribArray(index);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glEnableVertexAttribArray(GLuint index)
- {
- #ifdef QT_OPENGL_ES_2
- ::glEnableVertexAttribArray(index);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.EnableVertexAttribArray(index);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
- {
- #ifdef QT_OPENGL_ES_2
- ::glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
- {
- #ifdef QT_OPENGL_ES_2
- ::glFramebufferTexture2D(target, attachment, textarget, texture, level);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.FramebufferTexture2D(target, attachment, textarget, texture, level);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGenBuffers(GLsizei n, GLuint* buffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGenBuffers(n, buffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GenBuffers(n, buffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGenerateMipmap(GLenum target)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGenerateMipmap(target);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GenerateMipmap(target);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGenFramebuffers(GLsizei n, GLuint* framebuffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGenFramebuffers(n, framebuffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GenFramebuffers(n, framebuffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGenRenderbuffers(n, renderbuffers);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GenRenderbuffers(n, renderbuffers);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetActiveAttrib(program, index, bufsize, length, size, type, name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetActiveAttrib(program, index, bufsize, length, size, type, name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetActiveUniform(program, index, bufsize, length, size, type, name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetActiveUniform(program, index, bufsize, length, size, type, name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetAttachedShaders(program, maxcount, count, shaders);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetAttachedShaders(program, maxcount, count, shaders);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLint QOpenGLFunctions::glGetAttribLocation(GLuint program, const char* name)
- {
- #ifdef QT_OPENGL_ES_2
- GLint result = ::glGetAttribLocation(program, name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLint result = d_ptr->f.GetAttribLocation(program, name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetBufferParameteriv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetBufferParameteriv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetProgramiv(GLuint program, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetProgramiv(program, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetProgramiv(program, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetProgramInfoLog(program, bufsize, length, infolog);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetProgramInfoLog(program, bufsize, length, infolog);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetRenderbufferParameteriv(target, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetRenderbufferParameteriv(target, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetShaderiv(shader, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetShaderiv(shader, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetShaderInfoLog(shader, bufsize, length, infolog);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetShaderInfoLog(shader, bufsize, length, infolog);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetShaderSource(shader, bufsize, length, source);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetShaderSource(shader, bufsize, length, source);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetUniformfv(GLuint program, GLint location, GLfloat* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetUniformfv(program, location, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetUniformfv(program, location, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetUniformiv(GLuint program, GLint location, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetUniformiv(program, location, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetUniformiv(program, location, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLint QOpenGLFunctions::glGetUniformLocation(GLuint program, const char* name)
- {
- #ifdef QT_OPENGL_ES_2
- GLint result = ::glGetUniformLocation(program, name);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLint result = d_ptr->f.GetUniformLocation(program, name);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetVertexAttribfv(index, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetVertexAttribfv(index, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetVertexAttribiv(index, pname, params);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetVertexAttribiv(index, pname, params);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
- {
- #ifdef QT_OPENGL_ES_2
- ::glGetVertexAttribPointerv(index, pname, pointer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.GetVertexAttribPointerv(index, pname, pointer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline GLboolean QOpenGLFunctions::glIsBuffer(GLuint buffer)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsBuffer(buffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsBuffer(buffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLboolean QOpenGLFunctions::glIsFramebuffer(GLuint framebuffer)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsFramebuffer(framebuffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsFramebuffer(framebuffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLboolean QOpenGLFunctions::glIsProgram(GLuint program)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsProgram(program);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsProgram(program);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLboolean QOpenGLFunctions::glIsRenderbuffer(GLuint renderbuffer)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsRenderbuffer(renderbuffer);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsRenderbuffer(renderbuffer);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline GLboolean QOpenGLFunctions::glIsShader(GLuint shader)
- {
- #ifdef QT_OPENGL_ES_2
- GLboolean result = ::glIsShader(shader);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- GLboolean result = d_ptr->f.IsShader(shader);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- return result;
- }
- inline void QOpenGLFunctions::glLinkProgram(GLuint program)
- {
- #ifdef QT_OPENGL_ES_2
- ::glLinkProgram(program);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.LinkProgram(program);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glReleaseShaderCompiler()
- {
- #ifdef QT_OPENGL_ES_2
- ::glReleaseShaderCompiler();
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ReleaseShaderCompiler();
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
- {
- #ifdef QT_OPENGL_ES_2
- ::glRenderbufferStorage(target, internalformat, width, height);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.RenderbufferStorage(target, internalformat, width, height);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glSampleCoverage(GLclampf value, GLboolean invert)
- {
- #ifdef QT_OPENGL_ES_2
- ::glSampleCoverage(value, invert);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.SampleCoverage(value, invert);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
- {
- #ifdef QT_OPENGL_ES_2
- ::glShaderBinary(n, shaders, binaryformat, binary, length);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ShaderBinary(n, shaders, binaryformat, binary, length);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
- {
- #ifdef QT_OPENGL_ES_2
- ::glShaderSource(shader, count, string, length);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ShaderSource(shader, count, string, length);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilFuncSeparate(face, func, ref, mask);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilFuncSeparate(face, func, ref, mask);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilMaskSeparate(GLenum face, GLuint mask)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilMaskSeparate(face, mask);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilMaskSeparate(face, mask);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
- {
- #ifdef QT_OPENGL_ES_2
- ::glStencilOpSeparate(face, fail, zfail, zpass);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.StencilOpSeparate(face, fail, zfail, zpass);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform1f(GLint location, GLfloat x)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform1f(location, x);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform1f(location, x);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform1fv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform1fv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform1i(GLint location, GLint x)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform1i(location, x);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform1i(location, x);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform1iv(GLint location, GLsizei count, const GLint* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform1iv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform1iv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform2f(GLint location, GLfloat x, GLfloat y)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform2f(location, x, y);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform2f(location, x, y);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform2fv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform2fv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform2i(GLint location, GLint x, GLint y)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform2i(location, x, y);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform2i(location, x, y);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform2iv(GLint location, GLsizei count, const GLint* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform2iv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform2iv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform3f(location, x, y, z);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform3f(location, x, y, z);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform3fv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform3fv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform3i(GLint location, GLint x, GLint y, GLint z)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform3i(location, x, y, z);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform3i(location, x, y, z);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform3iv(GLint location, GLsizei count, const GLint* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform3iv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform3iv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform4f(location, x, y, z, w);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform4f(location, x, y, z, w);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform4fv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform4fv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform4i(location, x, y, z, w);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform4i(location, x, y, z, w);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniform4iv(GLint location, GLsizei count, const GLint* v)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniform4iv(location, count, v);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.Uniform4iv(location, count, v);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniformMatrix2fv(location, count, transpose, value);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.UniformMatrix2fv(location, count, transpose, value);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniformMatrix3fv(location, count, transpose, value);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.UniformMatrix3fv(location, count, transpose, value);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUniformMatrix4fv(location, count, transpose, value);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.UniformMatrix4fv(location, count, transpose, value);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glUseProgram(GLuint program)
- {
- #ifdef QT_OPENGL_ES_2
- ::glUseProgram(program);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.UseProgram(program);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glValidateProgram(GLuint program)
- {
- #ifdef QT_OPENGL_ES_2
- ::glValidateProgram(program);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.ValidateProgram(program);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib1f(GLuint indx, GLfloat x)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib1f(indx, x);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib1f(indx, x);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib1fv(GLuint indx, const GLfloat* values)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib1fv(indx, values);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib1fv(indx, values);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib2f(indx, x, y);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib2f(indx, x, y);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib2fv(GLuint indx, const GLfloat* values)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib2fv(indx, values);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib2fv(indx, values);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib3f(indx, x, y, z);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib3f(indx, x, y, z);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib3fv(GLuint indx, const GLfloat* values)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib3fv(indx, values);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib3fv(indx, values);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib4f(indx, x, y, z, w);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib4f(indx, x, y, z, w);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttrib4fv(GLuint indx, const GLfloat* values)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttrib4fv(indx, values);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttrib4fv(indx, values);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
- {
- #ifdef QT_OPENGL_ES_2
- ::glVertexAttribPointer(indx, size, type, normalized, stride, ptr);
- #else
- Q_ASSERT(QOpenGLFunctions::isInitialized(d_ptr));
- d_ptr->f.VertexAttribPointer(indx, size, type, normalized, stride, ptr);
- #endif
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- #undef QT_OPENGL_DECLARE_FUNCTIONS
- #undef QT_OPENGL_COUNT_FUNCTIONS
- #undef QT_OPENGL_DECLARE
- QT_END_NAMESPACE
- #endif // QT_NO_OPENGL
- #endif
|