gfx/gl/GLContextSymbols.h

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 /* -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40; -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef GLCONTEXTSYMBOLS_H_
     7 #define GLCONTEXTSYMBOLS_H_
     9 #include "GLDefs.h"
    11 /*
    12  * This file should only be included by GLContext.h, and should be
    13  * autogenerated in the future.
    14  */
    16 #ifndef GLAPIENTRY
    17 #ifdef XP_WIN
    18 #define GLAPIENTRY __stdcall
    19 #else
    20 #define GLAPIENTRY
    21 #endif
    22 #define GLAPI
    23 #endif
    25 namespace mozilla {
    26 namespace gl {
    28 struct GLContextSymbols
    29 {
    30     GLContextSymbols() {
    31         Zero();
    32     }
    34     void Zero() {
    35         memset(this, 0, sizeof(GLContextSymbols));
    36     }
    38     typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
    39     PFNGLACTIVETEXTUREPROC fActiveTexture;
    40     typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
    41     PFNGLATTACHSHADERPROC fAttachShader;
    42     typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
    43     PFNGLBEGINQUERYPROC fBeginQuery;
    44     typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name);
    45     PFNGLBINDATTRIBLOCATIONPROC fBindAttribLocation;
    46     typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
    47     PFNGLBINDBUFFERPROC fBindBuffer;
    48     typedef void (GLAPIENTRY * PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
    49     PFNGLBINDTEXTUREPROC fBindTexture;
    50     typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
    51     PFNGLBINDVERTEXARRAYPROC fBindVertexArray;
    52     typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
    53     PFNGLBLENDCOLORPROC fBlendColor;
    54     typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
    55     PFNGLBLENDEQUATIONPROC fBlendEquation;
    56     typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum);
    57     PFNGLBLENDEQUATIONSEPARATEPROC fBlendEquationSeparate;
    58     typedef void (GLAPIENTRY * PFNGLBLENDFUNCPROC) (GLenum, GLenum);
    59     PFNGLBLENDFUNCPROC fBlendFunc;
    60     typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
    61     PFNGLBLENDFUNCSEPARATEPROC fBlendFuncSeparate;
    62     typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
    63     PFNGLBUFFERDATAPROC fBufferData;
    64     typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
    65     PFNGLBUFFERSUBDATAPROC fBufferSubData;
    66     typedef void (GLAPIENTRY * PFNGLCLEARPROC) (GLbitfield);
    67     PFNGLCLEARPROC fClear;
    68     typedef void (GLAPIENTRY * PFNGLCLEARCOLORPROC) (GLclampf, GLclampf, GLclampf, GLclampf);
    69     PFNGLCLEARCOLORPROC fClearColor;
    70     typedef void (GLAPIENTRY * PFNGLCLEARSTENCILPROC) (GLint);
    71     PFNGLCLEARSTENCILPROC fClearStencil;
    72     typedef void (GLAPIENTRY * PFNGLCOLORMASKPROC) (realGLboolean red, realGLboolean green, realGLboolean blue, realGLboolean alpha);
    73     PFNGLCOLORMASKPROC fColorMask;
    74     typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *pixels);
    75     PFNGLCOMPRESSEDTEXIMAGE2D fCompressedTexImage2D;
    76     typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *pixels);
    77     PFNGLCOMPRESSEDTEXSUBIMAGE2D fCompressedTexSubImage2D;
    78     typedef void (GLAPIENTRY * PFNGLCULLFACEPROC) (GLenum mode);
    79     PFNGLCULLFACEPROC fCullFace;
    80     typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
    81     PFNGLDETACHSHADERPROC fDetachShader;
    82     typedef void (GLAPIENTRY * PFNGLDEPTHFUNCPROC) (GLenum);
    83     PFNGLDEPTHFUNCPROC fDepthFunc;
    84     typedef void (GLAPIENTRY * PFNGLDEPTHMASKPROC) (realGLboolean);
    85     PFNGLDEPTHMASKPROC fDepthMask;
    86     typedef void (GLAPIENTRY * PFNGLDISABLEPROC) (GLenum);
    87     PFNGLDISABLEPROC fDisable;
    88     typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint);
    89     PFNGLDISABLEVERTEXATTRIBARRAYPROC fDisableVertexAttribArray;
    90     typedef void (GLAPIENTRY * PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
    91     PFNGLDRAWARRAYSPROC fDrawArrays;
    92     typedef void (GLAPIENTRY * PFNGLDRAWBUFFERPROC) (GLenum mode);
    93     PFNGLDRAWBUFFERPROC fDrawBuffer;
    94     typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs);
    95     PFNGLDRAWBUFFERSPROC fDrawBuffers;
    96     typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
    97     PFNGLDRAWELEMENTSPROC fDrawElements;
    98     typedef void (GLAPIENTRY * PFNGLENABLEPROC) (GLenum);
    99     PFNGLENABLEPROC fEnable;
   100     typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint);
   101     PFNGLENABLEVERTEXATTRIBARRAYPROC fEnableVertexAttribArray;
   102     typedef void (GLAPIENTRY * PFNGLFINISHPROC) (void);
   103     PFNGLFINISHPROC fFinish;
   104     typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target);
   105     PFNGLENDQUERYPROC fEndQuery;
   106     typedef void (GLAPIENTRY * PFNGLFLUSHPROC) (void);
   107     PFNGLFLUSHPROC fFlush;
   108     typedef void (GLAPIENTRY * PFNGLFRONTFACEPROC) (GLenum);
   109     PFNGLFRONTFACEPROC fFrontFace;
   110     typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
   111     PFNGLGETACTIVEATTRIBPROC fGetActiveAttrib;
   112     typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
   113     PFNGLGETACTIVEUNIFORMPROC fGetActiveUniform;
   114     typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
   115     PFNGLGETATTACHEDSHADERSPROC fGetAttachedShaders;
   116     typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name);
   117     PFNGLGETATTRIBLOCATIONPROC fGetAttribLocation;
   118     typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
   119     PFNGLGETINTEGERVPROC fGetIntegerv;
   120     typedef void (GLAPIENTRY * PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params);
   121     PFNGLGETFLOATVPROC fGetFloatv;
   122     typedef void (GLAPIENTRY * PFNGLGETBOOLEANBPROC) (GLenum pname, realGLboolean *params);
   123     PFNGLGETBOOLEANBPROC fGetBooleanv;
   124     typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
   125     PFNGLGETBUFFERPARAMETERIVPROC fGetBufferParameteriv;
   126     typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target);
   127     PFNGLGENERATEMIPMAPPROC fGenerateMipmap;
   128     typedef GLenum (GLAPIENTRY * PFNGLGETERRORPROC) (void);
   129     PFNGLGETERRORPROC fGetError;
   130     typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param);
   131     PFNGLGETPROGRAMIVPROC fGetProgramiv;
   132     typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
   133     PFNGLGETPROGRAMINFOLOGPROC fGetProgramInfoLog;
   134     typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params);
   135     PFNGLGETQUERYIVPROC fGetQueryiv;
   136     typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params);
   137     PFNGLGETQUERYOBJECTIVPROC fGetQueryObjectiv;
   138     typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
   139     PFNGLGETQUERYOBJECTUIVPROC fGetQueryObjectuiv;
   140     typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
   141     PFNGLTEXPARAMETERIPROC fTexParameteri;
   142     typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint* param);
   143     PFNGLTEXPARAMETERIVPROC fTexParameteriv;
   144     typedef void (GLAPIENTRY * PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
   145     PFNGLTEXPARAMETERFPROC fTexParameterf;
   146     typedef GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum);
   147     PFNGLGETSTRINGPROC fGetString;
   148     typedef void (GLAPIENTRY * PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid* image);
   149     PFNGLGETTEXIMAGEPROC fGetTexImage;
   150     typedef void (GLAPIENTRY * PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
   151     PFNGLGETTEXLEVELPARAMETERIVPROC fGetTexLevelParameteriv;
   152     typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
   153     PFNGLGETTEXPARAMETERFVPROC fGetTexParameterfv;
   154     typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
   155     PFNGLGETTEXPARAMETERIVPROC fGetTexParameteriv;
   156     typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params);
   157     PFNGLGETUNIFORMFVPROC fGetUniformfv;
   158     typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params);
   159     PFNGLGETUNIFORMIVPROC fGetUniformiv;
   160     typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLint programObj, const GLchar* name);
   161     PFNGLGETUNIFORMLOCATIONPROC fGetUniformLocation;
   162     typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*);
   163     PFNGLGETVERTEXATTRIBFVPROC fGetVertexAttribfv;
   164     typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*);
   165     PFNGLGETVERTEXATTRIBIVPROC fGetVertexAttribiv;
   166     typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**);
   167     PFNGLGETVERTEXATTRIBPOINTERVPROC fGetVertexAttribPointerv;
   168     typedef void (GLAPIENTRY * PFNGLHINTPROC) (GLenum target, GLenum mode);
   169     PFNGLHINTPROC fHint;
   170     typedef realGLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer);
   171     PFNGLISBUFFERPROC fIsBuffer;
   172     typedef realGLboolean (GLAPIENTRY * PFNGLISENABLEDPROC) (GLenum cap);
   173     PFNGLISENABLEDPROC fIsEnabled;
   174     typedef realGLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program);
   175     PFNGLISPROGRAMPROC fIsProgram;
   176     typedef realGLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id);
   177     PFNGLISQUERYPROC fIsQuery;
   178     typedef realGLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader);
   179     PFNGLISSHADERPROC fIsShader;
   180     typedef realGLboolean (GLAPIENTRY * PFNGLISTEXTUREPROC) (GLuint texture);
   181     PFNGLISTEXTUREPROC fIsTexture;
   182     typedef void (GLAPIENTRY * PFNGLLINEWIDTHPROC) (GLfloat width);
   183     PFNGLLINEWIDTHPROC fLineWidth;
   184     typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program);
   185     PFNGLLINKPROGRAMPROC fLinkProgram;
   186     typedef void (GLAPIENTRY * PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
   187     PFNGLPIXELSTOREIPROC fPixelStorei;
   188     typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
   189     PFNGLPOINTPARAMETERFPROC fPointParameterf;
   190     typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat bias);
   191     PFNGLPOLYGONOFFSETPROC fPolygonOffset;
   192     typedef void (GLAPIENTRY * PFNGLREADBUFFERPROC) (GLenum);
   193     PFNGLREADBUFFERPROC fReadBuffer;
   194     typedef void (GLAPIENTRY * PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
   195     PFNGLREADPIXELSPROC fReadPixels;
   196     typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, realGLboolean invert);
   197     PFNGLSAMPLECOVERAGEPROC fSampleCoverage;
   198     typedef void (GLAPIENTRY * PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
   199     PFNGLSTENCILFUNCPROC fStencilFunc;
   200     typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
   201     PFNGLSTENCILFUNCSEPARATEPROC fStencilFuncSeparate;
   202     typedef void (GLAPIENTRY * PFNGLSTENCILMASKPROC) (GLuint mask);
   203     PFNGLSTENCILMASKPROC fStencilMask;
   204     typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint);
   205     PFNGLSTENCILMASKSEPARATEPROC fStencilMaskSeparate;
   206     typedef void (GLAPIENTRY * PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
   207     PFNGLSTENCILOPPROC fStencilOp;
   208     typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
   209     PFNGLSTENCILOPSEPARATEPROC fStencilOpSeparate;
   210     typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
   211     PFNGLTEXIMAGE2DPROC fTexImage2D;
   212     typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels);
   213     PFNGLTEXSUBIMAGE2DPROC fTexSubImage2D;
   214     typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer);
   215     PFNGLTEXTURERANGEAPPLEPROC fTextureRangeAPPLE;
   216     typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
   217     PFNGLUNIFORM1FPROC fUniform1f;
   218     typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value);
   219     PFNGLUNIFORM1FVPROC fUniform1fv;
   220     typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
   221     PFNGLUNIFORM1IPROC fUniform1i;
   222     typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value);
   223     PFNGLUNIFORM1IVPROC fUniform1iv;
   224     typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
   225     PFNGLUNIFORM2FPROC fUniform2f;
   226     typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value);
   227     PFNGLUNIFORM2FVPROC fUniform2fv;
   228     typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
   229     PFNGLUNIFORM2IPROC fUniform2i;
   230     typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value);
   231     PFNGLUNIFORM2IVPROC fUniform2iv;
   232     typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
   233     PFNGLUNIFORM3FPROC fUniform3f;
   234     typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value);
   235     PFNGLUNIFORM3FVPROC fUniform3fv;
   236     typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
   237     PFNGLUNIFORM3IPROC fUniform3i;
   238     typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value);
   239     PFNGLUNIFORM3IVPROC fUniform3iv;
   240     typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
   241     PFNGLUNIFORM4FPROC fUniform4f;
   242     typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value);
   243     PFNGLUNIFORM4FVPROC fUniform4fv;
   244     typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
   245     PFNGLUNIFORM4IPROC fUniform4i;
   246     typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value);
   247     PFNGLUNIFORM4IVPROC fUniform4iv;
   248     typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value);
   249     PFNGLUNIFORMMATRIX2FVPROC fUniformMatrix2fv;
   250     typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value);
   251     PFNGLUNIFORMMATRIX3FVPROC fUniformMatrix3fv;
   252     typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value);
   253     PFNGLUNIFORMMATRIX4FVPROC fUniformMatrix4fv;
   254     typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program);
   255     PFNGLUSEPROGRAMPROC fUseProgram;
   256     typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
   257     PFNGLVALIDATEPROGRAMPROC fValidateProgram;
   258     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, realGLboolean normalized, GLsizei stride, const GLvoid* pointer);
   259     PFNGLVERTEXATTRIBPOINTERPROC fVertexAttribPointer;
   260     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
   261     PFNGLVERTEXATTRIB1FPROC fVertexAttrib1f;
   262     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
   263     PFNGLVERTEXATTRIB2FPROC fVertexAttrib2f;
   264     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
   265     PFNGLVERTEXATTRIB3FPROC fVertexAttrib3f;
   266     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
   267     PFNGLVERTEXATTRIB4FPROC fVertexAttrib4f;
   268     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v);
   269     PFNGLVERTEXATTRIB1FVPROC fVertexAttrib1fv;
   270     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v);
   271     PFNGLVERTEXATTRIB2FVPROC fVertexAttrib2fv;
   272     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v);
   273     PFNGLVERTEXATTRIB3FVPROC fVertexAttrib3fv;
   274     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v);
   275     PFNGLVERTEXATTRIB4FVPROC fVertexAttrib4fv;
   276     typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader);
   277     PFNGLCOMPILESHADERPROC fCompileShader;
   278     typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
   279     PFNGLCOPYTEXIMAGE2DPROC fCopyTexImage2D;
   280     typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
   281     PFNGLCOPYTEXSUBIMAGE2DPROC fCopyTexSubImage2D;
   282     typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param);
   283     PFNGLGETSHADERIVPROC fGetShaderiv;
   284     typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
   285     PFNGLGETSHADERINFOLOGPROC fGetShaderInfoLog;
   286     typedef void (GLAPIENTRY * PFNGETSHADERPRECISIONFORMAT) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
   287     PFNGETSHADERPRECISIONFORMAT fGetShaderPrecisionFormat;
   288     typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source);
   289     PFNGLGETSHADERSOURCEPROC fGetShaderSource;
   290     typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths);
   291     PFNGLSHADERSOURCEPROC fShaderSource;
   293     typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFER) (GLenum target, GLuint framebuffer);
   294     PFNGLBINDFRAMEBUFFER fBindFramebuffer;
   295     typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFER) (GLenum target, GLuint renderbuffer);
   296     PFNGLBINDRENDERBUFFER fBindRenderbuffer;
   297     typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUS) (GLenum target);
   298     PFNGLCHECKFRAMEBUFFERSTATUS fCheckFramebufferStatus;
   299     typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFER) (GLenum target, GLenum attachmentPoint, GLenum renderbufferTarget, GLuint renderbuffer);
   300     PFNGLFRAMEBUFFERRENDERBUFFER fFramebufferRenderbuffer;
   301     typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2D) (GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint texture, GLint level);
   302     PFNGLFRAMEBUFFERTEXTURE2D fFramebufferTexture2D;
   303     typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV) (GLenum target, GLenum attachment, GLenum pname, GLint* value);
   304     PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV fGetFramebufferAttachmentParameteriv;
   305     typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIV) (GLenum target, GLenum pname, GLint* value);
   306     PFNGLGETRENDERBUFFERPARAMETERIV fGetRenderbufferParameteriv;
   307     typedef realGLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFER) (GLuint framebuffer);
   308     PFNGLISFRAMEBUFFER fIsFramebuffer;
   309     typedef realGLboolean (GLAPIENTRY * PFNGLISRENDERBUFFER) (GLuint renderbuffer);
   310     PFNGLISRENDERBUFFER fIsRenderbuffer;
   311     typedef realGLboolean (GLAPIENTRY * PFNGLISVERTEXARRAY) (GLuint array);
   312     PFNGLISVERTEXARRAY fIsVertexArray;
   313     typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGE) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
   314     PFNGLRENDERBUFFERSTORAGE fRenderbufferStorage;
   316         // These functions are only used by Skia/GL in desktop mode.
   317         // Other parts of Gecko should avoid using these
   318         typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTURE) (GLenum texture);
   319         PFNGLCLIENTACTIVETEXTURE fClientActiveTexture;
   320         typedef void (GLAPIENTRY * PFNDISABLECLIENTSTATE) (GLenum capability);
   321         PFNDISABLECLIENTSTATE fDisableClientState;
   322         typedef void (GLAPIENTRY * PFNENABLECLIENTSTATE) (GLenum capability);
   323         PFNENABLECLIENTSTATE fEnableClientState;
   324         typedef void (GLAPIENTRY * PFNLOADIDENTITY) (void);
   325         PFNLOADIDENTITY fLoadIdentity;
   326         typedef void (GLAPIENTRY * PFNLOADMATRIXD) (const GLdouble* matrix);
   327         PFNLOADMATRIXD fLoadMatrixd;
   328         typedef void (GLAPIENTRY * PFNLOADMATRIXF) (const GLfloat* matrix);
   329         PFNLOADMATRIXF fLoadMatrixf;
   330         typedef void (GLAPIENTRY * PFNMATRIXMODE) (GLenum mode);
   331         PFNMATRIXMODE fMatrixMode;
   332         typedef void (GLAPIENTRY * PFNTEXGENI) (GLenum coord, GLenum pname, GLint param);
   333         PFNTEXGENI fTexGeni;
   334         typedef void (GLAPIENTRY * PFNTEXGENF) (GLenum coord, GLenum pname, GLfloat param);
   335         PFNTEXGENF fTexGenf;
   336         typedef void (GLAPIENTRY * PFNTEXGENFV) (GLenum coord, GLenum pname, const GLfloat* param);
   337         PFNTEXGENFV fTexGenfv;
   338         typedef void (GLAPIENTRY * PFNVERTEXPOINTER) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
   339         PFNVERTEXPOINTER fVertexPointer;
   341     typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFER) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
   342     PFNGLBLITFRAMEBUFFER fBlitFramebuffer;
   343     typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLE) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
   344     PFNGLRENDERBUFFERSTORAGEMULTISAMPLE fRenderbufferStorageMultisample;
   347     /* These are different between GLES2 and desktop GL; we hide those differences, use the GL
   348      * names, but the most limited data type.
   349      */
   350     typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf, GLclampf);
   351     PFNGLDEPTHRANGEFPROC fDepthRangef;
   352     typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf);
   353     PFNGLCLEARDEPTHFPROC fClearDepthf;
   355     typedef void (GLAPIENTRY * PFNGLDEPTHRANGEPROC) (GLclampd, GLclampd);
   356     PFNGLDEPTHRANGEPROC fDepthRange;
   357     typedef void (GLAPIENTRY * PFNGLCLEARDEPTHPROC) (GLclampd);
   358     PFNGLCLEARDEPTHPROC fClearDepth;
   360     /* These are special because we end up tracking these so that we don't
   361      * have to query the values from GL.
   362      */
   364     typedef void (GLAPIENTRY * PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
   365     PFNGLVIEWPORTPROC fViewport;
   366     typedef void (GLAPIENTRY * PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
   367     PFNGLSCISSORPROC fScissor;
   370     /* These are special -- they create or delete GL resources that can live
   371      * in a shared namespace.  In DEBUG, we wrap these calls so that we can
   372      * check when we have something that failed to do cleanup at the time the
   373      * final context is destroyed.
   374      */
   376     typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void);
   377     PFNGLCREATEPROGRAMPROC fCreateProgram;
   378     typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type);
   379     PFNGLCREATESHADERPROC fCreateShader;
   380     typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
   381     PFNGLGENBUFFERSPROC fGenBuffers;
   382     typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* queries);
   383     PFNGLGENQUERIESPROC fGenQueries;
   384     typedef void (GLAPIENTRY * PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
   385     PFNGLGENTEXTURESPROC fGenTextures;
   386     typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERS) (GLsizei n, GLuint* ids);
   387     PFNGLGENFRAMEBUFFERS fGenFramebuffers;
   388     typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERS) (GLsizei n, GLuint* ids);
   389     PFNGLGENRENDERBUFFERS fGenRenderbuffers;
   390     typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYS) (GLsizei n, GLuint* arrays);
   391     PFNGLGENVERTEXARRAYS fGenVertexArrays;
   393     typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program);
   394     PFNGLDELETEPROGRAMPROC fDeleteProgram;
   395     typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader);
   396     PFNGLDELETESHADERPROC fDeleteShader;
   397     typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers);
   398     PFNGLDELETEBUFFERSPROC fDeleteBuffers;
   399     typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* queries);
   400     PFNGLDELETEQUERIESPROC fDeleteQueries;
   401     typedef void (GLAPIENTRY * PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint* textures);
   402     PFNGLDELETETEXTURESPROC fDeleteTextures;
   403     typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERS) (GLsizei n, const GLuint* ids);
   404     PFNGLDELETEFRAMEBUFFERS fDeleteFramebuffers;
   405     typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERS) (GLsizei n, const GLuint* ids);
   406     PFNGLDELETERENDERBUFFERS fDeleteRenderbuffers;
   407     typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYS) (GLsizei n, const GLuint* arrays);
   408     PFNGLDELETEVERTEXARRAYS fDeleteVertexArrays;
   410     typedef void* (GLAPIENTRY * PFNGLMAPBUFFER) (GLenum target, GLenum access);
   411     PFNGLMAPBUFFER fMapBuffer;
   412     typedef realGLboolean (GLAPIENTRY * PFNGLUNMAPBUFFER) (GLenum target);
   413     PFNGLUNMAPBUFFER fUnmapBuffer;
   415     typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUS) (void);
   416     PFNGLGETGRAPHICSRESETSTATUS fGetGraphicsResetStatus;
   418     // ARB_sync
   419     typedef GLsync (GLAPIENTRY * PFNGLFENCESYNC) (GLenum condition, GLbitfield flags);
   420     PFNGLFENCESYNC fFenceSync;
   421     typedef realGLboolean (GLAPIENTRY * PFNGLISSYNC) (GLsync sync);
   422     PFNGLISSYNC fIsSync;
   423     typedef void (GLAPIENTRY * PFNGLDELETESYNC) (GLsync sync);
   424     PFNGLDELETESYNC fDeleteSync;
   425     typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
   426     PFNGLCLIENTWAITSYNC fClientWaitSync;
   427     typedef void (GLAPIENTRY * PFNGLWAITSYNC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
   428     PFNGLWAITSYNC fWaitSync;
   429     typedef void (GLAPIENTRY * PFNGLGETINTEGER64V) (GLenum pname, GLint64 *params);
   430     PFNGLGETINTEGER64V fGetInteger64v;
   431     typedef void (GLAPIENTRY * PFNGLGETSYNCIV) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
   432     PFNGLGETSYNCIV fGetSynciv;
   434     // OES_egl_image
   435     typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURE2D)(GLenum target, GLeglImage image);
   436     PFNGLEGLIMAGETARGETTEXTURE2D fEGLImageTargetTexture2D;
   437     typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGE)(GLenum target, GLeglImage image);
   438     PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGE fEGLImageTargetRenderbufferStorage;
   440     // ARB_draw_instanced
   441     typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCED) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
   442     PFNGLDRAWARRAYSINSTANCED fDrawArraysInstanced;
   443     typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCED) (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei primcount);
   444     PFNGLDRAWELEMENTSINSTANCED fDrawElementsInstanced;
   446     // ARB_instanced_array
   447     typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOR) (GLuint index, GLuint divisor);
   448     PFNGLVERTEXATTRIBDIVISOR fVertexAttribDivisor;
   450     // EXT_transform_feedback / OpenGL (ES) 3.0
   451     typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASE) (GLenum target, GLuint index, GLuint buffer);
   452     PFNGLBINDBUFFERBASE fBindBufferBase;
   453     typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGE) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
   454     PFNGLBINDBUFFERRANGE fBindBufferRange;
   456     typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACK) (GLenum primitiveMode);
   457     PFNGLBEGINTRANSFORMFEEDBACK fBeginTransformFeedback;
   458     typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACK) (void);
   459     PFNGLENDTRANSFORMFEEDBACK fEndTransformFeedback;
   461     typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGS) (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
   462     PFNGLTRANSFORMFEEDBACKVARYINGS fTransformFeedbackVaryings;
   463     typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYING) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
   464     PFNGLGETTRANSFORMFEEDBACKVARYING fGetTransformFeedbackVarying;
   466     typedef void (GLAPIENTRY * PFNGLGETINTEGERI_V) (GLenum param, GLuint index, GLint* values);
   467     PFNGLGETINTEGERI_V fGetIntegeri_v;
   469     // EXT_transform_feedback only
   470     typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSET) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
   471     PFNGLBINDBUFFEROFFSET fBindBufferOffset;
   473     // KHR_debug
   474     typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROL) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, realGLboolean enabled);
   475     PFNGLDEBUGMESSAGECONTROL fDebugMessageControl;
   476     typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERT) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
   477     PFNGLDEBUGMESSAGEINSERT fDebugMessageInsert;
   478     typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACK) (GLDEBUGPROC callback, const GLvoid* userParam);
   479     PFNGLDEBUGMESSAGECALLBACK fDebugMessageCallback;
   480     typedef GLuint (GLAPIENTRY * PFNGLDEBUGMESSAGELOG) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
   481     PFNGLDEBUGMESSAGELOG fGetDebugMessageLog;
   482     typedef void (GLAPIENTRY * PFNGLGETPOINTERV) (GLenum pname, GLvoid** params);
   483     PFNGLGETPOINTERV fGetPointerv;
   484     typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUP) (GLenum source, GLuint id, GLsizei length, const GLchar* message);
   485     PFNGLPUSHDEBUGGROUP fPushDebugGroup;
   486     typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUP) (void);
   487     PFNGLPOPDEBUGGROUP fPopDebugGroup;
   488     typedef void (GLAPIENTRY * PFNGLOBJECTLABEL) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
   489     PFNGLOBJECTLABEL fObjectLabel;
   490     typedef void (GLAPIENTRY * PFNGLGETOBJECTLABEL) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
   491     PFNGLGETOBJECTLABEL fGetObjectLabel;
   492     typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABEL) (const GLvoid* ptr, GLsizei length, const GLchar* label);
   493     PFNGLOBJECTPTRLABEL fObjectPtrLabel;
   494     typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABEL) (const GLvoid* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
   495     PFNGLGETOBJECTPTRLABEL fGetObjectPtrLabel;
   497     // draw_range_elements
   498     typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTS) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
   499     PFNGLDRAWRANGEELEMENTS fDrawRangeElements;
   500 };
   502 }
   503 }
   505 #endif /* GLCONTEXTSYMBOLS_H_ */

mercurial