diff --git a/content/canvas/public/nsICanvasElement.h b/content/canvas/public/nsICanvasElement.h deleted file mode 100644 index 58e28eac657..00000000000 --- a/content/canvas/public/nsICanvasElement.h +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Vladimir Vukicevic - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef nsICanvasElement_h___ -#define nsICanvasElement_h___ - -#include "nsISupports.h" -#include "gfxPattern.h" - -class gfxContext; -class nsIFrame; -struct gfxRect; - -// {D31B3CCF-DDA3-49a8-AEF6-B95AF8E09159} -#define NS_ICANVASELEMENT_IID \ - { 0xd31b3ccf, 0xdda3, 0x49a8, { 0xae, 0xf6, 0xb9, 0x5a, 0xf8, 0xe0, 0x91, 0x59 } } - -class nsIRenderingContext; - -class nsICanvasRenderingContextInternal; - -struct _cairo_surface; - -class nsICanvasElement : public nsISupports { -public: - NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICANVASELEMENT_IID) - - /** - * Ask the canvas Element to return the primary frame, if any - */ - NS_IMETHOD GetPrimaryCanvasFrame (nsIFrame **aFrame) = 0; - - /** - * Get the size in pixels of this canvas element - */ - NS_IMETHOD GetSize (PRUint32 *width, PRUint32 *height) = 0; - - /* - * Ask the canvas element to tell the contexts to render themselves - * to the given gfxContext at the origin of its coordinate space. - */ - NS_IMETHOD RenderContexts (gfxContext *ctx, gfxPattern::GraphicsFilter aFilter) = 0; - - /** - * Determine whether the canvas is write-only. - */ - virtual PRBool IsWriteOnly() = 0; - - /** - * Force the canvas to be write-only. - */ - virtual void SetWriteOnly() = 0; - - /* - * Ask the canvas frame to invalidate itself - */ - NS_IMETHOD InvalidateFrame () = 0; - - /* - * Ask the canvas frame to invalidate a portion of the frame; damageRect - * is relative to the origin of the canvas frame in CSS pixels. - */ - NS_IMETHOD InvalidateFrameSubrect (const gfxRect& damageRect) = 0; - - /* - * Get the number of contexts in this canvas, and request a context at - * an index. - */ - virtual PRInt32 CountContexts () = 0; - virtual nsICanvasRenderingContextInternal *GetContextAtIndex (PRInt32 index) = 0; - - virtual PRBool GetIsOpaque() = 0; - -}; - -NS_DEFINE_STATIC_IID_ACCESSOR(nsICanvasElement, NS_ICANVASELEMENT_IID) - -#endif /* nsICanvasElement_h___ */ diff --git a/content/canvas/src/glwrap.cpp b/content/canvas/src/glwrap.cpp deleted file mode 100644 index 8f6a221d5a0..00000000000 --- a/content/canvas/src/glwrap.cpp +++ /dev/null @@ -1,343 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * Mark Steele - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifdef C3D_STANDALONE_BUILD -#include "c3d-standalone.h" -#endif - -#include -#include - -#include "prlink.h" - -#include "glwrap.h" - -#define MAX_SYMBOL_LENGTH 128 -#define MAX_SYMBOL_NAMES 5 - -bool -LibrarySymbolLoader::OpenLibrary(const char *library) -{ - PRLibSpec lspec; - lspec.type = PR_LibSpec_Pathname; - lspec.value.pathname = library; - - mLibrary = PR_LoadLibraryWithFlags(lspec, PR_LD_LAZY | PR_LD_LOCAL); - if (!mLibrary) - return false; - - return true; -} - -PRFuncPtr -LibrarySymbolLoader::LookupSymbol(const char *sym, bool tryplatform) -{ - PRFuncPtr res = 0; - - // try finding it in the library directly, if we have one - if (mLibrary) { - res = PR_FindFunctionSymbol(mLibrary, sym); - } - - // try finding it in the process - if (!res) { - PRLibrary *leakedLibRef; - res = PR_FindFunctionSymbolAndLibrary(sym, &leakedLibRef); - } - - // no? then try looking it up via the lookup symbol - if (!res && tryplatform && mLookupFunc) { - res = mLookupFunc (sym); - } - - return res; -} - -bool -LibrarySymbolLoader::LoadSymbols(SymLoadStruct *firstStruct, bool tryplatform, const char *prefix) -{ - char sbuf[MAX_SYMBOL_LENGTH * 2]; - - SymLoadStruct *ss = firstStruct; - while (ss->symPointer) { - *ss->symPointer = 0; - - for (int i = 0; i < MAX_SYMBOL_NAMES; i++) { - if (ss->symNames[i] == NULL) - break; - - const char *s = ss->symNames[i]; - if (prefix && *prefix != 0) { - strcpy(sbuf, prefix); - strcat(sbuf, ss->symNames[i]); - s = sbuf; - } - - PRFuncPtr p = LookupSymbol(s, tryplatform); - if (p) { - *ss->symPointer = p; - break; - } - } - - if (*ss->symPointer == 0) { - fprintf (stderr, "Can't find symbol '%s'\n", ss->symNames[0]); - return false; - } - - ss++; - } - - return true; -} - -bool -OSMesaWrap::Init() -{ - if (fCreateContextExt) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fCreateContextExt, { "OSMesaCreateContextExt", NULL } }, - { (PRFuncPtr*) &fMakeCurrent, { "OSMesaMakeCurrent", NULL } }, - { (PRFuncPtr*) &fPixelStore, { "OSMesaPixelStore", NULL } }, - { (PRFuncPtr*) &fDestroyContext, { "OSMesaDestroyContext", NULL } }, - { (PRFuncPtr*) &fGetCurrentContext, { "OSMesaGetCurrentContext", NULL } }, - { (PRFuncPtr*) &fMakeCurrent, { "OSMesaMakeCurrent", NULL } }, - { (PRFuncPtr*) &fGetProcAddress, { "OSMesaGetProcAddress", NULL } }, - { NULL, { NULL } } - }; - - return LoadSymbols(&symbols[0]); -} - -bool -GLES20Wrap::Init(NativeGLMode mode) -{ - if (mode & TRY_NATIVE_GL) { - if (InitNative()) - return true; - } - - if (mode & TRY_SOFTWARE_GL) { - if (InitSoftware()) - return true; - } - - return false; -} - -bool -GLES20Wrap::InitNative() -{ - return InitWithPrefix("gl", true); -} - -bool -GLES20Wrap::InitSoftware() -{ - return InitWithPrefix("mgl", true); -} - -/* - * XXX - we should really know the ARB/EXT variants of these - * instead of only handling the symbol if it's exposed directly. - */ - -bool -GLES20Wrap::InitWithPrefix(const char *prefix, bool trygl) -{ - if (ok) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fActiveTexture, { "ActiveTexture", "ActiveTextureARB", NULL } }, - { (PRFuncPtr*) &fAttachShader, { "AttachShader", "AttachShaderARB", NULL } }, - { (PRFuncPtr*) &fBindAttribLocation, { "BindAttribLocation", "BindAttribLocationARB", NULL } }, - { (PRFuncPtr*) &fBindBuffer, { "BindBuffer", "BindBufferARB", NULL } }, - { (PRFuncPtr*) &fBindTexture, { "BindTexture", "BindTextureARB", NULL } }, - { (PRFuncPtr*) &fBlendColor, { "BlendColor", NULL } }, - { (PRFuncPtr*) &fBlendEquation, { "BlendEquation", NULL } }, - { (PRFuncPtr*) &fBlendEquationSeparate, { "BlendEquationSeparate", "BlendEquationSeparateEXT", NULL } }, - { (PRFuncPtr*) &fBlendFunc, { "BlendFunc", NULL } }, - { (PRFuncPtr*) &fBlendFuncSeparate, { "BlendFuncSeparate", "BlendFuncSeparateEXT", NULL } }, - { (PRFuncPtr*) &fBufferData, { "BufferData", NULL } }, - { (PRFuncPtr*) &fBufferSubData, { "BufferSubData", NULL } }, - { (PRFuncPtr*) &fClear, { "Clear", NULL } }, - { (PRFuncPtr*) &fClearColor, { "ClearColor", NULL } }, -#ifdef USE_GLES2 - { (PRFuncPtr*) &fClearDepthf, { "ClearDepthf", NULL } }, -#else - { (PRFuncPtr*) &fClearDepth, { "ClearDepth", NULL } }, -#endif - { (PRFuncPtr*) &fClearStencil, { "ClearStencil", NULL } }, - { (PRFuncPtr*) &fColorMask, { "ColorMask", NULL } }, - { (PRFuncPtr*) &fCreateProgram, { "CreateProgram", "CreateProgramARB", NULL } }, - { (PRFuncPtr*) &fCreateShader, { "CreateShader", "CreateShaderARB", NULL } }, - { (PRFuncPtr*) &fCullFace, { "CullFace", NULL } }, - { (PRFuncPtr*) &fDeleteBuffers, { "DeleteBuffers", "DeleteBuffersARB", NULL } }, - { (PRFuncPtr*) &fDeleteTextures, { "DeleteTextures", "DeleteTexturesARB", NULL } }, - { (PRFuncPtr*) &fDeleteProgram, { "DeleteProgram", "DeleteProgramARB", NULL } }, - { (PRFuncPtr*) &fDeleteShader, { "DeleteShader", "DeleteShaderARB", NULL } }, - { (PRFuncPtr*) &fDetachShader, { "DetachShader", "DetachShaderARB", NULL } }, - { (PRFuncPtr*) &fDepthFunc, { "DepthFunc", NULL } }, - { (PRFuncPtr*) &fDepthMask, { "DepthMask", NULL } }, -#ifdef USE_GLES2 - { (PRFuncPtr*) &fDepthRangef, { "DepthRangef", NULL } }, -#else - { (PRFuncPtr*) &fDepthRange, { "DepthRange", NULL } }, -#endif - { (PRFuncPtr*) &fDisable, { "Disable", NULL } }, - { (PRFuncPtr*) &fDisableVertexAttribArray, { "DisableVertexAttribArray", "DisableVertexAttribArrayARB", NULL } }, - { (PRFuncPtr*) &fDrawArrays, { "DrawArrays", NULL } }, - { (PRFuncPtr*) &fDrawElements, { "DrawElements", NULL } }, - { (PRFuncPtr*) &fEnable, { "Enable", NULL } }, - { (PRFuncPtr*) &fEnableVertexAttribArray, { "EnableVertexAttribArray", "EnableVertexAttribArrayARB", NULL } }, - { (PRFuncPtr*) &fFinish, { "Finish", NULL } }, - { (PRFuncPtr*) &fFlush, { "Flush", NULL } }, - { (PRFuncPtr*) &fFrontFace, { "FrontFace", NULL } }, - { (PRFuncPtr*) &fGetActiveAttrib, { "GetActiveAttrib", "GetActiveAttribARB", NULL } }, - { (PRFuncPtr*) &fGetActiveUniform, { "GetActiveUniform", "GetActiveUniformARB", NULL } }, - { (PRFuncPtr*) &fGetAttachedShaders, { "GetAttachedShaders", "GetAttachedShadersARB", NULL } }, - { (PRFuncPtr*) &fGetAttribLocation, { "GetAttribLocation", "GetAttribLocationARB", NULL } }, - { (PRFuncPtr*) &fGetIntegerv, { "GetIntegerv", NULL } }, - { (PRFuncPtr*) &fGetFloatv, { "GetFloatv", NULL } }, - { (PRFuncPtr*) &fGetBooleanv, { "GetBooleanv", NULL } }, - { (PRFuncPtr*) &fGetBufferParameteriv, { "GetBufferParameteriv", "GetBufferParameterivARB", NULL } }, - { (PRFuncPtr*) &fGenBuffers, { "GenBuffers", "GenBuffersARB", NULL } }, - { (PRFuncPtr*) &fGenTextures, { "GenTextures", NULL } }, - { (PRFuncPtr*) &fGetError, { "GetError", NULL } }, - { (PRFuncPtr*) &fGetProgramiv, { "GetProgramiv", "GetProgramivARB", NULL } }, - { (PRFuncPtr*) &fGetProgramInfoLog, { "GetProgramInfoLog", "GetProgramInfoLogARB", NULL } }, - { (PRFuncPtr*) &fTexParameteri, { "TexParameteri", NULL } }, - { (PRFuncPtr*) &fTexParameterf, { "TexParameterf", NULL } }, - { (PRFuncPtr*) &fGetTexParameterfv, { "GetTexParameterfv", NULL } }, - { (PRFuncPtr*) &fGetTexParameteriv, { "GetTexParameteriv", NULL } }, - { (PRFuncPtr*) &fGetUniformfv, { "GetUniformfv", "GetUniformfvARB", NULL } }, - { (PRFuncPtr*) &fGetUniformiv, { "GetUniformiv", "GetUniformivARB", NULL } }, - { (PRFuncPtr*) &fGetUniformLocation, { "GetUniformLocation", "GetUniformLocationARB", NULL } }, - { (PRFuncPtr*) &fGetVertexAttribfv, { "GetVertexAttribfv", "GetVertexAttribfvARB", NULL } }, - { (PRFuncPtr*) &fGetVertexAttribiv, { "GetVertexAttribiv", "GetVertexAttribivARB", NULL } }, - { (PRFuncPtr*) &fHint, { "Hint", NULL } }, - { (PRFuncPtr*) &fIsBuffer, { "IsBuffer", "IsBufferARB", NULL } }, - { (PRFuncPtr*) &fIsEnabled, { "IsEnabled", NULL } }, - { (PRFuncPtr*) &fIsProgram, { "IsProgram", "IsProgramARB", NULL } }, - { (PRFuncPtr*) &fIsShader, { "IsShader", "IsShaderARB", NULL } }, - { (PRFuncPtr*) &fIsTexture, { "IsTexture", "IsTextureARB", NULL } }, - { (PRFuncPtr*) &fLineWidth, { "LineWidth", NULL } }, - { (PRFuncPtr*) &fLinkProgram, { "LinkProgram", "LinkProgramARB", NULL } }, - { (PRFuncPtr*) &fPixelStorei, { "PixelStorei", NULL } }, - { (PRFuncPtr*) &fPolygonOffset, { "PolygonOffset", NULL } }, - { (PRFuncPtr*) &fReadPixels, { "ReadPixels", NULL } }, - { (PRFuncPtr*) &fSampleCoverage, { "SampleCoverage", NULL } }, - { (PRFuncPtr*) &fScissor, { "Scissor", NULL } }, - { (PRFuncPtr*) &fStencilFunc, { "StencilFunc", NULL } }, - { (PRFuncPtr*) &fStencilFuncSeparate, { "StencilFuncSeparate", "StencilFuncSeparateEXT", NULL } }, - { (PRFuncPtr*) &fStencilMask, { "StencilMask", NULL } }, - { (PRFuncPtr*) &fStencilMaskSeparate, { "StencilMaskSeparate", "StencilMaskSeparateEXT", NULL } }, - { (PRFuncPtr*) &fStencilOp, { "StencilOp", NULL } }, - { (PRFuncPtr*) &fStencilOpSeparate, { "StencilOpSeparate", "StencilOpSeparateEXT", NULL } }, - { (PRFuncPtr*) &fTexImage2D, { "TexImage2D", NULL } }, - { (PRFuncPtr*) &fTexSubImage2D, { "TexSubImage2D", NULL } }, - { (PRFuncPtr*) &fUniform1f, { "Uniform1f", NULL } }, - { (PRFuncPtr*) &fUniform1fv, { "Uniform1fv", NULL } }, - { (PRFuncPtr*) &fUniform1i, { "Uniform1i", NULL } }, - { (PRFuncPtr*) &fUniform1iv, { "Uniform1iv", NULL } }, - { (PRFuncPtr*) &fUniform2f, { "Uniform2f", NULL } }, - { (PRFuncPtr*) &fUniform2fv, { "Uniform2fv", NULL } }, - { (PRFuncPtr*) &fUniform2i, { "Uniform2i", NULL } }, - { (PRFuncPtr*) &fUniform2iv, { "Uniform2iv", NULL } }, - { (PRFuncPtr*) &fUniform3f, { "Uniform3f", NULL } }, - { (PRFuncPtr*) &fUniform3fv, { "Uniform3fv", NULL } }, - { (PRFuncPtr*) &fUniform3i, { "Uniform3i", NULL } }, - { (PRFuncPtr*) &fUniform3iv, { "Uniform3iv", NULL } }, - { (PRFuncPtr*) &fUniform4f, { "Uniform4f", NULL } }, - { (PRFuncPtr*) &fUniform4fv, { "Uniform4fv", NULL } }, - { (PRFuncPtr*) &fUniform4i, { "Uniform4i", NULL } }, - { (PRFuncPtr*) &fUniform4iv, { "Uniform4iv", NULL } }, - { (PRFuncPtr*) &fUniformMatrix2fv, { "UniformMatrix2fv", NULL } }, - { (PRFuncPtr*) &fUniformMatrix3fv, { "UniformMatrix3fv", NULL } }, - { (PRFuncPtr*) &fUniformMatrix4fv, { "UniformMatrix4fv", NULL } }, - { (PRFuncPtr*) &fUseProgram, { "UseProgram", NULL } }, - { (PRFuncPtr*) &fValidateProgram, { "ValidateProgram", NULL } }, - { (PRFuncPtr*) &fVertexAttribPointer, { "VertexAttribPointer", NULL } }, - { (PRFuncPtr*) &fVertexAttrib1f, { "VertexAttrib1f", NULL } }, - { (PRFuncPtr*) &fVertexAttrib2f, { "VertexAttrib2f", NULL } }, - { (PRFuncPtr*) &fVertexAttrib3f, { "VertexAttrib3f", NULL } }, - { (PRFuncPtr*) &fVertexAttrib4f, { "VertexAttrib4f", NULL } }, - { (PRFuncPtr*) &fVertexAttrib1fv, { "VertexAttrib1fv", NULL } }, - { (PRFuncPtr*) &fVertexAttrib2fv, { "VertexAttrib2fv", NULL } }, - { (PRFuncPtr*) &fVertexAttrib3fv, { "VertexAttrib3fv", NULL } }, - { (PRFuncPtr*) &fVertexAttrib4fv, { "VertexAttrib4fv", NULL } }, - { (PRFuncPtr*) &fViewport, { "Viewport", NULL } }, - { (PRFuncPtr*) &fCompileShader, { "CompileShader", NULL } }, - { (PRFuncPtr*) &fCopyTexImage2D, { "CopyTexImage2D", NULL } }, - { (PRFuncPtr*) &fCopyTexSubImage2D, { "CopyTexSubImage2D", NULL } }, - { (PRFuncPtr*) &fGetShaderiv, { "GetShaderiv", NULL } }, - { (PRFuncPtr*) &fGetShaderInfoLog, { "GetShaderInfoLog", NULL } }, - { (PRFuncPtr*) &fGetShaderSource, { "GetShaderSource", NULL } }, - { (PRFuncPtr*) &fShaderSource, { "ShaderSource", NULL } }, - { (PRFuncPtr*) &fVertexAttribPointer, { "VertexAttribPointer", NULL } }, - { (PRFuncPtr*) &fBindFramebuffer, { "BindFramebuffer", "BindFramebufferEXT", NULL } }, - { (PRFuncPtr*) &fBindRenderbuffer, { "BindRenderbuffer", "BindRenderbufferEXT", NULL } }, - { (PRFuncPtr*) &fCheckFramebufferStatus, { "CheckFramebufferStatus", "CheckFramebufferStatusEXT", NULL } }, - { (PRFuncPtr*) &fDeleteFramebuffers, { "DeleteFramebuffers", "DeleteFramebuffersEXT", NULL } }, - { (PRFuncPtr*) &fDeleteRenderbuffers, { "DeleteRenderbuffers", "DeleteRenderbuffersEXT", NULL } }, - { (PRFuncPtr*) &fFramebufferRenderbuffer, { "FramebufferRenderbuffer", "FramebufferRenderbufferEXT", NULL } }, - { (PRFuncPtr*) &fFramebufferTexture2D, { "FramebufferTexture2D", "FramebufferTexture2DEXT", NULL } }, - { (PRFuncPtr*) &fGenerateMipmap, { "GenerateMipmap", "GenerateMipmapEXT", NULL } }, - { (PRFuncPtr*) &fGenFramebuffers, { "GenFramebuffers", "GenFramebuffersEXT", NULL } }, - { (PRFuncPtr*) &fGenRenderbuffers, { "GenRenderbuffers", "GenRenderbuffersEXT", NULL } }, - { (PRFuncPtr*) &fGetFramebufferAttachmentParameteriv, { "GetFramebufferAttachmentParameteriv", "GetFramebufferAttachmentParameterivEXT", NULL } }, - { (PRFuncPtr*) &fGetRenderbufferParameteriv, { "GetRenderbufferParameteriv", "GetRenderbufferParameterivEXT", NULL } }, - { (PRFuncPtr*) &fIsFramebuffer, { "IsFramebuffer", "IsFramebufferEXT", NULL } }, - { (PRFuncPtr*) &fIsRenderbuffer, { "IsRenderbuffer", "IsRenderbufferEXT", NULL } }, - { (PRFuncPtr*) &fRenderbufferStorage, { "RenderbufferStorage", "RenderbufferStorageEXT", NULL } }, -#if 0 - { (PRFuncPtr*) &fMapBuffer, { "MapBuffer", NULL } }, - { (PRFuncPtr*) &fUnmapBuffer, { "UnmapBuffer", NULL } }, -#endif - - { NULL, { NULL } }, - - }; - - ok = LoadSymbols(&symbols[0], trygl, prefix); - - return ok; -} diff --git a/content/canvas/src/glwrap.h b/content/canvas/src/glwrap.h deleted file mode 100644 index a1934b66923..00000000000 --- a/content/canvas/src/glwrap.h +++ /dev/null @@ -1,441 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * Mark Steele - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef GLWRAP_H_ -#define GLWRAP_H_ - -#ifdef WIN32 -#include -#endif - -#include "localgl.h" - -#include "prlink.h" - -#ifndef GLAPIENTRY -#ifdef XP_WIN -#define GLAPIENTRY __stdcall -#else -#define GLAPIENTRY -#endif -#define GLAPI -#endif - -typedef char realGLboolean; - -class LibrarySymbolLoader -{ -public: - bool OpenLibrary(const char *library); - - typedef PRFuncPtr (GLAPIENTRY * PlatformLookupFunction) (const char *); - void SetLookupFunc(PlatformLookupFunction plf) { - mLookupFunc = plf; - } - - enum { - MAX_SYMBOL_NAMES = 5, - MAX_SYMBOL_LENGTH = 128 - }; - - typedef struct { - PRFuncPtr *symPointer; - const char *symNames[MAX_SYMBOL_NAMES]; - } SymLoadStruct; - - PRFuncPtr LookupSymbol(const char *symname, bool tryplatform = false); - bool LoadSymbols(SymLoadStruct *firstStruct, bool tryplatform = false, const char *prefix = NULL); - -protected: - LibrarySymbolLoader() { - mLibrary = NULL; - mLookupFunc = NULL; - } - - PRLibrary *mLibrary; - PlatformLookupFunction mLookupFunc; -}; - -typedef void *PrivateOSMesaContext; - -class OSMesaWrap - : public LibrarySymbolLoader -{ -public: - OSMesaWrap() : fCreateContextExt(0) { } - - bool Init(); - -protected: - - // - // the wrapped functions - // -public: - typedef PrivateOSMesaContext (GLAPIENTRY * PFNOSMESACREATECONTEXTEXT) (GLenum, GLint, GLint, GLint, PrivateOSMesaContext); - typedef void (GLAPIENTRY * PFNOSMESADESTROYCONTEXT) (PrivateOSMesaContext); - typedef bool (GLAPIENTRY * PFNOSMESAMAKECURRENT) (PrivateOSMesaContext, void *, GLenum, GLsizei, GLsizei); - typedef PrivateOSMesaContext (GLAPIENTRY * PFNOSMESAGETCURRENTCONTEXT) (void); - typedef void (GLAPIENTRY * PFNOSMESAPIXELSTORE) (GLint, GLint); - typedef PRFuncPtr (GLAPIENTRY * PFNOSMESAGETPROCADDRESS) (const char*); - - PFNOSMESACREATECONTEXTEXT fCreateContextExt; - PFNOSMESADESTROYCONTEXT fDestroyContext; - PFNOSMESAMAKECURRENT fMakeCurrent; - PFNOSMESAGETCURRENTCONTEXT fGetCurrentContext; - PFNOSMESAPIXELSTORE fPixelStore; - PFNOSMESAGETPROCADDRESS fGetProcAddress; -}; - -class GLES20Wrap - : public LibrarySymbolLoader -{ -public: - enum NativeGLMode { - TRY_NATIVE_GL = 1 << 0, - TRY_SOFTWARE_GL = 1 << 1 - }; - - GLES20Wrap() : ok(false) { } - - bool Init(NativeGLMode mode); - -protected: - - bool ok; - - bool InitNative(); - bool InitSoftware(); - - bool InitWithPrefix(const char *prefix, bool trygl ); - - // - // the wrapped functions - // -public: - /* One would think that this would live in some nice perl-or-python-or-js script somewhere and would be autogenerated; - * one would be wrong. - */ - typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); - PFNGLACTIVETEXTUREPROC fActiveTexture; - typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); - PFNGLATTACHSHADERPROC fAttachShader; - typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); - PFNGLBINDATTRIBLOCATIONPROC fBindAttribLocation; - typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); - PFNGLBINDBUFFERPROC fBindBuffer; - typedef void (GLAPIENTRY * PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); - PFNGLBINDTEXTUREPROC fBindTexture; - typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - PFNGLBLENDCOLORPROC fBlendColor; - typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); - PFNGLBLENDEQUATIONPROC fBlendEquation; - typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); - PFNGLBLENDEQUATIONSEPARATEPROC fBlendEquationSeparate; - typedef void (GLAPIENTRY * PFNGLBLENDFUNCPROC) (GLenum, GLenum); - PFNGLBLENDFUNCPROC fBlendFunc; - typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - PFNGLBLENDFUNCSEPARATEPROC fBlendFuncSeparate; - typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); - PFNGLBUFFERDATAPROC fBufferData; - typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); - PFNGLBUFFERSUBDATAPROC fBufferSubData; - typedef void (GLAPIENTRY * PFNGLCLEARPROC) (GLbitfield); - PFNGLCLEARPROC fClear; - typedef void (GLAPIENTRY * PFNGLCLEARCOLORPROC) (GLclampf, GLclampf, GLclampf, GLclampf); - PFNGLCLEARCOLORPROC fClearColor; -#ifdef USE_GLES2 - typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf); - PFNGLCLEARDEPTHFPROC fClearDepthf; -#else - typedef void (GLAPIENTRY * PFNGLCLEARDEPTHPROC) (GLclampd); - PFNGLCLEARDEPTHPROC fClearDepth; -#endif - typedef void (GLAPIENTRY * PFNGLCLEARSTENCILPROC) (GLint); - PFNGLCLEARSTENCILPROC fClearStencil; - typedef void (GLAPIENTRY * PFNGLCOLORMASKPROC) (realGLboolean red, realGLboolean green, realGLboolean blue, realGLboolean alpha); - PFNGLCOLORMASKPROC fColorMask; - typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); - PFNGLCREATEPROGRAMPROC fCreateProgram; - typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); - PFNGLCREATESHADERPROC fCreateShader; - typedef void (GLAPIENTRY * PFNGLCULLFACEPROC) (GLenum mode); - PFNGLCULLFACEPROC fCullFace; - typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); - PFNGLDELETEBUFFERSPROC fDeleteBuffers; - typedef void (GLAPIENTRY * PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint* textures); - PFNGLDELETETEXTURESPROC fDeleteTextures; - typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); - PFNGLDELETEPROGRAMPROC fDeleteProgram; - typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); - PFNGLDELETESHADERPROC fDeleteShader; - typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); - PFNGLDETACHSHADERPROC fDetachShader; - typedef void (GLAPIENTRY * PFNGLDEPTHFUNCPROC) (GLenum); - PFNGLDEPTHFUNCPROC fDepthFunc; - typedef void (GLAPIENTRY * PFNGLDEPTHMASKPROC) (realGLboolean); - PFNGLDEPTHMASKPROC fDepthMask; -#ifdef USE_GLES2 - typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf, GLclampf); - PFNGLDEPTHRANGEFPROC fDepthRangef; -#else - typedef void (GLAPIENTRY * PFNGLDEPTHRANGEPROC) (GLclampd, GLclampd); - PFNGLDEPTHRANGEPROC fDepthRange; -#endif - typedef void (GLAPIENTRY * PFNGLDISABLEPROC) (GLenum); - PFNGLDISABLEPROC fDisable; - typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); - PFNGLDISABLEVERTEXATTRIBARRAYPROC fDisableVertexAttribArray; - typedef void (GLAPIENTRY * PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); - PFNGLDRAWARRAYSPROC fDrawArrays; - typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); - PFNGLDRAWELEMENTSPROC fDrawElements; - typedef void (GLAPIENTRY * PFNGLENABLEPROC) (GLenum); - PFNGLENABLEPROC fEnable; - typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); - PFNGLENABLEVERTEXATTRIBARRAYPROC fEnableVertexAttribArray; - typedef void (GLAPIENTRY * PFNGLFINISHPROC) (void); - PFNGLFINISHPROC fFinish; - typedef void (GLAPIENTRY * PFNGLFLUSHPROC) (void); - PFNGLFLUSHPROC fFlush; - typedef void (GLAPIENTRY * PFNGLFRONTFACEPROC) (GLenum); - PFNGLFRONTFACEPROC fFrontFace; - typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); - PFNGLGETACTIVEATTRIBPROC fGetActiveAttrib; - typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); - PFNGLGETACTIVEUNIFORMPROC fGetActiveUniform; - typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); - PFNGLGETATTACHEDSHADERSPROC fGetAttachedShaders; - typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); - PFNGLGETATTRIBLOCATIONPROC fGetAttribLocation; - typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); - PFNGLGETINTEGERVPROC fGetIntegerv; - typedef void (GLAPIENTRY * PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params); - PFNGLGETFLOATVPROC fGetFloatv; - typedef void (GLAPIENTRY * PFNGLGETBOOLEANBPROC) (GLenum pname, realGLboolean *params); - PFNGLGETBOOLEANBPROC fGetBooleanv; - typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); - PFNGLGETBUFFERPARAMETERIVPROC fGetBufferParameteriv; - typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); - PFNGLGENBUFFERSPROC fGenBuffers; - typedef void (GLAPIENTRY * PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); - PFNGLGENTEXTURESPROC fGenTextures; - typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); - PFNGLGENERATEMIPMAPPROC fGenerateMipmap; - typedef GLenum (GLAPIENTRY * PFNGLGETERRORPROC) (void); - PFNGLGETERRORPROC fGetError; - typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); - PFNGLGETPROGRAMIVPROC fGetProgramiv; - typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); - PFNGLGETPROGRAMINFOLOGPROC fGetProgramInfoLog; - typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); - PFNGLTEXPARAMETERIPROC fTexParameteri; - typedef void (GLAPIENTRY * PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); - PFNGLTEXPARAMETERFPROC fTexParameterf; - typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); - PFNGLGETTEXPARAMETERFVPROC fGetTexParameterfv; - typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); - PFNGLGETTEXPARAMETERIVPROC fGetTexParameteriv; - typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); - PFNGLGETUNIFORMFVPROC fGetUniformfv; - typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); - PFNGLGETUNIFORMIVPROC fGetUniformiv; - typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLint programObj, const GLchar* name); - PFNGLGETUNIFORMLOCATIONPROC fGetUniformLocation; - typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); - PFNGLGETVERTEXATTRIBFVPROC fGetVertexAttribfv; - typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); - PFNGLGETVERTEXATTRIBIVPROC fGetVertexAttribiv; - typedef void (GLAPIENTRY * PFNGLHINTPROC) (GLenum target, GLenum mode); - PFNGLHINTPROC fHint; - typedef realGLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); - PFNGLISBUFFERPROC fIsBuffer; - typedef realGLboolean (GLAPIENTRY * PFNGLISENABLEDPROC) (GLenum cap); - PFNGLISENABLEDPROC fIsEnabled; - typedef realGLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); - PFNGLISPROGRAMPROC fIsProgram; - typedef realGLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); - PFNGLISSHADERPROC fIsShader; - typedef realGLboolean (GLAPIENTRY * PFNGLISTEXTUREPROC) (GLuint texture); - PFNGLISTEXTUREPROC fIsTexture; - typedef void (GLAPIENTRY * PFNGLLINEWIDTHPROC) (GLfloat width); - PFNGLLINEWIDTHPROC fLineWidth; - typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); - PFNGLLINKPROGRAMPROC fLinkProgram; -#if 0 - typedef void * (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); - PFNGLMAPBUFFERPROC fMapBuffer; - typedef realGLboolean (GLAPIENTRY * PFNGLUNAMPBUFFERPROC) (GLenum target); - PFNGLUNAMPBUFFERPROC fUnmapBuffer; -#endif - typedef void (GLAPIENTRY * PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); - PFNGLPIXELSTOREIPROC fPixelStorei; - typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat bias); - PFNGLPOLYGONOFFSETPROC fPolygonOffset; - typedef void (GLAPIENTRY * PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); - PFNGLREADPIXELSPROC fReadPixels; - typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, realGLboolean invert); - PFNGLSAMPLECOVERAGEPROC fSampleCoverage; - typedef void (GLAPIENTRY * PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - PFNGLSCISSORPROC fScissor; - typedef void (GLAPIENTRY * PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); - PFNGLSTENCILFUNCPROC fStencilFunc; - typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); - PFNGLSTENCILFUNCSEPARATEPROC fStencilFuncSeparate; - typedef void (GLAPIENTRY * PFNGLSTENCILMASKPROC) (GLuint mask); - PFNGLSTENCILMASKPROC fStencilMask; - typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); - PFNGLSTENCILMASKSEPARATEPROC fStencilMaskSeparate; - typedef void (GLAPIENTRY * PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); - PFNGLSTENCILOPPROC fStencilOp; - typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); - PFNGLSTENCILOPSEPARATEPROC fStencilOpSeparate; - typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); - PFNGLTEXIMAGE2DPROC fTexImage2D; - typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); - PFNGLTEXSUBIMAGE2DPROC fTexSubImage2D; - typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); - PFNGLUNIFORM1FPROC fUniform1f; - typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); - PFNGLUNIFORM1FVPROC fUniform1fv; - typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); - PFNGLUNIFORM1IPROC fUniform1i; - typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); - PFNGLUNIFORM1IVPROC fUniform1iv; - typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); - PFNGLUNIFORM2FPROC fUniform2f; - typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); - PFNGLUNIFORM2FVPROC fUniform2fv; - typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); - PFNGLUNIFORM2IPROC fUniform2i; - typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); - PFNGLUNIFORM2IVPROC fUniform2iv; - typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); - PFNGLUNIFORM3FPROC fUniform3f; - typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); - PFNGLUNIFORM3FVPROC fUniform3fv; - typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); - PFNGLUNIFORM3IPROC fUniform3i; - typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); - PFNGLUNIFORM3IVPROC fUniform3iv; - typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); - PFNGLUNIFORM4FPROC fUniform4f; - typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); - PFNGLUNIFORM4FVPROC fUniform4fv; - typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); - PFNGLUNIFORM4IPROC fUniform4i; - typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); - PFNGLUNIFORM4IVPROC fUniform4iv; - typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); - PFNGLUNIFORMMATRIX2FVPROC fUniformMatrix2fv; - typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); - PFNGLUNIFORMMATRIX3FVPROC fUniformMatrix3fv; - typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); - PFNGLUNIFORMMATRIX4FVPROC fUniformMatrix4fv; - typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); - PFNGLUSEPROGRAMPROC fUseProgram; - typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); - PFNGLVALIDATEPROGRAMPROC fValidateProgram; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, realGLboolean normalized, GLsizei stride, const GLvoid* pointer); - PFNGLVERTEXATTRIBPOINTERPROC fVertexAttribPointer; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); - PFNGLVERTEXATTRIB1FPROC fVertexAttrib1f; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); - PFNGLVERTEXATTRIB2FPROC fVertexAttrib2f; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); - PFNGLVERTEXATTRIB3FPROC fVertexAttrib3f; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - PFNGLVERTEXATTRIB4FPROC fVertexAttrib4f; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); - PFNGLVERTEXATTRIB1FVPROC fVertexAttrib1fv; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); - PFNGLVERTEXATTRIB2FVPROC fVertexAttrib2fv; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); - PFNGLVERTEXATTRIB3FVPROC fVertexAttrib3fv; - typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); - PFNGLVERTEXATTRIB4FVPROC fVertexAttrib4fv; - typedef void (GLAPIENTRY * PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - PFNGLVIEWPORTPROC fViewport; - typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); - PFNGLCOMPILESHADERPROC fCompileShader; - typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); - PFNGLCOPYTEXIMAGE2DPROC fCopyTexImage2D; - typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); - PFNGLCOPYTEXSUBIMAGE2DPROC fCopyTexSubImage2D; - typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); - PFNGLGETSHADERIVPROC fGetShaderiv; - typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); - PFNGLGETSHADERINFOLOGPROC fGetShaderInfoLog; - typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source); - PFNGLGETSHADERSOURCEPROC fGetShaderSource; - typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); - PFNGLSHADERSOURCEPROC fShaderSource; - - typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFER) (GLenum target, GLuint framebuffer); - PFNGLBINDFRAMEBUFFER fBindFramebuffer; - typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFER) (GLenum target, GLuint renderbuffer); - PFNGLBINDRENDERBUFFER fBindRenderbuffer; - typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUS) (GLenum target); - PFNGLCHECKFRAMEBUFFERSTATUS fCheckFramebufferStatus; - typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERS) (GLsizei n, const GLuint* ids); - PFNGLDELETEFRAMEBUFFERS fDeleteFramebuffers; - typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERS) (GLsizei n, const GLuint* ids); - PFNGLDELETERENDERBUFFERS fDeleteRenderbuffers; - typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFER) (GLenum target, GLenum attachmentPoint, GLenum renderbufferTarget, GLuint renderbuffer); - PFNGLFRAMEBUFFERRENDERBUFFER fFramebufferRenderbuffer; - typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2D) (GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint texture, GLint level); - PFNGLFRAMEBUFFERTEXTURE2D fFramebufferTexture2D; - typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV) (GLenum target, GLenum attachment, GLenum pname, GLint* value); - PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV fGetFramebufferAttachmentParameteriv; - typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIV) (GLenum target, GLenum pname, GLint* value); - PFNGLGETRENDERBUFFERPARAMETERIV fGetRenderbufferParameteriv; - typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERS) (GLsizei n, GLuint* ids); - PFNGLGENFRAMEBUFFERS fGenFramebuffers; - typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERS) (GLsizei n, GLuint* ids); - PFNGLGENRENDERBUFFERS fGenRenderbuffers; - typedef realGLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFER) (GLuint framebuffer); - PFNGLISFRAMEBUFFER fIsFramebuffer; - typedef realGLboolean (GLAPIENTRY * PFNGLISRENDERBUFFER) (GLuint renderbuffer); - PFNGLISRENDERBUFFER fIsRenderbuffer; - typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGE) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); - PFNGLRENDERBUFFERSTORAGE fRenderbufferStorage; - -}; - - -#endif diff --git a/content/canvas/src/localgl.h b/content/canvas/src/localgl.h deleted file mode 100644 index 905bee3bc67..00000000000 --- a/content/canvas/src/localgl.h +++ /dev/null @@ -1,3164 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * Mark Steele - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#if !defined(LOCALGL_H_) - -#define LOCALGL_H_ - -#if !defined(__gl_h_) -#define __gl_h_ - -#if defined(__APPLE__XXX) -typedef unsigned long GLenum; -typedef unsigned long GLbitfield; -typedef unsigned long GLuint; -typedef long GLint; -typedef long GLsizei; -#else -typedef unsigned int GLenum; -typedef unsigned int GLbitfield; -typedef unsigned int GLuint; -typedef int GLint; -typedef int GLsizei; -#endif -typedef char realGLboolean; -typedef signed char GLbyte; -typedef short GLshort; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - -typedef char GLchar; -typedef ptrdiff_t GLsizeiptr; -typedef ptrdiff_t GLintptr; - -#ifndef GLAPIENTRY -# ifdef WIN32 -# define GLAPIENTRY APIENTRY -# define GLAPI -# else -# define GLAPIENTRY -# define GLAPI -# endif -#endif - -#endif /* __gl_h_ */ - -#define LOCAL_GL_VERSION_1_1 1 -#define LOCAL_GL_ACCUM 0x0100 -#define LOCAL_GL_LOAD 0x0101 -#define LOCAL_GL_RETURN 0x0102 -#define LOCAL_GL_MULT 0x0103 -#define LOCAL_GL_ADD 0x0104 -#define LOCAL_GL_NEVER 0x0200 -#define LOCAL_GL_LESS 0x0201 -#define LOCAL_GL_EQUAL 0x0202 -#define LOCAL_GL_LEQUAL 0x0203 -#define LOCAL_GL_GREATER 0x0204 -#define LOCAL_GL_NOTEQUAL 0x0205 -#define LOCAL_GL_GEQUAL 0x0206 -#define LOCAL_GL_ALWAYS 0x0207 -#define LOCAL_GL_CURRENT_BIT 0x00000001 -#define LOCAL_GL_POINT_BIT 0x00000002 -#define LOCAL_GL_LINE_BIT 0x00000004 -#define LOCAL_GL_POLYGON_BIT 0x00000008 -#define LOCAL_GL_POLYGON_STIPPLE_BIT 0x00000010 -#define LOCAL_GL_PIXEL_MODE_BIT 0x00000020 -#define LOCAL_GL_LIGHTING_BIT 0x00000040 -#define LOCAL_GL_FOG_BIT 0x00000080 -#define LOCAL_GL_DEPTH_BUFFER_BIT 0x00000100 -#define LOCAL_GL_ACCUM_BUFFER_BIT 0x00000200 -#define LOCAL_GL_STENCIL_BUFFER_BIT 0x00000400 -#define LOCAL_GL_VIEWPORT_BIT 0x00000800 -#define LOCAL_GL_TRANSFORM_BIT 0x00001000 -#define LOCAL_GL_ENABLE_BIT 0x00002000 -#define LOCAL_GL_COLOR_BUFFER_BIT 0x00004000 -#define LOCAL_GL_HINT_BIT 0x00008000 -#define LOCAL_GL_EVAL_BIT 0x00010000 -#define LOCAL_GL_LIST_BIT 0x00020000 -#define LOCAL_GL_TEXTURE_BIT 0x00040000 -#define LOCAL_GL_SCISSOR_BIT 0x00080000 -#define LOCAL_GL_ALL_ATTRIB_BITS 0x000fffff -#define LOCAL_GL_POINTS 0x0000 -#define LOCAL_GL_LINES 0x0001 -#define LOCAL_GL_LINE_LOOP 0x0002 -#define LOCAL_GL_LINE_STRIP 0x0003 -#define LOCAL_GL_TRIANGLES 0x0004 -#define LOCAL_GL_TRIANGLE_STRIP 0x0005 -#define LOCAL_GL_TRIANGLE_FAN 0x0006 -#define LOCAL_GL_QUADS 0x0007 -#define LOCAL_GL_QUAD_STRIP 0x0008 -#define LOCAL_GL_POLYGON 0x0009 -#define LOCAL_GL_ZERO 0 -#define LOCAL_GL_ONE 1 -#define LOCAL_GL_SRC_COLOR 0x0300 -#define LOCAL_GL_ONE_MINUS_SRC_COLOR 0x0301 -#define LOCAL_GL_SRC_ALPHA 0x0302 -#define LOCAL_GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define LOCAL_GL_DST_ALPHA 0x0304 -#define LOCAL_GL_ONE_MINUS_DST_ALPHA 0x0305 -#define LOCAL_GL_DST_COLOR 0x0306 -#define LOCAL_GL_ONE_MINUS_DST_COLOR 0x0307 -#define LOCAL_GL_SRC_ALPHA_SATURATE 0x0308 -#define LOCAL_GL_TRUE 1 -#define LOCAL_GL_FALSE 0 -#define LOCAL_GL_CLIP_PLANE0 0x3000 -#define LOCAL_GL_CLIP_PLANE1 0x3001 -#define LOCAL_GL_CLIP_PLANE2 0x3002 -#define LOCAL_GL_CLIP_PLANE3 0x3003 -#define LOCAL_GL_CLIP_PLANE4 0x3004 -#define LOCAL_GL_CLIP_PLANE5 0x3005 -#define LOCAL_GL_BYTE 0x1400 -#define LOCAL_GL_UNSIGNED_BYTE 0x1401 -#define LOCAL_GL_SHORT 0x1402 -#define LOCAL_GL_UNSIGNED_SHORT 0x1403 -#define LOCAL_GL_INT 0x1404 -#define LOCAL_GL_UNSIGNED_INT 0x1405 -#define LOCAL_GL_FLOAT 0x1406 -#define LOCAL_GL_2_BYTES 0x1407 -#define LOCAL_GL_3_BYTES 0x1408 -#define LOCAL_GL_4_BYTES 0x1409 -#define LOCAL_GL_DOUBLE 0x140A -#define LOCAL_GL_NONE 0 -#define LOCAL_GL_FRONT_LEFT 0x0400 -#define LOCAL_GL_FRONT_RIGHT 0x0401 -#define LOCAL_GL_BACK_LEFT 0x0402 -#define LOCAL_GL_BACK_RIGHT 0x0403 -#define LOCAL_GL_FRONT 0x0404 -#define LOCAL_GL_BACK 0x0405 -#define LOCAL_GL_LEFT 0x0406 -#define LOCAL_GL_RIGHT 0x0407 -#define LOCAL_GL_FRONT_AND_BACK 0x0408 -#define LOCAL_GL_AUX0 0x0409 -#define LOCAL_GL_AUX1 0x040A -#define LOCAL_GL_AUX2 0x040B -#define LOCAL_GL_AUX3 0x040C -#define LOCAL_GL_NO_ERROR 0 -#define LOCAL_GL_INVALID_ENUM 0x0500 -#define LOCAL_GL_INVALID_VALUE 0x0501 -#define LOCAL_GL_INVALID_OPERATION 0x0502 -#define LOCAL_GL_STACK_OVERFLOW 0x0503 -#define LOCAL_GL_STACK_UNDERFLOW 0x0504 -#define LOCAL_GL_OUT_OF_MEMORY 0x0505 -#define LOCAL_GL_2D 0x0600 -#define LOCAL_GL_3D 0x0601 -#define LOCAL_GL_3D_COLOR 0x0602 -#define LOCAL_GL_3D_COLOR_TEXTURE 0x0603 -#define LOCAL_GL_4D_COLOR_TEXTURE 0x0604 -#define LOCAL_GL_PASS_THROUGH_TOKEN 0x0700 -#define LOCAL_GL_POINT_TOKEN 0x0701 -#define LOCAL_GL_LINE_TOKEN 0x0702 -#define LOCAL_GL_POLYGON_TOKEN 0x0703 -#define LOCAL_GL_BITMAP_TOKEN 0x0704 -#define LOCAL_GL_DRAW_PIXEL_TOKEN 0x0705 -#define LOCAL_GL_COPY_PIXEL_TOKEN 0x0706 -#define LOCAL_GL_LINE_RESET_TOKEN 0x0707 -#define LOCAL_GL_EXP 0x0800 -#define LOCAL_GL_EXP2 0x0801 -#define LOCAL_GL_CW 0x0900 -#define LOCAL_GL_CCW 0x0901 -#define LOCAL_GL_COEFF 0x0A00 -#define LOCAL_GL_ORDER 0x0A01 -#define LOCAL_GL_DOMAIN 0x0A02 -#define LOCAL_GL_CURRENT_COLOR 0x0B00 -#define LOCAL_GL_CURRENT_INDEX 0x0B01 -#define LOCAL_GL_CURRENT_NORMAL 0x0B02 -#define LOCAL_GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define LOCAL_GL_CURRENT_RASTER_COLOR 0x0B04 -#define LOCAL_GL_CURRENT_RASTER_INDEX 0x0B05 -#define LOCAL_GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define LOCAL_GL_CURRENT_RASTER_POSITION 0x0B07 -#define LOCAL_GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define LOCAL_GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define LOCAL_GL_POINT_SMOOTH 0x0B10 -#define LOCAL_GL_POINT_SIZE 0x0B11 -#define LOCAL_GL_POINT_SIZE_RANGE 0x0B12 -#define LOCAL_GL_POINT_SIZE_GRANULARITY 0x0B13 -#define LOCAL_GL_LINE_SMOOTH 0x0B20 -#define LOCAL_GL_LINE_WIDTH 0x0B21 -#define LOCAL_GL_LINE_WIDTH_RANGE 0x0B22 -#define LOCAL_GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define LOCAL_GL_LINE_STIPPLE 0x0B24 -#define LOCAL_GL_LINE_STIPPLE_PATTERN 0x0B25 -#define LOCAL_GL_LINE_STIPPLE_REPEAT 0x0B26 -#define LOCAL_GL_LIST_MODE 0x0B30 -#define LOCAL_GL_MAX_LIST_NESTING 0x0B31 -#define LOCAL_GL_LIST_BASE 0x0B32 -#define LOCAL_GL_LIST_INDEX 0x0B33 -#define LOCAL_GL_POLYGON_MODE 0x0B40 -#define LOCAL_GL_POLYGON_SMOOTH 0x0B41 -#define LOCAL_GL_POLYGON_STIPPLE 0x0B42 -#define LOCAL_GL_EDGE_FLAG 0x0B43 -#define LOCAL_GL_CULL_FACE 0x0B44 -#define LOCAL_GL_CULL_FACE_MODE 0x0B45 -#define LOCAL_GL_FRONT_FACE 0x0B46 -#define LOCAL_GL_LIGHTING 0x0B50 -#define LOCAL_GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define LOCAL_GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define LOCAL_GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define LOCAL_GL_SHADE_MODEL 0x0B54 -#define LOCAL_GL_COLOR_MATERIAL_FACE 0x0B55 -#define LOCAL_GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define LOCAL_GL_COLOR_MATERIAL 0x0B57 -#define LOCAL_GL_FOG 0x0B60 -#define LOCAL_GL_FOG_INDEX 0x0B61 -#define LOCAL_GL_FOG_DENSITY 0x0B62 -#define LOCAL_GL_FOG_START 0x0B63 -#define LOCAL_GL_FOG_END 0x0B64 -#define LOCAL_GL_FOG_MODE 0x0B65 -#define LOCAL_GL_FOG_COLOR 0x0B66 -#define LOCAL_GL_DEPTH_RANGE 0x0B70 -#define LOCAL_GL_DEPTH_TEST 0x0B71 -#define LOCAL_GL_DEPTH_WRITEMASK 0x0B72 -#define LOCAL_GL_DEPTH_CLEAR_VALUE 0x0B73 -#define LOCAL_GL_DEPTH_FUNC 0x0B74 -#define LOCAL_GL_ACCUM_CLEAR_VALUE 0x0B80 -#define LOCAL_GL_STENCIL_TEST 0x0B90 -#define LOCAL_GL_STENCIL_CLEAR_VALUE 0x0B91 -#define LOCAL_GL_STENCIL_FUNC 0x0B92 -#define LOCAL_GL_STENCIL_VALUE_MASK 0x0B93 -#define LOCAL_GL_STENCIL_FAIL 0x0B94 -#define LOCAL_GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define LOCAL_GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define LOCAL_GL_STENCIL_REF 0x0B97 -#define LOCAL_GL_STENCIL_WRITEMASK 0x0B98 -#define LOCAL_GL_MATRIX_MODE 0x0BA0 -#define LOCAL_GL_NORMALIZE 0x0BA1 -#define LOCAL_GL_VIEWPORT 0x0BA2 -#define LOCAL_GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define LOCAL_GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define LOCAL_GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define LOCAL_GL_MODELVIEW_MATRIX 0x0BA6 -#define LOCAL_GL_PROJECTION_MATRIX 0x0BA7 -#define LOCAL_GL_TEXTURE_MATRIX 0x0BA8 -#define LOCAL_GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define LOCAL_GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define LOCAL_GL_ALPHA_TEST 0x0BC0 -#define LOCAL_GL_ALPHA_TEST_FUNC 0x0BC1 -#define LOCAL_GL_ALPHA_TEST_REF 0x0BC2 -#define LOCAL_GL_DITHER 0x0BD0 -#define LOCAL_GL_BLEND_DST 0x0BE0 -#define LOCAL_GL_BLEND_SRC 0x0BE1 -#define LOCAL_GL_BLEND 0x0BE2 -#define LOCAL_GL_LOGIC_OP_MODE 0x0BF0 -#define LOCAL_GL_INDEX_LOGIC_OP 0x0BF1 -#define LOCAL_GL_COLOR_LOGIC_OP 0x0BF2 -#define LOCAL_GL_AUX_BUFFERS 0x0C00 -#define LOCAL_GL_DRAW_BUFFER 0x0C01 -#define LOCAL_GL_READ_BUFFER 0x0C02 -#define LOCAL_GL_SCISSOR_BOX 0x0C10 -#define LOCAL_GL_SCISSOR_TEST 0x0C11 -#define LOCAL_GL_INDEX_CLEAR_VALUE 0x0C20 -#define LOCAL_GL_INDEX_WRITEMASK 0x0C21 -#define LOCAL_GL_COLOR_CLEAR_VALUE 0x0C22 -#define LOCAL_GL_COLOR_WRITEMASK 0x0C23 -#define LOCAL_GL_INDEX_MODE 0x0C30 -#define LOCAL_GL_RGBA_MODE 0x0C31 -#define LOCAL_GL_DOUBLEBUFFER 0x0C32 -#define LOCAL_GL_STEREO 0x0C33 -#define LOCAL_GL_RENDER_MODE 0x0C40 -#define LOCAL_GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define LOCAL_GL_POINT_SMOOTH_HINT 0x0C51 -#define LOCAL_GL_LINE_SMOOTH_HINT 0x0C52 -#define LOCAL_GL_POLYGON_SMOOTH_HINT 0x0C53 -#define LOCAL_GL_FOG_HINT 0x0C54 -#define LOCAL_GL_TEXTURE_GEN_S 0x0C60 -#define LOCAL_GL_TEXTURE_GEN_T 0x0C61 -#define LOCAL_GL_TEXTURE_GEN_R 0x0C62 -#define LOCAL_GL_TEXTURE_GEN_Q 0x0C63 -#define LOCAL_GL_PIXEL_MAP_I_TO_I 0x0C70 -#define LOCAL_GL_PIXEL_MAP_S_TO_S 0x0C71 -#define LOCAL_GL_PIXEL_MAP_I_TO_R 0x0C72 -#define LOCAL_GL_PIXEL_MAP_I_TO_G 0x0C73 -#define LOCAL_GL_PIXEL_MAP_I_TO_B 0x0C74 -#define LOCAL_GL_PIXEL_MAP_I_TO_A 0x0C75 -#define LOCAL_GL_PIXEL_MAP_R_TO_R 0x0C76 -#define LOCAL_GL_PIXEL_MAP_G_TO_G 0x0C77 -#define LOCAL_GL_PIXEL_MAP_B_TO_B 0x0C78 -#define LOCAL_GL_PIXEL_MAP_A_TO_A 0x0C79 -#define LOCAL_GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define LOCAL_GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define LOCAL_GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define LOCAL_GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define LOCAL_GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define LOCAL_GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define LOCAL_GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define LOCAL_GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define LOCAL_GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define LOCAL_GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define LOCAL_GL_UNPACK_SWAP_BYTES 0x0CF0 -#define LOCAL_GL_UNPACK_LSB_FIRST 0x0CF1 -#define LOCAL_GL_UNPACK_ROW_LENGTH 0x0CF2 -#define LOCAL_GL_UNPACK_SKIP_ROWS 0x0CF3 -#define LOCAL_GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define LOCAL_GL_UNPACK_ALIGNMENT 0x0CF5 -#define LOCAL_GL_PACK_SWAP_BYTES 0x0D00 -#define LOCAL_GL_PACK_LSB_FIRST 0x0D01 -#define LOCAL_GL_PACK_ROW_LENGTH 0x0D02 -#define LOCAL_GL_PACK_SKIP_ROWS 0x0D03 -#define LOCAL_GL_PACK_SKIP_PIXELS 0x0D04 -#define LOCAL_GL_PACK_ALIGNMENT 0x0D05 -#define LOCAL_GL_MAP_COLOR 0x0D10 -#define LOCAL_GL_MAP_STENCIL 0x0D11 -#define LOCAL_GL_INDEX_SHIFT 0x0D12 -#define LOCAL_GL_INDEX_OFFSET 0x0D13 -#define LOCAL_GL_RED_SCALE 0x0D14 -#define LOCAL_GL_RED_BIAS 0x0D15 -#define LOCAL_GL_ZOOM_X 0x0D16 -#define LOCAL_GL_ZOOM_Y 0x0D17 -#define LOCAL_GL_GREEN_SCALE 0x0D18 -#define LOCAL_GL_GREEN_BIAS 0x0D19 -#define LOCAL_GL_BLUE_SCALE 0x0D1A -#define LOCAL_GL_BLUE_BIAS 0x0D1B -#define LOCAL_GL_ALPHA_SCALE 0x0D1C -#define LOCAL_GL_ALPHA_BIAS 0x0D1D -#define LOCAL_GL_DEPTH_SCALE 0x0D1E -#define LOCAL_GL_DEPTH_BIAS 0x0D1F -#define LOCAL_GL_MAX_EVAL_ORDER 0x0D30 -#define LOCAL_GL_MAX_LIGHTS 0x0D31 -#define LOCAL_GL_MAX_CLIP_PLANES 0x0D32 -#define LOCAL_GL_MAX_TEXTURE_SIZE 0x0D33 -#define LOCAL_GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define LOCAL_GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define LOCAL_GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define LOCAL_GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define LOCAL_GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define LOCAL_GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define LOCAL_GL_MAX_VIEWPORT_DIMS 0x0D3A -#define LOCAL_GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define LOCAL_GL_SUBPIXEL_BITS 0x0D50 -#define LOCAL_GL_INDEX_BITS 0x0D51 -#define LOCAL_GL_RED_BITS 0x0D52 -#define LOCAL_GL_GREEN_BITS 0x0D53 -#define LOCAL_GL_BLUE_BITS 0x0D54 -#define LOCAL_GL_ALPHA_BITS 0x0D55 -#define LOCAL_GL_DEPTH_BITS 0x0D56 -#define LOCAL_GL_STENCIL_BITS 0x0D57 -#define LOCAL_GL_ACCUM_RED_BITS 0x0D58 -#define LOCAL_GL_ACCUM_GREEN_BITS 0x0D59 -#define LOCAL_GL_ACCUM_BLUE_BITS 0x0D5A -#define LOCAL_GL_ACCUM_ALPHA_BITS 0x0D5B -#define LOCAL_GL_NAME_STACK_DEPTH 0x0D70 -#define LOCAL_GL_AUTO_NORMAL 0x0D80 -#define LOCAL_GL_MAP1_COLOR_4 0x0D90 -#define LOCAL_GL_MAP1_INDEX 0x0D91 -#define LOCAL_GL_MAP1_NORMAL 0x0D92 -#define LOCAL_GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define LOCAL_GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define LOCAL_GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define LOCAL_GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define LOCAL_GL_MAP1_VERTEX_3 0x0D97 -#define LOCAL_GL_MAP1_VERTEX_4 0x0D98 -#define LOCAL_GL_MAP2_COLOR_4 0x0DB0 -#define LOCAL_GL_MAP2_INDEX 0x0DB1 -#define LOCAL_GL_MAP2_NORMAL 0x0DB2 -#define LOCAL_GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define LOCAL_GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define LOCAL_GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define LOCAL_GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define LOCAL_GL_MAP2_VERTEX_3 0x0DB7 -#define LOCAL_GL_MAP2_VERTEX_4 0x0DB8 -#define LOCAL_GL_MAP1_GRID_DOMAIN 0x0DD0 -#define LOCAL_GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define LOCAL_GL_MAP2_GRID_DOMAIN 0x0DD2 -#define LOCAL_GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define LOCAL_GL_TEXTURE_1D 0x0DE0 -#define LOCAL_GL_TEXTURE_2D 0x0DE1 -#define LOCAL_GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define LOCAL_GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define LOCAL_GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define LOCAL_GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define LOCAL_GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define LOCAL_GL_TEXTURE_WIDTH 0x1000 -#define LOCAL_GL_TEXTURE_HEIGHT 0x1001 -#define LOCAL_GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define LOCAL_GL_TEXTURE_BORDER_COLOR 0x1004 -#define LOCAL_GL_TEXTURE_BORDER 0x1005 -#define LOCAL_GL_DONT_CARE 0x1100 -#define LOCAL_GL_FASTEST 0x1101 -#define LOCAL_GL_NICEST 0x1102 -#define LOCAL_GL_LIGHT0 0x4000 -#define LOCAL_GL_LIGHT1 0x4001 -#define LOCAL_GL_LIGHT2 0x4002 -#define LOCAL_GL_LIGHT3 0x4003 -#define LOCAL_GL_LIGHT4 0x4004 -#define LOCAL_GL_LIGHT5 0x4005 -#define LOCAL_GL_LIGHT6 0x4006 -#define LOCAL_GL_LIGHT7 0x4007 -#define LOCAL_GL_AMBIENT 0x1200 -#define LOCAL_GL_DIFFUSE 0x1201 -#define LOCAL_GL_SPECULAR 0x1202 -#define LOCAL_GL_POSITION 0x1203 -#define LOCAL_GL_SPOT_DIRECTION 0x1204 -#define LOCAL_GL_SPOT_EXPONENT 0x1205 -#define LOCAL_GL_SPOT_CUTOFF 0x1206 -#define LOCAL_GL_CONSTANT_ATTENUATION 0x1207 -#define LOCAL_GL_LINEAR_ATTENUATION 0x1208 -#define LOCAL_GL_QUADRATIC_ATTENUATION 0x1209 -#define LOCAL_GL_COMPILE 0x1300 -#define LOCAL_GL_COMPILE_AND_EXECUTE 0x1301 -#define LOCAL_GL_CLEAR 0x1500 -#define LOCAL_GL_AND 0x1501 -#define LOCAL_GL_AND_REVERSE 0x1502 -#define LOCAL_GL_COPY 0x1503 -#define LOCAL_GL_AND_INVERTED 0x1504 -#define LOCAL_GL_NOOP 0x1505 -#define LOCAL_GL_XOR 0x1506 -#define LOCAL_GL_OR 0x1507 -#define LOCAL_GL_NOR 0x1508 -#define LOCAL_GL_EQUIV 0x1509 -#define LOCAL_GL_INVERT 0x150A -#define LOCAL_GL_OR_REVERSE 0x150B -#define LOCAL_GL_COPY_INVERTED 0x150C -#define LOCAL_GL_OR_INVERTED 0x150D -#define LOCAL_GL_NAND 0x150E -#define LOCAL_GL_SET 0x150F -#define LOCAL_GL_EMISSION 0x1600 -#define LOCAL_GL_SHININESS 0x1601 -#define LOCAL_GL_AMBIENT_AND_DIFFUSE 0x1602 -#define LOCAL_GL_COLOR_INDEXES 0x1603 -#define LOCAL_GL_MODELVIEW 0x1700 -#define LOCAL_GL_PROJECTION 0x1701 -#define LOCAL_GL_TEXTURE 0x1702 -#define LOCAL_GL_COLOR 0x1800 -#define LOCAL_GL_DEPTH 0x1801 -#define LOCAL_GL_STENCIL 0x1802 -#define LOCAL_GL_COLOR_INDEX 0x1900 -#define LOCAL_GL_STENCIL_INDEX 0x1901 -#define LOCAL_GL_DEPTH_COMPONENT 0x1902 -#define LOCAL_GL_RED 0x1903 -#define LOCAL_GL_GREEN 0x1904 -#define LOCAL_GL_BLUE 0x1905 -#define LOCAL_GL_ALPHA 0x1906 -#define LOCAL_GL_RGB 0x1907 -#define LOCAL_GL_RGBA 0x1908 -#define LOCAL_GL_LUMINANCE 0x1909 -#define LOCAL_GL_LUMINANCE_ALPHA 0x190A -#define LOCAL_GL_BITMAP 0x1A00 -#define LOCAL_GL_POINT 0x1B00 -#define LOCAL_GL_LINE 0x1B01 -#define LOCAL_GL_FILL 0x1B02 -#define LOCAL_GL_RENDER 0x1C00 -#define LOCAL_GL_FEEDBACK 0x1C01 -#define LOCAL_GL_SELECT 0x1C02 -#define LOCAL_GL_FLAT 0x1D00 -#define LOCAL_GL_SMOOTH 0x1D01 -#define LOCAL_GL_KEEP 0x1E00 -#define LOCAL_GL_REPLACE 0x1E01 -#define LOCAL_GL_INCR 0x1E02 -#define LOCAL_GL_DECR 0x1E03 -#define LOCAL_GL_VENDOR 0x1F00 -#define LOCAL_GL_RENDERER 0x1F01 -#define LOCAL_GL_VERSION 0x1F02 -#define LOCAL_GL_EXTENSIONS 0x1F03 -#define LOCAL_GL_S 0x2000 -#define LOCAL_GL_T 0x2001 -#define LOCAL_GL_R 0x2002 -#define LOCAL_GL_Q 0x2003 -#define LOCAL_GL_MODULATE 0x2100 -#define LOCAL_GL_DECAL 0x2101 -#define LOCAL_GL_TEXTURE_ENV_MODE 0x2200 -#define LOCAL_GL_TEXTURE_ENV_COLOR 0x2201 -#define LOCAL_GL_TEXTURE_ENV 0x2300 -#define LOCAL_GL_EYE_LINEAR 0x2400 -#define LOCAL_GL_OBJECT_LINEAR 0x2401 -#define LOCAL_GL_SPHERE_MAP 0x2402 -#define LOCAL_GL_TEXTURE_GEN_MODE 0x2500 -#define LOCAL_GL_OBJECT_PLANE 0x2501 -#define LOCAL_GL_EYE_PLANE 0x2502 -#define LOCAL_GL_NEAREST 0x2600 -#define LOCAL_GL_LINEAR 0x2601 -#define LOCAL_GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define LOCAL_GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define LOCAL_GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define LOCAL_GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define LOCAL_GL_TEXTURE_MAG_FILTER 0x2800 -#define LOCAL_GL_TEXTURE_MIN_FILTER 0x2801 -#define LOCAL_GL_TEXTURE_WRAP_S 0x2802 -#define LOCAL_GL_TEXTURE_WRAP_T 0x2803 -#define LOCAL_GL_CLAMP 0x2900 -#define LOCAL_GL_REPEAT 0x2901 -#define LOCAL_GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define LOCAL_GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define LOCAL_GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff -#define LOCAL_GL_POLYGON_OFFSET_FACTOR 0x8038 -#define LOCAL_GL_POLYGON_OFFSET_UNITS 0x2A00 -#define LOCAL_GL_POLYGON_OFFSET_POINT 0x2A01 -#define LOCAL_GL_POLYGON_OFFSET_LINE 0x2A02 -#define LOCAL_GL_POLYGON_OFFSET_FILL 0x8037 -#define LOCAL_GL_ALPHA4 0x803B -#define LOCAL_GL_ALPHA8 0x803C -#define LOCAL_GL_ALPHA12 0x803D -#define LOCAL_GL_ALPHA16 0x803E -#define LOCAL_GL_LUMINANCE4 0x803F -#define LOCAL_GL_LUMINANCE8 0x8040 -#define LOCAL_GL_LUMINANCE12 0x8041 -#define LOCAL_GL_LUMINANCE16 0x8042 -#define LOCAL_GL_LUMINANCE4_ALPHA4 0x8043 -#define LOCAL_GL_LUMINANCE6_ALPHA2 0x8044 -#define LOCAL_GL_LUMINANCE8_ALPHA8 0x8045 -#define LOCAL_GL_LUMINANCE12_ALPHA4 0x8046 -#define LOCAL_GL_LUMINANCE12_ALPHA12 0x8047 -#define LOCAL_GL_LUMINANCE16_ALPHA16 0x8048 -#define LOCAL_GL_INTENSITY 0x8049 -#define LOCAL_GL_INTENSITY4 0x804A -#define LOCAL_GL_INTENSITY8 0x804B -#define LOCAL_GL_INTENSITY12 0x804C -#define LOCAL_GL_INTENSITY16 0x804D -#define LOCAL_GL_R3_G3_B2 0x2A10 -#define LOCAL_GL_RGB4 0x804F -#define LOCAL_GL_RGB5 0x8050 -#define LOCAL_GL_RGB8 0x8051 -#define LOCAL_GL_RGB10 0x8052 -#define LOCAL_GL_RGB12 0x8053 -#define LOCAL_GL_RGB16 0x8054 -#define LOCAL_GL_RGBA2 0x8055 -#define LOCAL_GL_RGBA4 0x8056 -#define LOCAL_GL_RGB5_A1 0x8057 -#define LOCAL_GL_RGBA8 0x8058 -#define LOCAL_GL_RGB10_A2 0x8059 -#define LOCAL_GL_RGBA12 0x805A -#define LOCAL_GL_RGBA16 0x805B -#define LOCAL_GL_TEXTURE_RED_SIZE 0x805C -#define LOCAL_GL_TEXTURE_GREEN_SIZE 0x805D -#define LOCAL_GL_TEXTURE_BLUE_SIZE 0x805E -#define LOCAL_GL_TEXTURE_ALPHA_SIZE 0x805F -#define LOCAL_GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define LOCAL_GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define LOCAL_GL_PROXY_TEXTURE_1D 0x8063 -#define LOCAL_GL_PROXY_TEXTURE_2D 0x8064 -#define LOCAL_GL_TEXTURE_PRIORITY 0x8066 -#define LOCAL_GL_TEXTURE_RESIDENT 0x8067 -#define LOCAL_GL_TEXTURE_BINDING_1D 0x8068 -#define LOCAL_GL_TEXTURE_BINDING_2D 0x8069 -#define LOCAL_GL_VERTEX_ARRAY 0x8074 -#define LOCAL_GL_NORMAL_ARRAY 0x8075 -#define LOCAL_GL_COLOR_ARRAY 0x8076 -#define LOCAL_GL_INDEX_ARRAY 0x8077 -#define LOCAL_GL_TEXTURE_COORD_ARRAY 0x8078 -#define LOCAL_GL_EDGE_FLAG_ARRAY 0x8079 -#define LOCAL_GL_VERTEX_ARRAY_SIZE 0x807A -#define LOCAL_GL_VERTEX_ARRAY_TYPE 0x807B -#define LOCAL_GL_VERTEX_ARRAY_STRIDE 0x807C -#define LOCAL_GL_NORMAL_ARRAY_TYPE 0x807E -#define LOCAL_GL_NORMAL_ARRAY_STRIDE 0x807F -#define LOCAL_GL_COLOR_ARRAY_SIZE 0x8081 -#define LOCAL_GL_COLOR_ARRAY_TYPE 0x8082 -#define LOCAL_GL_COLOR_ARRAY_STRIDE 0x8083 -#define LOCAL_GL_INDEX_ARRAY_TYPE 0x8085 -#define LOCAL_GL_INDEX_ARRAY_STRIDE 0x8086 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define LOCAL_GL_VERTEX_ARRAY_POINTER 0x808E -#define LOCAL_GL_NORMAL_ARRAY_POINTER 0x808F -#define LOCAL_GL_COLOR_ARRAY_POINTER 0x8090 -#define LOCAL_GL_INDEX_ARRAY_POINTER 0x8091 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define LOCAL_GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define LOCAL_GL_V2F 0x2A20 -#define LOCAL_GL_V3F 0x2A21 -#define LOCAL_GL_C4UB_V2F 0x2A22 -#define LOCAL_GL_C4UB_V3F 0x2A23 -#define LOCAL_GL_C3F_V3F 0x2A24 -#define LOCAL_GL_N3F_V3F 0x2A25 -#define LOCAL_GL_C4F_N3F_V3F 0x2A26 -#define LOCAL_GL_T2F_V3F 0x2A27 -#define LOCAL_GL_T4F_V4F 0x2A28 -#define LOCAL_GL_T2F_C4UB_V3F 0x2A29 -#define LOCAL_GL_T2F_C3F_V3F 0x2A2A -#define LOCAL_GL_T2F_N3F_V3F 0x2A2B -#define LOCAL_GL_T2F_C4F_N3F_V3F 0x2A2C -#define LOCAL_GL_T4F_C4F_N3F_V4F 0x2A2D -#define LOCAL_GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define LOCAL_GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT -#define LOCAL_GL_COLOR_INDEX1_EXT 0x80E2 -#define LOCAL_GL_COLOR_INDEX2_EXT 0x80E3 -#define LOCAL_GL_COLOR_INDEX4_EXT 0x80E4 -#define LOCAL_GL_COLOR_INDEX8_EXT 0x80E5 -#define LOCAL_GL_COLOR_INDEX12_EXT 0x80E6 -#define LOCAL_GL_COLOR_INDEX16_EXT 0x80E7 -#define LOCAL_GL_VERSION_1_2 1 -#define LOCAL_GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define LOCAL_GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define LOCAL_GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define LOCAL_GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define LOCAL_GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define LOCAL_GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define LOCAL_GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define LOCAL_GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define LOCAL_GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define LOCAL_GL_RESCALE_NORMAL 0x803A -#define LOCAL_GL_TEXTURE_BINDING_3D 0x806A -#define LOCAL_GL_PACK_SKIP_IMAGES 0x806B -#define LOCAL_GL_PACK_IMAGE_HEIGHT 0x806C -#define LOCAL_GL_UNPACK_SKIP_IMAGES 0x806D -#define LOCAL_GL_UNPACK_IMAGE_HEIGHT 0x806E -#define LOCAL_GL_TEXTURE_3D 0x806F -#define LOCAL_GL_PROXY_TEXTURE_3D 0x8070 -#define LOCAL_GL_TEXTURE_DEPTH 0x8071 -#define LOCAL_GL_TEXTURE_WRAP_R 0x8072 -#define LOCAL_GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define LOCAL_GL_BGR 0x80E0 -#define LOCAL_GL_BGRA 0x80E1 -#define LOCAL_GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define LOCAL_GL_MAX_ELEMENTS_INDICES 0x80E9 -#define LOCAL_GL_CLAMP_TO_EDGE 0x812F -#define LOCAL_GL_TEXTURE_MIN_LOD 0x813A -#define LOCAL_GL_TEXTURE_MAX_LOD 0x813B -#define LOCAL_GL_TEXTURE_BASE_LEVEL 0x813C -#define LOCAL_GL_TEXTURE_MAX_LEVEL 0x813D -#define LOCAL_GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define LOCAL_GL_SINGLE_COLOR 0x81F9 -#define LOCAL_GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define LOCAL_GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define LOCAL_GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define LOCAL_GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define LOCAL_GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define LOCAL_GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define LOCAL_GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define LOCAL_GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define LOCAL_GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define LOCAL_GL_VERSION_1_3 1 -#define LOCAL_GL_MULTISAMPLE 0x809D -#define LOCAL_GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define LOCAL_GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define LOCAL_GL_SAMPLE_COVERAGE 0x80A0 -#define LOCAL_GL_SAMPLE_BUFFERS 0x80A8 -#define LOCAL_GL_SAMPLES 0x80A9 -#define LOCAL_GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define LOCAL_GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define LOCAL_GL_CLAMP_TO_BORDER 0x812D -#define LOCAL_GL_TEXTURE0 0x84C0 -#define LOCAL_GL_TEXTURE1 0x84C1 -#define LOCAL_GL_TEXTURE2 0x84C2 -#define LOCAL_GL_TEXTURE3 0x84C3 -#define LOCAL_GL_TEXTURE4 0x84C4 -#define LOCAL_GL_TEXTURE5 0x84C5 -#define LOCAL_GL_TEXTURE6 0x84C6 -#define LOCAL_GL_TEXTURE7 0x84C7 -#define LOCAL_GL_TEXTURE8 0x84C8 -#define LOCAL_GL_TEXTURE9 0x84C9 -#define LOCAL_GL_TEXTURE10 0x84CA -#define LOCAL_GL_TEXTURE11 0x84CB -#define LOCAL_GL_TEXTURE12 0x84CC -#define LOCAL_GL_TEXTURE13 0x84CD -#define LOCAL_GL_TEXTURE14 0x84CE -#define LOCAL_GL_TEXTURE15 0x84CF -#define LOCAL_GL_TEXTURE16 0x84D0 -#define LOCAL_GL_TEXTURE17 0x84D1 -#define LOCAL_GL_TEXTURE18 0x84D2 -#define LOCAL_GL_TEXTURE19 0x84D3 -#define LOCAL_GL_TEXTURE20 0x84D4 -#define LOCAL_GL_TEXTURE21 0x84D5 -#define LOCAL_GL_TEXTURE22 0x84D6 -#define LOCAL_GL_TEXTURE23 0x84D7 -#define LOCAL_GL_TEXTURE24 0x84D8 -#define LOCAL_GL_TEXTURE25 0x84D9 -#define LOCAL_GL_TEXTURE26 0x84DA -#define LOCAL_GL_TEXTURE27 0x84DB -#define LOCAL_GL_TEXTURE28 0x84DC -#define LOCAL_GL_TEXTURE29 0x84DD -#define LOCAL_GL_TEXTURE30 0x84DE -#define LOCAL_GL_TEXTURE31 0x84DF -#define LOCAL_GL_ACTIVE_TEXTURE 0x84E0 -#define LOCAL_GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define LOCAL_GL_MAX_TEXTURE_UNITS 0x84E2 -#define LOCAL_GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define LOCAL_GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define LOCAL_GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define LOCAL_GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define LOCAL_GL_SUBTRACT 0x84E7 -#define LOCAL_GL_COMPRESSED_ALPHA 0x84E9 -#define LOCAL_GL_COMPRESSED_LUMINANCE 0x84EA -#define LOCAL_GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define LOCAL_GL_COMPRESSED_INTENSITY 0x84EC -#define LOCAL_GL_COMPRESSED_RGB 0x84ED -#define LOCAL_GL_COMPRESSED_RGBA 0x84EE -#define LOCAL_GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define LOCAL_GL_NORMAL_MAP 0x8511 -#define LOCAL_GL_REFLECTION_MAP 0x8512 -#define LOCAL_GL_TEXTURE_CUBE_MAP 0x8513 -#define LOCAL_GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define LOCAL_GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define LOCAL_GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define LOCAL_GL_COMBINE 0x8570 -#define LOCAL_GL_COMBINE_RGB 0x8571 -#define LOCAL_GL_COMBINE_ALPHA 0x8572 -#define LOCAL_GL_RGB_SCALE 0x8573 -#define LOCAL_GL_ADD_SIGNED 0x8574 -#define LOCAL_GL_INTERPOLATE 0x8575 -#define LOCAL_GL_CONSTANT 0x8576 -#define LOCAL_GL_PRIMARY_COLOR 0x8577 -#define LOCAL_GL_PREVIOUS 0x8578 -#define LOCAL_GL_SOURCE0_RGB 0x8580 -#define LOCAL_GL_SOURCE1_RGB 0x8581 -#define LOCAL_GL_SOURCE2_RGB 0x8582 -#define LOCAL_GL_SOURCE0_ALPHA 0x8588 -#define LOCAL_GL_SOURCE1_ALPHA 0x8589 -#define LOCAL_GL_SOURCE2_ALPHA 0x858A -#define LOCAL_GL_OPERAND0_RGB 0x8590 -#define LOCAL_GL_OPERAND1_RGB 0x8591 -#define LOCAL_GL_OPERAND2_RGB 0x8592 -#define LOCAL_GL_OPERAND0_ALPHA 0x8598 -#define LOCAL_GL_OPERAND1_ALPHA 0x8599 -#define LOCAL_GL_OPERAND2_ALPHA 0x859A -#define LOCAL_GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define LOCAL_GL_TEXTURE_COMPRESSED 0x86A1 -#define LOCAL_GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define LOCAL_GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define LOCAL_GL_DOT3_RGB 0x86AE -#define LOCAL_GL_DOT3_RGBA 0x86AF -#define LOCAL_GL_MULTISAMPLE_BIT 0x20000000 -#define LOCAL_GL_VERSION_1_4 1 -#define LOCAL_GL_BLEND_DST_RGB 0x80C8 -#define LOCAL_GL_BLEND_SRC_RGB 0x80C9 -#define LOCAL_GL_BLEND_DST_ALPHA 0x80CA -#define LOCAL_GL_BLEND_SRC_ALPHA 0x80CB -#define LOCAL_GL_POINT_SIZE_MIN 0x8126 -#define LOCAL_GL_POINT_SIZE_MAX 0x8127 -#define LOCAL_GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define LOCAL_GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define LOCAL_GL_GENERATE_MIPMAP 0x8191 -#define LOCAL_GL_GENERATE_MIPMAP_HINT 0x8192 -#define LOCAL_GL_DEPTH_COMPONENT16 0x81A5 -#define LOCAL_GL_DEPTH_COMPONENT24 0x81A6 -#define LOCAL_GL_DEPTH_COMPONENT32 0x81A7 -#define LOCAL_GL_MIRRORED_REPEAT 0x8370 -#define LOCAL_GL_FOG_COORDINATE_SOURCE 0x8450 -#define LOCAL_GL_FOG_COORDINATE 0x8451 -#define LOCAL_GL_FRAGMENT_DEPTH 0x8452 -#define LOCAL_GL_CURRENT_FOG_COORDINATE 0x8453 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define LOCAL_GL_FOG_COORDINATE_ARRAY 0x8457 -#define LOCAL_GL_COLOR_SUM 0x8458 -#define LOCAL_GL_CURRENT_SECONDARY_COLOR 0x8459 -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define LOCAL_GL_SECONDARY_COLOR_ARRAY 0x845E -#define LOCAL_GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define LOCAL_GL_TEXTURE_FILTER_CONTROL 0x8500 -#define LOCAL_GL_TEXTURE_LOD_BIAS 0x8501 -#define LOCAL_GL_INCR_WRAP 0x8507 -#define LOCAL_GL_DECR_WRAP 0x8508 -#define LOCAL_GL_TEXTURE_DEPTH_SIZE 0x884A -#define LOCAL_GL_DEPTH_TEXTURE_MODE 0x884B -#define LOCAL_GL_TEXTURE_COMPARE_MODE 0x884C -#define LOCAL_GL_TEXTURE_COMPARE_FUNC 0x884D -#define LOCAL_GL_COMPARE_R_TO_TEXTURE 0x884E -#define LOCAL_GL_VERSION_1_5 1 -#define LOCAL_GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define LOCAL_GL_FOG_COORD GL_FOG_COORDINATE -#define LOCAL_GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define LOCAL_GL_SRC0_RGB GL_SOURCE0_RGB -#define LOCAL_GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define LOCAL_GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define LOCAL_GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define LOCAL_GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define LOCAL_GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define LOCAL_GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define LOCAL_GL_SRC1_RGB GL_SOURCE1_RGB -#define LOCAL_GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define LOCAL_GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#define LOCAL_GL_SRC2_RGB GL_SOURCE2_RGB -#define LOCAL_GL_BUFFER_SIZE 0x8764 -#define LOCAL_GL_BUFFER_USAGE 0x8765 -#define LOCAL_GL_QUERY_COUNTER_BITS 0x8864 -#define LOCAL_GL_CURRENT_QUERY 0x8865 -#define LOCAL_GL_QUERY_RESULT 0x8866 -#define LOCAL_GL_QUERY_RESULT_AVAILABLE 0x8867 -#define LOCAL_GL_ARRAY_BUFFER 0x8892 -#define LOCAL_GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define LOCAL_GL_ARRAY_BUFFER_BINDING 0x8894 -#define LOCAL_GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define LOCAL_GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define LOCAL_GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define LOCAL_GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define LOCAL_GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define LOCAL_GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define LOCAL_GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define LOCAL_GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define LOCAL_GL_READ_ONLY 0x88B8 -#define LOCAL_GL_WRITE_ONLY 0x88B9 -#define LOCAL_GL_READ_WRITE 0x88BA -#define LOCAL_GL_BUFFER_ACCESS 0x88BB -#define LOCAL_GL_BUFFER_MAPPED 0x88BC -#define LOCAL_GL_BUFFER_MAP_POINTER 0x88BD -#define LOCAL_GL_STREAM_DRAW 0x88E0 -#define LOCAL_GL_STREAM_READ 0x88E1 -#define LOCAL_GL_STREAM_COPY 0x88E2 -#define LOCAL_GL_STATIC_DRAW 0x88E4 -#define LOCAL_GL_STATIC_READ 0x88E5 -#define LOCAL_GL_STATIC_COPY 0x88E6 -#define LOCAL_GL_DYNAMIC_DRAW 0x88E8 -#define LOCAL_GL_DYNAMIC_READ 0x88E9 -#define LOCAL_GL_DYNAMIC_COPY 0x88EA -#define LOCAL_GL_SAMPLES_PASSED 0x8914 -#define LOCAL_GL_VERSION_2_0 1 -#define LOCAL_GL_BLEND_EQUATION_RGB 0x8009 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define LOCAL_GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define LOCAL_GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define LOCAL_GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define LOCAL_GL_STENCIL_BACK_FUNC 0x8800 -#define LOCAL_GL_STENCIL_BACK_FAIL 0x8801 -#define LOCAL_GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define LOCAL_GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define LOCAL_GL_MAX_DRAW_BUFFERS 0x8824 -#define LOCAL_GL_DRAW_BUFFER0 0x8825 -#define LOCAL_GL_DRAW_BUFFER1 0x8826 -#define LOCAL_GL_DRAW_BUFFER2 0x8827 -#define LOCAL_GL_DRAW_BUFFER3 0x8828 -#define LOCAL_GL_DRAW_BUFFER4 0x8829 -#define LOCAL_GL_DRAW_BUFFER5 0x882A -#define LOCAL_GL_DRAW_BUFFER6 0x882B -#define LOCAL_GL_DRAW_BUFFER7 0x882C -#define LOCAL_GL_DRAW_BUFFER8 0x882D -#define LOCAL_GL_DRAW_BUFFER9 0x882E -#define LOCAL_GL_DRAW_BUFFER10 0x882F -#define LOCAL_GL_DRAW_BUFFER11 0x8830 -#define LOCAL_GL_DRAW_BUFFER12 0x8831 -#define LOCAL_GL_DRAW_BUFFER13 0x8832 -#define LOCAL_GL_DRAW_BUFFER14 0x8833 -#define LOCAL_GL_DRAW_BUFFER15 0x8834 -#define LOCAL_GL_BLEND_EQUATION_ALPHA 0x883D -#define LOCAL_GL_POINT_SPRITE 0x8861 -#define LOCAL_GL_COORD_REPLACE 0x8862 -#define LOCAL_GL_MAX_VERTEX_ATTRIBS 0x8869 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define LOCAL_GL_MAX_TEXTURE_COORDS 0x8871 -#define LOCAL_GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define LOCAL_GL_FRAGMENT_SHADER 0x8B30 -#define LOCAL_GL_VERTEX_SHADER 0x8B31 -#define LOCAL_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define LOCAL_GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define LOCAL_GL_MAX_VARYING_FLOATS 0x8B4B -#define LOCAL_GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define LOCAL_GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define LOCAL_GL_SHADER_TYPE 0x8B4F -#define LOCAL_GL_FLOAT_VEC2 0x8B50 -#define LOCAL_GL_FLOAT_VEC3 0x8B51 -#define LOCAL_GL_FLOAT_VEC4 0x8B52 -#define LOCAL_GL_INT_VEC2 0x8B53 -#define LOCAL_GL_INT_VEC3 0x8B54 -#define LOCAL_GL_INT_VEC4 0x8B55 -#define LOCAL_GL_BOOL 0x8B56 -#define LOCAL_GL_BOOL_VEC2 0x8B57 -#define LOCAL_GL_BOOL_VEC3 0x8B58 -#define LOCAL_GL_BOOL_VEC4 0x8B59 -#define LOCAL_GL_FLOAT_MAT2 0x8B5A -#define LOCAL_GL_FLOAT_MAT3 0x8B5B -#define LOCAL_GL_FLOAT_MAT4 0x8B5C -#define LOCAL_GL_SAMPLER_1D 0x8B5D -#define LOCAL_GL_SAMPLER_2D 0x8B5E -#define LOCAL_GL_SAMPLER_3D 0x8B5F -#define LOCAL_GL_SAMPLER_CUBE 0x8B60 -#define LOCAL_GL_SAMPLER_1D_SHADOW 0x8B61 -#define LOCAL_GL_SAMPLER_2D_SHADOW 0x8B62 -#define LOCAL_GL_DELETE_STATUS 0x8B80 -#define LOCAL_GL_COMPILE_STATUS 0x8B81 -#define LOCAL_GL_LINK_STATUS 0x8B82 -#define LOCAL_GL_VALIDATE_STATUS 0x8B83 -#define LOCAL_GL_INFO_LOG_LENGTH 0x8B84 -#define LOCAL_GL_ATTACHED_SHADERS 0x8B85 -#define LOCAL_GL_ACTIVE_UNIFORMS 0x8B86 -#define LOCAL_GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define LOCAL_GL_SHADER_SOURCE_LENGTH 0x8B88 -#define LOCAL_GL_ACTIVE_ATTRIBUTES 0x8B89 -#define LOCAL_GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define LOCAL_GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define LOCAL_GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define LOCAL_GL_CURRENT_PROGRAM 0x8B8D -#define LOCAL_GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define LOCAL_GL_LOWER_LEFT 0x8CA1 -#define LOCAL_GL_UPPER_LEFT 0x8CA2 -#define LOCAL_GL_STENCIL_BACK_REF 0x8CA3 -#define LOCAL_GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define LOCAL_GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define LOCAL_GL_3DFX_multisample 1 -#define LOCAL_GL_MULTISAMPLE_3DFX 0x86B2 -#define LOCAL_GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define LOCAL_GL_SAMPLES_3DFX 0x86B4 -#define LOCAL_GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#define LOCAL_GL_3DFX_tbuffer 1 -#define LOCAL_GL_3DFX_texture_compression_FXT1 1 -#define LOCAL_GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define LOCAL_GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#define LOCAL_GL_APPLE_client_storage 1 -#define LOCAL_GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#define LOCAL_GL_APPLE_element_array 1 -#define LOCAL_GL_ELEMENT_ARRAY_APPLE 0x8768 -#define LOCAL_GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 -#define LOCAL_GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A -#define LOCAL_GL_APPLE_fence 1 -#define LOCAL_GL_DRAW_PIXELS_APPLE 0x8A0A -#define LOCAL_GL_FENCE_APPLE 0x8A0B -#define LOCAL_GL_APPLE_float_pixels 1 -#define LOCAL_GL_HALF_APPLE 0x140B -#define LOCAL_GL_RGBA_FLOAT32_APPLE 0x8814 -#define LOCAL_GL_RGB_FLOAT32_APPLE 0x8815 -#define LOCAL_GL_ALPHA_FLOAT32_APPLE 0x8816 -#define LOCAL_GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define LOCAL_GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define LOCAL_GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define LOCAL_GL_RGBA_FLOAT16_APPLE 0x881A -#define LOCAL_GL_RGB_FLOAT16_APPLE 0x881B -#define LOCAL_GL_ALPHA_FLOAT16_APPLE 0x881C -#define LOCAL_GL_INTENSITY_FLOAT16_APPLE 0x881D -#define LOCAL_GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define LOCAL_GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define LOCAL_GL_COLOR_FLOAT_APPLE 0x8A0F -#define LOCAL_GL_APPLE_pixel_buffer 1 -#define LOCAL_GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 -#define LOCAL_GL_APPLE_specular_vector 1 -#define LOCAL_GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#define LOCAL_GL_APPLE_texture_range 1 -#define LOCAL_GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define LOCAL_GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define LOCAL_GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define LOCAL_GL_STORAGE_PRIVATE_APPLE 0x85BD -#define LOCAL_GL_STORAGE_CACHED_APPLE 0x85BE -#define LOCAL_GL_STORAGE_SHARED_APPLE 0x85BF -#define LOCAL_GL_APPLE_transform_hint 1 -#define LOCAL_GL_TRANSFORM_HINT_APPLE 0x85B1 -#define LOCAL_GL_APPLE_vertex_array_object 1 -#define LOCAL_GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#define LOCAL_GL_APPLE_vertex_array_range 1 -#define LOCAL_GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define LOCAL_GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define LOCAL_GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define LOCAL_GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 -#define LOCAL_GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define LOCAL_GL_STORAGE_CACHED_APPLE 0x85BE -#define LOCAL_GL_STORAGE_SHARED_APPLE 0x85BF -#define LOCAL_GL_APPLE_ycbcr_422 1 -#define LOCAL_GL_YCBCR_422_APPLE 0x85B9 -#define LOCAL_GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define LOCAL_GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define LOCAL_GL_ARB_color_buffer_float 1 -#define LOCAL_GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define LOCAL_GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define LOCAL_GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define LOCAL_GL_CLAMP_READ_COLOR_ARB 0x891C -#define LOCAL_GL_FIXED_ONLY_ARB 0x891D -#define LOCAL_GL_ARB_depth_texture 1 -#define LOCAL_GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define LOCAL_GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define LOCAL_GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define LOCAL_GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define LOCAL_GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#define LOCAL_GL_ARB_draw_buffers 1 -#define LOCAL_GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define LOCAL_GL_DRAW_BUFFER0_ARB 0x8825 -#define LOCAL_GL_DRAW_BUFFER1_ARB 0x8826 -#define LOCAL_GL_DRAW_BUFFER2_ARB 0x8827 -#define LOCAL_GL_DRAW_BUFFER3_ARB 0x8828 -#define LOCAL_GL_DRAW_BUFFER4_ARB 0x8829 -#define LOCAL_GL_DRAW_BUFFER5_ARB 0x882A -#define LOCAL_GL_DRAW_BUFFER6_ARB 0x882B -#define LOCAL_GL_DRAW_BUFFER7_ARB 0x882C -#define LOCAL_GL_DRAW_BUFFER8_ARB 0x882D -#define LOCAL_GL_DRAW_BUFFER9_ARB 0x882E -#define LOCAL_GL_DRAW_BUFFER10_ARB 0x882F -#define LOCAL_GL_DRAW_BUFFER11_ARB 0x8830 -#define LOCAL_GL_DRAW_BUFFER12_ARB 0x8831 -#define LOCAL_GL_DRAW_BUFFER13_ARB 0x8832 -#define LOCAL_GL_DRAW_BUFFER14_ARB 0x8833 -#define LOCAL_GL_DRAW_BUFFER15_ARB 0x8834 -#define LOCAL_GL_ARB_fragment_program 1 -#define LOCAL_GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define LOCAL_GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define LOCAL_GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define LOCAL_GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define LOCAL_GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define LOCAL_GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define LOCAL_GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define LOCAL_GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define LOCAL_GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define LOCAL_GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define LOCAL_GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define LOCAL_GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define LOCAL_GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define LOCAL_GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define LOCAL_GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#define LOCAL_GL_ARB_fragment_program_shadow 1 -#define LOCAL_GL_ARB_fragment_shader 1 -#define LOCAL_GL_FRAGMENT_SHADER_ARB 0x8B30 -#define LOCAL_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define LOCAL_GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#define LOCAL_GL_ARB_half_float_pixel 1 -#define LOCAL_GL_HALF_FLOAT_ARB 0x140B -#define LOCAL_GL_ARB_imaging 1 -#define LOCAL_GL_CONSTANT_COLOR 0x8001 -#define LOCAL_GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define LOCAL_GL_CONSTANT_ALPHA 0x8003 -#define LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define LOCAL_GL_BLEND_COLOR 0x8005 -#define LOCAL_GL_FUNC_ADD 0x8006 -#define LOCAL_GL_MIN 0x8007 -#define LOCAL_GL_MAX 0x8008 -#define LOCAL_GL_BLEND_EQUATION 0x8009 -#define LOCAL_GL_FUNC_SUBTRACT 0x800A -#define LOCAL_GL_FUNC_REVERSE_SUBTRACT 0x800B -#define LOCAL_GL_CONVOLUTION_1D 0x8010 -#define LOCAL_GL_CONVOLUTION_2D 0x8011 -#define LOCAL_GL_SEPARABLE_2D 0x8012 -#define LOCAL_GL_CONVOLUTION_BORDER_MODE 0x8013 -#define LOCAL_GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define LOCAL_GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define LOCAL_GL_REDUCE 0x8016 -#define LOCAL_GL_CONVOLUTION_FORMAT 0x8017 -#define LOCAL_GL_CONVOLUTION_WIDTH 0x8018 -#define LOCAL_GL_CONVOLUTION_HEIGHT 0x8019 -#define LOCAL_GL_MAX_CONVOLUTION_WIDTH 0x801A -#define LOCAL_GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define LOCAL_GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define LOCAL_GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define LOCAL_GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define LOCAL_GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define LOCAL_GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define LOCAL_GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define LOCAL_GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define LOCAL_GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define LOCAL_GL_HISTOGRAM 0x8024 -#define LOCAL_GL_PROXY_HISTOGRAM 0x8025 -#define LOCAL_GL_HISTOGRAM_WIDTH 0x8026 -#define LOCAL_GL_HISTOGRAM_FORMAT 0x8027 -#define LOCAL_GL_HISTOGRAM_RED_SIZE 0x8028 -#define LOCAL_GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define LOCAL_GL_HISTOGRAM_BLUE_SIZE 0x802A -#define LOCAL_GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define LOCAL_GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define LOCAL_GL_HISTOGRAM_SINK 0x802D -#define LOCAL_GL_MINMAX 0x802E -#define LOCAL_GL_MINMAX_FORMAT 0x802F -#define LOCAL_GL_MINMAX_SINK 0x8030 -#define LOCAL_GL_TABLE_TOO_LARGE 0x8031 -#define LOCAL_GL_COLOR_MATRIX 0x80B1 -#define LOCAL_GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define LOCAL_GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define LOCAL_GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define LOCAL_GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define LOCAL_GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define LOCAL_GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define LOCAL_GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define LOCAL_GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define LOCAL_GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define LOCAL_GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define LOCAL_GL_COLOR_TABLE 0x80D0 -#define LOCAL_GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define LOCAL_GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define LOCAL_GL_PROXY_COLOR_TABLE 0x80D3 -#define LOCAL_GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define LOCAL_GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define LOCAL_GL_COLOR_TABLE_SCALE 0x80D6 -#define LOCAL_GL_COLOR_TABLE_BIAS 0x80D7 -#define LOCAL_GL_COLOR_TABLE_FORMAT 0x80D8 -#define LOCAL_GL_COLOR_TABLE_WIDTH 0x80D9 -#define LOCAL_GL_COLOR_TABLE_RED_SIZE 0x80DA -#define LOCAL_GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define LOCAL_GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define LOCAL_GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define LOCAL_GL_IGNORE_BORDER 0x8150 -#define LOCAL_GL_CONSTANT_BORDER 0x8151 -#define LOCAL_GL_WRAP_BORDER 0x8152 -#define LOCAL_GL_REPLICATE_BORDER 0x8153 -#define LOCAL_GL_CONVOLUTION_BORDER_COLOR 0x8154 -#define LOCAL_GL_ARB_matrix_palette 1 -#define LOCAL_GL_MATRIX_PALETTE_ARB 0x8840 -#define LOCAL_GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define LOCAL_GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define LOCAL_GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define LOCAL_GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define LOCAL_GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define LOCAL_GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define LOCAL_GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define LOCAL_GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define LOCAL_GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#define LOCAL_GL_ARB_multisample 1 -#define LOCAL_GL_MULTISAMPLE_ARB 0x809D -#define LOCAL_GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define LOCAL_GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define LOCAL_GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define LOCAL_GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define LOCAL_GL_SAMPLES_ARB 0x80A9 -#define LOCAL_GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define LOCAL_GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define LOCAL_GL_MULTISAMPLE_BIT_ARB 0x20000000 -#define LOCAL_GL_ARB_multitexture 1 -#define LOCAL_GL_TEXTURE0_ARB 0x84C0 -#define LOCAL_GL_TEXTURE1_ARB 0x84C1 -#define LOCAL_GL_TEXTURE2_ARB 0x84C2 -#define LOCAL_GL_TEXTURE3_ARB 0x84C3 -#define LOCAL_GL_TEXTURE4_ARB 0x84C4 -#define LOCAL_GL_TEXTURE5_ARB 0x84C5 -#define LOCAL_GL_TEXTURE6_ARB 0x84C6 -#define LOCAL_GL_TEXTURE7_ARB 0x84C7 -#define LOCAL_GL_TEXTURE8_ARB 0x84C8 -#define LOCAL_GL_TEXTURE9_ARB 0x84C9 -#define LOCAL_GL_TEXTURE10_ARB 0x84CA -#define LOCAL_GL_TEXTURE11_ARB 0x84CB -#define LOCAL_GL_TEXTURE12_ARB 0x84CC -#define LOCAL_GL_TEXTURE13_ARB 0x84CD -#define LOCAL_GL_TEXTURE14_ARB 0x84CE -#define LOCAL_GL_TEXTURE15_ARB 0x84CF -#define LOCAL_GL_TEXTURE16_ARB 0x84D0 -#define LOCAL_GL_TEXTURE17_ARB 0x84D1 -#define LOCAL_GL_TEXTURE18_ARB 0x84D2 -#define LOCAL_GL_TEXTURE19_ARB 0x84D3 -#define LOCAL_GL_TEXTURE20_ARB 0x84D4 -#define LOCAL_GL_TEXTURE21_ARB 0x84D5 -#define LOCAL_GL_TEXTURE22_ARB 0x84D6 -#define LOCAL_GL_TEXTURE23_ARB 0x84D7 -#define LOCAL_GL_TEXTURE24_ARB 0x84D8 -#define LOCAL_GL_TEXTURE25_ARB 0x84D9 -#define LOCAL_GL_TEXTURE26_ARB 0x84DA -#define LOCAL_GL_TEXTURE27_ARB 0x84DB -#define LOCAL_GL_TEXTURE28_ARB 0x84DC -#define LOCAL_GL_TEXTURE29_ARB 0x84DD -#define LOCAL_GL_TEXTURE30_ARB 0x84DE -#define LOCAL_GL_TEXTURE31_ARB 0x84DF -#define LOCAL_GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define LOCAL_GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define LOCAL_GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#define LOCAL_GL_ARB_occlusion_query 1 -#define LOCAL_GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define LOCAL_GL_CURRENT_QUERY_ARB 0x8865 -#define LOCAL_GL_QUERY_RESULT_ARB 0x8866 -#define LOCAL_GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define LOCAL_GL_SAMPLES_PASSED_ARB 0x8914 -#define LOCAL_GL_ARB_pixel_buffer_object 1 -#define LOCAL_GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define LOCAL_GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define LOCAL_GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define LOCAL_GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#define LOCAL_GL_ARB_point_parameters 1 -#define LOCAL_GL_POINT_SIZE_MIN_ARB 0x8126 -#define LOCAL_GL_POINT_SIZE_MAX_ARB 0x8127 -#define LOCAL_GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define LOCAL_GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#define LOCAL_GL_ARB_point_sprite 1 -#define LOCAL_GL_POINT_SPRITE_ARB 0x8861 -#define LOCAL_GL_COORD_REPLACE_ARB 0x8862 -#define LOCAL_GL_ARB_shader_objects 1 -#define LOCAL_GL_PROGRAM_OBJECT_ARB 0x8B40 -#define LOCAL_GL_SHADER_OBJECT_ARB 0x8B48 -#define LOCAL_GL_OBJECT_TYPE_ARB 0x8B4E -#define LOCAL_GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define LOCAL_GL_FLOAT_VEC2_ARB 0x8B50 -#define LOCAL_GL_FLOAT_VEC3_ARB 0x8B51 -#define LOCAL_GL_FLOAT_VEC4_ARB 0x8B52 -#define LOCAL_GL_INT_VEC2_ARB 0x8B53 -#define LOCAL_GL_INT_VEC3_ARB 0x8B54 -#define LOCAL_GL_INT_VEC4_ARB 0x8B55 -#define LOCAL_GL_BOOL_ARB 0x8B56 -#define LOCAL_GL_BOOL_VEC2_ARB 0x8B57 -#define LOCAL_GL_BOOL_VEC3_ARB 0x8B58 -#define LOCAL_GL_BOOL_VEC4_ARB 0x8B59 -#define LOCAL_GL_FLOAT_MAT2_ARB 0x8B5A -#define LOCAL_GL_FLOAT_MAT3_ARB 0x8B5B -#define LOCAL_GL_FLOAT_MAT4_ARB 0x8B5C -#define LOCAL_GL_SAMPLER_1D_ARB 0x8B5D -#define LOCAL_GL_SAMPLER_2D_ARB 0x8B5E -#define LOCAL_GL_SAMPLER_3D_ARB 0x8B5F -#define LOCAL_GL_SAMPLER_CUBE_ARB 0x8B60 -#define LOCAL_GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define LOCAL_GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define LOCAL_GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define LOCAL_GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define LOCAL_GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define LOCAL_GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define LOCAL_GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define LOCAL_GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define LOCAL_GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define LOCAL_GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define LOCAL_GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define LOCAL_GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define LOCAL_GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#define LOCAL_GL_ARB_shading_language_100 1 -#define LOCAL_GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#define LOCAL_GL_ARB_shadow 1 -#define LOCAL_GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define LOCAL_GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define LOCAL_GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#define LOCAL_GL_ARB_shadow_ambient 1 -#define LOCAL_GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#define LOCAL_GL_ARB_texture_border_clamp 1 -#define LOCAL_GL_CLAMP_TO_BORDER_ARB 0x812D -#define LOCAL_GL_ARB_texture_compression 1 -#define LOCAL_GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define LOCAL_GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define LOCAL_GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define LOCAL_GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define LOCAL_GL_COMPRESSED_RGB_ARB 0x84ED -#define LOCAL_GL_COMPRESSED_RGBA_ARB 0x84EE -#define LOCAL_GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define LOCAL_GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define LOCAL_GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define LOCAL_GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define LOCAL_GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#define LOCAL_GL_ARB_texture_cube_map 1 -#define LOCAL_GL_NORMAL_MAP_ARB 0x8511 -#define LOCAL_GL_REFLECTION_MAP_ARB 0x8512 -#define LOCAL_GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define LOCAL_GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define LOCAL_GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define LOCAL_GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#define LOCAL_GL_ARB_texture_env_add 1 -#define LOCAL_GL_ARB_texture_env_combine 1 -#define LOCAL_GL_SUBTRACT_ARB 0x84E7 -#define LOCAL_GL_COMBINE_ARB 0x8570 -#define LOCAL_GL_COMBINE_RGB_ARB 0x8571 -#define LOCAL_GL_COMBINE_ALPHA_ARB 0x8572 -#define LOCAL_GL_RGB_SCALE_ARB 0x8573 -#define LOCAL_GL_ADD_SIGNED_ARB 0x8574 -#define LOCAL_GL_INTERPOLATE_ARB 0x8575 -#define LOCAL_GL_CONSTANT_ARB 0x8576 -#define LOCAL_GL_PRIMARY_COLOR_ARB 0x8577 -#define LOCAL_GL_PREVIOUS_ARB 0x8578 -#define LOCAL_GL_SOURCE0_RGB_ARB 0x8580 -#define LOCAL_GL_SOURCE1_RGB_ARB 0x8581 -#define LOCAL_GL_SOURCE2_RGB_ARB 0x8582 -#define LOCAL_GL_SOURCE0_ALPHA_ARB 0x8588 -#define LOCAL_GL_SOURCE1_ALPHA_ARB 0x8589 -#define LOCAL_GL_SOURCE2_ALPHA_ARB 0x858A -#define LOCAL_GL_OPERAND0_RGB_ARB 0x8590 -#define LOCAL_GL_OPERAND1_RGB_ARB 0x8591 -#define LOCAL_GL_OPERAND2_RGB_ARB 0x8592 -#define LOCAL_GL_OPERAND0_ALPHA_ARB 0x8598 -#define LOCAL_GL_OPERAND1_ALPHA_ARB 0x8599 -#define LOCAL_GL_OPERAND2_ALPHA_ARB 0x859A -#define LOCAL_GL_ARB_texture_env_crossbar 1 -#define LOCAL_GL_ARB_texture_env_dot3 1 -#define LOCAL_GL_DOT3_RGB_ARB 0x86AE -#define LOCAL_GL_DOT3_RGBA_ARB 0x86AF -#define LOCAL_GL_ARB_texture_float 1 -#define LOCAL_GL_RGBA32F_ARB 0x8814 -#define LOCAL_GL_RGB32F_ARB 0x8815 -#define LOCAL_GL_ALPHA32F_ARB 0x8816 -#define LOCAL_GL_INTENSITY32F_ARB 0x8817 -#define LOCAL_GL_LUMINANCE32F_ARB 0x8818 -#define LOCAL_GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define LOCAL_GL_RGBA16F_ARB 0x881A -#define LOCAL_GL_RGB16F_ARB 0x881B -#define LOCAL_GL_ALPHA16F_ARB 0x881C -#define LOCAL_GL_INTENSITY16F_ARB 0x881D -#define LOCAL_GL_LUMINANCE16F_ARB 0x881E -#define LOCAL_GL_LUMINANCE_ALPHA16F_ARB 0x881F -#define LOCAL_GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define LOCAL_GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define LOCAL_GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define LOCAL_GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define LOCAL_GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define LOCAL_GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define LOCAL_GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define LOCAL_GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define LOCAL_GL_ARB_texture_mirrored_repeat 1 -#define LOCAL_GL_MIRRORED_REPEAT_ARB 0x8370 -#define LOCAL_GL_ARB_texture_non_power_of_two 1 -#define LOCAL_GL_ARB_texture_rectangle 1 -#define LOCAL_GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define LOCAL_GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define LOCAL_GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define LOCAL_GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#define LOCAL_GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define LOCAL_GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define LOCAL_GL_ARB_transpose_matrix 1 -#define LOCAL_GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define LOCAL_GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define LOCAL_GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define LOCAL_GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#define LOCAL_GL_ARB_vertex_blend 1 -#define LOCAL_GL_MODELVIEW0_ARB 0x1700 -#define LOCAL_GL_MODELVIEW1_ARB 0x850A -#define LOCAL_GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define LOCAL_GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define LOCAL_GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define LOCAL_GL_VERTEX_BLEND_ARB 0x86A7 -#define LOCAL_GL_CURRENT_WEIGHT_ARB 0x86A8 -#define LOCAL_GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define LOCAL_GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define LOCAL_GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define LOCAL_GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define LOCAL_GL_WEIGHT_ARRAY_ARB 0x86AD -#define LOCAL_GL_MODELVIEW2_ARB 0x8722 -#define LOCAL_GL_MODELVIEW3_ARB 0x8723 -#define LOCAL_GL_MODELVIEW4_ARB 0x8724 -#define LOCAL_GL_MODELVIEW5_ARB 0x8725 -#define LOCAL_GL_MODELVIEW6_ARB 0x8726 -#define LOCAL_GL_MODELVIEW7_ARB 0x8727 -#define LOCAL_GL_MODELVIEW8_ARB 0x8728 -#define LOCAL_GL_MODELVIEW9_ARB 0x8729 -#define LOCAL_GL_MODELVIEW10_ARB 0x872A -#define LOCAL_GL_MODELVIEW11_ARB 0x872B -#define LOCAL_GL_MODELVIEW12_ARB 0x872C -#define LOCAL_GL_MODELVIEW13_ARB 0x872D -#define LOCAL_GL_MODELVIEW14_ARB 0x872E -#define LOCAL_GL_MODELVIEW15_ARB 0x872F -#define LOCAL_GL_MODELVIEW16_ARB 0x8730 -#define LOCAL_GL_MODELVIEW17_ARB 0x8731 -#define LOCAL_GL_MODELVIEW18_ARB 0x8732 -#define LOCAL_GL_MODELVIEW19_ARB 0x8733 -#define LOCAL_GL_MODELVIEW20_ARB 0x8734 -#define LOCAL_GL_MODELVIEW21_ARB 0x8735 -#define LOCAL_GL_MODELVIEW22_ARB 0x8736 -#define LOCAL_GL_MODELVIEW23_ARB 0x8737 -#define LOCAL_GL_MODELVIEW24_ARB 0x8738 -#define LOCAL_GL_MODELVIEW25_ARB 0x8739 -#define LOCAL_GL_MODELVIEW26_ARB 0x873A -#define LOCAL_GL_MODELVIEW27_ARB 0x873B -#define LOCAL_GL_MODELVIEW28_ARB 0x873C -#define LOCAL_GL_MODELVIEW29_ARB 0x873D -#define LOCAL_GL_MODELVIEW30_ARB 0x873E -#define LOCAL_GL_MODELVIEW31_ARB 0x873F -#define LOCAL_GL_ARB_vertex_buffer_object 1 -#define LOCAL_GL_BUFFER_SIZE_ARB 0x8764 -#define LOCAL_GL_BUFFER_USAGE_ARB 0x8765 -#define LOCAL_GL_ARRAY_BUFFER_ARB 0x8892 -#define LOCAL_GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define LOCAL_GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define LOCAL_GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define LOCAL_GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define LOCAL_GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define LOCAL_GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define LOCAL_GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define LOCAL_GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define LOCAL_GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define LOCAL_GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define LOCAL_GL_READ_ONLY_ARB 0x88B8 -#define LOCAL_GL_WRITE_ONLY_ARB 0x88B9 -#define LOCAL_GL_READ_WRITE_ARB 0x88BA -#define LOCAL_GL_BUFFER_ACCESS_ARB 0x88BB -#define LOCAL_GL_BUFFER_MAPPED_ARB 0x88BC -#define LOCAL_GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define LOCAL_GL_STREAM_DRAW_ARB 0x88E0 -#define LOCAL_GL_STREAM_READ_ARB 0x88E1 -#define LOCAL_GL_STREAM_COPY_ARB 0x88E2 -#define LOCAL_GL_STATIC_DRAW_ARB 0x88E4 -#define LOCAL_GL_STATIC_READ_ARB 0x88E5 -#define LOCAL_GL_STATIC_COPY_ARB 0x88E6 -#define LOCAL_GL_DYNAMIC_DRAW_ARB 0x88E8 -#define LOCAL_GL_DYNAMIC_READ_ARB 0x88E9 -#define LOCAL_GL_DYNAMIC_COPY_ARB 0x88EA -#define LOCAL_GL_ARB_vertex_program 1 -#define LOCAL_GL_COLOR_SUM_ARB 0x8458 -#define LOCAL_GL_VERTEX_PROGRAM_ARB 0x8620 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define LOCAL_GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define LOCAL_GL_PROGRAM_LENGTH_ARB 0x8627 -#define LOCAL_GL_PROGRAM_STRING_ARB 0x8628 -#define LOCAL_GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define LOCAL_GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define LOCAL_GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define LOCAL_GL_CURRENT_MATRIX_ARB 0x8641 -#define LOCAL_GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define LOCAL_GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define LOCAL_GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define LOCAL_GL_PROGRAM_BINDING_ARB 0x8677 -#define LOCAL_GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define LOCAL_GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define LOCAL_GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define LOCAL_GL_PROGRAM_FORMAT_ARB 0x8876 -#define LOCAL_GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define LOCAL_GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define LOCAL_GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define LOCAL_GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define LOCAL_GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define LOCAL_GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define LOCAL_GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define LOCAL_GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define LOCAL_GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define LOCAL_GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define LOCAL_GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define LOCAL_GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define LOCAL_GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define LOCAL_GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define LOCAL_GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define LOCAL_GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define LOCAL_GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define LOCAL_GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define LOCAL_GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define LOCAL_GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define LOCAL_GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define LOCAL_GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define LOCAL_GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define LOCAL_GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define LOCAL_GL_MATRIX0_ARB 0x88C0 -#define LOCAL_GL_MATRIX1_ARB 0x88C1 -#define LOCAL_GL_MATRIX2_ARB 0x88C2 -#define LOCAL_GL_MATRIX3_ARB 0x88C3 -#define LOCAL_GL_MATRIX4_ARB 0x88C4 -#define LOCAL_GL_MATRIX5_ARB 0x88C5 -#define LOCAL_GL_MATRIX6_ARB 0x88C6 -#define LOCAL_GL_MATRIX7_ARB 0x88C7 -#define LOCAL_GL_MATRIX8_ARB 0x88C8 -#define LOCAL_GL_MATRIX9_ARB 0x88C9 -#define LOCAL_GL_MATRIX10_ARB 0x88CA -#define LOCAL_GL_MATRIX11_ARB 0x88CB -#define LOCAL_GL_MATRIX12_ARB 0x88CC -#define LOCAL_GL_MATRIX13_ARB 0x88CD -#define LOCAL_GL_MATRIX14_ARB 0x88CE -#define LOCAL_GL_MATRIX15_ARB 0x88CF -#define LOCAL_GL_MATRIX16_ARB 0x88D0 -#define LOCAL_GL_MATRIX17_ARB 0x88D1 -#define LOCAL_GL_MATRIX18_ARB 0x88D2 -#define LOCAL_GL_MATRIX19_ARB 0x88D3 -#define LOCAL_GL_MATRIX20_ARB 0x88D4 -#define LOCAL_GL_MATRIX21_ARB 0x88D5 -#define LOCAL_GL_MATRIX22_ARB 0x88D6 -#define LOCAL_GL_MATRIX23_ARB 0x88D7 -#define LOCAL_GL_MATRIX24_ARB 0x88D8 -#define LOCAL_GL_MATRIX25_ARB 0x88D9 -#define LOCAL_GL_MATRIX26_ARB 0x88DA -#define LOCAL_GL_MATRIX27_ARB 0x88DB -#define LOCAL_GL_MATRIX28_ARB 0x88DC -#define LOCAL_GL_MATRIX29_ARB 0x88DD -#define LOCAL_GL_MATRIX30_ARB 0x88DE -#define LOCAL_GL_MATRIX31_ARB 0x88DF -#define LOCAL_GL_ARB_vertex_shader 1 -#define LOCAL_GL_VERTEX_SHADER_ARB 0x8B31 -#define LOCAL_GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define LOCAL_GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define LOCAL_GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define LOCAL_GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define LOCAL_GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define LOCAL_GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#define LOCAL_GL_ARB_window_pos 1 -#define LOCAL_GL_ATIX_point_sprites 1 -#define LOCAL_GL_ATIX_texture_env_combine3 1 -#define LOCAL_GL_MODULATE_ADD_ATIX 0x8744 -#define LOCAL_GL_MODULATE_SIGNED_ADD_ATIX 0x8745 -#define LOCAL_GL_MODULATE_SUBTRACT_ATIX 0x8746 -#define LOCAL_GL_ATIX_texture_env_route 1 -#define LOCAL_GL_SECONDARY_COLOR_ATIX 0x8747 -#define LOCAL_GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 -#define LOCAL_GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 -#define LOCAL_GL_ATIX_vertex_shader_output_point_size 1 -#define LOCAL_GL_OUTPUT_POINT_SIZE_ATIX 0x610E -#define LOCAL_GL_ATI_draw_buffers 1 -#define LOCAL_GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define LOCAL_GL_DRAW_BUFFER0_ATI 0x8825 -#define LOCAL_GL_DRAW_BUFFER1_ATI 0x8826 -#define LOCAL_GL_DRAW_BUFFER2_ATI 0x8827 -#define LOCAL_GL_DRAW_BUFFER3_ATI 0x8828 -#define LOCAL_GL_DRAW_BUFFER4_ATI 0x8829 -#define LOCAL_GL_DRAW_BUFFER5_ATI 0x882A -#define LOCAL_GL_DRAW_BUFFER6_ATI 0x882B -#define LOCAL_GL_DRAW_BUFFER7_ATI 0x882C -#define LOCAL_GL_DRAW_BUFFER8_ATI 0x882D -#define LOCAL_GL_DRAW_BUFFER9_ATI 0x882E -#define LOCAL_GL_DRAW_BUFFER10_ATI 0x882F -#define LOCAL_GL_DRAW_BUFFER11_ATI 0x8830 -#define LOCAL_GL_DRAW_BUFFER12_ATI 0x8831 -#define LOCAL_GL_DRAW_BUFFER13_ATI 0x8832 -#define LOCAL_GL_DRAW_BUFFER14_ATI 0x8833 -#define LOCAL_GL_DRAW_BUFFER15_ATI 0x8834 -#define LOCAL_GL_ATI_element_array 1 -#define LOCAL_GL_ELEMENT_ARRAY_ATI 0x8768 -#define LOCAL_GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define LOCAL_GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#define LOCAL_GL_ATI_envmap_bumpmap 1 -#define LOCAL_GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define LOCAL_GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define LOCAL_GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define LOCAL_GL_BUMP_TEX_UNITS_ATI 0x8778 -#define LOCAL_GL_DUDV_ATI 0x8779 -#define LOCAL_GL_DU8DV8_ATI 0x877A -#define LOCAL_GL_BUMP_ENVMAP_ATI 0x877B -#define LOCAL_GL_BUMP_TARGET_ATI 0x877C -#define LOCAL_GL_ATI_fragment_shader 1 -#define LOCAL_GL_RED_BIT_ATI 0x00000001 -#define LOCAL_GL_2X_BIT_ATI 0x00000001 -#define LOCAL_GL_4X_BIT_ATI 0x00000002 -#define LOCAL_GL_GREEN_BIT_ATI 0x00000002 -#define LOCAL_GL_COMP_BIT_ATI 0x00000002 -#define LOCAL_GL_BLUE_BIT_ATI 0x00000004 -#define LOCAL_GL_8X_BIT_ATI 0x00000004 -#define LOCAL_GL_NEGATE_BIT_ATI 0x00000004 -#define LOCAL_GL_BIAS_BIT_ATI 0x00000008 -#define LOCAL_GL_HALF_BIT_ATI 0x00000008 -#define LOCAL_GL_QUARTER_BIT_ATI 0x00000010 -#define LOCAL_GL_EIGHTH_BIT_ATI 0x00000020 -#define LOCAL_GL_SATURATE_BIT_ATI 0x00000040 -#define LOCAL_GL_FRAGMENT_SHADER_ATI 0x8920 -#define LOCAL_GL_REG_0_ATI 0x8921 -#define LOCAL_GL_REG_1_ATI 0x8922 -#define LOCAL_GL_REG_2_ATI 0x8923 -#define LOCAL_GL_REG_3_ATI 0x8924 -#define LOCAL_GL_REG_4_ATI 0x8925 -#define LOCAL_GL_REG_5_ATI 0x8926 -#define LOCAL_GL_CON_0_ATI 0x8941 -#define LOCAL_GL_CON_1_ATI 0x8942 -#define LOCAL_GL_CON_2_ATI 0x8943 -#define LOCAL_GL_CON_3_ATI 0x8944 -#define LOCAL_GL_CON_4_ATI 0x8945 -#define LOCAL_GL_CON_5_ATI 0x8946 -#define LOCAL_GL_CON_6_ATI 0x8947 -#define LOCAL_GL_CON_7_ATI 0x8948 -#define LOCAL_GL_MOV_ATI 0x8961 -#define LOCAL_GL_ADD_ATI 0x8963 -#define LOCAL_GL_MUL_ATI 0x8964 -#define LOCAL_GL_SUB_ATI 0x8965 -#define LOCAL_GL_DOT3_ATI 0x8966 -#define LOCAL_GL_DOT4_ATI 0x8967 -#define LOCAL_GL_MAD_ATI 0x8968 -#define LOCAL_GL_LERP_ATI 0x8969 -#define LOCAL_GL_CND_ATI 0x896A -#define LOCAL_GL_CND0_ATI 0x896B -#define LOCAL_GL_DOT2_ADD_ATI 0x896C -#define LOCAL_GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define LOCAL_GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define LOCAL_GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define LOCAL_GL_NUM_PASSES_ATI 0x8970 -#define LOCAL_GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define LOCAL_GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define LOCAL_GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define LOCAL_GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define LOCAL_GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define LOCAL_GL_SWIZZLE_STR_ATI 0x8976 -#define LOCAL_GL_SWIZZLE_STQ_ATI 0x8977 -#define LOCAL_GL_SWIZZLE_STR_DR_ATI 0x8978 -#define LOCAL_GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define LOCAL_GL_SWIZZLE_STRQ_ATI 0x897A -#define LOCAL_GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define LOCAL_GL_ATI_map_object_buffer 1 -#define LOCAL_GL_ATI_pn_triangles 1 -#define LOCAL_GL_PN_TRIANGLES_ATI 0x87F0 -#define LOCAL_GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define LOCAL_GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define LOCAL_GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define LOCAL_GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define LOCAL_GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define LOCAL_GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define LOCAL_GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define LOCAL_GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#define LOCAL_GL_ATI_separate_stencil 1 -#define LOCAL_GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define LOCAL_GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define LOCAL_GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define LOCAL_GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#define LOCAL_GL_ATI_text_fragment_shader 1 -#define LOCAL_GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#define LOCAL_GL_ATI_texture_compression_3dc 1 -#define LOCAL_GL_COMPRESSED_RGB_3DC_ATI 0x8837 -#define LOCAL_GL_ATI_texture_env_combine3 1 -#define LOCAL_GL_MODULATE_ADD_ATI 0x8744 -#define LOCAL_GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define LOCAL_GL_MODULATE_SUBTRACT_ATI 0x8746 -#define LOCAL_GL_ATI_texture_float 1 -#define LOCAL_GL_RGBA_FLOAT32_ATI 0x8814 -#define LOCAL_GL_RGB_FLOAT32_ATI 0x8815 -#define LOCAL_GL_ALPHA_FLOAT32_ATI 0x8816 -#define LOCAL_GL_INTENSITY_FLOAT32_ATI 0x8817 -#define LOCAL_GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define LOCAL_GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define LOCAL_GL_RGBA_FLOAT16_ATI 0x881A -#define LOCAL_GL_RGB_FLOAT16_ATI 0x881B -#define LOCAL_GL_ALPHA_FLOAT16_ATI 0x881C -#define LOCAL_GL_INTENSITY_FLOAT16_ATI 0x881D -#define LOCAL_GL_LUMINANCE_FLOAT16_ATI 0x881E -#define LOCAL_GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#define LOCAL_GL_ATI_texture_mirror_once 1 -#define LOCAL_GL_MIRROR_CLAMP_ATI 0x8742 -#define LOCAL_GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#define LOCAL_GL_ATI_vertex_array_object 1 -#define LOCAL_GL_STATIC_ATI 0x8760 -#define LOCAL_GL_DYNAMIC_ATI 0x8761 -#define LOCAL_GL_PRESERVE_ATI 0x8762 -#define LOCAL_GL_DISCARD_ATI 0x8763 -#define LOCAL_GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define LOCAL_GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define LOCAL_GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define LOCAL_GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#define LOCAL_GL_ATI_vertex_attrib_array_object 1 -#define LOCAL_GL_ATI_vertex_streams 1 -#define LOCAL_GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define LOCAL_GL_VERTEX_SOURCE_ATI 0x876C -#define LOCAL_GL_VERTEX_STREAM0_ATI 0x876D -#define LOCAL_GL_VERTEX_STREAM1_ATI 0x876E -#define LOCAL_GL_VERTEX_STREAM2_ATI 0x876F -#define LOCAL_GL_VERTEX_STREAM3_ATI 0x8770 -#define LOCAL_GL_VERTEX_STREAM4_ATI 0x8771 -#define LOCAL_GL_VERTEX_STREAM5_ATI 0x8772 -#define LOCAL_GL_VERTEX_STREAM6_ATI 0x8773 -#define LOCAL_GL_VERTEX_STREAM7_ATI 0x8774 -#define LOCAL_GL_EXT_422_pixels 1 -#define LOCAL_GL_422_EXT 0x80CC -#define LOCAL_GL_422_REV_EXT 0x80CD -#define LOCAL_GL_422_AVERAGE_EXT 0x80CE -#define LOCAL_GL_422_REV_AVERAGE_EXT 0x80CF -#define LOCAL_GL_EXT_Cg_shader 1 -#define LOCAL_GL_CG_VERTEX_SHADER_EXT 0x890E -#define LOCAL_GL_CG_FRAGMENT_SHADER_EXT 0x890F -#define LOCAL_GL_EXT_abgr 1 -#define LOCAL_GL_ABGR_EXT 0x8000 -#define LOCAL_GL_EXT_bgra 1 -#define LOCAL_GL_BGR_EXT 0x80E0 -#define LOCAL_GL_BGRA_EXT 0x80E1 -#define LOCAL_GL_EXT_blend_color 1 -#define LOCAL_GL_CONSTANT_COLOR_EXT 0x8001 -#define LOCAL_GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define LOCAL_GL_CONSTANT_ALPHA_EXT 0x8003 -#define LOCAL_GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define LOCAL_GL_BLEND_COLOR_EXT 0x8005 -#define LOCAL_GL_EXT_blend_equation_separate 1 -#define LOCAL_GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define LOCAL_GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#define LOCAL_GL_EXT_blend_func_separate 1 -#define LOCAL_GL_BLEND_DST_RGB_EXT 0x80C8 -#define LOCAL_GL_BLEND_SRC_RGB_EXT 0x80C9 -#define LOCAL_GL_BLEND_DST_ALPHA_EXT 0x80CA -#define LOCAL_GL_BLEND_SRC_ALPHA_EXT 0x80CB -#define LOCAL_GL_EXT_blend_logic_op 1 -#define LOCAL_GL_EXT_blend_minmax 1 -#define LOCAL_GL_FUNC_ADD_EXT 0x8006 -#define LOCAL_GL_MIN_EXT 0x8007 -#define LOCAL_GL_MAX_EXT 0x8008 -#define LOCAL_GL_BLEND_EQUATION_EXT 0x8009 -#define LOCAL_GL_EXT_blend_subtract 1 -#define LOCAL_GL_FUNC_SUBTRACT_EXT 0x800A -#define LOCAL_GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#define LOCAL_GL_EXT_clip_volume_hint 1 -#define LOCAL_GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#define LOCAL_GL_EXT_cmyka 1 -#define LOCAL_GL_CMYK_EXT 0x800C -#define LOCAL_GL_CMYKA_EXT 0x800D -#define LOCAL_GL_PACK_CMYK_HINT_EXT 0x800E -#define LOCAL_GL_UNPACK_CMYK_HINT_EXT 0x800F -#define LOCAL_GL_EXT_color_subtable 1 -#define LOCAL_GL_EXT_compiled_vertex_array 1 -#define LOCAL_GL_EXT_convolution 1 -#define LOCAL_GL_CONVOLUTION_1D_EXT 0x8010 -#define LOCAL_GL_CONVOLUTION_2D_EXT 0x8011 -#define LOCAL_GL_SEPARABLE_2D_EXT 0x8012 -#define LOCAL_GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define LOCAL_GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define LOCAL_GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define LOCAL_GL_REDUCE_EXT 0x8016 -#define LOCAL_GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define LOCAL_GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define LOCAL_GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define LOCAL_GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define LOCAL_GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define LOCAL_GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define LOCAL_GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define LOCAL_GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define LOCAL_GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define LOCAL_GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define LOCAL_GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define LOCAL_GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define LOCAL_GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#define LOCAL_GL_EXT_coordinate_frame 1 -#define LOCAL_GL_TANGENT_ARRAY_EXT 0x8439 -#define LOCAL_GL_BINORMAL_ARRAY_EXT 0x843A -#define LOCAL_GL_CURRENT_TANGENT_EXT 0x843B -#define LOCAL_GL_CURRENT_BINORMAL_EXT 0x843C -#define LOCAL_GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define LOCAL_GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define LOCAL_GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define LOCAL_GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define LOCAL_GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define LOCAL_GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define LOCAL_GL_MAP1_TANGENT_EXT 0x8444 -#define LOCAL_GL_MAP2_TANGENT_EXT 0x8445 -#define LOCAL_GL_MAP1_BINORMAL_EXT 0x8446 -#define LOCAL_GL_MAP2_BINORMAL_EXT 0x8447 -#define LOCAL_GL_EXT_copy_texture 1 -#define LOCAL_GL_EXT_cull_vertex 1 -#define LOCAL_GL_EXT_depth_bounds_test 1 -#define LOCAL_GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define LOCAL_GL_DEPTH_BOUNDS_EXT 0x8891 -#define LOCAL_GL_EXT_draw_range_elements 1 -#define LOCAL_GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define LOCAL_GL_MAX_ELEMENTS_INDICES 0x80E9 -#define LOCAL_GL_EXT_fog_coord 1 -#define LOCAL_GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define LOCAL_GL_FOG_COORDINATE_EXT 0x8451 -#define LOCAL_GL_FRAGMENT_DEPTH_EXT 0x8452 -#define LOCAL_GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#define LOCAL_GL_EXT_fragment_lighting 1 -#define LOCAL_GL_FRAGMENT_LIGHTING_EXT 0x8400 -#define LOCAL_GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 -#define LOCAL_GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 -#define LOCAL_GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 -#define LOCAL_GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 -#define LOCAL_GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 -#define LOCAL_GL_CURRENT_RASTER_NORMAL_EXT 0x8406 -#define LOCAL_GL_LIGHT_ENV_MODE_EXT 0x8407 -#define LOCAL_GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 -#define LOCAL_GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 -#define LOCAL_GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A -#define LOCAL_GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B -#define LOCAL_GL_FRAGMENT_LIGHT0_EXT 0x840C -#define LOCAL_GL_FRAGMENT_LIGHT7_EXT 0x8413 -#define LOCAL_GL_EXT_framebuffer_blit 1 -#define LOCAL_GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define LOCAL_GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define LOCAL_GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define LOCAL_GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#define LOCAL_GL_EXT_framebuffer_multisample 1 -#define LOCAL_GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define LOCAL_GL_EXT_framebuffer_object 1 -#define LOCAL_GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define LOCAL_GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define LOCAL_GL_FRAMEBUFFER_BINDING 0x8CA6 -#define LOCAL_GL_RENDERBUFFER_BINDING 0x8CA7 -#define LOCAL_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define LOCAL_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define LOCAL_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define LOCAL_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define LOCAL_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET 0x8CD4 -#define LOCAL_GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_FORMATS 0x8CDA -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define LOCAL_GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define LOCAL_GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define LOCAL_GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define LOCAL_GL_COLOR_ATTACHMENT0 0x8CE0 -#define LOCAL_GL_COLOR_ATTACHMENT1 0x8CE1 -#define LOCAL_GL_COLOR_ATTACHMENT2 0x8CE2 -#define LOCAL_GL_COLOR_ATTACHMENT3 0x8CE3 -#define LOCAL_GL_COLOR_ATTACHMENT4 0x8CE4 -#define LOCAL_GL_COLOR_ATTACHMENT5 0x8CE5 -#define LOCAL_GL_COLOR_ATTACHMENT6 0x8CE6 -#define LOCAL_GL_COLOR_ATTACHMENT7 0x8CE7 -#define LOCAL_GL_COLOR_ATTACHMENT8 0x8CE8 -#define LOCAL_GL_COLOR_ATTACHMENT9 0x8CE9 -#define LOCAL_GL_COLOR_ATTACHMENT10 0x8CEA -#define LOCAL_GL_COLOR_ATTACHMENT11 0x8CEB -#define LOCAL_GL_COLOR_ATTACHMENT12 0x8CEC -#define LOCAL_GL_COLOR_ATTACHMENT13 0x8CED -#define LOCAL_GL_COLOR_ATTACHMENT14 0x8CEE -#define LOCAL_GL_COLOR_ATTACHMENT15 0x8CEF -#define LOCAL_GL_DEPTH_ATTACHMENT 0x8D00 -#define LOCAL_GL_STENCIL_ATTACHMENT 0x8D20 -#define LOCAL_GL_FRAMEBUFFER 0x8D40 -#define LOCAL_GL_RENDERBUFFER 0x8D41 -#define LOCAL_GL_RENDERBUFFER_WIDTH 0x8D42 -#define LOCAL_GL_RENDERBUFFER_HEIGHT 0x8D43 -#define LOCAL_GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define LOCAL_GL_STENCIL_INDEX1 0x8D46 -#define LOCAL_GL_STENCIL_INDEX4 0x8D47 -#define LOCAL_GL_STENCIL_INDEX8 0x8D48 -#define LOCAL_GL_STENCIL_INDEX16 0x8D49 -#define LOCAL_GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define LOCAL_GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define LOCAL_GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define LOCAL_GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define LOCAL_GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define LOCAL_GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define LOCAL_GL_EXT_histogram 1 -#define LOCAL_GL_HISTOGRAM_EXT 0x8024 -#define LOCAL_GL_PROXY_HISTOGRAM_EXT 0x8025 -#define LOCAL_GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define LOCAL_GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define LOCAL_GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define LOCAL_GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define LOCAL_GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define LOCAL_GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define LOCAL_GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define LOCAL_GL_HISTOGRAM_SINK_EXT 0x802D -#define LOCAL_GL_MINMAX_EXT 0x802E -#define LOCAL_GL_MINMAX_FORMAT_EXT 0x802F -#define LOCAL_GL_MINMAX_SINK_EXT 0x8030 -#define LOCAL_GL_EXT_index_array_formats 1 -#define LOCAL_GL_EXT_index_func 1 -#define LOCAL_GL_EXT_index_material 1 -#define LOCAL_GL_EXT_index_texture 1 -#define LOCAL_GL_EXT_light_texture 1 -#define LOCAL_GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define LOCAL_GL_FRAGMENT_NORMAL_EXT 0x834A -#define LOCAL_GL_FRAGMENT_COLOR_EXT 0x834C -#define LOCAL_GL_ATTENUATION_EXT 0x834D -#define LOCAL_GL_SHADOW_ATTENUATION_EXT 0x834E -#define LOCAL_GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define LOCAL_GL_TEXTURE_LIGHT_EXT 0x8350 -#define LOCAL_GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define LOCAL_GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -#define LOCAL_GL_FRAGMENT_DEPTH_EXT 0x8452 -#define LOCAL_GL_EXT_misc_attribute 1 -#define LOCAL_GL_EXT_multi_draw_arrays 1 -#define LOCAL_GL_EXT_multisample 1 -#define LOCAL_GL_MULTISAMPLE_EXT 0x809D -#define LOCAL_GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define LOCAL_GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define LOCAL_GL_SAMPLE_MASK_EXT 0x80A0 -#define LOCAL_GL_1PASS_EXT 0x80A1 -#define LOCAL_GL_2PASS_0_EXT 0x80A2 -#define LOCAL_GL_2PASS_1_EXT 0x80A3 -#define LOCAL_GL_4PASS_0_EXT 0x80A4 -#define LOCAL_GL_4PASS_1_EXT 0x80A5 -#define LOCAL_GL_4PASS_2_EXT 0x80A6 -#define LOCAL_GL_4PASS_3_EXT 0x80A7 -#define LOCAL_GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define LOCAL_GL_SAMPLES_EXT 0x80A9 -#define LOCAL_GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define LOCAL_GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define LOCAL_GL_SAMPLE_PATTERN_EXT 0x80AC -#define LOCAL_GL_MULTISAMPLE_BIT_EXT 0x20000000 -#define LOCAL_GL_EXT_packed_depth_stencil 1 -#define LOCAL_GL_DEPTH_STENCIL_EXT 0x84F9 -#define LOCAL_GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define LOCAL_GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define LOCAL_GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#define LOCAL_GL_EXT_packed_pixels 1 -#define LOCAL_GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define LOCAL_GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define LOCAL_GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define LOCAL_GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define LOCAL_GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#define LOCAL_GL_EXT_paletted_texture 1 -#define LOCAL_GL_TEXTURE_1D 0x0DE0 -#define LOCAL_GL_TEXTURE_2D 0x0DE1 -#define LOCAL_GL_PROXY_TEXTURE_1D 0x8063 -#define LOCAL_GL_PROXY_TEXTURE_2D 0x8064 -#define LOCAL_GL_TEXTURE_3D_EXT 0x806F -#define LOCAL_GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define LOCAL_GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define LOCAL_GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define LOCAL_GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define LOCAL_GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define LOCAL_GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define LOCAL_GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF -#define LOCAL_GL_COLOR_INDEX1_EXT 0x80E2 -#define LOCAL_GL_COLOR_INDEX2_EXT 0x80E3 -#define LOCAL_GL_COLOR_INDEX4_EXT 0x80E4 -#define LOCAL_GL_COLOR_INDEX8_EXT 0x80E5 -#define LOCAL_GL_COLOR_INDEX12_EXT 0x80E6 -#define LOCAL_GL_COLOR_INDEX16_EXT 0x80E7 -#define LOCAL_GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#define LOCAL_GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define LOCAL_GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define LOCAL_GL_EXT_pixel_buffer_object 1 -#define LOCAL_GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define LOCAL_GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define LOCAL_GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define LOCAL_GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#define LOCAL_GL_EXT_pixel_transform 1 -#define LOCAL_GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define LOCAL_GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define LOCAL_GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define LOCAL_GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define LOCAL_GL_CUBIC_EXT 0x8334 -#define LOCAL_GL_AVERAGE_EXT 0x8335 -#define LOCAL_GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define LOCAL_GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define LOCAL_GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#define LOCAL_GL_EXT_pixel_transform_color_table 1 -#define LOCAL_GL_EXT_point_parameters 1 -#define LOCAL_GL_POINT_SIZE_MIN_EXT 0x8126 -#define LOCAL_GL_POINT_SIZE_MAX_EXT 0x8127 -#define LOCAL_GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define LOCAL_GL_DISTANCE_ATTENUATION_EXT 0x8129 -#define LOCAL_GL_EXT_polygon_offset 1 -#define LOCAL_GL_POLYGON_OFFSET_EXT 0x8037 -#define LOCAL_GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define LOCAL_GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#define LOCAL_GL_EXT_rescale_normal 1 -#define LOCAL_GL_EXT_scene_marker 1 -#define LOCAL_GL_EXT_secondary_color 1 -#define LOCAL_GL_COLOR_SUM_EXT 0x8458 -#define LOCAL_GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#define LOCAL_GL_EXT_separate_specular_color 1 -#define LOCAL_GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define LOCAL_GL_SINGLE_COLOR_EXT 0x81F9 -#define LOCAL_GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#define LOCAL_GL_EXT_shadow_funcs 1 -#define LOCAL_GL_EXT_shared_texture_palette 1 -#define LOCAL_GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#define LOCAL_GL_EXT_stencil_clear_tag 1 -#define LOCAL_GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define LOCAL_GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#define LOCAL_GL_EXT_stencil_two_side 1 -#define LOCAL_GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define LOCAL_GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#define LOCAL_GL_EXT_stencil_wrap 1 -#define LOCAL_GL_INCR_WRAP_EXT 0x8507 -#define LOCAL_GL_DECR_WRAP_EXT 0x8508 -#define LOCAL_GL_EXT_subtexture 1 -#define LOCAL_GL_EXT_texture 1 -#define LOCAL_GL_ALPHA4_EXT 0x803B -#define LOCAL_GL_ALPHA8_EXT 0x803C -#define LOCAL_GL_ALPHA12_EXT 0x803D -#define LOCAL_GL_ALPHA16_EXT 0x803E -#define LOCAL_GL_LUMINANCE4_EXT 0x803F -#define LOCAL_GL_LUMINANCE8_EXT 0x8040 -#define LOCAL_GL_LUMINANCE12_EXT 0x8041 -#define LOCAL_GL_LUMINANCE16_EXT 0x8042 -#define LOCAL_GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define LOCAL_GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define LOCAL_GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define LOCAL_GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define LOCAL_GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define LOCAL_GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define LOCAL_GL_INTENSITY_EXT 0x8049 -#define LOCAL_GL_INTENSITY4_EXT 0x804A -#define LOCAL_GL_INTENSITY8_EXT 0x804B -#define LOCAL_GL_INTENSITY12_EXT 0x804C -#define LOCAL_GL_INTENSITY16_EXT 0x804D -#define LOCAL_GL_RGB2_EXT 0x804E -#define LOCAL_GL_RGB4_EXT 0x804F -#define LOCAL_GL_RGB5_EXT 0x8050 -#define LOCAL_GL_RGB8_EXT 0x8051 -#define LOCAL_GL_RGB10_EXT 0x8052 -#define LOCAL_GL_RGB12_EXT 0x8053 -#define LOCAL_GL_RGB16_EXT 0x8054 -#define LOCAL_GL_RGBA2_EXT 0x8055 -#define LOCAL_GL_RGBA4_EXT 0x8056 -#define LOCAL_GL_RGB5_A1_EXT 0x8057 -#define LOCAL_GL_RGBA8_EXT 0x8058 -#define LOCAL_GL_RGB10_A2_EXT 0x8059 -#define LOCAL_GL_RGBA12_EXT 0x805A -#define LOCAL_GL_RGBA16_EXT 0x805B -#define LOCAL_GL_TEXTURE_RED_SIZE_EXT 0x805C -#define LOCAL_GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define LOCAL_GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define LOCAL_GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define LOCAL_GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define LOCAL_GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define LOCAL_GL_REPLACE_EXT 0x8062 -#define LOCAL_GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define LOCAL_GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define LOCAL_GL_EXT_texture3D 1 -#define LOCAL_GL_PACK_SKIP_IMAGES_EXT 0x806B -#define LOCAL_GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define LOCAL_GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define LOCAL_GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define LOCAL_GL_TEXTURE_3D_EXT 0x806F -#define LOCAL_GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define LOCAL_GL_TEXTURE_DEPTH_EXT 0x8071 -#define LOCAL_GL_TEXTURE_WRAP_R_EXT 0x8072 -#define LOCAL_GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#define LOCAL_GL_EXT_texture_compression_dxt1 1 -#define LOCAL_GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define LOCAL_GL_EXT_texture_compression_s3tc 1 -#define LOCAL_GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#define LOCAL_GL_EXT_texture_cube_map 1 -#define LOCAL_GL_NORMAL_MAP_EXT 0x8511 -#define LOCAL_GL_REFLECTION_MAP_EXT 0x8512 -#define LOCAL_GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define LOCAL_GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define LOCAL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define LOCAL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define LOCAL_GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define LOCAL_GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#define LOCAL_GL_EXT_texture_edge_clamp 1 -#define LOCAL_GL_CLAMP_TO_EDGE_EXT 0x812F -#define LOCAL_GL_EXT_texture_env 1 -#define LOCAL_GL_TEXTURE_ENV0_EXT 0 -#define LOCAL_GL_ENV_BLEND_EXT 0 -#define LOCAL_GL_TEXTURE_ENV_SHIFT_EXT 0 -#define LOCAL_GL_ENV_REPLACE_EXT 0 -#define LOCAL_GL_ENV_ADD_EXT 0 -#define LOCAL_GL_ENV_SUBTRACT_EXT 0 -#define LOCAL_GL_TEXTURE_ENV_MODE_ALPHA_EXT 0 -#define LOCAL_GL_ENV_REVERSE_SUBTRACT_EXT 0 -#define LOCAL_GL_ENV_REVERSE_BLEND_EXT 0 -#define LOCAL_GL_ENV_COPY_EXT 0 -#define LOCAL_GL_ENV_MODULATE_EXT 0 -#define LOCAL_GL_EXT_texture_env_add 1 -#define LOCAL_GL_EXT_texture_env_combine 1 -#define LOCAL_GL_COMBINE_EXT 0x8570 -#define LOCAL_GL_COMBINE_RGB_EXT 0x8571 -#define LOCAL_GL_COMBINE_ALPHA_EXT 0x8572 -#define LOCAL_GL_RGB_SCALE_EXT 0x8573 -#define LOCAL_GL_ADD_SIGNED_EXT 0x8574 -#define LOCAL_GL_INTERPOLATE_EXT 0x8575 -#define LOCAL_GL_CONSTANT_EXT 0x8576 -#define LOCAL_GL_PRIMARY_COLOR_EXT 0x8577 -#define LOCAL_GL_PREVIOUS_EXT 0x8578 -#define LOCAL_GL_SOURCE0_RGB_EXT 0x8580 -#define LOCAL_GL_SOURCE1_RGB_EXT 0x8581 -#define LOCAL_GL_SOURCE2_RGB_EXT 0x8582 -#define LOCAL_GL_SOURCE0_ALPHA_EXT 0x8588 -#define LOCAL_GL_SOURCE1_ALPHA_EXT 0x8589 -#define LOCAL_GL_SOURCE2_ALPHA_EXT 0x858A -#define LOCAL_GL_OPERAND0_RGB_EXT 0x8590 -#define LOCAL_GL_OPERAND1_RGB_EXT 0x8591 -#define LOCAL_GL_OPERAND2_RGB_EXT 0x8592 -#define LOCAL_GL_OPERAND0_ALPHA_EXT 0x8598 -#define LOCAL_GL_OPERAND1_ALPHA_EXT 0x8599 -#define LOCAL_GL_OPERAND2_ALPHA_EXT 0x859A -#define LOCAL_GL_EXT_texture_env_dot3 1 -#define LOCAL_GL_DOT3_RGB_EXT 0x8740 -#define LOCAL_GL_DOT3_RGBA_EXT 0x8741 -#define LOCAL_GL_EXT_texture_filter_anisotropic 1 -#define LOCAL_GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define LOCAL_GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#define LOCAL_GL_EXT_texture_lod_bias 1 -#define LOCAL_GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define LOCAL_GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define LOCAL_GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#define LOCAL_GL_EXT_texture_mirror_clamp 1 -#define LOCAL_GL_MIRROR_CLAMP_EXT 0x8742 -#define LOCAL_GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define LOCAL_GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#define LOCAL_GL_EXT_texture_object 1 -#define LOCAL_GL_TEXTURE_PRIORITY_EXT 0x8066 -#define LOCAL_GL_TEXTURE_RESIDENT_EXT 0x8067 -#define LOCAL_GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define LOCAL_GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define LOCAL_GL_TEXTURE_3D_BINDING_EXT 0x806A -#define LOCAL_GL_EXT_texture_perturb_normal 1 -#define LOCAL_GL_PERTURB_EXT 0x85AE -#define LOCAL_GL_TEXTURE_NORMAL_EXT 0x85AF -#define LOCAL_GL_EXT_texture_rectangle 1 -#define LOCAL_GL_TEXTURE_RECTANGLE_EXT 0x84F5 -#define LOCAL_GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 -#define LOCAL_GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 -#define LOCAL_GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 -#define LOCAL_GL_EXT_texture_sRGB 1 -#define LOCAL_GL_SRGB_EXT 0x8C40 -#define LOCAL_GL_SRGB8_EXT 0x8C41 -#define LOCAL_GL_SRGB_ALPHA_EXT 0x8C42 -#define LOCAL_GL_SRGB8_ALPHA8_EXT 0x8C43 -#define LOCAL_GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define LOCAL_GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define LOCAL_GL_SLUMINANCE_EXT 0x8C46 -#define LOCAL_GL_SLUMINANCE8_EXT 0x8C47 -#define LOCAL_GL_COMPRESSED_SRGB_EXT 0x8C48 -#define LOCAL_GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define LOCAL_GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define LOCAL_GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define LOCAL_GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#define LOCAL_GL_EXT_vertex_array 1 -#define LOCAL_GL_DOUBLE_EXT 0x140A -#define LOCAL_GL_VERTEX_ARRAY_EXT 0x8074 -#define LOCAL_GL_NORMAL_ARRAY_EXT 0x8075 -#define LOCAL_GL_COLOR_ARRAY_EXT 0x8076 -#define LOCAL_GL_INDEX_ARRAY_EXT 0x8077 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define LOCAL_GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define LOCAL_GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define LOCAL_GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define LOCAL_GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define LOCAL_GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define LOCAL_GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define LOCAL_GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define LOCAL_GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define LOCAL_GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define LOCAL_GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define LOCAL_GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define LOCAL_GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define LOCAL_GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define LOCAL_GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define LOCAL_GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define LOCAL_GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define LOCAL_GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define LOCAL_GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define LOCAL_GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define LOCAL_GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define LOCAL_GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define LOCAL_GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define LOCAL_GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#define LOCAL_GL_EXT_vertex_shader 1 -#define LOCAL_GL_VERTEX_SHADER_EXT 0x8780 -#define LOCAL_GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define LOCAL_GL_OP_INDEX_EXT 0x8782 -#define LOCAL_GL_OP_NEGATE_EXT 0x8783 -#define LOCAL_GL_OP_DOT3_EXT 0x8784 -#define LOCAL_GL_OP_DOT4_EXT 0x8785 -#define LOCAL_GL_OP_MUL_EXT 0x8786 -#define LOCAL_GL_OP_ADD_EXT 0x8787 -#define LOCAL_GL_OP_MADD_EXT 0x8788 -#define LOCAL_GL_OP_FRAC_EXT 0x8789 -#define LOCAL_GL_OP_MAX_EXT 0x878A -#define LOCAL_GL_OP_MIN_EXT 0x878B -#define LOCAL_GL_OP_SET_GE_EXT 0x878C -#define LOCAL_GL_OP_SET_LT_EXT 0x878D -#define LOCAL_GL_OP_CLAMP_EXT 0x878E -#define LOCAL_GL_OP_FLOOR_EXT 0x878F -#define LOCAL_GL_OP_ROUND_EXT 0x8790 -#define LOCAL_GL_OP_EXP_BASE_2_EXT 0x8791 -#define LOCAL_GL_OP_LOG_BASE_2_EXT 0x8792 -#define LOCAL_GL_OP_POWER_EXT 0x8793 -#define LOCAL_GL_OP_RECIP_EXT 0x8794 -#define LOCAL_GL_OP_RECIP_SQRT_EXT 0x8795 -#define LOCAL_GL_OP_SUB_EXT 0x8796 -#define LOCAL_GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define LOCAL_GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define LOCAL_GL_OP_MOV_EXT 0x8799 -#define LOCAL_GL_OUTPUT_VERTEX_EXT 0x879A -#define LOCAL_GL_OUTPUT_COLOR0_EXT 0x879B -#define LOCAL_GL_OUTPUT_COLOR1_EXT 0x879C -#define LOCAL_GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define LOCAL_GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define LOCAL_GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define LOCAL_GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define LOCAL_GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define LOCAL_GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define LOCAL_GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define LOCAL_GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define LOCAL_GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define LOCAL_GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define LOCAL_GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define LOCAL_GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define LOCAL_GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define LOCAL_GL_OUTPUT_FOG_EXT 0x87BD -#define LOCAL_GL_SCALAR_EXT 0x87BE -#define LOCAL_GL_VECTOR_EXT 0x87BF -#define LOCAL_GL_MATRIX_EXT 0x87C0 -#define LOCAL_GL_VARIANT_EXT 0x87C1 -#define LOCAL_GL_INVARIANT_EXT 0x87C2 -#define LOCAL_GL_LOCAL_CONSTANT_EXT 0x87C3 -#define LOCAL_GL_LOCAL_EXT 0x87C4 -#define LOCAL_GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define LOCAL_GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define LOCAL_GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define LOCAL_GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define LOCAL_GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define LOCAL_GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define LOCAL_GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define LOCAL_GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC -#define LOCAL_GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD -#define LOCAL_GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define LOCAL_GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define LOCAL_GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define LOCAL_GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define LOCAL_GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define LOCAL_GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define LOCAL_GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define LOCAL_GL_X_EXT 0x87D5 -#define LOCAL_GL_Y_EXT 0x87D6 -#define LOCAL_GL_Z_EXT 0x87D7 -#define LOCAL_GL_W_EXT 0x87D8 -#define LOCAL_GL_NEGATIVE_X_EXT 0x87D9 -#define LOCAL_GL_NEGATIVE_Y_EXT 0x87DA -#define LOCAL_GL_NEGATIVE_Z_EXT 0x87DB -#define LOCAL_GL_NEGATIVE_W_EXT 0x87DC -#define LOCAL_GL_ZERO_EXT 0x87DD -#define LOCAL_GL_ONE_EXT 0x87DE -#define LOCAL_GL_NEGATIVE_ONE_EXT 0x87DF -#define LOCAL_GL_NORMALIZED_RANGE_EXT 0x87E0 -#define LOCAL_GL_FULL_RANGE_EXT 0x87E1 -#define LOCAL_GL_CURRENT_VERTEX_EXT 0x87E2 -#define LOCAL_GL_MVP_MATRIX_EXT 0x87E3 -#define LOCAL_GL_VARIANT_VALUE_EXT 0x87E4 -#define LOCAL_GL_VARIANT_DATATYPE_EXT 0x87E5 -#define LOCAL_GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define LOCAL_GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define LOCAL_GL_VARIANT_ARRAY_EXT 0x87E8 -#define LOCAL_GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define LOCAL_GL_INVARIANT_VALUE_EXT 0x87EA -#define LOCAL_GL_INVARIANT_DATATYPE_EXT 0x87EB -#define LOCAL_GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define LOCAL_GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#define LOCAL_GL_EXT_vertex_weighting 1 -#define LOCAL_GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define LOCAL_GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define LOCAL_GL_MODELVIEW0_EXT 0x1700 -#define LOCAL_GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define LOCAL_GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define LOCAL_GL_VERTEX_WEIGHTING_EXT 0x8509 -#define LOCAL_GL_MODELVIEW1_EXT 0x850A -#define LOCAL_GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define LOCAL_GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define LOCAL_GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define LOCAL_GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define LOCAL_GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define LOCAL_GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#define LOCAL_GL_GREMEDY_string_marker 1 -#define LOCAL_GL_HP_convolution_border_modes 1 -#define LOCAL_GL_HP_image_transform 1 -#define LOCAL_GL_HP_occlusion_test 1 -#define LOCAL_GL_OCCLUSION_TEST_HP 0x8165 -#define LOCAL_GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#define LOCAL_GL_HP_texture_lighting 1 -#define LOCAL_GL_IBM_cull_vertex 1 -#define LOCAL_GL_CULL_VERTEX_IBM 103050 -#define LOCAL_GL_IBM_multimode_draw_arrays 1 -#define LOCAL_GL_IBM_rasterpos_clip 1 -#define LOCAL_GL_RASTER_POSITION_UNCLIPPED_IBM 103010 -#define LOCAL_GL_IBM_static_data 1 -#define LOCAL_GL_ALL_STATIC_DATA_IBM 103060 -#define LOCAL_GL_STATIC_VERTEX_ARRAY_IBM 103061 -#define LOCAL_GL_IBM_texture_mirrored_repeat 1 -#define LOCAL_GL_MIRRORED_REPEAT_IBM 0x8370 -#define LOCAL_GL_IBM_vertex_array_lists 1 -#define LOCAL_GL_VERTEX_ARRAY_LIST_IBM 103070 -#define LOCAL_GL_NORMAL_ARRAY_LIST_IBM 103071 -#define LOCAL_GL_COLOR_ARRAY_LIST_IBM 103072 -#define LOCAL_GL_INDEX_ARRAY_LIST_IBM 103073 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define LOCAL_GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define LOCAL_GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define LOCAL_GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define LOCAL_GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define LOCAL_GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define LOCAL_GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define LOCAL_GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define LOCAL_GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#define LOCAL_GL_INGR_color_clamp 1 -#define LOCAL_GL_RED_MIN_CLAMP_INGR 0x8560 -#define LOCAL_GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define LOCAL_GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define LOCAL_GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define LOCAL_GL_RED_MAX_CLAMP_INGR 0x8564 -#define LOCAL_GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define LOCAL_GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define LOCAL_GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#define LOCAL_GL_INGR_interlace_read 1 -#define LOCAL_GL_INTERLACE_READ_INGR 0x8568 -#define LOCAL_GL_INTEL_parallel_arrays 1 -#define LOCAL_GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define LOCAL_GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define LOCAL_GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define LOCAL_GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define LOCAL_GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#define LOCAL_GL_INTEL_texture_scissor 1 -#define LOCAL_GL_KTX_buffer_region 1 -#define LOCAL_GL_KTX_FRONT_REGION 0x0 -#define LOCAL_GL_KTX_BACK_REGION 0x1 -#define LOCAL_GL_KTX_Z_REGION 0x2 -#define LOCAL_GL_KTX_STENCIL_REGION 0x3 -#define LOCAL_GL_MESAX_texture_stack 1 -#define LOCAL_GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define LOCAL_GL_TEXTURE_2D_STACK_MESAX 0x875A -#define LOCAL_GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define LOCAL_GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define LOCAL_GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define LOCAL_GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#define LOCAL_GL_MESA_pack_invert 1 -#define LOCAL_GL_PACK_INVERT_MESA 0x8758 -#define LOCAL_GL_MESA_resize_buffers 1 -#define LOCAL_GL_MESA_window_pos 1 -#define LOCAL_GL_MESA_ycbcr_texture 1 -#define LOCAL_GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define LOCAL_GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define LOCAL_GL_YCBCR_MESA 0x8757 -#define LOCAL_GL_NV_blend_square 1 -#define LOCAL_GL_NV_copy_depth_to_color 1 -#define LOCAL_GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define LOCAL_GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#define LOCAL_GL_NV_depth_clamp 1 -#define LOCAL_GL_DEPTH_CLAMP_NV 0x864F -#define LOCAL_GL_NV_evaluators 1 -#define LOCAL_GL_EVAL_2D_NV 0x86C0 -#define LOCAL_GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define LOCAL_GL_MAP_TESSELLATION_NV 0x86C2 -#define LOCAL_GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define LOCAL_GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define LOCAL_GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define LOCAL_GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define LOCAL_GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define LOCAL_GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define LOCAL_GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define LOCAL_GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define LOCAL_GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define LOCAL_GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define LOCAL_GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define LOCAL_GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#define LOCAL_GL_NV_fence 1 -#define LOCAL_GL_ALL_COMPLETED_NV 0x84F2 -#define LOCAL_GL_FENCE_STATUS_NV 0x84F3 -#define LOCAL_GL_FENCE_CONDITION_NV 0x84F4 -#define LOCAL_GL_NV_float_buffer 1 -#define LOCAL_GL_FLOAT_R_NV 0x8880 -#define LOCAL_GL_FLOAT_RG_NV 0x8881 -#define LOCAL_GL_FLOAT_RGB_NV 0x8882 -#define LOCAL_GL_FLOAT_RGBA_NV 0x8883 -#define LOCAL_GL_FLOAT_R16_NV 0x8884 -#define LOCAL_GL_FLOAT_R32_NV 0x8885 -#define LOCAL_GL_FLOAT_RG16_NV 0x8886 -#define LOCAL_GL_FLOAT_RG32_NV 0x8887 -#define LOCAL_GL_FLOAT_RGB16_NV 0x8888 -#define LOCAL_GL_FLOAT_RGB32_NV 0x8889 -#define LOCAL_GL_FLOAT_RGBA16_NV 0x888A -#define LOCAL_GL_FLOAT_RGBA32_NV 0x888B -#define LOCAL_GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define LOCAL_GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define LOCAL_GL_FLOAT_RGBA_MODE_NV 0x888E -#define LOCAL_GL_NV_fog_distance 1 -#define LOCAL_GL_FOG_DISTANCE_MODE_NV 0x855A -#define LOCAL_GL_EYE_RADIAL_NV 0x855B -#define LOCAL_GL_EYE_PLANE_ABSOLUTE_NV 0x855C -#define LOCAL_GL_NV_fragment_program 1 -#define LOCAL_GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define LOCAL_GL_FRAGMENT_PROGRAM_NV 0x8870 -#define LOCAL_GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define LOCAL_GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define LOCAL_GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define LOCAL_GL_PROGRAM_ERROR_STRING_NV 0x8874 -#define LOCAL_GL_NV_fragment_program2 1 -#define LOCAL_GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define LOCAL_GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define LOCAL_GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define LOCAL_GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define LOCAL_GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#define LOCAL_GL_NV_fragment_program_option 1 -#define LOCAL_GL_NV_half_float 1 -#define LOCAL_GL_HALF_FLOAT_NV 0x140B -#define LOCAL_GL_NV_light_max_exponent 1 -#define LOCAL_GL_MAX_SHININESS_NV 0x8504 -#define LOCAL_GL_MAX_SPOT_EXPONENT_NV 0x8505 -#define LOCAL_GL_NV_multisample_filter_hint 1 -#define LOCAL_GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#define LOCAL_GL_NV_occlusion_query 1 -#define LOCAL_GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define LOCAL_GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define LOCAL_GL_PIXEL_COUNT_NV 0x8866 -#define LOCAL_GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#define LOCAL_GL_NV_packed_depth_stencil 1 -#define LOCAL_GL_DEPTH_STENCIL_NV 0x84F9 -#define LOCAL_GL_UNSIGNED_INT_24_8_NV 0x84FA -#define LOCAL_GL_NV_pixel_data_range 1 -#define LOCAL_GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define LOCAL_GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define LOCAL_GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define LOCAL_GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define LOCAL_GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define LOCAL_GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#define LOCAL_GL_NV_point_sprite 1 -#define LOCAL_GL_POINT_SPRITE_NV 0x8861 -#define LOCAL_GL_COORD_REPLACE_NV 0x8862 -#define LOCAL_GL_POINT_SPRITE_R_MODE_NV 0x8863 -#define LOCAL_GL_NV_primitive_restart 1 -#define LOCAL_GL_PRIMITIVE_RESTART_NV 0x8558 -#define LOCAL_GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#define LOCAL_GL_NV_register_combiners 1 -#define LOCAL_GL_REGISTER_COMBINERS_NV 0x8522 -#define LOCAL_GL_VARIABLE_A_NV 0x8523 -#define LOCAL_GL_VARIABLE_B_NV 0x8524 -#define LOCAL_GL_VARIABLE_C_NV 0x8525 -#define LOCAL_GL_VARIABLE_D_NV 0x8526 -#define LOCAL_GL_VARIABLE_E_NV 0x8527 -#define LOCAL_GL_VARIABLE_F_NV 0x8528 -#define LOCAL_GL_VARIABLE_G_NV 0x8529 -#define LOCAL_GL_CONSTANT_COLOR0_NV 0x852A -#define LOCAL_GL_CONSTANT_COLOR1_NV 0x852B -#define LOCAL_GL_PRIMARY_COLOR_NV 0x852C -#define LOCAL_GL_SECONDARY_COLOR_NV 0x852D -#define LOCAL_GL_SPARE0_NV 0x852E -#define LOCAL_GL_SPARE1_NV 0x852F -#define LOCAL_GL_DISCARD_NV 0x8530 -#define LOCAL_GL_E_TIMES_F_NV 0x8531 -#define LOCAL_GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define LOCAL_GL_UNSIGNED_IDENTITY_NV 0x8536 -#define LOCAL_GL_UNSIGNED_INVERT_NV 0x8537 -#define LOCAL_GL_EXPAND_NORMAL_NV 0x8538 -#define LOCAL_GL_EXPAND_NEGATE_NV 0x8539 -#define LOCAL_GL_HALF_BIAS_NORMAL_NV 0x853A -#define LOCAL_GL_HALF_BIAS_NEGATE_NV 0x853B -#define LOCAL_GL_SIGNED_IDENTITY_NV 0x853C -#define LOCAL_GL_SIGNED_NEGATE_NV 0x853D -#define LOCAL_GL_SCALE_BY_TWO_NV 0x853E -#define LOCAL_GL_SCALE_BY_FOUR_NV 0x853F -#define LOCAL_GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define LOCAL_GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define LOCAL_GL_COMBINER_INPUT_NV 0x8542 -#define LOCAL_GL_COMBINER_MAPPING_NV 0x8543 -#define LOCAL_GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define LOCAL_GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define LOCAL_GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define LOCAL_GL_COMBINER_MUX_SUM_NV 0x8547 -#define LOCAL_GL_COMBINER_SCALE_NV 0x8548 -#define LOCAL_GL_COMBINER_BIAS_NV 0x8549 -#define LOCAL_GL_COMBINER_AB_OUTPUT_NV 0x854A -#define LOCAL_GL_COMBINER_CD_OUTPUT_NV 0x854B -#define LOCAL_GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define LOCAL_GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define LOCAL_GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define LOCAL_GL_COLOR_SUM_CLAMP_NV 0x854F -#define LOCAL_GL_COMBINER0_NV 0x8550 -#define LOCAL_GL_COMBINER1_NV 0x8551 -#define LOCAL_GL_COMBINER2_NV 0x8552 -#define LOCAL_GL_COMBINER3_NV 0x8553 -#define LOCAL_GL_COMBINER4_NV 0x8554 -#define LOCAL_GL_COMBINER5_NV 0x8555 -#define LOCAL_GL_COMBINER6_NV 0x8556 -#define LOCAL_GL_COMBINER7_NV 0x8557 -#define LOCAL_GL_NV_register_combiners2 1 -#define LOCAL_GL_PER_STAGE_CONSTANTS_NV 0x8535 -#define LOCAL_GL_NV_texgen_emboss 1 -#define LOCAL_GL_EMBOSS_LIGHT_NV 0x855D -#define LOCAL_GL_EMBOSS_CONSTANT_NV 0x855E -#define LOCAL_GL_EMBOSS_MAP_NV 0x855F -#define LOCAL_GL_NV_texgen_reflection 1 -#define LOCAL_GL_NORMAL_MAP_NV 0x8511 -#define LOCAL_GL_REFLECTION_MAP_NV 0x8512 -#define LOCAL_GL_NV_texture_compression_vtc 1 -#define LOCAL_GL_NV_texture_env_combine4 1 -#define LOCAL_GL_COMBINE4_NV 0x8503 -#define LOCAL_GL_SOURCE3_RGB_NV 0x8583 -#define LOCAL_GL_SOURCE3_ALPHA_NV 0x858B -#define LOCAL_GL_OPERAND3_RGB_NV 0x8593 -#define LOCAL_GL_OPERAND3_ALPHA_NV 0x859B -#define LOCAL_GL_NV_texture_expand_normal 1 -#define LOCAL_GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#define LOCAL_GL_NV_texture_rectangle 1 -#define LOCAL_GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define LOCAL_GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define LOCAL_GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define LOCAL_GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#define LOCAL_GL_NV_texture_shader 1 -#define LOCAL_GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define LOCAL_GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define LOCAL_GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define LOCAL_GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define LOCAL_GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define LOCAL_GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define LOCAL_GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define LOCAL_GL_SHADER_CONSISTENT_NV 0x86DD -#define LOCAL_GL_TEXTURE_SHADER_NV 0x86DE -#define LOCAL_GL_SHADER_OPERATION_NV 0x86DF -#define LOCAL_GL_CULL_MODES_NV 0x86E0 -#define LOCAL_GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define LOCAL_GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define LOCAL_GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define LOCAL_GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define LOCAL_GL_CONST_EYE_NV 0x86E5 -#define LOCAL_GL_PASS_THROUGH_NV 0x86E6 -#define LOCAL_GL_CULL_FRAGMENT_NV 0x86E7 -#define LOCAL_GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define LOCAL_GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define LOCAL_GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define LOCAL_GL_DOT_PRODUCT_NV 0x86EC -#define LOCAL_GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define LOCAL_GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define LOCAL_GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define LOCAL_GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define LOCAL_GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define LOCAL_GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define LOCAL_GL_HILO_NV 0x86F4 -#define LOCAL_GL_DSDT_NV 0x86F5 -#define LOCAL_GL_DSDT_MAG_NV 0x86F6 -#define LOCAL_GL_DSDT_MAG_VIB_NV 0x86F7 -#define LOCAL_GL_HILO16_NV 0x86F8 -#define LOCAL_GL_SIGNED_HILO_NV 0x86F9 -#define LOCAL_GL_SIGNED_HILO16_NV 0x86FA -#define LOCAL_GL_SIGNED_RGBA_NV 0x86FB -#define LOCAL_GL_SIGNED_RGBA8_NV 0x86FC -#define LOCAL_GL_SIGNED_RGB_NV 0x86FE -#define LOCAL_GL_SIGNED_RGB8_NV 0x86FF -#define LOCAL_GL_SIGNED_LUMINANCE_NV 0x8701 -#define LOCAL_GL_SIGNED_LUMINANCE8_NV 0x8702 -#define LOCAL_GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define LOCAL_GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define LOCAL_GL_SIGNED_ALPHA_NV 0x8705 -#define LOCAL_GL_SIGNED_ALPHA8_NV 0x8706 -#define LOCAL_GL_SIGNED_INTENSITY_NV 0x8707 -#define LOCAL_GL_SIGNED_INTENSITY8_NV 0x8708 -#define LOCAL_GL_DSDT8_NV 0x8709 -#define LOCAL_GL_DSDT8_MAG8_NV 0x870A -#define LOCAL_GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define LOCAL_GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define LOCAL_GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define LOCAL_GL_HI_SCALE_NV 0x870E -#define LOCAL_GL_LO_SCALE_NV 0x870F -#define LOCAL_GL_DS_SCALE_NV 0x8710 -#define LOCAL_GL_DT_SCALE_NV 0x8711 -#define LOCAL_GL_MAGNITUDE_SCALE_NV 0x8712 -#define LOCAL_GL_VIBRANCE_SCALE_NV 0x8713 -#define LOCAL_GL_HI_BIAS_NV 0x8714 -#define LOCAL_GL_LO_BIAS_NV 0x8715 -#define LOCAL_GL_DS_BIAS_NV 0x8716 -#define LOCAL_GL_DT_BIAS_NV 0x8717 -#define LOCAL_GL_MAGNITUDE_BIAS_NV 0x8718 -#define LOCAL_GL_VIBRANCE_BIAS_NV 0x8719 -#define LOCAL_GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define LOCAL_GL_TEXTURE_HI_SIZE_NV 0x871B -#define LOCAL_GL_TEXTURE_LO_SIZE_NV 0x871C -#define LOCAL_GL_TEXTURE_DS_SIZE_NV 0x871D -#define LOCAL_GL_TEXTURE_DT_SIZE_NV 0x871E -#define LOCAL_GL_TEXTURE_MAG_SIZE_NV 0x871F -#define LOCAL_GL_NV_texture_shader2 1 -#define LOCAL_GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define LOCAL_GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define LOCAL_GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define LOCAL_GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#define LOCAL_GL_HILO_NV 0x86F4 -#define LOCAL_GL_DSDT_NV 0x86F5 -#define LOCAL_GL_DSDT_MAG_NV 0x86F6 -#define LOCAL_GL_DSDT_MAG_VIB_NV 0x86F7 -#define LOCAL_GL_HILO16_NV 0x86F8 -#define LOCAL_GL_SIGNED_HILO_NV 0x86F9 -#define LOCAL_GL_SIGNED_HILO16_NV 0x86FA -#define LOCAL_GL_SIGNED_RGBA_NV 0x86FB -#define LOCAL_GL_SIGNED_RGBA8_NV 0x86FC -#define LOCAL_GL_SIGNED_RGB_NV 0x86FE -#define LOCAL_GL_SIGNED_RGB8_NV 0x86FF -#define LOCAL_GL_SIGNED_LUMINANCE_NV 0x8701 -#define LOCAL_GL_SIGNED_LUMINANCE8_NV 0x8702 -#define LOCAL_GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define LOCAL_GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define LOCAL_GL_SIGNED_ALPHA_NV 0x8705 -#define LOCAL_GL_SIGNED_ALPHA8_NV 0x8706 -#define LOCAL_GL_SIGNED_INTENSITY_NV 0x8707 -#define LOCAL_GL_SIGNED_INTENSITY8_NV 0x8708 -#define LOCAL_GL_DSDT8_NV 0x8709 -#define LOCAL_GL_DSDT8_MAG8_NV 0x870A -#define LOCAL_GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define LOCAL_GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define LOCAL_GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define LOCAL_GL_NV_texture_shader3 1 -#define LOCAL_GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define LOCAL_GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define LOCAL_GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define LOCAL_GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define LOCAL_GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define LOCAL_GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define LOCAL_GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define LOCAL_GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define LOCAL_GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define LOCAL_GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define LOCAL_GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define LOCAL_GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define LOCAL_GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define LOCAL_GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define LOCAL_GL_HILO8_NV 0x885E -#define LOCAL_GL_SIGNED_HILO8_NV 0x885F -#define LOCAL_GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#define LOCAL_GL_NV_vertex_array_range 1 -#define LOCAL_GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define LOCAL_GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define LOCAL_GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define LOCAL_GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define LOCAL_GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#define LOCAL_GL_NV_vertex_array_range2 1 -#define LOCAL_GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#define LOCAL_GL_NV_vertex_program 1 -#define LOCAL_GL_VERTEX_PROGRAM_NV 0x8620 -#define LOCAL_GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define LOCAL_GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define LOCAL_GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define LOCAL_GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define LOCAL_GL_CURRENT_ATTRIB_NV 0x8626 -#define LOCAL_GL_PROGRAM_LENGTH_NV 0x8627 -#define LOCAL_GL_PROGRAM_STRING_NV 0x8628 -#define LOCAL_GL_MODELVIEW_PROJECTION_NV 0x8629 -#define LOCAL_GL_IDENTITY_NV 0x862A -#define LOCAL_GL_INVERSE_NV 0x862B -#define LOCAL_GL_TRANSPOSE_NV 0x862C -#define LOCAL_GL_INVERSE_TRANSPOSE_NV 0x862D -#define LOCAL_GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define LOCAL_GL_MAX_TRACK_MATRICES_NV 0x862F -#define LOCAL_GL_MATRIX0_NV 0x8630 -#define LOCAL_GL_MATRIX1_NV 0x8631 -#define LOCAL_GL_MATRIX2_NV 0x8632 -#define LOCAL_GL_MATRIX3_NV 0x8633 -#define LOCAL_GL_MATRIX4_NV 0x8634 -#define LOCAL_GL_MATRIX5_NV 0x8635 -#define LOCAL_GL_MATRIX6_NV 0x8636 -#define LOCAL_GL_MATRIX7_NV 0x8637 -#define LOCAL_GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define LOCAL_GL_CURRENT_MATRIX_NV 0x8641 -#define LOCAL_GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define LOCAL_GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define LOCAL_GL_PROGRAM_PARAMETER_NV 0x8644 -#define LOCAL_GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define LOCAL_GL_PROGRAM_TARGET_NV 0x8646 -#define LOCAL_GL_PROGRAM_RESIDENT_NV 0x8647 -#define LOCAL_GL_TRACK_MATRIX_NV 0x8648 -#define LOCAL_GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define LOCAL_GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define LOCAL_GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define LOCAL_GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define LOCAL_GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define LOCAL_GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define LOCAL_GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define LOCAL_GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define LOCAL_GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define LOCAL_GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define LOCAL_GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define LOCAL_GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define LOCAL_GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define LOCAL_GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define LOCAL_GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define LOCAL_GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define LOCAL_GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define LOCAL_GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#define LOCAL_GL_NV_vertex_program1_1 1 -#define LOCAL_GL_NV_vertex_program2 1 -#define LOCAL_GL_NV_vertex_program2_option 1 -#define LOCAL_GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define LOCAL_GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define LOCAL_GL_NV_vertex_program3 1 -#define LOCAL_GL_OML_interlace 1 -#define LOCAL_GL_INTERLACE_OML 0x8980 -#define LOCAL_GL_INTERLACE_READ_OML 0x8981 -#define LOCAL_GL_OML_resample 1 -#define LOCAL_GL_PACK_RESAMPLE_OML 0x8984 -#define LOCAL_GL_UNPACK_RESAMPLE_OML 0x8985 -#define LOCAL_GL_RESAMPLE_REPLICATE_OML 0x8986 -#define LOCAL_GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define LOCAL_GL_RESAMPLE_AVERAGE_OML 0x8988 -#define LOCAL_GL_RESAMPLE_DECIMATE_OML 0x8989 -#define LOCAL_GL_OML_subsample 1 -#define LOCAL_GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define LOCAL_GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#define LOCAL_GL_PGI_misc_hints 1 -#define LOCAL_GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 -#define LOCAL_GL_CONSERVE_MEMORY_HINT_PGI 107005 -#define LOCAL_GL_RECLAIM_MEMORY_HINT_PGI 107006 -#define LOCAL_GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 -#define LOCAL_GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 -#define LOCAL_GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 -#define LOCAL_GL_ALWAYS_FAST_HINT_PGI 107020 -#define LOCAL_GL_ALWAYS_SOFT_HINT_PGI 107021 -#define LOCAL_GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 -#define LOCAL_GL_ALLOW_DRAW_WIN_HINT_PGI 107023 -#define LOCAL_GL_ALLOW_DRAW_FRG_HINT_PGI 107024 -#define LOCAL_GL_ALLOW_DRAW_MEM_HINT_PGI 107025 -#define LOCAL_GL_STRICT_DEPTHFUNC_HINT_PGI 107030 -#define LOCAL_GL_STRICT_LIGHTING_HINT_PGI 107031 -#define LOCAL_GL_STRICT_SCISSOR_HINT_PGI 107032 -#define LOCAL_GL_FULL_STIPPLE_HINT_PGI 107033 -#define LOCAL_GL_CLIP_NEAR_HINT_PGI 107040 -#define LOCAL_GL_CLIP_FAR_HINT_PGI 107041 -#define LOCAL_GL_WIDE_LINE_HINT_PGI 107042 -#define LOCAL_GL_BACK_NORMALS_HINT_PGI 107043 -#define LOCAL_GL_PGI_vertex_hints 1 -#define LOCAL_GL_VERTEX23_BIT_PGI 0x00000004 -#define LOCAL_GL_VERTEX4_BIT_PGI 0x00000008 -#define LOCAL_GL_COLOR3_BIT_PGI 0x00010000 -#define LOCAL_GL_COLOR4_BIT_PGI 0x00020000 -#define LOCAL_GL_EDGEFLAG_BIT_PGI 0x00040000 -#define LOCAL_GL_INDEX_BIT_PGI 0x00080000 -#define LOCAL_GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define LOCAL_GL_VERTEX_DATA_HINT_PGI 107050 -#define LOCAL_GL_VERTEX_CONSISTENT_HINT_PGI 107051 -#define LOCAL_GL_MATERIAL_SIDE_HINT_PGI 107052 -#define LOCAL_GL_MAX_VERTEX_HINT_PGI 107053 -#define LOCAL_GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define LOCAL_GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define LOCAL_GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define LOCAL_GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define LOCAL_GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define LOCAL_GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define LOCAL_GL_NORMAL_BIT_PGI 0x08000000 -#define LOCAL_GL_TEXCOORD1_BIT_PGI 0x10000000 -#define LOCAL_GL_TEXCOORD2_BIT_PGI 0x20000000 -#define LOCAL_GL_TEXCOORD3_BIT_PGI 0x40000000 -#define LOCAL_GL_TEXCOORD4_BIT_PGI 0x80000000 -#define LOCAL_GL_REND_screen_coordinates 1 -#define LOCAL_GL_SCREEN_COORDINATES_REND 0x8490 -#define LOCAL_GL_INVERTED_SCREEN_W_REND 0x8491 -#define LOCAL_GL_S3_s3tc 1 -#define LOCAL_GL_RGB_S3TC 0x83A0 -#define LOCAL_GL_RGB4_S3TC 0x83A1 -#define LOCAL_GL_RGBA_S3TC 0x83A2 -#define LOCAL_GL_RGBA4_S3TC 0x83A3 -#define LOCAL_GL_RGBA_DXT5_S3TC 0x83A4 -#define LOCAL_GL_RGBA4_DXT5_S3TC 0x83A5 -#define LOCAL_GL_SGIS_color_range 1 -#define LOCAL_GL_EXTENDED_RANGE_SGIS 0x85A5 -#define LOCAL_GL_MIN_RED_SGIS 0x85A6 -#define LOCAL_GL_MAX_RED_SGIS 0x85A7 -#define LOCAL_GL_MIN_GREEN_SGIS 0x85A8 -#define LOCAL_GL_MAX_GREEN_SGIS 0x85A9 -#define LOCAL_GL_MIN_BLUE_SGIS 0x85AA -#define LOCAL_GL_MAX_BLUE_SGIS 0x85AB -#define LOCAL_GL_MIN_ALPHA_SGIS 0x85AC -#define LOCAL_GL_MAX_ALPHA_SGIS 0x85AD -#define LOCAL_GL_SGIS_detail_texture 1 -#define LOCAL_GL_SGIS_fog_function 1 -#define LOCAL_GL_SGIS_generate_mipmap 1 -#define LOCAL_GL_GENERATE_MIPMAP_SGIS 0x8191 -#define LOCAL_GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#define LOCAL_GL_SGIS_multisample 1 -#define LOCAL_GL_MULTISAMPLE_SGIS 0x809D -#define LOCAL_GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define LOCAL_GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define LOCAL_GL_SAMPLE_MASK_SGIS 0x80A0 -#define LOCAL_GL_1PASS_SGIS 0x80A1 -#define LOCAL_GL_2PASS_0_SGIS 0x80A2 -#define LOCAL_GL_2PASS_1_SGIS 0x80A3 -#define LOCAL_GL_4PASS_0_SGIS 0x80A4 -#define LOCAL_GL_4PASS_1_SGIS 0x80A5 -#define LOCAL_GL_4PASS_2_SGIS 0x80A6 -#define LOCAL_GL_4PASS_3_SGIS 0x80A7 -#define LOCAL_GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define LOCAL_GL_SAMPLES_SGIS 0x80A9 -#define LOCAL_GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define LOCAL_GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define LOCAL_GL_SAMPLE_PATTERN_SGIS 0x80AC -#define LOCAL_GL_MULTISAMPLE_BIT_EXT 0x20000000 -#define LOCAL_GL_SGIS_pixel_texture 1 -#define LOCAL_GL_SGIS_sharpen_texture 1 -#define LOCAL_GL_SGIS_texture4D 1 -#define LOCAL_GL_SGIS_texture_border_clamp 1 -#define LOCAL_GL_CLAMP_TO_BORDER_SGIS 0x812D -#define LOCAL_GL_SGIS_texture_edge_clamp 1 -#define LOCAL_GL_CLAMP_TO_EDGE_SGIS 0x812F -#define LOCAL_GL_SGIS_texture_filter4 1 -#define LOCAL_GL_SGIS_texture_lod 1 -#define LOCAL_GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define LOCAL_GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define LOCAL_GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define LOCAL_GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#define LOCAL_GL_SGIS_texture_select 1 -#define LOCAL_GL_SGIX_async 1 -#define LOCAL_GL_ASYNC_MARKER_SGIX 0x8329 -#define LOCAL_GL_SGIX_async_histogram 1 -#define LOCAL_GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define LOCAL_GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#define LOCAL_GL_SGIX_async_pixel 1 -#define LOCAL_GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define LOCAL_GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define LOCAL_GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define LOCAL_GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define LOCAL_GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define LOCAL_GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#define LOCAL_GL_SGIX_blend_alpha_minmax 1 -#define LOCAL_GL_ALPHA_MIN_SGIX 0x8320 -#define LOCAL_GL_ALPHA_MAX_SGIX 0x8321 -#define LOCAL_GL_SGIX_clipmap 1 -#define LOCAL_GL_SGIX_depth_texture 1 -#define LOCAL_GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define LOCAL_GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define LOCAL_GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#define LOCAL_GL_SGIX_flush_raster 1 -#define LOCAL_GL_SGIX_fog_offset 1 -#define LOCAL_GL_FOG_OFFSET_SGIX 0x8198 -#define LOCAL_GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#define LOCAL_GL_SGIX_fog_texture 1 -#define LOCAL_GL_TEXTURE_FOG_SGIX 0 -#define LOCAL_GL_FOG_PATCHY_FACTOR_SGIX 0 -#define LOCAL_GL_FRAGMENT_FOG_SGIX 0 -#define LOCAL_GL_SGIX_fragment_specular_lighting 1 -#define LOCAL_GL_SGIX_framezoom 1 -#define LOCAL_GL_SGIX_interlace 1 -#define LOCAL_GL_INTERLACE_SGIX 0x8094 -#define LOCAL_GL_SGIX_ir_instrument1 1 -#define LOCAL_GL_SGIX_list_priority 1 -#define LOCAL_GL_SGIX_pixel_texture 1 -#define LOCAL_GL_SGIX_pixel_texture_bits 1 -#define LOCAL_GL_SGIX_reference_plane 1 -#define LOCAL_GL_SGIX_resample 1 -#define LOCAL_GL_PACK_RESAMPLE_SGIX 0x842E -#define LOCAL_GL_UNPACK_RESAMPLE_SGIX 0x842F -#define LOCAL_GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#define LOCAL_GL_RESAMPLE_REPLICATE_SGIX 0x8433 -#define LOCAL_GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 -#define LOCAL_GL_SGIX_shadow 1 -#define LOCAL_GL_TEXTURE_COMPARE_SGIX 0x819A -#define LOCAL_GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define LOCAL_GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define LOCAL_GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#define LOCAL_GL_SGIX_shadow_ambient 1 -#define LOCAL_GL_SHADOW_AMBIENT_SGIX 0x80BF -#define LOCAL_GL_SGIX_sprite 1 -#define LOCAL_GL_SGIX_tag_sample_buffer 1 -#define LOCAL_GL_SGIX_texture_add_env 1 -#define LOCAL_GL_SGIX_texture_coordinate_clamp 1 -#define LOCAL_GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define LOCAL_GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define LOCAL_GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#define LOCAL_GL_SGIX_texture_lod_bias 1 -#define LOCAL_GL_SGIX_texture_multi_buffer 1 -#define LOCAL_GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#define LOCAL_GL_SGIX_texture_range 1 -#define LOCAL_GL_RGB_SIGNED_SGIX 0x85E0 -#define LOCAL_GL_RGBA_SIGNED_SGIX 0x85E1 -#define LOCAL_GL_ALPHA_SIGNED_SGIX 0x85E2 -#define LOCAL_GL_LUMINANCE_SIGNED_SGIX 0x85E3 -#define LOCAL_GL_INTENSITY_SIGNED_SGIX 0x85E4 -#define LOCAL_GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 -#define LOCAL_GL_RGB16_SIGNED_SGIX 0x85E6 -#define LOCAL_GL_RGBA16_SIGNED_SGIX 0x85E7 -#define LOCAL_GL_ALPHA16_SIGNED_SGIX 0x85E8 -#define LOCAL_GL_LUMINANCE16_SIGNED_SGIX 0x85E9 -#define LOCAL_GL_INTENSITY16_SIGNED_SGIX 0x85EA -#define LOCAL_GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB -#define LOCAL_GL_RGB_EXTENDED_RANGE_SGIX 0x85EC -#define LOCAL_GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED -#define LOCAL_GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE -#define LOCAL_GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF -#define LOCAL_GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 -#define LOCAL_GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 -#define LOCAL_GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 -#define LOCAL_GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 -#define LOCAL_GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 -#define LOCAL_GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 -#define LOCAL_GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 -#define LOCAL_GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 -#define LOCAL_GL_MIN_LUMINANCE_SGIS 0x85F8 -#define LOCAL_GL_MAX_LUMINANCE_SGIS 0x85F9 -#define LOCAL_GL_MIN_INTENSITY_SGIS 0x85FA -#define LOCAL_GL_MAX_INTENSITY_SGIS 0x85FB -#define LOCAL_GL_SGIX_texture_scale_bias 1 -#define LOCAL_GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define LOCAL_GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define LOCAL_GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define LOCAL_GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#define LOCAL_GL_SGIX_vertex_preclip 1 -#define LOCAL_GL_VERTEX_PRECLIP_SGIX 0x83EE -#define LOCAL_GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#define LOCAL_GL_SGIX_vertex_preclip_hint 1 -#define LOCAL_GL_VERTEX_PRECLIP_SGIX 0x83EE -#define LOCAL_GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#define LOCAL_GL_SGIX_ycrcb 1 -#define LOCAL_GL_SGI_color_matrix 1 -#define LOCAL_GL_COLOR_MATRIX_SGI 0x80B1 -#define LOCAL_GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define LOCAL_GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define LOCAL_GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define LOCAL_GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define LOCAL_GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define LOCAL_GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define LOCAL_GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define LOCAL_GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define LOCAL_GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define LOCAL_GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#define LOCAL_GL_SGI_color_table 1 -#define LOCAL_GL_COLOR_TABLE_SGI 0x80D0 -#define LOCAL_GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define LOCAL_GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define LOCAL_GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define LOCAL_GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define LOCAL_GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define LOCAL_GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define LOCAL_GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define LOCAL_GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define LOCAL_GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define LOCAL_GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define LOCAL_GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define LOCAL_GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define LOCAL_GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define LOCAL_GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define LOCAL_GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#define LOCAL_GL_SGI_texture_color_table 1 -#define LOCAL_GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define LOCAL_GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#define LOCAL_GL_SUNX_constant_data 1 -#define LOCAL_GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define LOCAL_GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#define LOCAL_GL_SUN_convolution_border_modes 1 -#define LOCAL_GL_WRAP_BORDER_SUN 0x81D4 -#define LOCAL_GL_SUN_global_alpha 1 -#define LOCAL_GL_GLOBAL_ALPHA_SUN 0x81D9 -#define LOCAL_GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#define LOCAL_GL_SUN_mesh_array 1 -#define LOCAL_GL_QUAD_MESH_SUN 0x8614 -#define LOCAL_GL_TRIANGLE_MESH_SUN 0x8615 -#define LOCAL_GL_SUN_read_video_pixels 1 -#define LOCAL_GL_SUN_slice_accum 1 -#define LOCAL_GL_SLICE_ACCUM_SUN 0x85CC -#define LOCAL_GL_SUN_triangle_list 1 -#define LOCAL_GL_RESTART_SUN 0x01 -#define LOCAL_GL_REPLACE_MIDDLE_SUN 0x02 -#define LOCAL_GL_REPLACE_OLDEST_SUN 0x03 -#define LOCAL_GL_TRIANGLE_LIST_SUN 0x81D7 -#define LOCAL_GL_REPLACEMENT_CODE_SUN 0x81D8 -#define LOCAL_GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define LOCAL_GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define LOCAL_GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define LOCAL_GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define LOCAL_GL_R1UI_V3F_SUN 0x85C4 -#define LOCAL_GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define LOCAL_GL_R1UI_C3F_V3F_SUN 0x85C6 -#define LOCAL_GL_R1UI_N3F_V3F_SUN 0x85C7 -#define LOCAL_GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define LOCAL_GL_R1UI_T2F_V3F_SUN 0x85C9 -#define LOCAL_GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define LOCAL_GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#define LOCAL_GL_SUN_vertex 1 -#define LOCAL_GL_WIN_phong_shading 1 -#define LOCAL_GL_PHONG_WIN 0x80EA -#define LOCAL_GL_PHONG_HINT_WIN 0x80EB -#define LOCAL_GL_WIN_specular_fog 1 -#define LOCAL_GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#define LOCAL_GL_WIN_swap_hint 1 - -#define LOCAL_GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define LOCAL_GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B - -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B - -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 - -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 - - -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BLUE_SIZE 0x3022 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_RED_SIZE 0x3024 -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_PRESERVED_RESOURCES 0x3030 -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_NONE 0x3038 -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_CONFORMANT 0x3042 -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_WINDOW_BIT 0x0004 -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_EXTENSIONS 0x3055 -#define EGL_CLIENT_APIS 0x308D -#define EGL_HEIGHT 0x3056 -#define EGL_WIDTH 0x3057 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_TARGET 0x3081 -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_VERTICAL_RESOLUTION 0x3091 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_FALSE 0 -#define EGL_TRUE 1 - -#endif diff --git a/content/canvas/src/nsGLPbuffer.cpp b/content/canvas/src/nsGLPbuffer.cpp deleted file mode 100644 index 45ebc031c12..00000000000 --- a/content/canvas/src/nsGLPbuffer.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include - -#include "prprf.h" - -#include "nsGLPbuffer.h" - -#include "nsIConsoleService.h" -#include "nsServiceManagerUtils.h" - -#if 0 -#include -#endif - -void *nsGLPbuffer::sCurrentContextToken = nsnull; - -void -nsGLPbuffer::LogMessage(const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - char buf[256]; - - nsCOMPtr console(do_GetService(NS_CONSOLESERVICE_CONTRACTID)); - if (console) { - PR_vsnprintf(buf, 256, fmt, ap); - console->LogStringMessage(NS_ConvertUTF8toUTF16(nsDependentCString(buf)).get()); - fprintf(stderr, "%s\n", buf); - } - - va_end(ap); -} - -static void -premultiply_slow(unsigned char *src, unsigned int len) -{ - int a,t; - for (unsigned int i=0; i>8) + t) >> 8; - t = src[i+1]*a+0x80; - src[i+1] = ((t>>8) + t) >> 8; - t = src[i+2]*a+0x80; - src[i+2] = ((t>>8) + t) >> 8; - } -} - -#if 0 -static void -premultiply_sse2(__m128i* block, __m128i* block_end) -{ - __m128i xmm0080, xmm0101, xmmAlpha, data, dataLo, dataHi, alphaLo, alphaHi; - while (block < block_end) { - xmm0080 = _mm_set1_epi16(0x0080); - xmm0101 = _mm_set1_epi16(0x0101); - xmmAlpha = _mm_set_epi32(0x00ff0000, 0x00000000, 0x00ff0000, 0x00000000); - - data = _mm_loadu_si128(block); - dataLo = _mm_unpacklo_epi8 (data, _mm_setzero_si128 ()); - dataHi = _mm_unpackhi_epi8 (data, _mm_setzero_si128 ()); - - alphaLo = _mm_shufflelo_epi16 (dataLo, _MM_SHUFFLE(3, 3, 3, 3)); - alphaHi = _mm_shufflelo_epi16 (dataHi, _MM_SHUFFLE(3, 3, 3, 3)); - alphaLo = _mm_shufflehi_epi16 (alphaLo, _MM_SHUFFLE(3, 3, 3, 3)); - alphaHi = _mm_shufflehi_epi16 (alphaHi, _MM_SHUFFLE(3, 3, 3, 3)); - - alphaLo = _mm_or_si128(alphaLo, xmmAlpha); - alphaHi = _mm_or_si128(alphaHi, xmmAlpha); - - dataLo = _mm_shufflelo_epi16 (dataLo, _MM_SHUFFLE(3, 2, 1, 0)); - dataLo = _mm_shufflehi_epi16 (dataLo, _MM_SHUFFLE(3, 2, 1, 0)); - dataHi = _mm_shufflelo_epi16 (dataHi, _MM_SHUFFLE(3, 2, 1, 0)); - dataHi = _mm_shufflehi_epi16 (dataHi, _MM_SHUFFLE(3, 2, 1, 0)); - - dataLo = _mm_mullo_epi16(dataLo, alphaLo); - dataHi = _mm_mullo_epi16(dataHi, alphaHi); - - dataLo = _mm_adds_epu16(dataLo, xmm0080); - dataHi = _mm_adds_epu16(dataHi, xmm0080); - - dataLo = _mm_mulhi_epu16(dataLo, xmm0101); - dataHi = _mm_mulhi_epu16(dataHi, xmm0101); - - data = _mm_packus_epi16 (dataLo, dataHi); - _mm_storeu_si128(block, data); - - ++block; - } -} -#endif - -void -nsGLPbuffer::Premultiply(unsigned char *src, unsigned int len) -{ -#if 0 - if (can_sse2) { - premultiply_sse2((__m128i*)src, (__m128i*)(src+len)); - return; - } -#endif - - premultiply_slow(src, len); -} diff --git a/content/canvas/src/nsGLPbuffer.h b/content/canvas/src/nsGLPbuffer.h deleted file mode 100644 index 03b24da7091..00000000000 --- a/content/canvas/src/nsGLPbuffer.h +++ /dev/null @@ -1,273 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef NSGLPBUFFER_H_ -#define NSGLPBUFFER_H_ - -#ifdef C3D_STANDALONE_BUILD -#include "c3d-standalone.h" -#endif - -#include "nsStringGlue.h" - -#include "gfxASurface.h" -#include "gfxImageSurface.h" - -#ifdef USE_EGL -typedef int EGLint; -typedef unsigned int EGLBoolean; -typedef unsigned int EGLenum; -typedef void *EGLConfig; -typedef void *EGLContext; -typedef void *EGLDisplay; -typedef void *EGLSurface; -typedef void *EGLClientBuffer; -#endif - -#ifdef XP_WIN -#include "gfxWindowsSurface.h" -#endif - -#ifdef MOZ_X11 -#include "gfxXlibSurface.h" -#endif - -#if defined(WINCE) && defined(CAIRO_HAS_DDRAW_SURFACE) -#include "gfxDDrawSurface.h" -#endif - -#ifdef USE_GLX -#define GLX_GLXEXT_LEGACY -#include "GL/glx.h" -#endif - -#ifdef USE_CGL -#include "gfxQuartzImageSurface.h" -#include -#endif - -#include "glwrap.h" - -namespace mozilla { -class WebGLContext; -} - -class nsGLPbuffer { -public: - nsGLPbuffer() : mWidth(0), mHeight(0), mPriv(0) { } - virtual ~nsGLPbuffer() { } - - virtual PRBool Init(mozilla::WebGLContext *priv) = 0; - virtual PRBool Resize(PRInt32 width, PRInt32 height) = 0; - virtual void Destroy() = 0; - - virtual void MakeContextCurrent() = 0; - virtual void SwapBuffers() = 0; - - virtual gfxASurface* ThebesSurface() = 0; - - PRInt32 Width() { return mWidth; } - PRInt32 Height() { return mHeight; } - - GLES20Wrap *GL() { return &mGLWrap; } - -protected: - PRInt32 mWidth, mHeight; - - GLES20Wrap mGLWrap; - - static void *sCurrentContextToken; - mozilla::WebGLContext *mPriv; - - void Premultiply(unsigned char *src, unsigned int len); - - void LogMessage (const char *fmt, ...); -}; - -class nsGLPbufferOSMESA : - public nsGLPbuffer -{ -public: - nsGLPbufferOSMESA(); - virtual ~nsGLPbufferOSMESA(); - - virtual PRBool Init(mozilla::WebGLContext *priv); - virtual PRBool Resize(PRInt32 width, PRInt32 height); - virtual void Destroy(); - - virtual void MakeContextCurrent(); - virtual void SwapBuffers(); - - virtual gfxASurface* ThebesSurface(); - -protected: - nsRefPtr mThebesSurface; - PrivateOSMesaContext mMesaContext; -}; - -#ifdef USE_CGL -class nsGLPbufferCGL : - public nsGLPbuffer -{ -public: - nsGLPbufferCGL(); - virtual ~nsGLPbufferCGL(); - - virtual PRBool Init(mozilla::WebGLContext *priv); - virtual PRBool Resize(PRInt32 width, PRInt32 height); - virtual void Destroy(); - - virtual void MakeContextCurrent(); - virtual void SwapBuffers(); - - virtual gfxASurface* ThebesSurface(); - - CGLPixelFormatObj GetCGLPixelFormat() { return mPixelFormat; } - CGLContextObj GetCGLContext() { return mContext; } - CGLPBufferObj GetCGLPbuffer() { return mPbuffer; } - -protected: - CGLPixelFormatObj mPixelFormat; - CGLContextObj mContext; - CGLPBufferObj mPbuffer; - - PRBool mImageNeedsUpdate; - nsRefPtr mThebesSurface; - nsRefPtr mQuartzSurface; - - typedef void (GLAPIENTRY * PFNGLFLUSHPROC) (void); - PFNGLFLUSHPROC fFlush; -}; -#endif - -#ifdef USE_GLX -class nsGLPbufferGLX : - public nsGLPbuffer -{ -public: - nsGLPbufferGLX(); - virtual ~nsGLPbufferGLX(); - - virtual PRBool Init(mozilla::WebGLContext *priv); - virtual PRBool Resize(PRInt32 width, PRInt32 height); - virtual void Destroy(); - - virtual void MakeContextCurrent(); - virtual void SwapBuffers(); - - virtual gfxASurface* ThebesSurface(); - -protected: - nsRefPtr mThebesSurface; - - Display *mDisplay; - GLXFBConfig mFBConfig; - GLXPbuffer mPbuffer; - GLXContext mPbufferContext; -}; -#endif - -#ifdef USE_EGL -class nsGLPbufferEGL : - public nsGLPbuffer -{ -public: - nsGLPbufferEGL(); - virtual ~nsGLPbufferEGL(); - - virtual PRBool Init(mozilla::WebGLContext *priv); - virtual PRBool Resize(PRInt32 width, PRInt32 height); - virtual void Destroy(); - - virtual void MakeContextCurrent(); - virtual void SwapBuffers(); - - virtual gfxASurface* ThebesSurface(); - -protected: - EGLDisplay mDisplay; - EGLConfig mConfig; - EGLSurface mSurface; - EGLContext mContext; - -#if defined(XP_WIN) - nsRefPtr mThebesSurface; - nsRefPtr mWindowsSurface; -#elif defined(MOZ_X11) - nsRefPtr mThebesSurface; - nsRefPtr mXlibSurface; - Visual *mVisual; -#endif -}; -#endif - -#ifdef USE_WGL -class nsGLPbufferWGL : - public nsGLPbuffer -{ -public: - nsGLPbufferWGL(); - virtual ~nsGLPbufferWGL(); - - virtual PRBool Init(mozilla::WebGLContext *priv); - virtual PRBool Resize(PRInt32 width, PRInt32 height); - virtual void Destroy(); - - virtual void MakeContextCurrent(); - virtual void SwapBuffers(); - - virtual gfxASurface* ThebesSurface(); - -protected: - // this is the crap that we need to get the gl entry points - HWND mGlewWindow; - HDC mGlewDC; - HANDLE mGlewWglContext; - - // and this is the actual stuff that we need to render - HANDLE mPbuffer; - HDC mPbufferDC; - HANDLE mPbufferContext; - - nsRefPtr mThebesSurface; - nsRefPtr mWindowsSurface; -}; -#endif - - -#endif /* NSGLPBUFFER_H_ */ diff --git a/content/canvas/src/nsGLPbufferCGL.cpp b/content/canvas/src/nsGLPbufferCGL.cpp deleted file mode 100644 index 32679c35458..00000000000 --- a/content/canvas/src/nsGLPbufferCGL.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsIPrefService.h" -#include "nsServiceManagerUtils.h" - -#include "nsGLPbuffer.h" -#include "WebGLContext.h" - -#include - -#include "gfxContext.h" - -using namespace mozilla; - -static PRUint32 gActiveBuffers = 0; - -nsGLPbufferCGL::nsGLPbufferCGL() - : mContext(nsnull), mPbuffer(nsnull), fFlush(nsnull) -{ - gActiveBuffers++; - fprintf (stderr, "nsGLPbuffer: gActiveBuffers: %d\n", gActiveBuffers); -} - -PRBool -nsGLPbufferCGL::Init(WebGLContext *priv) -{ - mPriv = priv; - nsresult rv; - - nsCOMPtr prefService = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - nsCOMPtr prefBranch; - rv = prefService->GetBranch("extensions.canvas3d.", getter_AddRefs(prefBranch)); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - PRInt32 prefAntialiasing; - rv = prefBranch->GetIntPref("antialiasing", &prefAntialiasing); - if (NS_FAILED(rv)) - prefAntialiasing = 0; - - CGLPixelFormatAttribute attrib[] = { - kCGLPFAAccelerated, - kCGLPFAMinimumPolicy, - kCGLPFAPBuffer, - kCGLPFAColorSize, (CGLPixelFormatAttribute) 24, - kCGLPFAAlphaSize, (CGLPixelFormatAttribute) 8, - kCGLPFADepthSize, (CGLPixelFormatAttribute) 8, - (CGLPixelFormatAttribute) 0 - }; - -#if 0 - if (false && prefAntialiasing > 0) { - attrib[12] = AGL_SAMPLE_BUFFERS_ARB; - attrib[13] = 1; - - attrib[14] = AGL_SAMPLES_ARB; - attrib[15] = 1 << prefAntialiasing; - } -#endif - - CGLError err; - - GLint npix; - err = CGLChoosePixelFormat(attrib, &mPixelFormat, &npix); - if (err) { - fprintf (stderr, "CGLChoosePixelFormat failed: %d\n", err); - return PR_FALSE; - } - - // we need a context for glewInit - Resize(2, 2); - MakeContextCurrent(); - - if (!mGLWrap.OpenLibrary("/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib")) { - LogMessage("Canvas 3D: Failed to open LibGL.dylib (tried system OpenGL.framework)"); - return PR_FALSE; - } - - if (!mGLWrap.Init(GLES20Wrap::TRY_NATIVE_GL)) { - LogMessage("Canvas 3D: GLWrap init failed"); - return PR_FALSE; - } - - fFlush = (PFNGLFLUSHPROC) mGLWrap.LookupSymbol("glFlush", true); - - return PR_TRUE; -} - -PRBool -nsGLPbufferCGL::Resize(PRInt32 width, PRInt32 height) -{ - if (mWidth == width && - mHeight == height) - { - return PR_TRUE; - } - - Destroy(); - - mThebesSurface = nsnull; - mQuartzSurface = nsnull; - - CGLError err; - - err = CGLCreateContext(mPixelFormat, NULL, &mContext); - if (err) { - fprintf (stderr, "CGLCreateContext failed: %d\n", err); - return PR_FALSE; - } - - err = CGLCreatePBuffer(width, height, LOCAL_GL_TEXTURE_RECTANGLE_EXT, LOCAL_GL_RGBA, 0, &mPbuffer); - if (err) { - fprintf (stderr, "CGLCreatePBuffer failed: %d\n", err); - return PR_FALSE; - } - - GLint screen; - err = CGLGetVirtualScreen(mContext, &screen); - if (err) { - fprintf (stderr, "CGLGetVirtualScreen failed: %d\n", err); - return PR_FALSE; - } - - err = CGLSetPBuffer(mContext, mPbuffer, 0, 0, screen); - if (err) { - fprintf (stderr, "CGLSetPBuffer failed: %d\n", err); - return PR_FALSE; - } - - mWidth = width; - mHeight = height; - - return PR_TRUE; -} - -void -nsGLPbufferCGL::Destroy() -{ - sCurrentContextToken = nsnull; - mThebesSurface = nsnull; - - if (mContext) { - CGLDestroyContext(mContext); - mContext = nsnull; - } - if (mPbuffer) { - CGLDestroyPBuffer(mPbuffer); - mPbuffer = nsnull; - } -} - -nsGLPbufferCGL::~nsGLPbufferCGL() -{ - Destroy(); - - if (mPixelFormat) { - CGLDestroyPixelFormat(mPixelFormat); - mPixelFormat = nsnull; - } - - gActiveBuffers--; - fprintf (stderr, "nsGLPbuffer: gActiveBuffers: %d\n", gActiveBuffers); - fflush (stderr); -} - -void -nsGLPbufferCGL::MakeContextCurrent() -{ - CGLError err = CGLSetCurrentContext (mContext); - if (err) { - fprintf (stderr, "CGLSetCurrentContext failed: %d\n", err); - } -} - -void -nsGLPbufferCGL::SwapBuffers() -{ - MakeContextCurrent(); - - // oddly, CGLFlushDrawable() doesn't seem to work, even though it should be calling - // glFlush first. - if (fFlush) - fFlush(); - - mImageNeedsUpdate = PR_TRUE; -} - -gfxASurface* -nsGLPbufferCGL::ThebesSurface() -{ - if (!mThebesSurface) { - mThebesSurface = new gfxImageSurface(gfxIntSize(mWidth, mHeight), gfxASurface::ImageFormatARGB32); - if (mThebesSurface->CairoStatus() != 0) { - fprintf (stderr, "image surface failed\n"); - mThebesSurface = nsnull; - return nsnull; - } - - mQuartzSurface = new gfxQuartzImageSurface(mThebesSurface); - - mImageNeedsUpdate = PR_TRUE; - } - - if (mImageNeedsUpdate) { - MakeContextCurrent(); - mGLWrap.fReadPixels (0, 0, mWidth, mHeight, LOCAL_GL_BGRA, LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV, mThebesSurface->Data()); - - mQuartzSurface->Flush(); - - mImageNeedsUpdate = PR_FALSE; - } - - return mQuartzSurface; -} diff --git a/content/canvas/src/nsGLPbufferEGL.cpp b/content/canvas/src/nsGLPbufferEGL.cpp deleted file mode 100644 index b15af61a369..00000000000 --- a/content/canvas/src/nsGLPbufferEGL.cpp +++ /dev/null @@ -1,497 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -// this must be first, else windows.h breaks us -#include "WebGLContext.h" -#include "nsGLPbuffer.h" - -#include "nsDirectoryServiceUtils.h" -#include "nsAppDirectoryServiceDefs.h" -#include "nsIPrefService.h" - -#include "gfxContext.h" - -#include "glwrap.h" - -#ifdef MOZ_X11 -#ifdef MOZ_WIDGET_GTK2 -#include -#define DISPLAY gdk_x11_get_default_xdisplay - -#elif defined(MOZ_WIDGET_QT) -#ifdef CursorShape -#undef CursorShape -#endif -#include -#define DISPLAY QX11Info::display -#endif - -typedef Display* EGLNativeDisplayType; -typedef Window EGLNativeWindowType; -typedef Pixmap EGLNativePixmapType; -#endif - -#ifdef WINCE -typedef HDC EGLNativeDisplayType; -typedef HWND EGLNativeWindowType; -typedef HDC EGLNativePixmapType; -#endif - -// some EGL defines -#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) -#define EGL_NO_CONTEXT ((EGLContext)0) -#define EGL_NO_DISPLAY ((EGLDisplay)0) -#define EGL_NO_SURFACE ((EGLSurface)0) - -using namespace mozilla; - -static PRUint32 gActiveBuffers = 0; - -class EGLWrap - : public LibrarySymbolLoader -{ -public: - EGLWrap() : fGetCurrentContext(0) { } - - bool Init(); - -public: - typedef EGLDisplay (*pfnGetDisplay)(void *display_id); - pfnGetDisplay fGetDisplay; - typedef EGLContext (*pfnGetCurrentContext)(void); - pfnGetCurrentContext fGetCurrentContext; - typedef EGLBoolean (*pfnMakeCurrent)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); - pfnMakeCurrent fMakeCurrent; - typedef EGLBoolean (*pfnDestroyContext)(EGLDisplay dpy, EGLContext ctx); - pfnDestroyContext fDestroyContext; - typedef EGLContext (*pfnCreateContext)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); - pfnCreateContext fCreateContext; - typedef EGLBoolean (*pfnDestroySurface)(EGLDisplay dpy, EGLSurface surface); - pfnDestroySurface fDestroySurface; - typedef EGLSurface (*pfnCreatePbufferSurface)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); - pfnCreatePbufferSurface fCreatePbufferSurface; - typedef EGLSurface (*pfnCreatePixmapSurface)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); - pfnCreatePixmapSurface fCreatePixmapSurface; - typedef EGLBoolean (*pfnBindAPI)(EGLenum api); - pfnBindAPI fBindAPI; - typedef EGLBoolean (*pfnInitialize)(EGLDisplay dpy, EGLint *major, EGLint *minor); - pfnInitialize fInitialize; - typedef EGLBoolean (*pfnChooseConfig)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); - pfnChooseConfig fChooseConfig; - typedef EGLint (*pfnGetError)(void); - pfnGetError fGetError; - typedef EGLBoolean (*pfnGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); - pfnGetConfigAttrib fGetConfigAttrib; - typedef EGLBoolean (*pfnGetConfigs)(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); - pfnGetConfigs fGetConfigs; - typedef EGLBoolean (*pfnWaitNative)(EGLint engine); - pfnWaitNative fWaitNative; -}; - -bool -EGLWrap::Init() -{ - if (fGetDisplay) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fGetDisplay, { "eglGetDisplay", NULL } }, - { (PRFuncPtr*) &fGetCurrentContext, { "eglGetCurrentContext", NULL } }, - { (PRFuncPtr*) &fMakeCurrent, { "eglMakeCurrent", NULL } }, - { (PRFuncPtr*) &fDestroyContext, { "eglDestroyContext", NULL } }, - { (PRFuncPtr*) &fCreateContext, { "eglCreateContext", NULL } }, - { (PRFuncPtr*) &fDestroySurface, { "eglDestroySurface", NULL } }, - { (PRFuncPtr*) &fCreatePbufferSurface, { "eglCreatePbufferSurface", NULL } }, - { (PRFuncPtr*) &fCreatePixmapSurface, { "eglCreatePixmapSurface", NULL } }, - { (PRFuncPtr*) &fBindAPI, { "eglBindAPI", NULL } }, - { (PRFuncPtr*) &fInitialize, { "eglInitialize", NULL } }, - { (PRFuncPtr*) &fChooseConfig, { "eglChooseConfig", NULL } }, - { (PRFuncPtr*) &fGetError, { "eglGetError", NULL } }, - { (PRFuncPtr*) &fGetConfigs, { "eglGetConfigs", NULL } }, - { (PRFuncPtr*) &fGetConfigAttrib, { "eglGetConfigAttrib", NULL } }, - { (PRFuncPtr*) &fWaitNative, { "eglWaitNative", NULL } }, - { NULL, { NULL } } - }; - - return LoadSymbols(&symbols[0], true); -} - -static EGLWrap gEGLWrap; - -nsGLPbufferEGL::nsGLPbufferEGL() - : mDisplay(0), mConfig(0), mSurface(0) -{ - gActiveBuffers++; -} - -#ifdef WINCE -// XXX wrong -#define EGL_LIB "\\windows\\libEGL.dll" -#define GLES2_LIB "\\windows\\libGLESv2.dll" -#else -#define EGL_LIB "/usr/lib/libEGL.so" -#define GLES2_LIB "/usr/lib/libGLESv2.so" -#endif - -PRBool -nsGLPbufferEGL::Init(mozilla::WebGLContext *priv) -{ - mPriv = priv; - -#ifdef MOZ_PLATFORM_MAEMO - // Maemo has missing DSO dependencies on their OpenGL libraries; - // so ensure that the prerequisite libs are loaded in the process - // before loading GL. An alternate approach is to use LD_PRELOAD. - - // We'll just leak these libs; pvr_um.so seems to have been - // present on an older OS image, and now pvr2d.so is used. - PRLibSpec lspec; - lspec.type = PR_LibSpec_Pathname; - - lspec.value.pathname = "/usr/lib/libpvr_um.so"; - PR_LoadLibraryWithFlags(lspec, PR_LD_LAZY | PR_LD_GLOBAL); - - lspec.value.pathname = "/usr/lib/libpvr2d.so"; - PR_LoadLibraryWithFlags(lspec, PR_LD_LAZY | PR_LD_GLOBAL); -#endif - - if (!gEGLWrap.OpenLibrary(EGL_LIB)) { - LogMessage("egl OpenLibrary failed"); - return PR_FALSE; - } - - if (!gEGLWrap.Init()) { - LogMessage("eglWrap init failed"); - return PR_FALSE; - } - - mDisplay = gEGLWrap.fGetDisplay(0); - - if (!gEGLWrap.fInitialize(mDisplay, NULL, NULL)) { - LogMessage("egl init failed"); - return PR_FALSE; - } - - gEGLWrap.fBindAPI (EGL_OPENGL_ES_API); - -#if defined(MOZ_X11) && defined(MOZ_PLATFORM_MAEMO) - EGLint attribs[] = { - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_SURFACE_TYPE, EGL_PIXMAP_BIT, - EGL_RED_SIZE, 3, - EGL_GREEN_SIZE, 3, - EGL_BLUE_SIZE, 3, - EGL_ALPHA_SIZE, 3, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - - EGLint ncfg = 0; - EGLConfig cfg; - - if (!gEGLWrap.fChooseConfig(mDisplay, attribs, &cfg, 1, &ncfg) || - ncfg < 1) - { - LogMessage("Canvas 3D: eglChooseConfig failed (ncfg: %d err: 0x%04x)", ncfg, gEGLWrap.fGetError()); - return PR_FALSE; - } - - EGLint visid; - - gEGLWrap.fGetConfigAttrib(mDisplay, cfg, EGL_NATIVE_VISUAL_ID, &visid); - - XVisualInfo vinfo; - vinfo.visualid = visid; - int pad; - - LogMessage("Visual ID: %d\n", visid); - - XVisualInfo *vf = XGetVisualInfo(DISPLAY(), VisualIDMask, &vinfo, &pad); - - if (!vf) { - LogMessage("Null VisualInfo!"); - return PR_FALSE; - } - - LogMessage("Visual: 0x%08x\n", vf->visual); - - mVisual = vf->visual; - mConfig = cfg; -#elif defined(WINCE) -#define MAX_CONFIGS 32 - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs; - - gEGLWrap.fGetConfigs(mDisplay, configs, MAX_CONFIGS, &numConfigs); - - mConfig = 0; - - for (int i = 0; i < numConfigs; ++i) { - EGLint id; - EGLint surfaces, renderables; - EGLint rsize, gsize, bsize, asize, dsize; - - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_CONFIG_ID, &id); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_SURFACE_TYPE, &surfaces); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_RENDERABLE_TYPE, &renderables); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_RED_SIZE, &rsize); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_GREEN_SIZE, &gsize); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_BLUE_SIZE, &bsize); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_ALPHA_SIZE, &asize); - gEGLWrap.fGetConfigAttrib(mDisplay, configs[i], EGL_DEPTH_SIZE, &dsize); - -#ifdef DEBUG_vladimir - fprintf(stderr, "config 0x%02x: s %x api %x rgba %d %d %d %d d %d\n", id, surfaces, renderables, rsize, gsize, bsize, asize, dsize); -#endif - - if ((surfaces & EGL_PBUFFER_BIT) && - (renderables & EGL_OPENGL_ES2_BIT) && - (rsize > 3) && - (gsize > 3) && - (bsize > 3) && - (asize > 3) && - (dsize > 1)) - { - mConfig = configs[i]; - break; - } - } - - if (mConfig == 0) { - LogMessage("Failed to find config!"); - return PR_FALSE; - } -#else -#error need some boilerplate code for EGL -#endif - - LogMessage("Resize 2,2"); - Resize(2, 2); - - LogMessage("OpenLibrary"); - if (!mGLWrap.OpenLibrary(GLES2_LIB)) { - LogMessage("Canvas 3D: Couldn't open EGL lib [1]"); - return PR_FALSE; - } - - LogMessage("GLWrap.Init"); - if (!mGLWrap.Init(GLES20Wrap::TRY_NATIVE_GL)) { - LogMessage("Canvas 3D: GLWrap init failed"); - return PR_FALSE; - } - LogMessage("Init done"); - return PR_TRUE; -} - -PRBool -nsGLPbufferEGL::Resize(PRInt32 width, PRInt32 height) -{ - if (mWidth == width && - mHeight == height) - { - return PR_TRUE; - } - - LogMessage("Resize %d %d start", width, height); - - Destroy(); - - LogMessage("Destroyed"); - -#ifdef XP_WIN - mWindowsSurface = new gfxWindowsSurface(gfxIntSize(width, height), - gfxASurface::ImageFormatARGB32); - if (mWindowsSurface->CairoStatus() != 0) { -#ifdef DEBUG_vladimir - fprintf (stderr, "image surface failed\n"); -#endif - return PR_FALSE; - } - - mThebesSurface = mWindowsSurface->GetImageSurface(); - - EGLint attrs[] = { - EGL_WIDTH, width, - EGL_HEIGHT, height, - EGL_NONE - }; - - mSurface = gEGLWrap.fCreatePbufferSurface(mDisplay, mConfig, attrs); - if (!mSurface) { - LogMessage("Canvas 3D: eglCreatePbufferSurface failed"); - return PR_FALSE; - } -#else - - mXlibSurface = new gfxXlibSurface(DISPLAY(), - mVisual, - gfxIntSize(width, height), - 32); - if (!mXlibSurface || mXlibSurface->CairoStatus() != 0) { -#ifdef DEBUG_vladimir - fprintf (stderr, "Failed to create gfxXlibSurface"); -#endif - return PR_FALSE; - } - - LogMessage("Created gfxXlibSurface, Drawable: 0x%08x", mXlibSurface->XDrawable()); - - // we need to XSync to ensure that the Pixmap is created on the server side, - // otherwise eglCreatePixmapSurface will fail (because it isn't part of the normal - // X protocol). - XSync(DISPLAY(), 0); - - EGLint attrs[] = { - EGL_NONE - }; - - Pixmap px = (Pixmap) mXlibSurface->XDrawable(); - - mSurface = gEGLWrap.fCreatePixmapSurface(mDisplay, mConfig, (EGLNativePixmapType) px, attrs); - if (!mSurface) { -#ifdef DEBUG_vladimir - fprintf (stderr, "Failed to create Pixmap EGLSurface\n"); -#endif - return PR_FALSE; - } - - LogMessage("mSurface: %p", mSurface); -#endif - - gEGLWrap.fBindAPI(EGL_OPENGL_ES_API); - - EGLint cxattrs[] = { - EGL_CONTEXT_CLIENT_VERSION, 2, - EGL_NONE - }; - - mContext = gEGLWrap.fCreateContext(mDisplay, mConfig, EGL_NO_CONTEXT, cxattrs); - if (!mContext) { - Destroy(); - return PR_FALSE; - } - - mWidth = width; - mHeight = height; - -#ifdef MOZ_X11 - mThebesSurface = new gfxImageSurface(gfxIntSize(width, height), gfxASurface::ImageFormatARGB32); -#endif - - return PR_TRUE; -} - -void -nsGLPbufferEGL::Destroy() -{ - if (mContext) { - gEGLWrap.fDestroyContext(mDisplay, mContext); - mContext = 0; - } - - if (mSurface) { - gEGLWrap.fDestroySurface(mDisplay, mSurface); - mSurface = 0; - } - - sCurrentContextToken = nsnull; - - // leak this -#ifdef MOZ_X11 - NS_IF_ADDREF(mXlibSurface.get()); - mXlibSurface = nsnull; -#else - mWindowsSurface = nsnull; -#endif - - mThebesSurface = nsnull; - -} - -nsGLPbufferEGL::~nsGLPbufferEGL() -{ - Destroy(); - - gActiveBuffers--; - fflush (stderr); -} - -void -nsGLPbufferEGL::MakeContextCurrent() -{ - if (gEGLWrap.fGetCurrentContext() == mContext) - return; - - gEGLWrap.fMakeCurrent(mDisplay, mSurface, mSurface, mContext); -} - -void -nsGLPbufferEGL::SwapBuffers() -{ - // eglCopyBuffers(mDisplay, mSurface, mWindowsSurface->GetDC()); - MakeContextCurrent(); - - //printf ("SwapBuffers0: %04x\n", mGLWrap.fGetError()); - - // this is wrong, we need to figure out a way to swap this, but we don't do anything here - mGLWrap.fFinish (); - - mGLWrap.fReadPixels (0, 0, mWidth, mHeight, LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, mThebesSurface->Data()); - - //printf ("SwapBuffers: %04x\n", mGLWrap.fGetError()); - -#if 0 - // premultiply the image - int len = mWidth*mHeight*4; - unsigned char *src = mThebesSurface->Data(); - Premultiply(src, len); -#endif -} - -gfxASurface* -nsGLPbufferEGL::ThebesSurface() -{ -#if defined(MOZ_X11) && defined(MOZ_PLATFORM_MAEMO) - if (getenv("IMAGE")) - return mThebesSurface; - return mXlibSurface; -#elif defined(WINCE) - return mThebesSurface; -#endif -} diff --git a/content/canvas/src/nsGLPbufferGLX.cpp b/content/canvas/src/nsGLPbufferGLX.cpp deleted file mode 100644 index 1257c754b34..00000000000 --- a/content/canvas/src/nsGLPbufferGLX.cpp +++ /dev/null @@ -1,343 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -// this must be first, else windows.h breaks us -#include "nsICanvasRenderingContextWebGL.h" - -#include "nsIPrefService.h" -#include "nsServiceManagerUtils.h" - -#include "glwrap.h" - -#include "nsGLPbuffer.h" -#include "WebGLContext.h" - -#include "gfxContext.h" - -using namespace mozilla; - -#if defined(MOZ_WIDGET_GTK2) && defined(MOZ_X11) -#include -#endif - -static PRUint32 gActiveBuffers = 0; - -class GLXWrap - : public LibrarySymbolLoader -{ -public: - GLXWrap() : fCreateNewContext(0) { } - - bool Init(); - -protected: - - // - // the wrapped functions - // -public: - typedef PRFuncPtr (* PFNGLXGETPROCADDRESS) (const GLubyte *procName); - PFNGLXGETPROCADDRESS fGetProcAddress; - typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); - PFNGLXCREATENEWCONTEXTPROC fCreateNewContext; - typedef XVisualInfo* (* PFNGLXCHOOSEVISUALPROC) (Display *dpy, int scrnum, int *attrib); - PFNGLXCHOOSEVISUALPROC fChooseVisual; - typedef GLXContext (* PFNGLXCREATECONTEXTPROC) (Display *dpy, XVisualInfo *visinfo, GLXContext share_list, Bool direct); - PFNGLXCREATECONTEXTPROC fCreateContext; - typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); - PFNGLXCREATEPBUFFERPROC fCreatePbuffer; - typedef void (* PFNGLXDESTROYCONTEXTPROC) (Display *dpy, GLXContext ctx); - PFNGLXDESTROYCONTEXTPROC fDestroyContext; - typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); - PFNGLXDESTROYPBUFFERPROC fDestroyPbuffer; - typedef GLXFBConfig* (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); - PFNGLXCHOOSEFBCONFIGPROC fChooseFBConfig; - typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); - PFNGLXMAKECONTEXTCURRENTPROC fMakeContextCurrent; - typedef GLXContext (* PFNGLXGETCURRENTCONTEXTPROC) ( void ); - PFNGLXGETCURRENTCONTEXTPROC fGetCurrentContext; - typedef const char* (* PFNGLXQUERYEXTENSIONSSTRING) (Display *dpy, int screen); - PFNGLXQUERYEXTENSIONSSTRING fQueryExtensionsString; - typedef const char* (* PFNGLXQUERYSERVERSTRING) (Display *dpy, int screen, int name); - PFNGLXQUERYSERVERSTRING fQueryServerString; -}; - -bool -GLXWrap::Init() -{ - if (fCreateNewContext) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fGetProcAddress, { "glXGetProcAddress", "glXGetProcAddressARB", NULL } }, - { (PRFuncPtr*) &fCreateNewContext, { "glXCreateNewContext", NULL } }, - { (PRFuncPtr*) &fCreateContext, { "glXCreateContext", NULL } }, - { (PRFuncPtr*) &fChooseVisual, { "glXChooseVisual", NULL } }, - { (PRFuncPtr*) &fCreatePbuffer, { "glXCreatePbuffer", NULL } }, - { (PRFuncPtr*) &fDestroyContext, { "glXDestroyContext", NULL } }, - { (PRFuncPtr*) &fDestroyPbuffer, { "glXDestroyPbuffer", NULL } }, - { (PRFuncPtr*) &fChooseFBConfig, { "glXChooseFBConfig", NULL } }, - { (PRFuncPtr*) &fMakeContextCurrent, { "glXMakeContextCurrent", NULL } }, - { (PRFuncPtr*) &fGetCurrentContext, { "glXGetCurrentContext", NULL } }, - { (PRFuncPtr*) &fQueryExtensionsString, { "glXQueryExtensionsString", NULL } }, - { (PRFuncPtr*) &fQueryServerString, { "glXQueryServerString", NULL } }, - { NULL, { NULL } } - }; - - return LoadSymbols(&symbols[0]); -} - -static GLXWrap gGLXWrap; - -nsGLPbufferGLX::nsGLPbufferGLX() - : mDisplay(nsnull), mFBConfig(0), mPbuffer(0), mPbufferContext(0) -{ - gActiveBuffers++; - fprintf (stderr, "nsGLPbufferGLX: gActiveBuffers: %d\n", gActiveBuffers); -} - -PRBool -nsGLPbufferGLX::Init(WebGLContext *priv) -{ - nsresult rv; - const char *s; - - if (!gGLXWrap.OpenLibrary("libGL.so.1")) { - LogMessage("Canvas 3D: Couldn't find libGL.so.1"); - return PR_FALSE; - } - - if (!gGLXWrap.Init()) { - LogMessage("Canvas 3D: gGLXWrap.Init() failed"); - return PR_FALSE; - } - -#if defined(MOZ_WIDGET_GTK2) && defined(MOZ_X11) - mDisplay = gdk_x11_get_default_xdisplay(); -#else - mDisplay = XOpenDisplay(NULL); -#endif - if (!mDisplay) { - LogMessage("Canvas 3D: XOpenDisplay failed"); - return PR_FALSE; - } - - // Make sure that everyone agrees that pbuffers are supported - s = gGLXWrap.fQueryExtensionsString(mDisplay, DefaultScreen(mDisplay)); - if (!s || strstr(s, "GLX_SGIX_pbuffer") == NULL) { - LogMessage("Canvas 3D: GLX_SGIX_pbuffer not supported"); - return PR_FALSE; - } - - s = gGLXWrap.fQueryServerString(mDisplay, DefaultScreen(mDisplay), GLX_EXTENSIONS); - if (!s || strstr(s, "GLX_SGIX_pbuffer") == NULL) { - LogMessage("Canvas 3D: GLX_SGIX_pbuffer not supported by server"); - return PR_FALSE; - } - - mPriv = priv; - - nsCOMPtr prefService = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - nsCOMPtr prefBranch; - rv = prefService->GetBranch("extensions.canvas3d.", getter_AddRefs(prefBranch)); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - PRInt32 prefAntialiasing; - rv = prefBranch->GetIntPref("antialiasing", &prefAntialiasing); - if (NS_FAILED(rv)) - prefAntialiasing = 0; - - int attrib[] = { GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT, - GLX_RENDER_TYPE, GLX_RGBA_BIT, - GLX_RED_SIZE, 1, - GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, - GLX_ALPHA_SIZE, 1, - GLX_DEPTH_SIZE, 1, - GLX_SAMPLE_BUFFERS, 1, - GLX_SAMPLES, 1 << prefAntialiasing, - None }; - if (prefAntialiasing <= 0) - attrib[16] = 0; - int num; - GLXFBConfig *configs = gGLXWrap.fChooseFBConfig(mDisplay, DefaultScreen(mDisplay), - attrib, &num); - - fprintf(stderr, "CANVAS3D FBCONFIG: %d %p\n", num, (void*) configs); - if (!configs) { - LogMessage("Canvas 3D: No GLXFBConfig found"); - return PR_FALSE; - } - - // choose first matching config; - mFBConfig = *configs; - - XFree(configs); - - mPbufferContext = gGLXWrap.fCreateNewContext(mDisplay, mFBConfig, GLX_RGBA_TYPE, - nsnull, True); - - PRInt64 t1 = PR_Now(); - - Resize(2, 2); - MakeContextCurrent(); - - PRInt64 t2 = PR_Now(); - - fprintf (stderr, "nsGLPbufferGLX::Init!\n"); - - if (!mGLWrap.OpenLibrary("libGL.so.1")) { - LogMessage("Canvas 3D: GLWrap init failed, couldn't find libGL.so.1"); - return PR_FALSE; - } - - mGLWrap.SetLookupFunc((LibrarySymbolLoader::PlatformLookupFunction) gGLXWrap.fGetProcAddress); - - if (!mGLWrap.Init(GLES20Wrap::TRY_NATIVE_GL)) { - LogMessage("Canvas 3D: GLWrap init failed"); - return PR_FALSE; - } - - PRInt64 t3 = PR_Now(); - - fprintf (stderr, "nsGLPbufferGLX:: Initialization took t2-t1: %f t3-t2: %f\n", - ((double)(t2-t1))/1000.0, ((double)(t3-t2))/1000.0); - fflush (stderr); - - return PR_TRUE; -} - -PRBool -nsGLPbufferGLX::Resize(PRInt32 width, PRInt32 height) -{ - if (mWidth == width && - mHeight == height) - { - return PR_TRUE; - } - - Destroy(); - - mThebesSurface = new gfxImageSurface(gfxIntSize(width, height), gfxASurface::ImageFormatARGB32); - if (mThebesSurface->CairoStatus() != 0) { - fprintf (stderr, "image surface failed\n"); - return PR_FALSE; - } - - // clear the surface - memset (mThebesSurface->Data(), - 0, - height * mThebesSurface->Stride()); - - int attrib[] = { GLX_PBUFFER_WIDTH, width, - GLX_PBUFFER_HEIGHT, height, - None }; - - mPbuffer = gGLXWrap.fCreatePbuffer(mDisplay, mFBConfig, attrib); - gGLXWrap.fMakeContextCurrent(mDisplay, mPbuffer, mPbuffer, mPbufferContext); - - mWidth = width; - mHeight = height; - - fprintf (stderr, "Resize: %d %d\n", width, height); - return PR_TRUE; -} - -void -nsGLPbufferGLX::Destroy() -{ - sCurrentContextToken = nsnull; - mThebesSurface = nsnull; - - if (mPbuffer) { - gGLXWrap.fDestroyPbuffer(mDisplay, mPbuffer); - mPbuffer = nsnull; - } -} - -nsGLPbufferGLX::~nsGLPbufferGLX() -{ - MakeContextCurrent(); -#ifndef GL_FRAMEBUFFER -#define GL_FRAMEBUFFER 0x8D40 -#endif - // workaround for segfault on glXDestroyContext - mGLWrap.fBindFramebuffer(GL_FRAMEBUFFER, 0); - - Destroy(); - - if (mPbuffer) - gGLXWrap.fDestroyPbuffer(mDisplay, mPbuffer); - if (mPbufferContext) - gGLXWrap.fDestroyContext(mDisplay, mPbufferContext); -#if !(defined(MOZ_WIDGET_GTK2) && defined(MOZ_X11)) - if (mDisplay) - XCloseDisplay(mDisplay); -#endif - - gActiveBuffers--; - fprintf (stderr, "nsGLPbufferGLX: gActiveBuffers: %d\n", gActiveBuffers); - fflush (stderr); -} - -void -nsGLPbufferGLX::MakeContextCurrent() -{ - if (gGLXWrap.fGetCurrentContext() != mPbufferContext) - gGLXWrap.fMakeContextCurrent(mDisplay, mPbuffer, mPbuffer, mPbufferContext); -} - -void -nsGLPbufferGLX::SwapBuffers() -{ - MakeContextCurrent(); - mGLWrap.fReadPixels (0, 0, mWidth, mHeight, LOCAL_GL_BGRA, LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV, mThebesSurface->Data()); - unsigned int len = mWidth*mHeight*4; - unsigned char *src = mThebesSurface->Data(); - // Premultiply the image - // XXX don't do this if we're known opaque - Premultiply(src, len); -} - -gfxASurface* -nsGLPbufferGLX::ThebesSurface() -{ - return mThebesSurface; -} diff --git a/content/canvas/src/nsGLPbufferOSMesa.cpp b/content/canvas/src/nsGLPbufferOSMesa.cpp deleted file mode 100644 index 9887b6ddc13..00000000000 --- a/content/canvas/src/nsGLPbufferOSMesa.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -// this must be first, else windows.h breaks us -#include "nsDirectoryServiceUtils.h" -#include "nsAppDirectoryServiceDefs.h" -#include "nsIPrefService.h" - -#include "glwrap.h" - -#include "nsGLPbuffer.h" - -#include "gfxContext.h" -#include "gfxImageSurface.h" - -using namespace mozilla; - -#if 0 -#include -#else -#define OSMESA_RGBA GL_RGBA -#define OSMESA_BGRA 0x1 -#define OSMESA_ARGB 0x2 -#define OSMESA_Y_UP 0x11 -#endif - -static OSMesaWrap gMesaWrap; - -static PRUint32 gActiveBuffers = 0; - -nsGLPbufferOSMESA::nsGLPbufferOSMESA() - : mMesaContext(nsnull) -{ - gActiveBuffers++; - fprintf (stderr, "nsGLPbufferOSMESA: gActiveBuffers: %d\n", gActiveBuffers); -} - -PRBool -nsGLPbufferOSMESA::Init(WebGLContext *priv) -{ - mPriv = priv; - nsresult rv; - - nsCOMPtr prefService = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - nsCOMPtr prefBranch; - rv = prefService->GetBranch("webgl.", getter_AddRefs(prefBranch)); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - nsCString osmesalib; - - rv = prefBranch->GetCharPref("osmesalib", getter_Copies(osmesalib)); - -#if 0 - if (NS_FAILED(rv)) { - osmesalib.Truncate(); - - // try our default; build it from the profile dir - nsCOMPtr libfile; - rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, getter_AddRefs(libfile)); - if (NS_FAILED(rv)) { - fprintf (stderr, "NS_GetSpecialDirectory failed?\n"); - return rv; - } - - // XXX this makes assumptions about the ID of this extension - rv |= libfile->Append(NS_LITERAL_STRING("extensions")); - rv |= libfile->Append(NS_LITERAL_STRING("canvas3d@mozilla.com")); - rv |= libfile->Append(NS_LITERAL_STRING("platform")); - -#if defined(XP_WIN) - rv |= libfile->Append(NS_LITERAL_STRING("WINNT")); - rv |= libfile->Append(NS_LITERAL_STRING("osmesa32.dll")); -#elif defined(XP_MACOSX) - rv |= libfile->Append(NS_LITERAL_STRING("Darwin")); - rv |= libfile->Append(NS_LITERAL_STRING("libOSMesa.7.dylib")); -#elif defined(XP_UNIX) - rv |= libfile->Append(NS_LITERAL_STRING("Linux")); - rv |= libfile->Append(NS_LITERAL_STRING("libOSMesa.so.7")); -#else -#warning No default osmesa library path available - LogMessage("Canvas 3D: No default OSMesa lib path available -- please set the extensions.canvas3d.osmesalib pref to the full path to the OSMesa shared library"); - rv = NS_ERROR_FAILURE; -#endif - - if (NS_FAILED(rv)) - return PR_FALSE; - - PRBool exists = PR_FALSE; - rv = libfile->Exists(&exists); - if (NS_FAILED(rv) || !exists) { - LogMessage("Canvas 3D: Couldn't find OSMesa lib -- either default or extension.canvas3d.osmesalib path is incorrect"); - return PR_FALSE; - } - - // I'm told by the comments in nsIFile that I'm not supposed to do this. Noted. - rv = libfile->GetNativeTarget(osmesalib); - if (NS_FAILED(rv)) { - LogMessage("Canvas 3D: Couldn't find OSMesa lib"); - return PR_FALSE; - } - } -#endif - if (NS_FAILED(rv) || - osmesalib.Length() == 0 || - !gMesaWrap.OpenLibrary(osmesalib.get())) - { - LogMessage("Canvas 3D: Couldn't open OSMesa lib -- webgl.osmesalib path is incorrect, or not a valid shared library"); - return PR_FALSE; - } - - if (!gMesaWrap.Init()) - return PR_FALSE; - - PRInt32 prefAntialiasing; - rv = prefBranch->GetIntPref("antialiasing", &prefAntialiasing); - if (NS_FAILED(rv)) - prefAntialiasing = 0; - - Resize (2, 2); - - if (!mGLWrap.OpenLibrary(osmesalib.get())) { - LogMessage("Canvas 3D: Couldn't open OSMesa lib [1]"); - return PR_FALSE; - } - - mGLWrap.SetLookupFunc((LibrarySymbolLoader::PlatformLookupFunction) gMesaWrap.fGetProcAddress); - - if (!mGLWrap.Init(GLES20Wrap::TRY_SOFTWARE_GL)) { - LogMessage("Canvas 3D: GLWrap init failed"); - return PR_FALSE; - } - - return PR_TRUE; -} - -PRBool -nsGLPbufferOSMESA::Resize(PRInt32 width, PRInt32 height) -{ - if (mWidth == width && - mHeight == height) - { - return PR_TRUE; - } - - Destroy(); - - mThebesSurface = new gfxImageSurface(gfxIntSize(width, height), - gfxASurface::ImageFormatARGB32); - if (mThebesSurface->CairoStatus() != 0) { - fprintf (stderr, "image surface failed\n"); - return PR_FALSE; - } - - mMesaContext = gMesaWrap.fCreateContextExt (OSMESA_BGRA, 16, 0, 0, NULL); - if (!mMesaContext) { - fprintf (stderr, "OSMesaCreateContextExt failed!\n"); - return PR_FALSE; - } - - fprintf (stderr, "Surface: %p\n", mThebesSurface->Data()); - - if (!gMesaWrap.fMakeCurrent (mMesaContext, mThebesSurface->Data(), LOCAL_GL_UNSIGNED_BYTE, width, height)) - { - fprintf (stderr, "OSMesaMakeCurrent failed!\n"); - return PR_FALSE; - } - - gMesaWrap.fPixelStore (OSMESA_Y_UP, 1); - - mWidth = width; - mHeight = height; - - fprintf (stderr, "Resize: %d %d\n", width, height); - return PR_TRUE; -} - -void -nsGLPbufferOSMESA::Destroy() -{ - if (mMesaContext) { - gMesaWrap.fDestroyContext (mMesaContext); - mMesaContext = 0; - } - - sCurrentContextToken = nsnull; - mThebesSurface = nsnull; -} - -nsGLPbufferOSMESA::~nsGLPbufferOSMESA() -{ - Destroy(); - - gActiveBuffers--; - fprintf (stderr, "nsGLPbufferOSMESA: gActiveBuffers: %d\n", gActiveBuffers); - fflush (stderr); -} - -void -nsGLPbufferOSMESA::MakeContextCurrent() -{ - if (gMesaWrap.fGetCurrentContext() == mMesaContext) - return; - - gMesaWrap.fMakeCurrent (mMesaContext, mThebesSurface->Data(), LOCAL_GL_UNSIGNED_BYTE, mWidth, mHeight); -} - -void -nsGLPbufferOSMESA::SwapBuffers() -{ - // Nothing; we're already rendering to an image -} - -gfxASurface* -nsGLPbufferOSMESA::ThebesSurface() -{ - return mThebesSurface; -} diff --git a/content/canvas/src/nsGLPbufferWGL.cpp b/content/canvas/src/nsGLPbufferWGL.cpp deleted file mode 100644 index 495df97003b..00000000000 --- a/content/canvas/src/nsGLPbufferWGL.cpp +++ /dev/null @@ -1,455 +0,0 @@ -/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Vladimir Vukicevic (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsIPrefService.h" -#include "nsServiceManagerUtils.h" - -#include "WebGLContext.h" -#include "nsGLPbuffer.h" - -#include "gfxContext.h" -#include "gfxImageSurface.h" - -using namespace mozilla; - -static PRUint32 gActiveBuffers = 0; - -class WGLWrap - : public LibrarySymbolLoader -{ -public: - WGLWrap() : fCreatePbuffer(0) { } - - bool InitEarly(); - bool Init(); - -public: - // early init - typedef HANDLE (WINAPI * PFNWGLCREATECONTEXTPROC) (HDC hDC); - PFNWGLCREATECONTEXTPROC fCreateContext; - typedef BOOL (WINAPI * PFNWGLMAKECURRENTPROC) (HDC hDC, HANDLE hglrc); - PFNWGLMAKECURRENTPROC fMakeCurrent; - typedef PROC (WINAPI * PFNWGLGETPROCADDRESSPROC) (LPCSTR proc); - PFNWGLGETPROCADDRESSPROC fGetProcAddress; - typedef BOOL (WINAPI * PFNWGLDELETECONTEXTPROC) (HANDLE hglrc); - PFNWGLDELETECONTEXTPROC fDeleteContext; - - typedef HANDLE (WINAPI * PFNWGLCREATEPBUFFERPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); - PFNWGLCREATEPBUFFERPROC fCreatePbuffer; - typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERPROC) (HANDLE hPbuffer); - PFNWGLDESTROYPBUFFERPROC fDestroyPbuffer; - typedef HDC (WINAPI * PFNWGLGETPBUFFERDCPROC) (HANDLE hPbuffer); - PFNWGLGETPBUFFERDCPROC fGetPbufferDC; - - typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); - PFNWGLCHOOSEPIXELFORMATPROC fChoosePixelFormat; - typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); - PFNWGLGETPIXELFORMATATTRIBIVPROC fGetPixelFormatAttribiv; -}; - -bool -WGLWrap::InitEarly() -{ - if (fCreateContext) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fCreateContext, { "wglCreateContext", NULL } }, - { (PRFuncPtr*) &fMakeCurrent, { "wglMakeCurrent", NULL } }, - { (PRFuncPtr*) &fGetProcAddress, { "wglGetProcAddress", NULL } }, - { (PRFuncPtr*) &fDeleteContext, { "wglDeleteContext", NULL } }, - { NULL, { NULL } } - }; - - return LoadSymbols(&symbols[0], false); -} - -bool -WGLWrap::Init() -{ - if (fCreatePbuffer) - return true; - - SymLoadStruct symbols[] = { - { (PRFuncPtr*) &fCreatePbuffer, { "wglCreatePbufferARB", "wglCreatePbufferEXT", NULL } }, - { (PRFuncPtr*) &fDestroyPbuffer, { "wglDestroyPbufferARB", "wglDestroyPbufferEXT", NULL } }, - { (PRFuncPtr*) &fGetPbufferDC, { "wglGetPbufferDCARB", "wglGetPbufferDCEXT", NULL } }, - { (PRFuncPtr*) &fChoosePixelFormat, { "wglChoosePixelFormatARB", "wglChoosePixelFormatEXT", NULL } }, - { (PRFuncPtr*) &fGetPixelFormatAttribiv, { "wglGetPixelFormatAttribivARB", "wglGetPixelFormatAttribivEXT", NULL } }, - { NULL, { NULL } } - }; - - return LoadSymbols(&symbols[0], true); -} - -static WGLWrap gWGLWrap; - -nsGLPbufferWGL::nsGLPbufferWGL() - : mGlewWindow(nsnull), mGlewDC(nsnull), mGlewWglContext(nsnull), - mPbuffer(nsnull), mPbufferDC(nsnull), mPbufferContext(nsnull) -{ - gActiveBuffers++; - fprintf (stderr, "nsGLPbufferWGL: gActiveBuffers: %d\n", gActiveBuffers); -} - -PRBool -nsGLPbufferWGL::Init(WebGLContext *priv) -{ - // XXX lookup SYSTEM32 path! - char *opengl32 = "C:\\WINDOWS\\SYSTEM32\\OPENGL32.DLL"; - - if (!gWGLWrap.OpenLibrary(opengl32)) - return PR_FALSE; - - if (!gWGLWrap.InitEarly()) - return PR_FALSE; - - gWGLWrap.SetLookupFunc((LibrarySymbolLoader::PlatformLookupFunction) gWGLWrap.fGetProcAddress); - - mPriv = priv; - - WNDCLASSW wc; - PIXELFORMATDESCRIPTOR pfd; - - if (!GetClassInfoW(GetModuleHandle(NULL), L"GLEW", &wc)) { - ZeroMemory(&wc, sizeof(WNDCLASS)); - wc.hInstance = GetModuleHandle(NULL); - wc.lpfnWndProc = DefWindowProc; - wc.lpszClassName = L"GLEW"; - - if (!RegisterClassW(&wc)) { - LogMessage("Canvas 3D: RegisterClass failed"); - return PR_FALSE; - } - } - - // create window - mGlewWindow = CreateWindowW(L"GLEW", L"GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL); - if (!mGlewWindow) { - LogMessage("Canvas 3D: CreateWindow failed"); - return PR_FALSE; - } - - // get the device context - mGlewDC = GetDC(mGlewWindow); - if (!mGlewDC) { - LogMessage("Canvas 3D: GetDC failed"); - return PR_FALSE; - } - - // find default pixel format - ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR)); - pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); - pfd.nVersion = 1; - pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; - int pixelformat = ChoosePixelFormat(mGlewDC, &pfd); - - // set the pixel format for the dc - if (!SetPixelFormat(mGlewDC, pixelformat, &pfd)) { - LogMessage("Canvas 3D: SetPixelFormat failed"); - return PR_FALSE; - } - - // create rendering context - mGlewWglContext = gWGLWrap.fCreateContext(mGlewDC); - if (!mGlewWglContext) { - LogMessage("Canvas 3D: wglCreateContext failed"); - return PR_FALSE; - } - - if (!gWGLWrap.fMakeCurrent(mGlewDC, (HGLRC) mGlewWglContext)) { - LogMessage("Canvas 3D: wglMakeCurrent failed"); - return PR_FALSE; - } - - // grab all the wgl extension pieces that we couldn't grab before - // we had a context - if (!gWGLWrap.Init()) - return PR_FALSE; - - // XXX look up system32 dir - if (!mGLWrap.OpenLibrary(opengl32)) { - LogMessage("Canvas 3D: Failed to open opengl32.dll (only looked in c:\\windows\\system32, fixme)"); - return PR_FALSE; - } - - mGLWrap.SetLookupFunc((LibrarySymbolLoader::PlatformLookupFunction) gWGLWrap.fGetProcAddress); - - if (!mGLWrap.Init(GLES20Wrap::TRY_NATIVE_GL)) { - LogMessage("Canvas 3D: GLWrap init failed"); - return PR_FALSE; - } - - return PR_TRUE; -} - -PRBool -nsGLPbufferWGL::Resize(PRInt32 width, PRInt32 height) -{ - if (mWidth == width && - mHeight == height) - { - return PR_TRUE; - } - - Destroy(); - - nsresult rv; - - nsCOMPtr prefService = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - nsCOMPtr prefBranch; - rv = prefService->GetBranch("extensions.canvas3d.", getter_AddRefs(prefBranch)); - NS_ENSURE_SUCCESS(rv, PR_FALSE); - - PRInt32 prefAntialiasing; - rv = prefBranch->GetIntPref("antialiasing", &prefAntialiasing); - if (NS_FAILED(rv)) - prefAntialiasing = 0; - - mThebesSurface = new gfxImageSurface(gfxIntSize(width, height), gfxASurface::ImageFormatARGB32); - if (mThebesSurface->CairoStatus() != 0) { - fprintf (stderr, "image surface failed\n"); - return PR_FALSE; - } - - // clear the surface - memset (mThebesSurface->Data(), - 0, - height * mThebesSurface->Stride()); - - if (!gWGLWrap.fMakeCurrent(mGlewDC, (HGLRC) mGlewWglContext)) { - fprintf (stderr, "Error: %d\n", GetLastError()); - LogMessage("Canvas 3D: wglMakeCurrent failed"); - return PR_FALSE; - } - - PRBool ignoreAA = PR_FALSE; - int attribs[] = { - WGL_SUPPORT_OPENGL_ARB, LOCAL_GL_TRUE, - WGL_DRAW_TO_PBUFFER_ARB, LOCAL_GL_TRUE, - WGL_DOUBLE_BUFFER_ARB, LOCAL_GL_FALSE, - - WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB, - - WGL_COLOR_BITS_ARB, 32, - WGL_RED_BITS_ARB, 8, - WGL_GREEN_BITS_ARB, 8, - WGL_BLUE_BITS_ARB, 8, - WGL_ALPHA_BITS_ARB, 8, - - 0, 0, - 0, 0, - 0 - }; - - float fattribs[] = { 0.0f }; - - // ATI's OpenGL impl seems to have a problem with calling - // wglChoosePixelFormatARB with NULL/0 to obtain the number of - // matching formats; so just allocate room for a lot. -#define MAX_NUM_FORMATS 256 - UINT numFormats = MAX_NUM_FORMATS; - int formats[MAX_NUM_FORMATS]; - - //fprintf (stderr, "EXT: %p ARB: %p rest: %s\n", wglewGetContext()->__wglewChoosePixelFormatEXT, wglewGetContext()->__wglewChoosePixelFormatARB, wglGetExtensionsStringARB(mGlewDC)); - -TRY_FIND_AGAIN: - if (ignoreAA) { - attribs[18] = 0; - } else if (prefAntialiasing > 0) { - attribs[18] = WGL_SAMPLE_BUFFERS_ARB; - attribs[19] = 1; - attribs[20] = WGL_SAMPLES_ARB; - attribs[21] = 1 << prefAntialiasing; - } - - if (!gWGLWrap.fChoosePixelFormat(mGlewDC, - attribs, - NULL, - numFormats, - formats, - &numFormats) || - numFormats == 0) - { - if (!ignoreAA) { - ignoreAA = PR_TRUE; - goto TRY_FIND_AGAIN; - } - - LogMessage("Canvas 3D: wglChoosePixelFormat failed (or couldn't find any matching formats)."); - ReleaseDC(NULL, mGlewDC); - return PR_FALSE; - } - - int chosenFormat = -1; - int question,answer; - - for (int priority = 6; priority > 0; priority--) { - - //fprintf (stderr, "---- priority: %d\n", priority); - - for (UINT i = 0; i < numFormats; i++) { - int fmt = formats[i]; -#define CHECK_ATTRIB(q, test) \ - question = (q); \ - if (!gWGLWrap.fGetPixelFormatAttribiv(mGlewDC, fmt, 0, 1, &question, &answer)) { \ - /*fprintf (stderr, "check for %d failed\n", q);*/ \ - continue; \ - } \ - /*fprintf (stderr, #q " -> %d\n", answer);*/ \ - if (test) { \ - continue; \ - } - - //fprintf (stderr, "Format %d:\n", fmt); - switch (priority) { - case 6: - CHECK_ATTRIB(WGL_ACCUM_BITS_ARB, answer != 0) - case 5: - CHECK_ATTRIB(WGL_STENCIL_BITS_ARB, answer != 0) - // XXX we only pick 2xAA here, should let user choose - case 4: - CHECK_ATTRIB(WGL_SAMPLE_BUFFERS_ARB, answer != (prefAntialiasing != 0)) - case 3: - CHECK_ATTRIB(WGL_SAMPLES_ARB, answer != (prefAntialiasing ? (1 << prefAntialiasing) : 0)) - case 2: - CHECK_ATTRIB(WGL_DEPTH_BITS_ARB, answer < 8) - case 1: - CHECK_ATTRIB(WGL_COLOR_BITS_ARB, answer != 32) - default: - chosenFormat = fmt; - } - -#undef CHECK_ATTRIB - } - - if (chosenFormat != -1) - break; - } - - if (chosenFormat == -1) { - LogMessage("Canvas 3D: Couldn't find a suitable pixel format!"); - return PR_FALSE; - } - - // ok, we now have a pixel format - fprintf (stderr, "***** Chose pixel format: %d\n", chosenFormat); - - int pbattribs = 0; - mPbuffer = gWGLWrap.fCreatePbuffer(mGlewDC, chosenFormat, width, height, &pbattribs); - if (!mPbuffer) { - LogMessage("Canvas 3D: Failed to create pbuffer"); - return PR_FALSE; - } - - mPbufferDC = gWGLWrap.fGetPbufferDC(mPbuffer); - mPbufferContext = gWGLWrap.fCreateContext(mPbufferDC); - - mWindowsSurface = new gfxWindowsSurface(gfxIntSize(width, height), gfxASurface::ImageFormatARGB32); - if (mWindowsSurface && mWindowsSurface->CairoStatus() == 0) - mThebesSurface = mWindowsSurface->GetImageSurface(); - - mWidth = width; - mHeight = height; - - fprintf (stderr, "Resize: %d %d\n", width, height); - return PR_TRUE; -} - -void -nsGLPbufferWGL::Destroy() -{ - sCurrentContextToken = nsnull; - mThebesSurface = nsnull; - - if (mPbuffer) { - gWGLWrap.fDeleteContext((HGLRC) mPbufferContext); - gWGLWrap.fDestroyPbuffer(mPbuffer); - mPbuffer = nsnull; - } -} - -nsGLPbufferWGL::~nsGLPbufferWGL() -{ - Destroy(); - - if (mGlewWglContext) { - gWGLWrap.fDeleteContext((HGLRC) mGlewWglContext); - mGlewWglContext = nsnull; - } - - if (mGlewWindow) { - DestroyWindow(mGlewWindow); - mGlewWindow = nsnull; - } - - gActiveBuffers--; - fprintf (stderr, "nsGLPbufferWGL: gActiveBuffers: %d\n", gActiveBuffers); - fflush (stderr); -} - -void -nsGLPbufferWGL::MakeContextCurrent() -{ - if (sCurrentContextToken == mPbufferContext) - return; - - gWGLWrap.fMakeCurrent (mPbufferDC, (HGLRC) mPbufferContext); - sCurrentContextToken = mPbufferContext; -} - -void -nsGLPbufferWGL::SwapBuffers() -{ - MakeContextCurrent(); - mGLWrap.fReadPixels (0, 0, mWidth, mHeight, LOCAL_GL_BGRA, LOCAL_GL_UNSIGNED_INT_8_8_8_8_REV, mThebesSurface->Data()); - - // premultiply the image - int len = mWidth*mHeight*4; - unsigned char *src = mThebesSurface->Data(); - Premultiply(src, len); -} - -gfxASurface* -nsGLPbufferWGL::ThebesSurface() -{ - return mThebesSurface; -}