Revert "LibGL shader modification, LibGL texture1D and textureRectangle added"

Change-Id: Ie564566cbaa9ea5e87f1417aa2d84faa6b10a89f
Reviewed-on: https://swiftshader-review.googlesource.com/3719
Reviewed-by: Maxime Grégoire <mgregoire@google.com>
Tested-by: Maxime Grégoire <mgregoire@google.com>
diff --git a/src/OpenGL/compiler/BaseTypes.h b/src/OpenGL/compiler/BaseTypes.h
index bd9fc77..7e25c40 100644
--- a/src/OpenGL/compiler/BaseTypes.h
+++ b/src/OpenGL/compiler/BaseTypes.h
@@ -129,21 +129,10 @@
     EvqInOut,
     EvqConstReadOnly,
 
-	// built-ins read by fragment shader
-	EvqMultiTexCoord0,
-	EvqMultiTexCoord1,
-	EvqMultiTexCoord2,
-	EvqMultiTexCoord3,
-	EvqMultiTexCoord4,
-	EvqMultiTexCoord5,
-	EvqMultiTexCoord6,
-	EvqMultiTexCoord7,
-
     // built-ins written by vertex shader
     EvqPosition,
     EvqPointSize,
     EvqInstanceID,
-	EvqTexCoords,
 
     // built-ins read by fragment shader
     EvqFragCoord,
@@ -212,16 +201,7 @@
     case EvqPosition:       return "Position";       break;
     case EvqPointSize:      return "PointSize";      break;
     case EvqInstanceID:     return "InstanceID";     break;
-	case EvqFragCoord:      return "FragCoord";      break;
-	case EvqMultiTexCoord0:      return "MultiTexCoord0";      break;
-	case EvqMultiTexCoord1:      return "MultiTexCoord1";      break;
-	case EvqMultiTexCoord2:      return "MultiTexCoord2";      break;
-	case EvqMultiTexCoord3:      return "MultiTexCoord3";      break;
-	case EvqMultiTexCoord4:      return "MultiTexCoord4";      break;
-	case EvqMultiTexCoord5:      return "MultiTexCoord5";      break;
-	case EvqMultiTexCoord6:      return "MultiTexCoord6";      break;
-	case EvqMultiTexCoord7:      return "MultiTexCoord7";      break;
-	case EvqTexCoords:       return "TexCoords";       break;
+    case EvqFragCoord:      return "FragCoord";      break;
     case EvqFrontFacing:    return "FrontFacing";    break;
     case EvqFragColor:      return "FragColor";      break;
     case EvqFragData:       return "FragData";       break;
diff --git a/src/OpenGL/compiler/Compiler.cpp b/src/OpenGL/compiler/Compiler.cpp
index b7e7bab..1023a11 100644
--- a/src/OpenGL/compiler/Compiler.cpp
+++ b/src/OpenGL/compiler/Compiler.cpp
@@ -1,261 +1,259 @@
-//

-// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.

-// Use of this source code is governed by a BSD-style license that can be

-// found in the LICENSE file.

-//

-

-#include "Compiler.h"

-

-#include "AnalyzeCallDepth.h"

-#include "Initialize.h"

-#include "InitializeParseContext.h"

-#include "InitializeGlobals.h"

-#include "ParseHelper.h"

-#include "ValidateLimitations.h"

-

-namespace

-{

-	class TScopedPoolAllocator {

-	public:

-		TScopedPoolAllocator(TPoolAllocator* allocator, bool pushPop)

-			: mAllocator(allocator), mPushPopAllocator(pushPop) {

-			if(mPushPopAllocator) mAllocator->push();

-			SetGlobalPoolAllocator(mAllocator);

-		}

-		~TScopedPoolAllocator() {

-			SetGlobalPoolAllocator(NULL);

-			if(mPushPopAllocator) mAllocator->pop();

-		}

-

-	private:

-		TPoolAllocator* mAllocator;

-		bool mPushPopAllocator;

-	};

-}  // namespace

-

-//

-// Initialize built-in resources with minimum expected values.

-//

-ShBuiltInResources::ShBuiltInResources()

-{

-	// Constants.

-	MaxVertexAttribs = 8;

-	MaxVertexUniformVectors = 128;

-	MaxVaryingVectors = 8;

-	MaxVertexTextureImageUnits = 0;

-	MaxCombinedTextureImageUnits = 8;

-	MaxTextureImageUnits = 8;

-	MaxTextureCoords = 8;

-	MaxFragmentUniformVectors = 16;

-	MaxDrawBuffers = 1;

-	MaxVertexOutputVectors = 16;

-	MaxFragmentInputVectors = 15;

-	MinProgramTexelOffset = -8;

-	MaxProgramTexelOffset = 7;

-

-	// Extensions.

-	OES_standard_derivatives = 0;

-	OES_fragment_precision_high = 0;

-	OES_EGL_image_external = 0;

-

-	MaxCallStackDepth = UINT_MAX;

-}

-

-TCompiler::TCompiler(GLenum type)

-	: shaderType(type),

-	maxCallStackDepth(UINT_MAX)

-{

-	allocator.push();

-	SetGlobalPoolAllocator(&allocator);

-}

-

-TCompiler::~TCompiler()

-{

-	SetGlobalPoolAllocator(NULL);

-	allocator.popAll();

-}

-

-bool TCompiler::Init(const ShBuiltInResources& resources)

-{

-	shaderVersion = 100;

-	maxCallStackDepth = resources.MaxCallStackDepth;

-	TScopedPoolAllocator scopedAlloc(&allocator, false);

-

-	// Generate built-in symbol table.

-	if(!InitBuiltInSymbolTable(resources))

-		return false;

-	InitExtensionBehavior(resources, extensionBehavior);

-

-	return true;

-}

-

-bool TCompiler::compile(const char* const shaderStrings[],

-	const int numStrings,

-	int compileOptions)

-{

-	TScopedPoolAllocator scopedAlloc(&allocator, true);

-	clearResults();

-

-	if(numStrings == 0)

-		return true;

-

-	// First string is path of source file if flag is set. The actual source follows.

-	const char* sourcePath = NULL;

-	int firstSource = 0;

-	if(compileOptions & SH_SOURCE_PATH)

-	{

-		sourcePath = shaderStrings[0];

-		++firstSource;

-	}

-

-	TIntermediate intermediate(infoSink);

-	TParseContext parseContext(symbolTable, extensionBehavior, intermediate,

-		shaderType, compileOptions, false,

-		sourcePath, infoSink);

-	SetGlobalParseContext(&parseContext);

-

-	// We preserve symbols at the built-in level from compile-to-compile.

-	// Start pushing the user-defined symbols at global level.

-	symbolTable.push();

-	if(!symbolTable.atGlobalLevel())

-		infoSink.info.message(EPrefixInternalError, "Wrong symbol table level");

-

-	// Parse shader.

-	bool success =

-		(PaParseStrings(numStrings - firstSource, &shaderStrings[firstSource], NULL, &parseContext) == 0) &&

-		(parseContext.treeRoot != NULL);

-

-	shaderVersion = parseContext.getShaderVersion();

-

-	if(success) {

-		TIntermNode* root = parseContext.treeRoot;

-		success = intermediate.postProcess(root);

-

-		if(success)

-			success = validateCallDepth(root, infoSink);

-

-		if(success && (compileOptions & SH_VALIDATE_LOOP_INDEXING))

-			success = validateLimitations(root);

-

-		if(success && (compileOptions & SH_INTERMEDIATE_TREE))

-			intermediate.outputTree(root);

-

-		if(success && (compileOptions & SH_OBJECT_CODE))

-			success = translate(root);

-	}

-

-	// Ensure symbol table is returned to the built-in level,

-	// throwing away all but the built-ins.

-	while(!symbolTable.atBuiltInLevel())

-		symbolTable.pop();

-

-	return success;

-}

-

-bool TCompiler::InitBuiltInSymbolTable(const ShBuiltInResources &resources)

-{

-	assert(symbolTable.isEmpty());

-	symbolTable.push();   // COMMON_BUILTINS

-	symbolTable.push();   // ESSL1_BUILTINS

-	symbolTable.push();   // ESSL3_BUILTINS

-

-	TPublicType integer;

-	integer.type = EbtInt;

-	integer.primarySize = 1;

-	integer.secondarySize = 1;

-	integer.array = false;

-

-	TPublicType floatingPoint;

-	floatingPoint.type = EbtFloat;

-	floatingPoint.primarySize = 1;

-	floatingPoint.secondarySize = 1;

-	floatingPoint.array = false;

-

-	switch(shaderType)

-	{

-	case GL_FRAGMENT_SHADER:

-		symbolTable.setDefaultPrecision(integer, EbpMedium);

-		symbolTable.setDefaultPrecision(floatingPoint, EbpHigh);

-		break;

-	case GL_VERTEX_SHADER:

-		symbolTable.setDefaultPrecision(integer, EbpHigh);

-		symbolTable.setDefaultPrecision(floatingPoint, EbpHigh);

-		break;

-	default: assert(false && "Language not supported");

-	}

-

-	InsertBuiltInFunctions(shaderType, resources, symbolTable);

-

-	IdentifyBuiltIns(shaderType, resources, symbolTable);

-

-	return true;

-}

-

-void TCompiler::clearResults()

-{

-	infoSink.info.erase();

-	infoSink.obj.erase();

-	infoSink.debug.erase();

-}

-

-bool TCompiler::validateCallDepth(TIntermNode *root, TInfoSink &infoSink)

-{

-	AnalyzeCallDepth validator(root);

-

-	unsigned int depth = validator.analyzeCallDepth();

-

-	if(depth == 0)

-	{

-		infoSink.info.prefix(EPrefixError);

-		infoSink.info << "Missing main()";

-		return false;

-	}

-	else if(depth == UINT_MAX)

-	{

-		infoSink.info.prefix(EPrefixError);

-		infoSink.info << "Function recursion detected";

-		return false;

-	}

-	else if(depth > maxCallStackDepth)

-	{

-		infoSink.info.prefix(EPrefixError);

-		infoSink.info << "Function call stack too deep";

-		return false;

-	}

-

-	return true;

-}

-

-bool TCompiler::validateLimitations(TIntermNode* root) {

-	ValidateLimitations validate(shaderType, infoSink.info);

-	root->traverse(&validate);

-	return validate.numErrors() == 0;

-}

-

-const TExtensionBehavior& TCompiler::getExtensionBehavior() const

-{

-	return extensionBehavior;

-}

-

-bool InitCompilerGlobals()

-{

-	if(!InitializePoolIndex())

-	{

-		assert(0 && "InitCompilerGlobals(): Failed to initalize global pool");

-		return false;

-	}

-

-	if(!InitializeParseContextIndex())

-	{

-		assert(0 && "InitCompilerGlobals(): Failed to initalize parse context");

-		return false;

-	}

-

-	return true;

-}

-

-void FreeCompilerGlobals()

-{

-	FreeParseContextIndex();

-	FreePoolIndex();

-}

+//
+// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+#include "Compiler.h"
+
+#include "AnalyzeCallDepth.h"
+#include "Initialize.h"
+#include "InitializeParseContext.h"
+#include "InitializeGlobals.h"
+#include "ParseHelper.h"
+#include "ValidateLimitations.h"
+
+namespace 
+{
+class TScopedPoolAllocator {
+public:
+    TScopedPoolAllocator(TPoolAllocator* allocator, bool pushPop)
+        : mAllocator(allocator), mPushPopAllocator(pushPop) {
+        if (mPushPopAllocator) mAllocator->push();
+        SetGlobalPoolAllocator(mAllocator);
+    }
+    ~TScopedPoolAllocator() {
+        SetGlobalPoolAllocator(NULL);
+        if (mPushPopAllocator) mAllocator->pop();
+    }
+
+private:
+    TPoolAllocator* mAllocator;
+    bool mPushPopAllocator;
+};
+}  // namespace
+
+//
+// Initialize built-in resources with minimum expected values.
+//
+ShBuiltInResources::ShBuiltInResources()
+{
+    // Constants.
+    MaxVertexAttribs = 8;
+    MaxVertexUniformVectors = 128;
+    MaxVaryingVectors = 8;
+    MaxVertexTextureImageUnits = 0;
+    MaxCombinedTextureImageUnits = 8;
+    MaxTextureImageUnits = 8;
+    MaxFragmentUniformVectors = 16;
+    MaxDrawBuffers = 1;
+    MaxVertexOutputVectors = 16;

+    MaxFragmentInputVectors = 15;

+    MinProgramTexelOffset = -8;

+    MaxProgramTexelOffset = 7;
+
+    // Extensions.
+    OES_standard_derivatives = 0;
+	OES_fragment_precision_high = 0;
+    OES_EGL_image_external = 0;
+
+	MaxCallStackDepth = UINT_MAX;
+}
+
+TCompiler::TCompiler(GLenum type)
+    : shaderType(type),
+      maxCallStackDepth(UINT_MAX)
+{
+	allocator.push();
+    SetGlobalPoolAllocator(&allocator);
+}
+
+TCompiler::~TCompiler()
+{
+	SetGlobalPoolAllocator(NULL);
+    allocator.popAll();
+}
+
+bool TCompiler::Init(const ShBuiltInResources& resources)
+{
+    shaderVersion = 100;
+    maxCallStackDepth = resources.MaxCallStackDepth;
+    TScopedPoolAllocator scopedAlloc(&allocator, false);
+
+    // Generate built-in symbol table.
+    if (!InitBuiltInSymbolTable(resources))
+        return false;
+    InitExtensionBehavior(resources, extensionBehavior);
+
+    return true;
+}
+
+bool TCompiler::compile(const char* const shaderStrings[],
+                        const int numStrings,
+                        int compileOptions)
+{
+    TScopedPoolAllocator scopedAlloc(&allocator, true);
+    clearResults();
+
+    if (numStrings == 0)
+        return true;
+
+    // First string is path of source file if flag is set. The actual source follows.
+    const char* sourcePath = NULL;
+    int firstSource = 0;
+    if (compileOptions & SH_SOURCE_PATH)
+    {
+        sourcePath = shaderStrings[0];
+        ++firstSource;
+    }
+
+    TIntermediate intermediate(infoSink);
+    TParseContext parseContext(symbolTable, extensionBehavior, intermediate,
+                               shaderType, compileOptions, true,
+                               sourcePath, infoSink);
+    SetGlobalParseContext(&parseContext);
+
+    // We preserve symbols at the built-in level from compile-to-compile.
+    // Start pushing the user-defined symbols at global level.
+    symbolTable.push();
+    if (!symbolTable.atGlobalLevel())
+        infoSink.info.message(EPrefixInternalError, "Wrong symbol table level");
+
+    // Parse shader.
+    bool success =
+        (PaParseStrings(numStrings - firstSource, &shaderStrings[firstSource], NULL, &parseContext) == 0) &&
+        (parseContext.treeRoot != NULL);
+
+    shaderVersion = parseContext.getShaderVersion();
+
+    if (success) {
+        TIntermNode* root = parseContext.treeRoot;
+        success = intermediate.postProcess(root);
+
+        if (success)
+            success = validateCallDepth(root, infoSink);
+
+        if (success && (compileOptions & SH_VALIDATE_LOOP_INDEXING))
+            success = validateLimitations(root);
+
+        if (success && (compileOptions & SH_INTERMEDIATE_TREE))
+            intermediate.outputTree(root);
+
+        if (success && (compileOptions & SH_OBJECT_CODE))
+            success = translate(root);
+    }
+
+    // Ensure symbol table is returned to the built-in level,
+    // throwing away all but the built-ins.
+    while (!symbolTable.atBuiltInLevel())
+        symbolTable.pop();
+
+    return success;
+}
+
+bool TCompiler::InitBuiltInSymbolTable(const ShBuiltInResources &resources)
+{
+    assert(symbolTable.isEmpty());
+    symbolTable.push();   // COMMON_BUILTINS
+    symbolTable.push();   // ESSL1_BUILTINS
+    symbolTable.push();   // ESSL3_BUILTINS
+
+	TPublicType integer;
+	integer.type = EbtInt;
+	integer.primarySize = 1;
+	integer.secondarySize = 1;
+	integer.array = false;
+
+	TPublicType floatingPoint;
+	floatingPoint.type = EbtFloat;
+	floatingPoint.primarySize = 1;
+	floatingPoint.secondarySize = 1;
+	floatingPoint.array = false;
+
+	switch(shaderType)
+	{
+    case GL_FRAGMENT_SHADER:
+		symbolTable.setDefaultPrecision(integer, EbpMedium);
+        break;
+    case GL_VERTEX_SHADER:
+		symbolTable.setDefaultPrecision(integer, EbpHigh);
+		symbolTable.setDefaultPrecision(floatingPoint, EbpHigh);
+        break;
+    default: assert(false && "Language not supported");
+    }
+
+	InsertBuiltInFunctions(shaderType, resources, symbolTable);
+
+    IdentifyBuiltIns(shaderType, resources, symbolTable);
+
+    return true;
+}
+
+void TCompiler::clearResults()
+{
+    infoSink.info.erase();
+    infoSink.obj.erase();
+    infoSink.debug.erase();
+}
+
+bool TCompiler::validateCallDepth(TIntermNode *root, TInfoSink &infoSink)
+{
+    AnalyzeCallDepth validator(root);
+    
+	unsigned int depth = validator.analyzeCallDepth();
+	
+	if(depth == 0)
+	{
+        infoSink.info.prefix(EPrefixError);
+        infoSink.info << "Missing main()";
+        return false;
+	}
+    else if(depth == UINT_MAX)
+	{
+        infoSink.info.prefix(EPrefixError);
+        infoSink.info << "Function recursion detected";
+        return false;
+	}
+	else if(depth > maxCallStackDepth)
+	{
+        infoSink.info.prefix(EPrefixError);
+        infoSink.info << "Function call stack too deep";
+        return false;
+	}
+
+    return true;
+}
+
+bool TCompiler::validateLimitations(TIntermNode* root) {
+    ValidateLimitations validate(shaderType, infoSink.info);
+    root->traverse(&validate);
+    return validate.numErrors() == 0;
+}
+
+const TExtensionBehavior& TCompiler::getExtensionBehavior() const
+{
+    return extensionBehavior;
+}
+
+bool InitCompilerGlobals()
+{
+    if(!InitializePoolIndex())
+	{
+        assert(0 && "InitCompilerGlobals(): Failed to initalize global pool");
+        return false;
+    }
+
+    if(!InitializeParseContextIndex())
+	{
+        assert(0 && "InitCompilerGlobals(): Failed to initalize parse context");
+        return false;
+    }
+
+    return true;
+}
+
+void FreeCompilerGlobals()
+{
+    FreeParseContextIndex();
+    FreePoolIndex();
+}
diff --git a/src/OpenGL/compiler/Compiler.h b/src/OpenGL/compiler/Compiler.h
index 5ae1519..9c0814e 100644
--- a/src/OpenGL/compiler/Compiler.h
+++ b/src/OpenGL/compiler/Compiler.h
@@ -37,7 +37,6 @@
     int MaxVertexTextureImageUnits;
     int MaxCombinedTextureImageUnits;
     int MaxTextureImageUnits;
-	int MaxTextureCoords;
     int MaxFragmentUniformVectors;
     int MaxDrawBuffers;
     int MaxVertexOutputVectors;
diff --git a/src/OpenGL/compiler/Initialize.cpp b/src/OpenGL/compiler/Initialize.cpp
index 2611f28..afcd561 100644
--- a/src/OpenGL/compiler/Initialize.cpp
+++ b/src/OpenGL/compiler/Initialize.cpp
@@ -1,393 +1,377 @@
-//

-// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.

-// Use of this source code is governed by a BSD-style license that can be

-// found in the LICENSE file.

-//

+//
+// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+//
+// Create strings that declare built-in definitions, add built-ins that
+// cannot be expressed in the files, and establish mappings between 
+// built-in functions and operators.
+//
+
+#include "Initialize.h"
+
+#include "intermediate.h"
+
+void InsertBuiltInFunctions(GLenum type, const ShBuiltInResources &resources, TSymbolTable &symbolTable)
+{
+	TType *float1 = new TType(EbtFloat);
+	TType *float2 = new TType(EbtFloat, 2);
+	TType *float3 = new TType(EbtFloat, 3);
+	TType *float4 = new TType(EbtFloat, 4);
+	TType *genType = new TType(EbtGenType);
+
+    TType *int1 = new TType(EbtInt);
+    TType *uint1 = new TType(EbtUInt);
+    TType *genIType = new TType(EbtGenIType);
+    TType *genUType = new TType(EbtGenUType);
+    TType *genBType = new TType(EbtGenBType);
+
+    //
+    // Angle and Trigonometric Functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpRadians, genType, "radians", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDegrees, genType, "degrees", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSin, genType, "sin", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCos, genType, "cos", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpTan, genType, "tan", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAsin, genType, "asin", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAcos, genType, "acos", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAtan, genType, "atan", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAtan, genType, "atan", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpSinh, genType, "sinh", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpCosh, genType, "cosh", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTanh, genType, "tanh", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAsinh, genType, "asinh", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAcosh, genType, "acosh", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAtanh, genType, "atanh", genType);
+
+    //
+    // Exponential Functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpPow, genType, "pow", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpExp, genType, "exp", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLog, genType, "log", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpExp2, genType, "exp2", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLog2, genType, "log2", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSqrt, genType, "sqrt", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpInverseSqrt, genType, "inversesqrt", genType);
+
+    //
+    // Common Functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAbs, genType, "abs", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAbs, genIType, "abs", genIType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSign, genType, "sign", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpSign, genIType, "sign", genIType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFloor, genType, "floor", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTrunc, genType, "trunc", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpRound, genType, "round", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpRoundEven, genType, "roundEven", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCeil, genType, "ceil", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFract, genType, "fract", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMod, genType, "mod", genType, float1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMod, genType, "mod", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMin, genType, "min", genType, float1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMin, genType, "min", genType, genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genIType, "min", genIType, genIType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genIType, "min", genIType, int1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genUType, "min", genUType, genUType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genUType, "min", genUType, uint1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMax, genType, "max", genType, float1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMax, genType, "max", genType, genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genIType, "max", genIType, genIType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genIType, "max", genIType, int1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genUType, "max", genUType, genUType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genUType, "max", genUType, uint1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpClamp, genType, "clamp", genType, float1, float1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpClamp, genType, "clamp", genType, genType, genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genIType, "clamp", genIType, int1, int1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genIType, "clamp", genIType, genIType, genIType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genUType, "clamp", genUType, uint1, uint1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genUType, "clamp", genUType, genUType, genUType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMix, genType, "mix", genType, genType, float1);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMix, genType, "mix", genType, genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpStep, genType, "step", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpStep, genType, "step", float1, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSmoothStep, genType, "smoothstep", genType, genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSmoothStep, genType, "smoothstep", float1, float1, genType);
+
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIsNan, genBType, "isnan", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIsInf, genBType, "isinf", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpFloatBitsToInt, genIType, "floatBitsToInt", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpFloatBitsToUint, genUType, "floatBitsToUint", genType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIntBitsToFloat, genType, "intBitsToFloat", genIType);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUintBitsToFloat, genType, "uintBitsToFloat", genUType);

 

-//

-// Create strings that declare built-in definitions, add built-ins that

-// cannot be expressed in the files, and establish mappings between 

-// built-in functions and operators.

-//

+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackSnorm2x16, uint1, "packSnorm2x16", float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackUnorm2x16, uint1, "packUnorm2x16", float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackHalf2x16, uint1, "packHalf2x16", float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackSnorm2x16, float2, "unpackSnorm2x16", uint1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackUnorm2x16, float2, "unpackUnorm2x16", uint1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackHalf2x16, float2, "unpackHalf2x16", uint1);
+
+    //
+    // Geometric Functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLength, float1, "length", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDistance, float1, "distance", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDot, float1, "dot", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCross, float3, "cross", float3, float3);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpNormalize, genType, "normalize", genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFaceForward, genType, "faceforward", genType, genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpReflect, genType, "reflect", genType, genType);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpRefract, genType, "refract", genType, genType, float1);
+
+	TType *mat2 = new TType(EbtFloat, 2, 2);
+	TType *mat2x3 = new TType(EbtFloat, 2, 3);
+	TType *mat2x4 = new TType(EbtFloat, 2, 4);
+	TType *mat3x2 = new TType(EbtFloat, 3, 2);
+	TType *mat3 = new TType(EbtFloat, 3, 3);
+	TType *mat3x4 = new TType(EbtFloat, 3, 4);
+	TType *mat4x2 = new TType(EbtFloat, 4, 2);
+	TType *mat4x3 = new TType(EbtFloat, 4, 3);
+	TType *mat4 = new TType(EbtFloat, 4, 4);
+
+    //
+    // Matrix Functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat2, "matrixCompMult", mat2, mat2);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat3, "matrixCompMult", mat3, mat3);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat4, "matrixCompMult", mat4, mat4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat2x3, "matrixCompMult", mat2x3, mat2x3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat3x2, "matrixCompMult", mat3x2, mat3x2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat2x4, "matrixCompMult", mat2x4, mat2x4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat4x2, "matrixCompMult", mat4x2, mat4x2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat3x4, "matrixCompMult", mat3x4, mat3x4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat4x3, "matrixCompMult", mat4x3, mat4x3);

 

-#include "Initialize.h"

+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2, "outerProduct", float2, float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3, "outerProduct", float3, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4, "outerProduct", float4, float4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2x3, "outerProduct", float3, float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3x2, "outerProduct", float2, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2x4, "outerProduct", float4, float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4x2, "outerProduct", float2, float4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3x4, "outerProduct", float4, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4x3, "outerProduct", float3, float4);

 

-#include "intermediate.h"

+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2, "transpose", mat2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3, "transpose", mat3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4, "transpose", mat4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2x3, "transpose", mat3x2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3x2, "transpose", mat2x3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2x4, "transpose", mat4x2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4x2, "transpose", mat2x4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3x4, "transpose", mat4x3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4x3, "transpose", mat3x4);

 

-void InsertBuiltInFunctions(GLenum type, const ShBuiltInResources &resources, TSymbolTable &symbolTable)

-{

-	TType *float1 = new TType(EbtFloat);

-	TType *float2 = new TType(EbtFloat, 2);

-	TType *float3 = new TType(EbtFloat, 3);

-	TType *float4 = new TType(EbtFloat, 4);

-	TType *genType = new TType(EbtGenType);

+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat4);

 

-	TType *int1 = new TType(EbtInt);

-	TType *uint1 = new TType(EbtUInt);

-	TType *genIType = new TType(EbtGenIType);

-	TType *genUType = new TType(EbtGenUType);

-	TType *genBType = new TType(EbtGenBType);

-

-	//

-	// Angle and Trigonometric Functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpRadians, genType, "radians", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDegrees, genType, "degrees", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSin, genType, "sin", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCos, genType, "cos", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpTan, genType, "tan", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAsin, genType, "asin", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAcos, genType, "acos", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAtan, genType, "atan", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAtan, genType, "atan", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpSinh, genType, "sinh", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpCosh, genType, "cosh", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTanh, genType, "tanh", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAsinh, genType, "asinh", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAcosh, genType, "acosh", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAtanh, genType, "atanh", genType);

-

-	//

-	// Exponential Functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpPow, genType, "pow", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpExp, genType, "exp", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLog, genType, "log", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpExp2, genType, "exp2", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLog2, genType, "log2", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSqrt, genType, "sqrt", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpInverseSqrt, genType, "inversesqrt", genType);

-

-	//

-	// Common Functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAbs, genType, "abs", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpAbs, genIType, "abs", genIType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSign, genType, "sign", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpSign, genIType, "sign", genIType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFloor, genType, "floor", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTrunc, genType, "trunc", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpRound, genType, "round", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpRoundEven, genType, "roundEven", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCeil, genType, "ceil", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFract, genType, "fract", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMod, genType, "mod", genType, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMod, genType, "mod", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMin, genType, "min", genType, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMin, genType, "min", genType, genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genIType, "min", genIType, genIType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genIType, "min", genIType, int1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genUType, "min", genUType, genUType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMin, genUType, "min", genUType, uint1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMax, genType, "max", genType, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMax, genType, "max", genType, genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genIType, "max", genIType, genIType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genIType, "max", genIType, int1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genUType, "max", genUType, genUType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMax, genUType, "max", genUType, uint1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpClamp, genType, "clamp", genType, float1, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpClamp, genType, "clamp", genType, genType, genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genIType, "clamp", genIType, int1, int1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genIType, "clamp", genIType, genIType, genIType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genUType, "clamp", genUType, uint1, uint1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpClamp, genUType, "clamp", genUType, genUType, genUType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMix, genType, "mix", genType, genType, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMix, genType, "mix", genType, genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpStep, genType, "step", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpStep, genType, "step", float1, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSmoothStep, genType, "smoothstep", genType, genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpSmoothStep, genType, "smoothstep", float1, float1, genType);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIsNan, genBType, "isnan", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIsInf, genBType, "isinf", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpFloatBitsToInt, genIType, "floatBitsToInt", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpFloatBitsToUint, genUType, "floatBitsToUint", genType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpIntBitsToFloat, genType, "intBitsToFloat", genIType);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUintBitsToFloat, genType, "uintBitsToFloat", genUType);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackSnorm2x16, uint1, "packSnorm2x16", float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackUnorm2x16, uint1, "packUnorm2x16", float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpPackHalf2x16, uint1, "packHalf2x16", float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackSnorm2x16, float2, "unpackSnorm2x16", uint1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackUnorm2x16, float2, "unpackUnorm2x16", uint1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpUnpackHalf2x16, float2, "unpackHalf2x16", uint1);

-

-	//

-	// Geometric Functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLength, float1, "length", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDistance, float1, "distance", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpDot, float1, "dot", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpCross, float3, "cross", float3, float3);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpNormalize, genType, "normalize", genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFaceForward, genType, "faceforward", genType, genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpReflect, genType, "reflect", genType, genType);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpRefract, genType, "refract", genType, genType, float1);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpFtransform, float4, "ftransform", 0);

-

-	TType *mat2 = new TType(EbtFloat, 2, 2);

-	TType *mat2x3 = new TType(EbtFloat, 2, 3);

-	TType *mat2x4 = new TType(EbtFloat, 2, 4);

-	TType *mat3x2 = new TType(EbtFloat, 3, 2);

-	TType *mat3 = new TType(EbtFloat, 3, 3);

-	TType *mat3x4 = new TType(EbtFloat, 3, 4);

-	TType *mat4x2 = new TType(EbtFloat, 4, 2);

-	TType *mat4x3 = new TType(EbtFloat, 4, 3);

-	TType *mat4 = new TType(EbtFloat, 4, 4);

-

-	//

-	// Matrix Functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat2, "matrixCompMult", mat2, mat2);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat3, "matrixCompMult", mat3, mat3);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpMul, mat4, "matrixCompMult", mat4, mat4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat2x3, "matrixCompMult", mat2x3, mat2x3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat3x2, "matrixCompMult", mat3x2, mat3x2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat2x4, "matrixCompMult", mat2x4, mat2x4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat4x2, "matrixCompMult", mat4x2, mat4x2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat3x4, "matrixCompMult", mat3x4, mat3x4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpMul, mat4x3, "matrixCompMult", mat4x3, mat4x3);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2, "outerProduct", float2, float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3, "outerProduct", float3, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4, "outerProduct", float4, float4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2x3, "outerProduct", float3, float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3x2, "outerProduct", float2, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat2x4, "outerProduct", float4, float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4x2, "outerProduct", float2, float4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat3x4, "outerProduct", float4, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpOuterProduct, mat4x3, "outerProduct", float3, float4);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2, "transpose", mat2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3, "transpose", mat3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4, "transpose", mat4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2x3, "transpose", mat3x2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3x2, "transpose", mat2x3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat2x4, "transpose", mat4x2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4x2, "transpose", mat2x4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat3x4, "transpose", mat4x3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpTranspose, mat4x3, "transpose", mat3x4);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpDeterminant, float1, "determinant", mat4);

-

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat2, "inverse", mat2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat3, "inverse", mat3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat4, "inverse", mat4);

-

-

-	TType *bool1 = new TType(EbtBool);

-	TType *vec = new TType(EbtVec);

-	TType *ivec = new TType(EbtIVec);

+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat2, "inverse", mat2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat3, "inverse", mat3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpInverse, mat4, "inverse", mat4);

+
+
+	TType *bool1 = new TType(EbtBool);
+	TType *vec = new TType(EbtVec);
+	TType *ivec = new TType(EbtIVec);
 	TType *uvec = new TType(EbtUVec);

-	TType *bvec = new TType(EbtBVec);

-

-	//

-	// Vector relational functions.

-	//

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThan, bvec, "lessThan", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThan, bvec, "lessThan", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpLessThan, bvec, "lessThan", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThan, bvec, "greaterThan", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThan, bvec, "greaterThan", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpGreaterThan, bvec, "greaterThan", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpVectorEqual, bvec, "equal", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", bvec, bvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", vec, vec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", ivec, ivec);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", uvec, uvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", bvec, bvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAny, bool1, "any", bvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAll, bool1, "all", bvec);

-	symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorLogicalNot, bvec, "not", bvec);

-

-	TType *sampler2D = new TType(EbtSampler2D);

-	TType *samplerCube = new TType(EbtSamplerCube);

-	TType *sampler3D = new TType(EbtSampler3D);

-

-	//

-	// Texture Functions for GLSL ES 1.0

-	//

-	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", sampler2D, float2);

-	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float3);

-	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float4);

-	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCube", samplerCube, float3);

-	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3D", sampler3D, float3);

-

-	if(resources.OES_EGL_image_external)

-	{

-		TType *samplerExternalOES = new TType(EbtSamplerExternalOES);

-

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", samplerExternalOES, float2);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", samplerExternalOES, float3);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", samplerExternalOES, float4);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3D", samplerExternalOES, float3);

-	}

-

-	if(type == GL_FRAGMENT_SHADER)

-	{

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", sampler2D, float2, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float3, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float4, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCube", samplerCube, float3, float1);

-

-		if(resources.OES_standard_derivatives)

-		{

-			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpDFdx, "GL_OES_standard_derivatives", genType, "dFdx", genType);

-			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpDFdy, "GL_OES_standard_derivatives", genType, "dFdy", genType);

-			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpFwidth, "GL_OES_standard_derivatives", genType, "fwidth", genType);

-		}

-	}

-

-	if(type == GL_VERTEX_SHADER)

-	{

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DLod", sampler2D, float2, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProjLod", sampler2D, float3, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProjLod", sampler2D, float4, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCubeLod", samplerCube, float3, float1);

-		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3DLod", sampler3D, float3, float1);

-	}

-

-	TType *gvec4 = new TType(EbtGVec4);

-

-	TType *gsampler2D = new TType(EbtGSampler2D);

-	TType *gsamplerCube = new TType(EbtGSamplerCube);

-	TType *gsampler3D = new TType(EbtGSampler3D);

-	TType *gsampler2DArray = new TType(EbtGSampler2DArray);

-

-	//

-	// Texture Functions for GLSL ES 3.0

-	//

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2D, float2);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler3D, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsamplerCube, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2DArray, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float3);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler3D, float4);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler2D, float2, float1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler3D, float3, float1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsamplerCube, float3, float1);

-	symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler2DArray, float3, float1);

-

-	if(type == GL_FRAGMENT_SHADER)

-	{

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2D, float2, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler3D, float3, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsamplerCube, float3, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2DArray, float3, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float3, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float4, float1);

-		symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler3D, float4, float1);

-	}

-

-	//

-	// Depth range in window coordinates

-	//

-	TTypeList *members = NewPoolTTypeList();

-	TTypeLine near = { new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0 };

-	TTypeLine far = { new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0 };

-	TTypeLine diff = { new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0 };

-	near.type->setFieldName("near");

-	far.type->setFieldName("far");

-	diff.type->setFieldName("diff");

-	members->push_back(near);

-	members->push_back(far);

-	members->push_back(diff);

-	TVariable *depthRangeParameters = new TVariable(NewPoolTString("gl_DepthRangeParameters"), TType(members, "gl_DepthRangeParameters"), true);

-	symbolTable.insert(COMMON_BUILTINS, *depthRangeParameters);

-	TVariable *depthRange = new TVariable(NewPoolTString("gl_DepthRange"), TType(members, "gl_DepthRangeParameters"));

-	depthRange->setQualifier(EvqUniform);

-	symbolTable.insert(COMMON_BUILTINS, *depthRange);

-

-	//

-	// Implementation dependent built-in constants.

-	//

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexAttribs", resources.MaxVertexAttribs);

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexUniformVectors", resources.MaxVertexUniformVectors);

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexTextureImageUnits", resources.MaxVertexTextureImageUnits);

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxCombinedTextureImageUnits", resources.MaxCombinedTextureImageUnits);

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxTextureImageUnits", resources.MaxTextureImageUnits);

-	symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxFragmentUniformVectors", resources.MaxFragmentUniformVectors);

-	symbolTable.insertConstInt(ESSL1_BUILTINS, "gl_MaxTextureCoords", resources.MaxTextureCoords);

-	symbolTable.insertConstInt(ESSL1_BUILTINS, "gl_MaxVaryingVectors", resources.MaxVaryingVectors);

-	symbolTable.insertConstInt(ESSL1_BUILTINS, "gl_MaxDrawBuffers", resources.MaxDrawBuffers);

-	symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxVertexOutputVectors", resources.MaxVertexOutputVectors);

-	symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxFragmentInputVectors", resources.MaxFragmentInputVectors);

-	symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MinProgramTexelOffset", resources.MinProgramTexelOffset);

-	symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxProgramTexelOffset", resources.MaxProgramTexelOffset);

-}

-

-void IdentifyBuiltIns(GLenum shaderType,

-	const ShBuiltInResources &resources,

-	TSymbolTable &symbolTable)

-{

-	//

-	// First, insert some special built-in variables that are not in 

-	// the built-in header files.

-	//

-	switch(shaderType)

-	{

-	case GL_FRAGMENT_SHADER:

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_FragCoord"), TType(EbtFloat, EbpMedium, EvqFragCoord, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_FrontFacing"), TType(EbtBool, EbpUndefined, EvqFrontFacing, 1)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_PointCoord"), TType(EbtFloat, EbpMedium, EvqPointCoord, 2)));

-		symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragColor"), TType(EbtFloat, EbpMedium, EvqFragColor, 4)));

-		symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragData[gl_MaxDrawBuffers]"), TType(EbtFloat, EbpMedium, EvqFragData, 4)));

-		break;

-	case GL_VERTEX_SHADER:

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord0"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord0, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord1"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord1, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord2"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord2, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord3"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord3, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord4"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord4, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord5"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord5, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord6"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord6, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_MultiTexCoord7"), TType(EbtFloat, EbpMedium, EvqMultiTexCoord7, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_Position"), TType(EbtFloat, EbpMedium, EvqPosition, 4)));

-		symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_PointSize"), TType(EbtFloat, EbpMedium, EvqPointSize, 1)));

-		symbolTable.insert(ESSL3_BUILTINS, *new TVariable(NewPoolTString("gl_InstanceID"), TType(EbtInt, EbpHigh, EvqInstanceID, 1)));

-		break;

-	default: assert(false && "Language not supported");

-	}

-

-	// Set up gl_TexCoord

-	TType texCoord(EbtFloat, EbpMedium, EvqTexCoords, 4, 1, true);

-	texCoord.setArraySize(resources.MaxTextureCoords);

-	symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_TexCoord"), texCoord));

-

-	// Finally add resource-specific variables.

-	switch(shaderType)

-	{

-	case GL_FRAGMENT_SHADER:

-	{

-		// Set up gl_FragData.  The array size.

-		TType fragData(EbtFloat, EbpMedium, EvqFragData, 4, 1, true);

-		fragData.setArraySize(resources.MaxDrawBuffers);

-		symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragData"), fragData));

-	}

-	break;

-	case GL_VERTEX_SHADER:	break;

-	default: break;

-	}

-}

-

-void InitExtensionBehavior(const ShBuiltInResources& resources,

-	TExtensionBehavior& extBehavior)

-{

-	if(resources.OES_standard_derivatives)

-		extBehavior["GL_OES_standard_derivatives"] = EBhUndefined;

-	if(resources.OES_fragment_precision_high)

-		extBehavior["GL_FRAGMENT_PRECISION_HIGH"] = EBhUndefined;

-	if(resources.OES_EGL_image_external)

-		extBehavior["GL_OES_EGL_image_external"] = EBhUndefined;

-}

+	TType *bvec = new TType(EbtBVec);
+
+    //
+    // Vector relational functions.
+    //
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThan, bvec, "lessThan", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThan, bvec, "lessThan", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpLessThan, bvec, "lessThan", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpLessThanEqual, bvec, "lessThanEqual", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThan, bvec, "greaterThan", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThan, bvec, "greaterThan", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpGreaterThan, bvec, "greaterThan", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpGreaterThanEqual, bvec, "greaterThanEqual", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpVectorEqual, bvec, "equal", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorEqual, bvec, "equal", bvec, bvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", vec, vec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", ivec, ivec);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", uvec, uvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorNotEqual, bvec, "notEqual", bvec, bvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAny, bool1, "any", bvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpAll, bool1, "all", bvec);
+    symbolTable.insertBuiltIn(COMMON_BUILTINS, EOpVectorLogicalNot, bvec, "not", bvec);
+
+	TType *sampler2D = new TType(EbtSampler2D);
+	TType *samplerCube = new TType(EbtSamplerCube);
+	TType *sampler3D = new TType(EbtSampler3D);
+
+    //
+    // Texture Functions for GLSL ES 1.0
+    //
+    symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", sampler2D, float2);
+    symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float3);
+    symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float4);
+    symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCube", samplerCube, float3);
+	symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3D", sampler3D, float3);
+
+	if(resources.OES_EGL_image_external)
+    {
+        TType *samplerExternalOES = new TType(EbtSamplerExternalOES);
+
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", samplerExternalOES, float2);
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", samplerExternalOES, float3);
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", samplerExternalOES, float4);
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3D", samplerExternalOES, float3);
+    }
+
+	if(type == GL_FRAGMENT_SHADER)
+	{
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2D", sampler2D, float2, float1);
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float3, float1);
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProj", sampler2D, float4, float1);
+        symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCube", samplerCube, float3, float1);
+
+		if(resources.OES_standard_derivatives)
+		{
+			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpDFdx, "GL_OES_standard_derivatives", genType, "dFdx", genType);
+			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpDFdy, "GL_OES_standard_derivatives", genType, "dFdy", genType);
+			symbolTable.insertBuiltIn(ESSL1_BUILTINS, EOpFwidth,"GL_OES_standard_derivatives", genType, "fwidth", genType);
+		}
+	}
+
+	if(type == GL_VERTEX_SHADER)
+	{
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DLod", sampler2D, float2, float1);
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProjLod", sampler2D, float3, float1);
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture2DProjLod", sampler2D, float4, float1);
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "textureCubeLod", samplerCube, float3, float1);
+		symbolTable.insertBuiltIn(ESSL1_BUILTINS, float4, "texture3DLod", sampler3D, float3, float1);
+	}
+
+    TType *gvec4 = new TType(EbtGVec4);
+
+    TType *gsampler2D = new TType(EbtGSampler2D);
+    TType *gsamplerCube = new TType(EbtGSamplerCube);
+    TType *gsampler3D = new TType(EbtGSampler3D);
+    TType *gsampler2DArray = new TType(EbtGSampler2DArray);
+
+    //
+    // Texture Functions for GLSL ES 3.0
+    //
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2D, float2);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler3D, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsamplerCube, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2DArray, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float3);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler3D, float4);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler2D, float2, float1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler3D, float3, float1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsamplerCube, float3, float1);
+    symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureLod", gsampler2DArray, float3, float1);
+
+    if(type == GL_FRAGMENT_SHADER)
+    {
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2D, float2, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler3D, float3, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsamplerCube, float3, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "texture", gsampler2DArray, float3, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float3, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler2D, float4, float1);
+        symbolTable.insertBuiltIn(ESSL3_BUILTINS, gvec4, "textureProj", gsampler3D, float4, float1);
+    }
+
+    //
+    // Depth range in window coordinates
+    //
+	TTypeList *members = NewPoolTTypeList();
+	TTypeLine near = {new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0};
+	TTypeLine far = {new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0};
+	TTypeLine diff = {new TType(EbtFloat, EbpHigh, EvqGlobal, 1), 0};
+	near.type->setFieldName("near");
+	far.type->setFieldName("far");
+	diff.type->setFieldName("diff");
+	members->push_back(near);
+	members->push_back(far);
+	members->push_back(diff);
+	TVariable *depthRangeParameters = new TVariable(NewPoolTString("gl_DepthRangeParameters"), TType(members, "gl_DepthRangeParameters"), true);
+	symbolTable.insert(COMMON_BUILTINS, *depthRangeParameters);
+	TVariable *depthRange = new TVariable(NewPoolTString("gl_DepthRange"), TType(members, "gl_DepthRangeParameters"));
+	depthRange->setQualifier(EvqUniform);
+	symbolTable.insert(COMMON_BUILTINS, *depthRange);
+
+    //
+    // Implementation dependent built-in constants.
+    //
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexAttribs", resources.MaxVertexAttribs);
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexUniformVectors", resources.MaxVertexUniformVectors);
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxVertexTextureImageUnits", resources.MaxVertexTextureImageUnits);
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxCombinedTextureImageUnits", resources.MaxCombinedTextureImageUnits);
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxTextureImageUnits", resources.MaxTextureImageUnits);
+    symbolTable.insertConstInt(COMMON_BUILTINS, "gl_MaxFragmentUniformVectors", resources.MaxFragmentUniformVectors);
+    symbolTable.insertConstInt(ESSL1_BUILTINS, "gl_MaxVaryingVectors", resources.MaxVaryingVectors);
+    symbolTable.insertConstInt(ESSL1_BUILTINS, "gl_MaxDrawBuffers", resources.MaxDrawBuffers);
+    symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxVertexOutputVectors", resources.MaxVertexOutputVectors);
+    symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxFragmentInputVectors", resources.MaxFragmentInputVectors);
+    symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MinProgramTexelOffset", resources.MinProgramTexelOffset);
+    symbolTable.insertConstInt(ESSL3_BUILTINS, "gl_MaxProgramTexelOffset", resources.MaxProgramTexelOffset);
+}
+
+void IdentifyBuiltIns(GLenum shaderType,
+                      const ShBuiltInResources &resources,
+                      TSymbolTable &symbolTable)
+{
+    //
+    // First, insert some special built-in variables that are not in 
+    // the built-in header files.
+    //
+    switch(shaderType)
+	{
+    case GL_FRAGMENT_SHADER:
+        symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_FragCoord"), TType(EbtFloat, EbpMedium, EvqFragCoord,   4)));
+        symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_FrontFacing"), TType(EbtBool,  EbpUndefined, EvqFrontFacing, 1)));
+        symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_PointCoord"), TType(EbtFloat, EbpMedium, EvqPointCoord,  2)));
+        symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragColor"), TType(EbtFloat, EbpMedium, EvqFragColor,   4)));
+        symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragData[gl_MaxDrawBuffers]"), TType(EbtFloat, EbpMedium, EvqFragData,    4)));
+        break;
+    case GL_VERTEX_SHADER:
+        symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_Position"), TType(EbtFloat, EbpHigh, EvqPosition,    4)));
+        symbolTable.insert(COMMON_BUILTINS, *new TVariable(NewPoolTString("gl_PointSize"), TType(EbtFloat, EbpMedium, EvqPointSize,   1)));
+        symbolTable.insert(ESSL3_BUILTINS, *new TVariable(NewPoolTString("gl_InstanceID"), TType(EbtInt, EbpHigh, EvqInstanceID, 1)));
+        break;
+    default: assert(false && "Language not supported");
+    }
+
+    // Finally add resource-specific variables.
+    switch(shaderType)
+    {
+    case GL_FRAGMENT_SHADER:
+		{
+            // Set up gl_FragData.  The array size.
+            TType fragData(EbtFloat, EbpMedium, EvqFragData, 4, 1, true);
+            fragData.setArraySize(resources.MaxDrawBuffers);
+            symbolTable.insert(ESSL1_BUILTINS, *new TVariable(NewPoolTString("gl_FragData"), fragData));
+		}
+		break;
+    default: break;
+    }
+}
+
+void InitExtensionBehavior(const ShBuiltInResources& resources,
+                           TExtensionBehavior& extBehavior)
+{
+    if(resources.OES_standard_derivatives)
+        extBehavior["GL_OES_standard_derivatives"] = EBhUndefined;
+	if(resources.OES_fragment_precision_high)
+        extBehavior["GL_FRAGMENT_PRECISION_HIGH"] = EBhUndefined;
+    if(resources.OES_EGL_image_external)
+        extBehavior["GL_OES_EGL_image_external"] = EBhUndefined;
+}
diff --git a/src/OpenGL/compiler/OutputASM.cpp b/src/OpenGL/compiler/OutputASM.cpp
index cf19655..c2a42b6 100644
--- a/src/OpenGL/compiler/OutputASM.cpp
+++ b/src/OpenGL/compiler/OutputASM.cpp
@@ -652,12 +652,6 @@
 		case EOpFwidth:           if(visit == PostVisit) emit(sw::Shader::OPCODE_FWIDTH, result, arg); break;

 		case EOpAny:              if(visit == PostVisit) emit(sw::Shader::OPCODE_ANY, result, arg); break;

 		case EOpAll:              if(visit == PostVisit) emit(sw::Shader::OPCODE_ALL, result, arg); break;

-		case EOpFtransform:		  

-			if(visit == PostVisit)

-			{

-				emit(sw::Shader::OPCODE_NOP, result, arg);

-			}

-			break;

 		case EOpTranspose:

 			if(visit == PostVisit)

 			{

@@ -1084,7 +1078,6 @@
 		case EOpFaceForward: if(visit == PostVisit) emit(sw::Shader::OPCODE_FORWARD(dim(arg[0])), result, arg[0], arg[1], arg[2]); break;

 		case EOpReflect:     if(visit == PostVisit) emit(sw::Shader::OPCODE_REFLECT(dim(arg[0])), result, arg[0], arg[1]); break;

 		case EOpRefract:     if(visit == PostVisit) emit(sw::Shader::OPCODE_REFRACT(dim(arg[0])), result, arg[0], arg[1], arg[2]); break;

-		case EOpFtransform:	 break;

 		case EOpMul:

 			if(visit == PostVisit)

 			{

@@ -1877,15 +1870,6 @@
 		case EvqFragCoord:           return sw::Shader::PARAMETER_MISCTYPE;

 		case EvqFrontFacing:         return sw::Shader::PARAMETER_MISCTYPE;

 		case EvqPointCoord:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord0:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord1:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord2:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord3:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord4:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord5:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord6:          return sw::Shader::PARAMETER_INPUT;

-		case EvqMultiTexCoord7:          return sw::Shader::PARAMETER_INPUT;

-		case EvqTexCoords:				return sw::Shader::PARAMETER_TEXTURE;

 		case EvqFragColor:           return sw::Shader::PARAMETER_COLOROUT;

 		case EvqFragData:            return sw::Shader::PARAMETER_COLOROUT;

 		default: UNREACHABLE();

@@ -1919,15 +1903,6 @@
 		case EvqPosition:            return varyingRegister(operand);

 		case EvqPointSize:           return varyingRegister(operand);

 		case EvqInstanceID:          vertexShader->instanceIdDeclared = true; return 0;

-		case EvqMultiTexCoord0:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord1:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord2:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord3:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord4:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord5:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord6:		return 0; //UNIMPLEMENTED();

-		case EvqMultiTexCoord7:		return 0; //UNIMPLEMENTED();

-		case EvqTexCoords:			 return 0;

 		case EvqFragCoord:           pixelShader->vPosDeclared = true;  return 0;

 		case EvqFrontFacing:         pixelShader->vFaceDeclared = true; return 1;

 		case EvqPointCoord:          return varyingRegister(operand);

diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index 2ae4515..4fda827 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -319,15 +319,7 @@
     case EvqFlatIn:
     case EvqCentroidIn:
     case EvqVaryingIn:      message = "can't modify a varying";      break;
-	case EvqInput:          message = "can't modify an input";       break;
-	case EvqMultiTexCoord0:      message = "can't modify gl_MultiTexCoord0";   break;
-	case EvqMultiTexCoord1:      message = "can't modify gl_MultiTexCoord1";   break;
-	case EvqMultiTexCoord2:      message = "can't modify gl_MultiTexCoord2";   break;
-	case EvqMultiTexCoord3:      message = "can't modify gl_MultiTexCoord3";   break;
-	case EvqMultiTexCoord4:      message = "can't modify gl_MultiTexCoord4";   break;
-	case EvqMultiTexCoord5:      message = "can't modify gl_MultiTexCoord5";   break;
-	case EvqMultiTexCoord6:      message = "can't modify gl_MultiTexCoord6";   break;
-	case EvqMultiTexCoord7:      message = "can't modify gl_MultiTexCoord7";   break;
+    case EvqInput:          message = "can't modify an input";       break;
     case EvqFragCoord:      message = "can't modify gl_FragCoord";   break;
     case EvqFrontFacing:    message = "can't modify gl_FrontFacing"; break;
     case EvqPointCoord:     message = "can't modify gl_PointCoord";  break;
diff --git a/src/OpenGL/compiler/SymbolTable.h b/src/OpenGL/compiler/SymbolTable.h
index b431528..64c43fd 100644
--- a/src/OpenGL/compiler/SymbolTable.h
+++ b/src/OpenGL/compiler/SymbolTable.h
@@ -346,28 +346,28 @@
 
 	void insertBuiltIn(ESymbolLevel level, TOperator op, const char *ext, TType *rvalue, const char *name, TType *ptype1, TType *ptype2 = 0, TType *ptype3 = 0, TType *ptype4 = 0)
 	{
-		if(ptype1 && ptype1->getBasicType() == EbtGSampler2D)
+		if(ptype1->getBasicType() == EbtGSampler2D)
 		{
 			bool gvec4 = (rvalue->getBasicType() == EbtGVec4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtFloat, 4) : rvalue, name, new TType(EbtSampler2D), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtInt, 4) : rvalue, name, new TType(EbtISampler2D), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtUInt, 4) : rvalue, name, new TType(EbtUSampler2D), ptype2, ptype3, ptype4);
 		}
-		else if(ptype1 && ptype1->getBasicType() == EbtGSampler3D)
+		else if(ptype1->getBasicType() == EbtGSampler3D)
 		{
 			bool gvec4 = (rvalue->getBasicType() == EbtGVec4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtFloat, 4) : rvalue, name, new TType(EbtSampler3D), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtInt, 4) : rvalue, name, new TType(EbtISampler3D), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtUInt, 4) : rvalue, name, new TType(EbtUSampler3D), ptype2, ptype3, ptype4);
 		}
-		else if(ptype1 && ptype1->getBasicType() == EbtGSamplerCube)
+		else if(ptype1->getBasicType() == EbtGSamplerCube)
 		{
 			bool gvec4 = (rvalue->getBasicType() == EbtGVec4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtFloat, 4) : rvalue, name, new TType(EbtSamplerCube), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtInt, 4) : rvalue, name, new TType(EbtISamplerCube), ptype2, ptype3, ptype4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtUInt, 4) : rvalue, name, new TType(EbtUSamplerCube), ptype2, ptype3, ptype4);
 		}
-		else if(ptype1 && ptype1->getBasicType() == EbtGSampler2DArray)
+		else if(ptype1->getBasicType() == EbtGSampler2DArray)
 		{
 			bool gvec4 = (rvalue->getBasicType() == EbtGVec4);
 			insertBuiltIn(level, gvec4 ? new TType(EbtFloat, 4) : rvalue, name, new TType(EbtSampler2DArray), ptype2, ptype3, ptype4);
@@ -393,11 +393,8 @@
 		{
 			TFunction *function = new TFunction(NewPoolTString(name), *rvalue, op, ext);
 
-			if(ptype1)
-			{
-				TParameter param1 = { 0, ptype1 };
-				function->addParameter(param1);
-			}
+			TParameter param1 = {0, ptype1};
+			function->addParameter(param1);
 
 			if(ptype2)
 			{
diff --git a/src/OpenGL/compiler/intermOut.cpp b/src/OpenGL/compiler/intermOut.cpp
index 13245e4..b190e26 100644
--- a/src/OpenGL/compiler/intermOut.cpp
+++ b/src/OpenGL/compiler/intermOut.cpp
@@ -298,7 +298,6 @@
         case EOpFaceForward:   out << "face-forward";            break;
         case EOpReflect:       out << "reflect";                 break;
         case EOpRefract:       out << "refract";                 break;
-		case EOpFtransform:		out << "ftransform";			break;
         case EOpMul:           out << "component-wise multiply"; break;
         case EOpOuterProduct:  out << "outer product";           break;
 
diff --git a/src/OpenGL/compiler/intermediate.h b/src/OpenGL/compiler/intermediate.h
index f840f8a..e0ca128 100644
--- a/src/OpenGL/compiler/intermediate.h
+++ b/src/OpenGL/compiler/intermediate.h
@@ -155,7 +155,6 @@
     EOpFaceForward,
     EOpReflect,
     EOpRefract,
-	EOpFtransform,
 
     EOpDFdx,            // Fragment only, OES_standard_derivatives extension
     EOpDFdy,            // Fragment only, OES_standard_derivatives extension
diff --git a/src/OpenGL/libGL/Context.cpp b/src/OpenGL/libGL/Context.cpp
index 8c591dc..3ceae07 100644
--- a/src/OpenGL/libGL/Context.cpp
+++ b/src/OpenGL/libGL/Context.cpp
@@ -136,8 +136,7 @@
 

     mTexture2DZero = new Texture2D(0);

     mProxyTexture2DZero = new Texture2D(0);

-	mTextureCubeMapZero = new TextureCubeMap(0);

-	mTexture1DZero = new Texture1D(0);

+    mTextureCubeMapZero = new TextureCubeMap(0);

 

     mState.activeSampler = 0;

     bindArrayBuffer(0);

@@ -151,16 +150,7 @@
     mState.currentProgram = 0;

 

     mState.packAlignment = 4;

-	mState.unpackAlignment = 4;

-	mState.unpackSwapBytes = false;

-	mState.unpackLsbFirst = false;

-	mState.unpackRowLength = 0;

-	mState.unpackSkipRows = 0;

-	mState.unpackSkipPixels = 0;

-	mState.unpackSkipImages = 0;

-	mState.unpackImageHeight = 0;

-

-	mState.textureEnvMode = GL_MODULATE;

+    mState.unpackAlignment = 4;

 

     mVertexDataManager = NULL;

     mIndexDataManager = NULL;

@@ -188,11 +178,6 @@
     drawing = false;

     drawMode = 0;   // FIXME

 

-	sharedList = false;

-	sharedContextHandle = NULL;

-

-	clientAttribStack = new std::stack<ClientAttributes>();

-

     mState.vertexAttribute[sw::Color0].mCurrentValue[0] = 1.0f;

     mState.vertexAttribute[sw::Color0].mCurrentValue[1] = 1.0f;

     mState.vertexAttribute[sw::Color0].mCurrentValue[2] = 1.0f;

@@ -267,14 +252,11 @@
 

     mTexture2DZero = NULL;

 	mProxyTexture2DZero = NULL;

-	mTextureCubeMapZero = NULL;

-	mTexture1DZero = NULL;

+    mTextureCubeMapZero = NULL;

 

     delete mVertexDataManager;

     delete mIndexDataManager;

 

-	delete clientAttribStack;

-

     mResourceManager->release();

 	delete device;

 }

@@ -792,76 +774,6 @@
     return mState.unpackAlignment;

 }

 

-void Context::setUnpackSwapBytes(bool swapBytes)

-{

-	mState.unpackSwapBytes = swapBytes;

-}

-

-bool Context::getUnpackSwapBytes() const

-{

-	return mState.unpackSwapBytes;

-}

-

-void Context::setUnpackLsbFirst(bool lsbFirst)

-{

-	mState.unpackLsbFirst = lsbFirst;

-}

-

-bool Context::getUnpackLsbFirst() const

-{

-	return mState.unpackLsbFirst;

-}

-

-void Context::setUnpackRowLength(GLint length)

-{

-	mState.unpackRowLength = length;

-}

-

-GLint Context::getUnpackRowLength() const

-{

-	return mState.unpackRowLength;

-}

-

-void Context::setUnpackSkipRows(GLint skipRows)

-{

-	mState.unpackSkipRows = skipRows;

-}

-

-GLint Context::getUnpackSkipRows() const

-{

-	return mState.unpackSkipRows;

-}

-

-void Context::setUnpackSkipPixels(GLint skipPixels)

-{

-	mState.unpackSkipPixels = skipPixels;

-}

-

-GLint Context::getUnpackSkipPixels() const

-{

-	return mState.unpackSkipPixels;

-}

-

-void Context::setUnpackSkipImages(GLint skipImages)

-{

-	mState.unpackSkipImages = skipImages;

-}

-

-GLint Context::getUnpackSkipImages() const

-{

-	return mState.unpackSkipImages;

-}

-

-void Context::setUnpackImageHeight(GLint imageHeight)

-{

-	mState.unpackImageHeight = imageHeight;

-}

-

-GLint Context::getUnpackImageHeight() const

-{

-	return mState.unpackImageHeight;

-}

-

 GLuint Context::createBuffer()

 {

     return mResourceManager->createBuffer();

@@ -1066,13 +978,6 @@
     mState.elementArrayBuffer = getBuffer(buffer);

 }

 

-void Context::bindTexture1D(GLuint texture)

-{

-	mResourceManager->checkTextureAllocation(texture, TEXTURE_1D);

-

-	mState.samplerTexture[TEXTURE_1D][mState.activeSampler] = getTexture(texture);

-}

-

 void Context::bindTexture2D(GLuint texture)

 {

     mResourceManager->checkTextureAllocation(texture, TEXTURE_2D);

@@ -1298,14 +1203,9 @@
     return mResourceManager->getProgram(mState.currentProgram);

 }

 

-Texture1D *Context::getTexture1D()

-{

-	return static_cast<Texture1D*>(getSamplerTexture(mState.activeSampler, TEXTURE_1D));

-}

-

 Texture2D *Context::getTexture2D(GLenum target)

 {

-	if(target == GL_TEXTURE_2D || /*target == GL_TEXTURE_1D ||*/ target == GL_TEXTURE_RECTANGLE)

+    if(target == GL_TEXTURE_2D)

     {

         return static_cast<Texture2D*>(getSamplerTexture(mState.activeSampler, TEXTURE_2D));

     }

@@ -1334,7 +1234,6 @@
         case TEXTURE_2D:       return mTexture2DZero;

         case PROXY_TEXTURE_2D: return mProxyTexture2DZero;

         case TEXTURE_CUBE:     return mTextureCubeMapZero;

-		case TEXTURE_1D:	   return mTexture1DZero;

         default: UNREACHABLE();

         }

     }

@@ -1438,13 +1337,7 @@
     // case, this should make no difference to the calling application. You may find it in 

     // Context::getFloatv.

     switch (pname)

-	{

-	case GL_TEXTURE_RECTANGLE:				  *params = getRectangleTextureEnable(); break;

-	case GL_MAX_GEOMETRY_OUTPUT_VERTICES:	  *params = 1024; break;

-	case GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX: *params = 1048576; break;

-	case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:	  *params = 16384; break;

-	case GL_MAX_TEXTURE_STACK_DEPTH:		  *params = MAX_TEXTURE_STACK_DEPTH;    break;

-	case GL_MAX_TEXTURE_UNITS:				  *params = MAX_TEXTURE_IMAGE_UNITS;		  break;

+    {

     case GL_MAX_VERTEX_ATTRIBS:               *params = MAX_VERTEX_ATTRIBS;               break;

     case GL_MAX_VERTEX_UNIFORM_VECTORS:       *params = MAX_VERTEX_UNIFORM_VECTORS;       break;

     case GL_MAX_VERTEX_UNIFORM_COMPONENTS:    *params = MAX_VERTEX_UNIFORM_VECTORS * 4;   break;   // FIXME: Verify

@@ -1613,7 +1506,6 @@
             }

         }

         break;

-	case GL_TEXTURE_BINDING_1D:

     case GL_TEXTURE_BINDING_2D:

         {

             if(mState.activeSampler < 0 || mState.activeSampler > MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)

@@ -2168,8 +2060,6 @@
 

 void Context::applyTextures(sw::SamplerType samplerType)

 {

-	GLenum texEnvMode = getTextureEnvMode();

-

     Program *programObject = getCurrentProgram();

 

     int samplerCount = (samplerType == sw::SAMPLER_PIXEL) ? MAX_TEXTURE_IMAGE_UNITS : MAX_VERTEX_TEXTURE_IMAGE_UNITS;   // Range of samplers of given sampler type

@@ -2207,10 +2097,6 @@
 

 				applyTexture(samplerType, samplerIndex, texture);

 

-				GLenum texFormat = texture->getFormat(GL_TEXTURE_2D, 0);

-				sw::TextureStage::StageOperation rgbOperation, alphaOperation;

-				es2sw::ConvertTextureOperations(texEnvMode, texFormat, &rgbOperation, &alphaOperation);

-

                 device->setStageOperation(samplerIndex, sw::TextureStage::STAGE_MODULATE);

                 device->setFirstArgument(samplerIndex, sw::TextureStage::SOURCE_TEXTURE);

                 device->setSecondArgument(samplerIndex, sw::TextureStage::SOURCE_CURRENT);

@@ -2537,27 +2423,6 @@
 	renderTarget->release();

 }

 

-void Context::setTextureEnvMode(GLenum texEnvMode)

-{

-	switch(texEnvMode)

-	{

-	case GL_MODULATE:

-	case GL_DECAL:

-	case GL_BLEND:

-	case GL_ADD:

-	case GL_REPLACE:

-		mState.textureEnvMode = texEnvMode;

-		break;

-	default:

-		UNREACHABLE();

-	}

-}

-

-GLenum Context::getTextureEnvMode()

-{

-	return mState.textureEnvMode;

-}

-

 void Context::clear(GLbitfield mask)

 {

     Framebuffer *framebuffer = getDrawFramebuffer();

@@ -3340,56 +3205,6 @@
 	currentMatrixStack().ortho(left, right, bottom, top, zNear, zFar);

 }

 

-void Context::pushClientAttrib(GLbitfield mask)

-{

-	if(clientAttribStack->size() >= MAX_CLIENT_ATTRIB_STACK_DEPTH)

-	{

-		return error(GL_STACK_OVERFLOW);

-	}

-	ClientAttributes attributes;

-	attributes.mask = mask;

-	attributes.unpackSwapBytes = mState.unpackSwapBytes;

-	attributes.unpackLsbFirst = mState.unpackLsbFirst;

-	attributes.unpackImageHeight = mState.unpackImageHeight;

-	attributes.unpackRowLength = mState.unpackRowLength;

-	attributes.unpackSkipRows = mState.unpackSkipRows;

-	attributes.unpackSkipPixels = mState.unpackSkipPixels;

-	attributes.unpackAlignment = mState.unpackAlignment;

-	attributes.packAlignment = mState.packAlignment;

-	attributes.unpackSkipImages = mState.unpackSkipImages;

-	//TODO: other pack options

-	clientAttribStack->push(attributes);

-}

-

-void Context::popClientAttrib()

-{

-	if(clientAttribStack->empty())

-	{

-		return;

-	}

-

-	if(clientAttribStack->top().mask & GL_CLIENT_PIXEL_STORE_BIT)

-	{

-		setUnpackSwapBytes(clientAttribStack->top().unpackSwapBytes);

-		setUnpackLsbFirst(clientAttribStack->top().unpackLsbFirst);

-		setUnpackImageHeight(clientAttribStack->top().unpackImageHeight);

-		setUnpackRowLength(clientAttribStack->top().unpackRowLength);

-		setUnpackSkipRows(clientAttribStack->top().unpackSkipRows);

-		setUnpackSkipPixels(clientAttribStack->top().unpackSkipPixels);

-		setUnpackAlignment(clientAttribStack->top().unpackAlignment);

-		setPackAlignment(clientAttribStack->top().packAlignment);

-		setUnpackSkipImages(clientAttribStack->top().unpackSkipImages);

-		//TODO: other pack options

-	}

-

-	if(clientAttribStack->top().mask & GL_CLIENT_VERTEX_ARRAY_BIT)

-	{

-		UNIMPLEMENTED();

-	}

-

-	clientAttribStack->pop();

-}

-

 void Context::setLighting(bool enable)

 {

     if(drawing)

@@ -3470,7 +3285,7 @@
 

 void Context::setLight(int index, bool enable)

 {

-	device->setLightEnable(index, enable);

+    device->setLightEnable(index, enable);

 }

 

 void Context::setNormalizeNormals(bool enable)

@@ -3478,26 +3293,6 @@
 	device->setNormalizeNormals(enable);

 }

 

-void Context::setRectangleTextureEnable(bool enable)

-{

-	device->setRectangleTextureEnable(enable);

-}

-

-bool Context::getRectangleTextureEnable()

-{

-	return device->getRectangleTextureEnable();

-}

-

-void Context::set1DTextureEnable(bool enable)

-{

-	device->set1DTextureEnable(enable);

-}

-

-bool Context::get1DTextureEnable()

-{

-	return device->get1DTextureEnable();

-}

-

 GLuint Context::genLists(GLsizei range)

 {

 	if(drawing)

@@ -3548,12 +3343,6 @@
 

 	listIndex = list;

 	listMode = mode;

-

-	if(sharedList)

-	{

-		gl::Context* ctx = (gl::Context*)sharedContextHandle;

-		ctx->newList(list, mode);

-	}

 }

 

 void Context::endList()

@@ -3566,12 +3355,6 @@
     ASSERT(list);

 	delete displayList[listIndex];

     displayList[listIndex] = list;

-	if(sharedList)

-	{

-		gl::Context* ctx = (gl::Context*)sharedContextHandle;

-		ctx->endList();

-	}

-

     list = 0;

 

 	listIndex = 0;

@@ -3595,34 +3378,17 @@
 	firstFreeIndex = std::min(firstFreeIndex , list);

 }

 

-void Context::shareDisplayListSpace(HGLRC hglrc)

-{

-	sharedList = true;

-	sharedContextHandle = hglrc;

-}

-

 void Context::listCommand(Command *command)

 {

     ASSERT(list);

 	list->list.push_back(command);

-	

+

 	if(listMode == GL_COMPILE_AND_EXECUTE)

 	{

 		listMode = 0;

 		command->call();

 		listMode = GL_COMPILE_AND_EXECUTE;

 	}

-	

-	if(sharedList)

-	{

-		gl::Context* ctx = (gl::Context*)sharedContextHandle;

-		if(ctx == NULL)

-		{

-			return error(GL_INVALID_OPERATION);

-		}

-

-		ctx->listCommand(command);

-	}

 }

 

 void APIENTRY glVertexAttribArray(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)

diff --git a/src/OpenGL/libGL/Context.h b/src/OpenGL/libGL/Context.h
index 8e03c64..6a9e42c 100644
--- a/src/OpenGL/libGL/Context.h
+++ b/src/OpenGL/libGL/Context.h
@@ -31,7 +31,6 @@
 #include <map>

 #include <string>

 #include <list>

-#include <stack>

 

 namespace gl

 {

@@ -294,7 +293,6 @@
 class Program;

 class Texture;

 class Texture2D;

-class Texture1D;

 class TextureCubeMap;

 class Framebuffer;

 class Renderbuffer;

@@ -311,15 +309,12 @@
 

 enum

 {

-	MAX_TEXTURE_COORDS = 8,

-	MAX_CLIENT_ATTRIB_STACK_DEPTH = 16,

-	MAX_TEXTURE_STACK_DEPTH = 10,

-    MAX_VERTEX_ATTRIBS = 16,

+    MAX_VERTEX_ATTRIBS = 9,

 	MAX_UNIFORM_VECTORS = 256,   // Device limit

     MAX_VERTEX_UNIFORM_VECTORS = 256 - 3,   // Reserve space for gl_DepthRange

     MAX_VARYING_VECTORS = 10,

-    MAX_TEXTURE_IMAGE_UNITS = 16,

-    MAX_VERTEX_TEXTURE_IMAGE_UNITS = 4,

+    MAX_TEXTURE_IMAGE_UNITS = 2,

+    MAX_VERTEX_TEXTURE_IMAGE_UNITS = 1,

     MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS,

     MAX_FRAGMENT_UNIFORM_VECTORS = 224 - 3,    // Reserve space for gl_DepthRange

     MAX_DRAW_BUFFERS = 1,

@@ -493,31 +488,8 @@
     BindingPointer<Texture> samplerTexture[TEXTURE_TYPE_COUNT][MAX_COMBINED_TEXTURE_IMAGE_UNITS];

 	BindingPointer<Query> activeQuery[QUERY_TYPE_COUNT];

 

-	GLint unpackAlignment;

-	GLint packAlignment;

-	bool unpackSwapBytes;

-	bool unpackLsbFirst;

-	GLint unpackRowLength;

-	GLint unpackSkipRows;

-	GLint unpackSkipPixels;

-	GLint unpackSkipImages;

-	GLint unpackImageHeight;

-

-	GLenum textureEnvMode;

-};

-

-struct ClientAttributes

-{

-	GLint unpackAlignment;

-	GLint packAlignment;

-	bool unpackSwapBytes;

-	bool unpackLsbFirst;

-	GLint unpackRowLength;

-	GLint unpackSkipRows;

-	GLint unpackSkipPixels;

-	GLint unpackSkipImages;

-	GLint unpackImageHeight;

-	GLbitfield mask;

+    GLint unpackAlignment;

+    GLint packAlignment;

 };

 

 class Context

@@ -611,20 +583,6 @@
 

     void setPackAlignment(GLint alignment);

     GLint getPackAlignment() const;

-	void setUnpackSwapBytes(bool swapBytes);

-	bool getUnpackSwapBytes() const;

-	void setUnpackLsbFirst(bool length);

-	bool getUnpackLsbFirst() const;

-	void setUnpackRowLength(GLint length);

-	GLint getUnpackRowLength() const;

-	void setUnpackSkipRows(GLint skipRows);

-	GLint getUnpackSkipRows() const;

-	void setUnpackSkipPixels(GLint skipRows);

-	GLint getUnpackSkipPixels() const;

-	void setUnpackSkipImages(GLint skipImage);

-	GLint getUnpackSkipImages() const;

-	void setUnpackImageHeight(GLint imageHeight);

-	GLint getUnpackImageHeight() const;

 

     // These create  and destroy methods are merely pass-throughs to 

     // ResourceManager, which owns these object types

@@ -653,8 +611,7 @@
     void deleteQuery(GLuint query);

 

     void bindArrayBuffer(GLuint buffer);

-	void bindElementArrayBuffer(GLuint buffer);

-	void bindTexture1D(GLuint texture);

+    void bindElementArrayBuffer(GLuint buffer);

     void bindTexture2D(GLuint texture);

     void bindTextureCubeMap(GLuint texture);

     void bindReadFramebuffer(GLuint framebuffer);

@@ -682,11 +639,10 @@
 

     Buffer *getArrayBuffer();

     Buffer *getElementArrayBuffer();

-	Program *getCurrentProgram();

+    Program *getCurrentProgram();

     Texture2D *getTexture2D(GLenum target);

-	TextureCubeMap *getTextureCubeMap();

-	Texture *getSamplerTexture(unsigned int sampler, TextureType type);

-	Texture1D *getTexture1D();

+    TextureCubeMap *getTextureCubeMap();

+    Texture *getSamplerTexture(unsigned int sampler, TextureType type);

     Framebuffer *getReadFramebuffer();

     Framebuffer *getDrawFramebuffer();

 

@@ -703,9 +659,6 @@
     void finish();

     void flush();

 

-	void setTextureEnvMode(GLenum texEnvMode);

-	GLenum getTextureEnvMode();

-

     void recordInvalidEnum();

     void recordInvalidValue();

     void recordInvalidOperation();

@@ -732,9 +685,6 @@
 	void frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);

     void ortho(double left, double right, double bottom, double top, double zNear, double zFar);   // FIXME: GLdouble

 

-	void pushClientAttrib(GLbitfield mask);

-	void popClientAttrib();

-

     void setLighting(bool enabled);

     void setFog(bool enabled);

 	void setAlphaTest(bool enabled);

@@ -743,10 +693,6 @@
 	void setShadeModel(GLenum mode);

     void setLight(int index, bool enable);

 	void setNormalizeNormals(bool enable);

-	void setRectangleTextureEnable(bool enable);

-	bool getRectangleTextureEnable();

-	void set1DTextureEnable(bool enable);

-	bool get1DTextureEnable();

 

 	GLuint genLists(GLsizei range);

 	void newList(GLuint list, GLenum mode);

@@ -756,7 +702,6 @@
 	GLuint getListIndex() {return listIndex;}

 	GLenum getListMode() {return listMode;}

 	void listCommand(Command *command);

-	void shareDisplayListSpace(HGLRC hglrc);

 

 	void captureAttribs();

     void captureDrawArrays(GLenum mode, GLint first, GLsizei count);

@@ -797,7 +742,6 @@
     BindingPointer<Texture2D> mTexture2DZero;

     BindingPointer<Texture2D> mProxyTexture2DZero;

     BindingPointer<TextureCubeMap> mTextureCubeMapZero;

-	BindingPointer<Texture1D> mTexture1DZero;

 

     typedef std::map<GLint, Framebuffer*> FramebufferMap;

     FramebufferMap mFramebufferMap;

@@ -845,16 +789,12 @@
 	sw::MatrixStack projection;

 	sw::MatrixStack texture[8];

 

-	std::stack<ClientAttributes> *clientAttribStack;

-

 	GLenum listMode;

 	//std::map<GLuint, GLuint> listMap;

 	std::map<GLuint, DisplayList*> displayList;

     DisplayList *list;

 	GLuint listIndex;

 	GLuint firstFreeIndex;

-	bool sharedList;

-	HGLRC sharedContextHandle;

 

 	GLenum clientTexture;

 

diff --git a/src/OpenGL/libGL/Device.cpp b/src/OpenGL/libGL/Device.cpp
index da7900b..cd314d2 100644
--- a/src/OpenGL/libGL/Device.cpp
+++ b/src/OpenGL/libGL/Device.cpp
@@ -157,9 +157,6 @@
         setSpecularMaterialSource(sw::MATERIAL_MATERIAL);

         setAmbientMaterialSource(sw::MATERIAL_COLOR1);

         setEmissiveMaterialSource(sw::MATERIAL_MATERIAL);

-

-		rectangleTextureEnable = false;

-		oneDTextureEnable = false;

 	}

 

 	Device::~Device()

@@ -444,26 +441,6 @@
 		scissorEnable = enable;

 	}

 

-	void Device::setRectangleTextureEnable(bool enable)

-	{

-		rectangleTextureEnable = enable;

-	}

-

-	bool Device::getRectangleTextureEnable()

-	{

-		return rectangleTextureEnable;

-	}

-

-	void Device::set1DTextureEnable(bool enable)

-	{

-		oneDTextureEnable = enable;

-	}

-

-	bool Device::get1DTextureEnable()

-	{

-		return oneDTextureEnable;

-	}

-

 	void Device::setRenderTarget(Image *renderTarget)

 	{

 		if(renderTarget)

diff --git a/src/OpenGL/libGL/Device.hpp b/src/OpenGL/libGL/Device.hpp
index be360b7..dec8dfb 100644
--- a/src/OpenGL/libGL/Device.hpp
+++ b/src/OpenGL/libGL/Device.hpp
@@ -59,10 +59,6 @@
 		virtual void setPixelShader(sw::PixelShader *shader);

 		virtual void setPixelShaderConstantF(unsigned int startRegister, const float *constantData, unsigned int count);

 		virtual void setScissorEnable(bool enable);

-		virtual void setRectangleTextureEnable(bool enable);

-		virtual bool getRectangleTextureEnable();

-		virtual void set1DTextureEnable(bool enable);

-		virtual bool get1DTextureEnable();

 		virtual void setRenderTarget(Image *renderTarget);

 		virtual void setScissorRect(const sw::Rect &rect);

 		virtual void setVertexShader(sw::VertexShader *shader);

diff --git a/src/OpenGL/libGL/ResourceManager.cpp b/src/OpenGL/libGL/ResourceManager.cpp
index 5a32af0..383a66f 100644
--- a/src/OpenGL/libGL/ResourceManager.cpp
+++ b/src/OpenGL/libGL/ResourceManager.cpp
@@ -322,12 +322,8 @@
     if(!getTexture(texture) && texture != 0)
     {
         Texture *textureObject;
-		
-		if(type == TEXTURE_1D)
-		{
-			textureObject = new Texture1D(texture);
-		}
-        else if(type == TEXTURE_2D)
+
+        if(type == TEXTURE_2D)
         {
             textureObject = new Texture2D(texture);
         }
@@ -335,7 +331,7 @@
         {
             textureObject = new TextureCubeMap(texture);
         }
-		else
+        else
         {
             UNREACHABLE();
             return;
diff --git a/src/OpenGL/libGL/ResourceManager.h b/src/OpenGL/libGL/ResourceManager.h
index 5cae234..11c85eb 100644
--- a/src/OpenGL/libGL/ResourceManager.h
+++ b/src/OpenGL/libGL/ResourceManager.h
@@ -36,8 +36,7 @@
 {

     TEXTURE_2D,

     PROXY_TEXTURE_2D,

-	TEXTURE_CUBE,

-	TEXTURE_1D,

+    TEXTURE_CUBE,

 

     TEXTURE_TYPE_COUNT,

     TEXTURE_UNKNOWN

diff --git a/src/OpenGL/libGL/Shader.cpp b/src/OpenGL/libGL/Shader.cpp
index 9c63adf..bb574a3 100644
--- a/src/OpenGL/libGL/Shader.cpp
+++ b/src/OpenGL/libGL/Shader.cpp
@@ -167,7 +167,6 @@
 	resources.MaxVertexTextureImageUnits = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
 	resources.MaxCombinedTextureImageUnits = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
 	resources.MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
-	resources.MaxTextureCoords = MAX_TEXTURE_COORDS;
 	resources.MaxFragmentUniformVectors = MAX_FRAGMENT_UNIFORM_VECTORS;
 	resources.MaxDrawBuffers = MAX_DRAW_BUFFERS;
 	resources.OES_standard_derivatives = 1;
diff --git a/src/OpenGL/libGL/Texture.cpp b/src/OpenGL/libGL/Texture.cpp
index 4c0ccf1..74c1daa 100644
--- a/src/OpenGL/libGL/Texture.cpp
+++ b/src/OpenGL/libGL/Texture.cpp
@@ -168,11 +168,11 @@
     return mMaxAnisotropy;

 }

 

-void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image, int xOffset)

+void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)

 {

     if(pixels && image)

     {

-		image->loadImageData(xOffset/*0*/, 0, 0, image->getWidth(), image->getHeight(), 1, format, type, unpackAlignment, pixels);

+		image->loadImageData(0, 0, 0, image->getWidth(), image->getHeight(), 1, format, type, unpackAlignment, pixels);

     }

 }

 

@@ -184,7 +184,7 @@
     }

 }

 

-void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image, bool is2DTexture)

+void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)

 {

 	if(!image)

 	{

@@ -201,7 +201,7 @@
         return error(GL_INVALID_OPERATION);

     }

 

-    if(format != image->getFormat() && is2DTexture)

+    if(format != image->getFormat())

     {

         return error(GL_INVALID_OPERATION);

     }

@@ -367,7 +367,7 @@
 	return levels;

 }

 

-void Texture2D::setImage(GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, int xOffset)

+void Texture2D::setImage(GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels)

 {

 	if(image[level])

 	{

@@ -381,7 +381,7 @@
 		return error(GL_OUT_OF_MEMORY);

 	}

 

-    Texture::setImage(format, type, unpackAlignment, pixels, image[level], xOffset);

+    Texture::setImage(format, type, unpackAlignment, pixels, image[level]);

 }

 

 void Texture2D::setCompressedImage(GLint level, GLenum format, GLsizei width, GLsizei height, GLsizei imageSize, const void *pixels)

@@ -1038,57 +1038,4 @@
 	return image[face][level];

 }

 

-Texture1D::Texture1D(GLuint name) : Texture2D(name)

-{

-}

-

-Texture1D::~Texture1D()

-{

-}

-

-GLenum Texture1D::getTarget() const

-{

-	return GL_TEXTURE_1D;

-}

-

-GLenum Texture1D::getFormat(GLenum target, GLint level) const

-{

-	ASSERT(target == GL_TEXTURE_1D);

-	return image[level] ? image[level]->getFormat() : 0;

-}

-

-GLenum Texture1D::getType(GLenum target, GLint level) const

-{

-	ASSERT(target == GL_TEXTURE_1D);

-	return image[level] ? image[level]->getType() : 0;

-}

-

-GLsizei Texture1D::getWidth(GLenum target, GLint level) const

-{

-	ASSERT(target == GL_TEXTURE_1D || target == GL_PROXY_TEXTURE_1D);

-	return image[level] ? image[level]->getWidth() : 0;

-}

-

-GLsizei Texture1D::getHeight(GLenum target, GLint level) const

-{

-	ASSERT(target == GL_TEXTURE_1D || target == GL_PROXY_TEXTURE_1D);

-	return image[level] ? image[level]->getHeight() : 0;

-}

-

-sw::Format Texture1D::getInternalFormat(GLenum target, GLint level) const

-{

-	ASSERT(target == GL_TEXTURE_1D || target == GL_PROXY_TEXTURE_1D);

-	return image[level] ? image[level]->getInternalFormat() : sw::FORMAT_NULL;

-}

-

-void Texture1D::subImage(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels)

-{

-	Texture::subImage(xoffset, yoffset, width, height, format, type, unpackAlignment, pixels, image[level], false);

-}

-

-bool Texture1D::isCompressed(GLenum target, GLint level) const

-{

-	return IsCompressed(getFormat(target, level));

-}

-

 }

diff --git a/src/OpenGL/libGL/Texture.h b/src/OpenGL/libGL/Texture.h
index 2b761b0..2f8ed28 100644
--- a/src/OpenGL/libGL/Texture.h
+++ b/src/OpenGL/libGL/Texture.h
@@ -88,8 +88,8 @@
     virtual void copySubImage(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source) = 0;

 

 protected:

-	void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image, int xOffset = 0);

-	void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image, bool is2DTexture = true);

+    void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);

+    void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);

     void setCompressedImage(GLsizei imageSize, const void *pixels, Image *image);

     void subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, Image *image);

 

@@ -126,7 +126,7 @@
     virtual sw::Format getInternalFormat(GLenum target, GLint level) const;

 	virtual int getLevelCount() const;

 

-	void setImage(GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, int xOffset = 0);

+    void setImage(GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels);

     void setCompressedImage(GLint level, GLenum format, GLsizei width, GLsizei height, GLsizei imageSize, const void *pixels);

     void subImage(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels);

     void subImageCompressed(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels);

@@ -216,21 +216,6 @@
 	unsigned int mFaceProxyRefs[6];

 };

 

-class Texture1D : public Texture2D

-{

-public:

-	explicit Texture1D(GLuint name);

-

-	virtual ~Texture1D();

-	virtual GLenum getTarget() const;

-	virtual GLenum getFormat(GLenum target, GLint level) const;

-	virtual GLenum getType(GLenum target, GLint level) const;

-	virtual GLsizei getWidth(GLenum target, GLint level) const;

-	virtual GLsizei getHeight(GLenum target, GLint level) const;

-	virtual sw::Format getInternalFormat(GLenum target, GLint level) const;

-	virtual void subImage(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels);

-	virtual bool isCompressed(GLenum target, GLint level) const;

-};

 }

 

 #endif   // LIBGL_TEXTURE_H_

diff --git a/src/OpenGL/libGL/libGL.cpp b/src/OpenGL/libGL/libGL.cpp
index 129fa55..553d0a2 100644
--- a/src/OpenGL/libGL/libGL.cpp
+++ b/src/OpenGL/libGL/libGL.cpp
@@ -30,7 +30,6 @@
 #include <windows.h>

 #include <GL/GL.h>

 #include <GL/glext.h>

-#include <csignal>

 

 #include <limits>

 

@@ -56,7 +55,7 @@
 		return error(GL_INVALID_OPERATION, false);

 	}

 

-	if(format != GL_NONE && (format != texture->getFormat(target, level) && target != GL_TEXTURE_1D))

+	if(format != GL_NONE && format != texture->getFormat(target, level))

 	{

 		return error(GL_INVALID_OPERATION, false);

 	}

@@ -350,19 +349,9 @@
 

 		switch(target)

 		{

-		case GL_TEXTURE_1D:

-			context->bindTexture1D(texture);

-			return;

 		case GL_TEXTURE_2D:

 			context->bindTexture2D(texture);

 			return;

-		case GL_TEXTURE_RECTANGLE:

-			/*if(!context->getRectangleTextureEnable())

-			{

-				return error(GL_INVALID_VALUE);

-			}*/

-			context->bindTexture2D(texture);

-			return;

 		case GL_TEXTURE_CUBE_MAP:

 			context->bindTextureCubeMap(texture);

 			return;

@@ -730,419 +719,6 @@
 	}

 }

 

-void APIENTRY glVertexAttrib1dv(GLuint index, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib1sv(GLuint index, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib2dv(GLuint index, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-

-void APIENTRY glVertexAttrib2sv(GLuint index, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib3dv(GLuint index, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib3sv(GLuint index, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Nbv(GLuint index, const GLbyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Niv(GLuint index, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Nsv(GLuint index, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Nubv(GLuint index, const GLubyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Nuiv(GLuint index, const GLuint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4Nusv(GLuint index, const GLushort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glFogCoordfv(const GLfloat *coord)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glFogCoorddv(const GLdouble *coord)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3bv(const GLbyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3dv(const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3fv(const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3i(GLint red, GLint green, GLint blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3iv(const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3s(GLshort red, GLshort green, GLshort blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3sv(const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3ubv(const GLubyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3uiv(const GLuint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3us(GLushort red, GLushort green, GLushort blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3usv(const GLushort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos2dv(const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos2fv(const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos2iv(const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos2s(GLshort x, GLshort y)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos2sv(const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos3dv(const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos3fv(const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos3iv(const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos3s(GLshort x, GLshort y, GLshort z)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glWindowPos3sv(const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1dv(GLenum target, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1fv(GLenum target, const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1i(GLenum target, GLint s)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1iv(GLenum target, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1s(GLenum target, GLshort s)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord1sv(GLenum target, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2dv(GLenum target, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2fv(GLenum target, const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2i(GLenum target, GLint s, GLint t)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2iv(GLenum target, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2s(GLenum target, GLshort s, GLshort t)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord2sv(GLenum target, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3dv(GLenum target, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3fv(GLenum target, const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3iv(GLenum target, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord3sv(GLenum target, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4dv(GLenum target, const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4fv(GLenum target, const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4iv(GLenum target, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glMultiTexCoord4sv(GLenum target, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glBlendEquationEXT(GLenum mode)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3bvEXT(const GLbyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3dvEXT(const GLdouble *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3fvEXT(const GLfloat *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3iEXT(GLint red, GLint green, GLint blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3ivEXT(const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3svEXT(const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3ubvEXT(const GLubyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3uivEXT(const GLuint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColor3usvEXT(const GLushort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const void *pointer)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-

-

 void APIENTRY glClearStencil(GLint s)

 {

 	TRACE("(GLint s = %d)", s);

@@ -2076,31 +1652,29 @@
 

 		switch(cap)

 		{

-		case GL_CULL_FACE:                context->setCullFace(false);					break;

-		case GL_POLYGON_OFFSET_FILL:      context->setPolygonOffsetFill(false);			break;

-		case GL_SAMPLE_ALPHA_TO_COVERAGE: context->setSampleAlphaToCoverage(false);		break;

-		case GL_SAMPLE_COVERAGE:          context->setSampleCoverage(false);			break;

-		case GL_SCISSOR_TEST:             context->setScissorTest(false);				break;

-		case GL_STENCIL_TEST:             context->setStencilTest(false);				break;

-		case GL_DEPTH_TEST:               context->setDepthTest(false);					break;

-		case GL_BLEND:                    context->setBlend(false);						break;

-		case GL_DITHER:                   context->setDither(false);					break;

-		case GL_LIGHTING:                 context->setLighting(false);					break;

-		case GL_FOG:                      context->setFog(false);						break;

-		case GL_ALPHA_TEST:               context->setAlphaTest(false);					break;

-		case GL_TEXTURE_2D:               context->setTexture2D(false);					break;

-		case GL_LIGHT0:                   context->setLight(0, false);					break;

-		case GL_LIGHT1:                   context->setLight(1, false);					break;

-		case GL_LIGHT2:                   context->setLight(2, false);					break;

-		case GL_LIGHT3:                   context->setLight(3, false);					break;

-		case GL_LIGHT4:                   context->setLight(4, false);					break;

-		case GL_LIGHT5:                   context->setLight(5, false);					break;

-		case GL_LIGHT6:                   context->setLight(6, false);					break;

-		case GL_LIGHT7:                   context->setLight(7, false);					break;

-		case GL_COLOR_MATERIAL:           context->setColorMaterial(false);				break;

-		case GL_RESCALE_NORMAL:           context->setNormalizeNormals(false);			break;

-		case GL_TEXTURE_RECTANGLE:		  context->setRectangleTextureEnable(false);	break;

-		case GL_TEXTURE_1D:				  context->set1DTextureEnable(false);			break;

+		case GL_CULL_FACE:                context->setCullFace(false);              break;

+		case GL_POLYGON_OFFSET_FILL:      context->setPolygonOffsetFill(false);     break;

+		case GL_SAMPLE_ALPHA_TO_COVERAGE: context->setSampleAlphaToCoverage(false); break;

+		case GL_SAMPLE_COVERAGE:          context->setSampleCoverage(false);        break;

+		case GL_SCISSOR_TEST:             context->setScissorTest(false);           break;

+		case GL_STENCIL_TEST:             context->setStencilTest(false);           break;

+		case GL_DEPTH_TEST:               context->setDepthTest(false);             break;

+		case GL_BLEND:                    context->setBlend(false);                 break;

+		case GL_DITHER:                   context->setDither(false);                break;

+		case GL_LIGHTING:                 context->setLighting(false);              break;

+		case GL_FOG:                      context->setFog(false);                   break;

+		case GL_ALPHA_TEST:               context->setAlphaTest(false);             break;

+		case GL_TEXTURE_2D:               context->setTexture2D(false);             break;

+		case GL_LIGHT0:                   context->setLight(0, false);              break;

+		case GL_LIGHT1:                   context->setLight(1, false);              break;

+		case GL_LIGHT2:                   context->setLight(2, false);              break;

+		case GL_LIGHT3:                   context->setLight(3, false);              break;

+		case GL_LIGHT4:                   context->setLight(4, false);              break;

+		case GL_LIGHT5:                   context->setLight(5, false);              break;

+		case GL_LIGHT6:                   context->setLight(6, false);              break;

+		case GL_LIGHT7:                   context->setLight(7, false);              break;

+		case GL_COLOR_MATERIAL:           context->setColorMaterial(false);         break;

+		case GL_RESCALE_NORMAL:           context->setNormalizeNormals(false);      break;

 		default:

 			return error(GL_INVALID_ENUM);

 		}

@@ -2248,8 +1822,6 @@
 		case GL_LIGHT6:                   context->setLight(6, true);              break;

 		case GL_LIGHT7:                   context->setLight(7, true);              break;

 		case GL_RESCALE_NORMAL:           context->setNormalizeNormals(true);      break;

-		case GL_TEXTURE_RECTANGLE:		  context->setRectangleTextureEnable(true);break;

-		case GL_TEXTURE_1D:				  context->set1DTextureEnable(true);	   break;

 		default:

 			return error(GL_INVALID_ENUM);

 		}

@@ -3166,9 +2738,7 @@
 			GLenum nativeType;

 			unsigned int numParams = 0;

 			if(!context->getQueryParameterInfo(pname, &nativeType, &numParams))

-			{

 				return error(GL_INVALID_ENUM);

-			}

 

 			if(numParams == 0)

 				return; // it is known that pname is valid, but there are no parameters to return

@@ -3523,469 +3093,30 @@
 	switch(name)

 	{

 	case GL_VENDOR:

-		return (GLubyte*)"NVIDIA Corporation";// "TransGaming Inc.";

+		return (GLubyte*)"TransGaming Inc.";

 	case GL_RENDERER:

-		return (GLubyte*)"Quadro K600/PCIe/SSE2";// "SwiftShader";

+		return (GLubyte*)"SwiftShader";

 	case GL_VERSION:

-		return (GLubyte*)"2.1.2 NVIDIA 347.62";//"2.1.2 SwiftShader "VERSION_STRING;

+		return (GLubyte*)"2.1 SwiftShader "VERSION_STRING;

 	case GL_SHADING_LANGUAGE_VERSION:

-		return (GLubyte*)/*"3.0.0 NVIDIA "VERSION_STRING;*/"4.50 NVIDIA";

+		return (GLubyte*)"3.30 SwiftShader "VERSION_STRING;

 	case GL_EXTENSIONS:

 		// Keep list sorted in following order:

 		// OES extensions

 		// EXT extensions

 		// Vendor extensions

 		return (GLubyte*)

-			////1.1

-			//"GL_EXT_blend_logic_op "

-			//"GL_EXT_copy_texture "

-			//"GL_EXT_polygon_offset "

-			//"GL_EXT_subtexture "

-			//"GL_EXT_texture "

-			//"GL_EXT_texture_object "

-			////"GL_EXT_vertex_array "

-			////1.2

-			//"GL_EXT_bgra "

-			//"GL_EXT_draw_range_elements "

-			//"GL_EXT_packed_pixels "

-			//"GL_EXT_rescale_normal "

-			//"GL_EXT_separate_specular_color "

-			//"GL_EXT_texture3D "

-			//"GL_EXT_texture_edge_clamp "

-			//"GL_SGIS_texture_edge_clamp "

-			//"GL_SGIS_texture_lod "

-			////1.3

-			//"GL_ARB_multisample "

-			//"GL_ARB_multitexture "

-			//"GL_ARB_texture_border_clamp "

-			//"GL_ARB_texture_compression "

-			//"GL_ARB_texture_cube_map "

-			//"GL_ARB_texture_env_add "

-			//"GL_ARB_texture_env_combine "

-			//"GL_ARB_texture_env_dot3 "

-			//"GL_ARB_transpose_matrix "

-			////1.4

-			//"GL_ARB_depth_texture "

-			//"GL_ARB_point_parameters "

-			//"GL_ARB_shadow "

-			//"GL_ARB_texture_env_crossbar "

-			//"GL_ARB_texture_mirrored_repeat "

-			//"GL_ARB_windows_pos "

-			//"GL_EXT_blend_color "

-			//"GL_EXT_blend_func_separate "

-			//"GL_EXT_fog_coord "

-			//"GL_EXT_multi_draw_arrays "

-			//"GL_EXT_secondary_color "

-			//"GL_EXT_stencil_wrap "

-			//"GL_EXT_texture_lod_bias "

-			//"GL_NV_blend_square "

-			//"GL_SGIS_generate_mipmap "

-			////1.5

-			//"GL_ARB_occlusion_query "

-			//"GL_ARB_vertex_buffer_object "

-			//"GL_EXT_shadow_funcs "

-			////2.0

-			//"GL_ARB_draw_buffers "

-			//"GL_ARB_fragment_shader "

-			//"GL_ARB_point_sprite "

-			//"GL_ARB_shader objects "

-			//"GL_ARB_shading_language_100 "

-			//"GL_ARB_texture_non_power_of_two "

-			//"GL_ARB_vertex_shader "

-			//"GL_EXT_blend_equation_separate "

-			//"GL_EXT_stencil_two_side "

-

-			////2.1

-			//"GL_ARB_pixel_buffer_object "

-			//"GL_EXT_texture_sRGB "

-

-			//"GL_EXT_framebuffer_object "

-			//"GL_ARB_framebuffer_object "

-			//"GL_ARB_shader_atomic_counters "

-			//"GL_ARB_shader_bit_encoding "

-			//"GL_ARB_shader_draw_parameters "

-			//"GL_ARB_shader_group_vote "

-			//"GL_ARB_shader_image_load_store "

-			//"GL_ARB_shader_image_size "

-			//"GL_ARB_shader_objects "

-			//"GL_ARB_shader_precision "

-			//"GL_ARB_query_buffer_object "

-			//"GL_ARB_shader_storage_buffer_object "

-			//"GL_ARB_shader_subroutine "

-			//"GL_ARB_shader_texture_lod "

-			//"GL_ARB_shadow "

-			//"GL_ARB_shading_language_420pack "

-			//"GL_ARB_shading_language_include "

-			//"GL_ARB_shading_language_packing ";

-

-

-			//NVIDIA CARD EXTENSIONS

-			"GL_AMD_multi_draw_indirect "

-			"GL_AMD_seamless_cubemap_per_texture "

-			"GL_ARB_arrays_of_arrays "

-			"GL_ARB_base_instance "

-			"GL_ARB_bindless_texture "

-			"GL_ARB_blend_func_extended "

-			"GL_ARB_buffer_storage "

-			"GL_ARB_clear_buffer_object "

-			"GL_ARB_clear_texture "

-			"GL_ARB_clip_control "

-			"GL_ARB_color_buffer_float "

 			//"GL_ARB_compressed_texture_pixel_storage "

-			"GL_ARB_compute_shader "

-			"GL_ARB_compute_variable_group_size "

-			"GL_ARB_conditional_render_inverted "

-			"GL_ARB_conservative_depth "

-			"GL_ARB_copy_buffer "

-			"GL_ARB_copy_image "

-			"GL_ARB_cull_distance "

-			"GL_ARB_debug_output "

-			"GL_ARB_depth_buffer_float "

-			"GL_ARB_depth_clamp "

-			"GL_ARB_depth_texture "

-			"GL_ARB_derivative_control "

-			"GL_ARB_direct_state_access "

-			"GL_ARB_draw_buffers "

-			"GL_ARB_draw_buffers_blend "

-			"GL_ARB_draw_elements_base_vertex "

-			"GL_ARB_draw_indirect "

-			"GL_ARB_draw_instanced "

-			"GL_ARB_enhanced_layouts "

-			"GL_ARB_ES2_compatibility "

-			"GL_ARB_ES3_1_compatibility "

-			"GL_ARB_ES3_compatibility "

-			"GL_ARB_explicit_attrib_location "

-			"GL_ARB_explicit_uniform_location "

-			"GL_ARB_fragment_coord_conventions "

-			"GL_ARB_fragment_layer_viewport "

-			"GL_ARB_fragment_program "

-			"GL_ARB_fragment_program_shadow "

-			"GL_ARB_fragment_shader "

-			"GL_ARB_framebuffer_no_attachments "

 			"GL_ARB_framebuffer_object "

-			"GL_ARB_framebuffer_sRGB "

-			"GL_ARB_geometry_shader4 "

-			"GL_ARB_get_program_binary "

-			"GL_ARB_get_texture_sub_image "

-			"GL_ARB_gpu_shader5 "

-			"GL_ARB_gpu_shader_fp64 "

 			//"GL_ARB_half_float_pixel "

-			"GL_ARB_half_float_vertex "

-			"GL_ARB_imaging "

-			"GL_ARB_indirect_parameters "

-			"GL_ARB_instanced_arrays "

-			"GL_ARB_internalformat_query "

-			"GL_ARB_internalformat_query2 "

-			"GL_ARB_invalidate_subdata "

-			"GL_ARB_map_buffer_alignment "

-			"GL_ARB_map_buffer_range "

-			"GL_ARB_multi_bind "

-			"GL_ARB_multi_draw_indirect "

-			"GL_ARB_multisample "

-			"GL_ARB_multitexture "

-			"GL_ARB_occlusion_query "

-			"GL_ARB_occlusion_query2 "

-			"GL_ARB_pipeline_statistics_query "

 			//"GL_ARB_pixel_buffer_object "

-			"GL_ARB_point_parameters "

-			"GL_ARB_point_sprite "

-			"GL_ARB_program_interface_query "

-			"GL_ARB_provoking_vertex "

-			"GL_ARB_query_buffer_object "

-			"GL_ARB_robust_buffer_access_behavior "

-			"GL_ARB_robustness "

-			"GL_ARB_sample_shading "

-			"GL_ARB_sampler_objects "

-			"GL_ARB_seamless_cube_map "

-			"GL_ARB_seamless_cubemap_per_texture "

-			"GL_ARB_separate_shader_objects "

-			"GL_ARB_shader_atomic_counters "

-			"GL_ARB_shader_bit_encoding "

-			"GL_ARB_shader_draw_parameters "

-			"GL_ARB_shader_group_vote "

-			"GL_ARB_shader_image_load_store "

-			"GL_ARB_shader_image_size "

-			"GL_ARB_shader_objects "

-			"GL_ARB_shader_precision "

-			"GL_ARB_shader_storage_buffer_object "

-			"GL_ARB_shader_subroutine "

-			"GL_ARB_shader_texture_image_samples "

-			"GL_ARB_shader_texture_lod "

-			"GL_ARB_shading_language_100 "

-			"GL_ARB_shading_language_420pack "

-			"GL_ARB_shading_language_include "

-			"GL_ARB_shading_language_packing "

-			"GL_ARB_shadow "

-			"GL_ARB_sparse_buffer "

-			"GL_ARB_sparse_texture "

-			"GL_ARB_stencil_texturing "

-			"GL_ARB_sync "

-			"GL_ARB_tessellation_shader "

-			"GL_ARB_texture_barrier "

-			"GL_ARB_texture_border_clamp "

-			"GL_ARB_texture_buffer_object "

-			"GL_ARB_texture_buffer_object_rgb32 "

-			"GL_ARB_texture_buffer_range "

-			"GL_ARB_texture_compression "

-			"GL_ARB_texture_compression_bptc "

-			"GL_ARB_texture_compression_rgtc "

-			"GL_ARB_texture_cube_map "

-			"GL_ARB_texture_cube_map_array "

-			"GL_ARB_texture_env_add "

-			"GL_ARB_texture_env_combine "

-			"GL_ARB_texture_env_crossbar "

-			"GL_ARB_texture_env_dot3 "

-			"GL_ARB_texture_float "

-			"GL_ARB_texture_gather "

-			"GL_ARB_texture_mirror_clamp_to_edge "

-			"GL_ARB_texture_mirrored_repeat "

-			"GL_ARB_texture_multisample "

-			"GL_ARB_texture_non_power_of_two "

-			"GL_ARB_texture_query_levels "

-			"GL_ARB_texture_query_lod "

-			"GL_ARB_texture_rectangle "

-			"GL_ARB_texture_rg "

-			"GL_ARB_texture_rgb10_a2ui "

-			"GL_ARB_texture_stencil8 "

-			"GL_ARB_texture_storage "

-			"GL_ARB_texture_storage_multisample "

-			"GL_ARB_texture_swizzle "

-			"GL_ARB_texture_view "

-			"GL_ARB_timer_query "

-			"GL_ARB_transform_feedback2 "

-			"GL_ARB_transform_feedback3 "

-			"GL_ARB_transform_feedback_instanced "

-			"GL_ARB_transform_feedback_overflow_query "

-			"GL_ARB_transpose_matrix "

-			"GL_ARB_uniform_buffer_object "

-			"GL_ARB_vertex_array_bgra "

-			"GL_ARB_vertex_array_object "

-			"GL_ARB_vertex_attrib_64bit "

-			"GL_ARB_vertex_attrib_binding "

-			"GL_ARB_vertex_buffer_object "

-			"GL_ARB_vertex_program "

-			"GL_ARB_vertex_shader "

-			"GL_ARB_vertex_type_10f_11f_11f_rev "

-			"GL_ARB_vertex_type_2_10_10_10_rev "

-			"GL_ARB_viewport_array "

-			"GL_ARB_window_pos "

-			"GL_ATI_draw_buffers "

-			"GL_ATI_texture_float "

-			"GL_ATI_texture_mirror_once "

-			"GL_EXT_abgr "

-			"GL_EXT_bgra "

-			"GL_EXT_bindable_uniform "

-			"GL_EXT_blend_color "

-			"GL_EXT_blend_equation_separate "

-			"GL_EXT_blend_func_separate "

-			"GL_EXT_blend_minmax "

-			"GL_EXT_blend_subtract "

-			"GL_EXT_Cg_shader "

-			"GL_EXT_compiled_vertex_array "

-			"GL_EXT_depth_bounds_test "

-			"GL_EXT_direct_state_access "

-			"GL_EXT_draw_buffers2 "

-			"GL_EXT_draw_instanced "

-			"GL_EXT_draw_range_elements "

-			"GL_EXT_fog_coord "

-			"GL_EXT_framebuffer_blit "

-			"GL_EXT_framebuffer_multisample "

-			"GL_EXT_framebuffer_multisample_blit_scaled "

-			"GL_EXT_framebuffer_object "

-			"GL_EXT_framebuffer_sRGB "

-			"GL_EXT_geometry_shader4 "

-			"GL_EXT_gpu_program_parameters "

-			"GL_EXT_gpu_shader4 "

-			"GL_EXT_import_sync_object "

-			"GL_EXT_multi_draw_arrays "

-			"GL_EXT_packed_depth_stencil "

-			"GL_EXT_packed_float "

-			//"GL_EXT_packed_pixels "

-			//"GL_EXT_pixel_buffer_object "

-			"GL_EXT_point_parameters "

-			"GL_EXT_polygon_offset_clamp "

-			"GL_EXT_provoking_vertex "

-			"GL_EXT_rescale_normal "

-			"GL_EXT_secondary_color "

-			"GL_EXT_separate_shader_objects "

-			"GL_EXT_separate_specular_color "

-			"GL_EXT_shader_image_load_store "

-			"GL_EXT_shader_integer_mix "

-			"GL_EXT_shadow_funcs "

-			"GL_EXT_stencil_two_side "

-			"GL_EXT_stencil_wrap "

-			"GL_EXT_texture3D "

-			"GL_EXT_texture_array "

-			"GL_EXT_texture_buffer_object "

-			"GL_EXT_texture_compression_dxt1 "

-			"GL_EXT_texture_compression_latc "

-			"GL_EXT_texture_compression_rgtc "

-			"GL_EXT_texture_compression_s3tc "

-			"GL_EXT_texture_cube_map "

-			"GL_EXT_texture_edge_clamp "

-			"GL_EXT_texture_env_add "

-			"GL_EXT_texture_env_combine "

-			"GL_EXT_texture_env_dot3 "

-			"GL_EXT_texture_filter_anisotropic "

-			"GL_EXT_texture_integer "

-			"GL_EXT_texture_lod "

-			"GL_EXT_texture_lod_bias "

-			"GL_EXT_texture_mirror_clamp "

-			"GL_EXT_texture_object "

-			"GL_EXT_texture_shared_exponent "

-			"GL_EXT_texture_sRGB "

-			"GL_EXT_texture_sRGB_decode "

-			"GL_EXT_texture_storage "

-			"GL_EXT_texture_swizzle "

-			"GL_EXT_timer_query "

-			"GL_EXT_transform_feedback2 "

-			"GL_EXT_vertex_array "

-			"GL_EXT_vertex_array_bgra "

-			"GL_EXT_vertex_attrib_64bit "

-			"GL_EXTX_framebuffer_mixed_formats "

-			"GL_IBM_rasterpos_clip "

-			"GL_IBM_texture_mirrored_repeat "

-			"GL_KHR_blend_equation_advanced "

-			"GL_KHR_context_flush_control "

-			"GL_KHR_debug "

-			"GL_KHR_robust_buffer_access_behavior "

-			"GL_KHR_robustness "

-			"GL_KTX_buffer_region "

-			"GL_NV_bindless_multi_draw_indirect "

-			"GL_NV_bindless_multi_draw_indirect_count "

-			"GL_NV_bindless_texture "

-			"GL_NV_blend_equation_advanced "

-			"GL_NV_blend_square "

-			"GL_NV_command_list "

-			"GL_NV_compute_program5 "

-			"GL_NV_conditional_render "

-			"GL_NV_copy_depth_to_color "

-			"GL_NV_copy_image "

-			"GL_NV_deep_texture3D "

-			"GL_NV_depth_buffer_float "

-			"GL_NV_depth_clamp "

-			"GL_NV_draw_texture "

-			"GL_NV_ES1_1_compatibility "

-			"GL_NV_ES3_1_compatibility "

-			"GL_NV_explicit_multisample "

-			"GL_NV_fence "

-			"GL_NV_float_buffer "

-			"GL_NV_fog_distance "

-			"GL_NV_fragment_program "

-			"GL_NV_fragment_program2 "

-			"GL_NV_fragment_program_option "

-			"GL_NV_framebuffer_multisample_coverage "

-			"GL_NV_geometry_shader4 "

-			"GL_NV_gpu_program4 "

-			"GL_NV_gpu_program4_1 "

-			"GL_NV_gpu_program5 "

-			"GL_NV_gpu_program5_mem_extended "

-			"GL_NV_gpu_program_fp64 "

-			"GL_NV_gpu_shader5 "

-			"GL_NV_half_float "

-			"GL_NV_internalformat_sample_query "

-			"GL_NV_light_max_exponent "

-			"GL_NV_multisample_coverage "

-			"GL_NV_multisample_filter_hint "

-			"GL_NV_occlusion_query "

-			"GL_NV_packed_depth_stencil "

-			"GL_NV_parameter_buffer_object "

-			"GL_NV_parameter_buffer_object2 "

-			"GL_NV_path_rendering "

-			//"GL_NV_pixel_data_range "

-			"GL_NV_point_sprite "

-			"GL_NV_primitive_restart "

-			"GL_NV_register_combiners "

-			"GL_NV_register_combiners2 "

-			"GL_NV_shader_atomic_counters "

-			"GL_NV_shader_atomic_float "

-			"GL_NV_shader_buffer_load "

-			"GL_NV_shader_storage_buffer_object "

-			"GL_NV_shader_thread_group "

-			"GL_NV_shader_thread_shuffle "

-			"GL_NV_texgen_reflection "

-			"GL_NV_texture_barrier "

-			"GL_NV_texture_compression_vtc "

-			"GL_NV_texture_env_combine4 "

-			"GL_NV_texture_multisample "

-			"GL_NV_texture_rectangle "

-			"GL_NV_texture_shader "

-			"GL_NV_texture_shader2 "

-			"GL_NV_texture_shader3 "

-			"GL_NV_transform_feedback "

-			"GL_NV_transform_feedback2 "

-			"GL_NV_uniform_buffer_unified_memory "

-			"GL_NV_vertex_array_range "

-			"GL_NV_vertex_array_range2 "

-			"GL_NV_vertex_attrib_integer_64bit "

-			"GL_NV_vertex_buffer_unified_memory "

-			"GL_NV_vertex_program "

-			"GL_NV_vertex_program1_1 "

-			"GL_NV_vertex_program2 "

-			"GL_NV_vertex_program2_option "

-			"GL_NV_vertex_program3 "

-			"GL_NV_video_capture "

-			"GL_NVX_conditional_render "

-			"GL_NVX_gpu_memory_info "

-			"GL_NVX_nvenc_interop "

-			"GL_S3_s3tc "

-			"GL_SGIS_generate_mipmap "

-			"GL_SGIS_texture_lod "

-			"GL_SGIX_depth_texture "

-			"GL_SGIX_shadow "

-			"GL_SUN_slice_accum "

-			//"GL_WIN_swap_hint "

-			"WGL_ARB_buffer_region "

-			"WGL_ARB_context_flush_control "

-			"WGL_ARB_create_context "

-			"WGL_ARB_create_context_profile "

-			"WGL_ARB_create_context_robustness "

-			"WGL_ARB_extensions_string "

-			"WGL_ARB_make_current_read "

-			"WGL_ARB_multisample "

-			"WGL_ARB_pbuffer "

-			//"WGL_ARB_pixel_format "

-			//"WGL_ARB_pixel_format_float "

-			"WGL_ARB_render_texture "

-			//"WGL_ATI_pixel_format_float "

-			"WGL_EXT_create_context_es2_profile "

-			"WGL_EXT_create_context_es_profile "

-			"WGL_EXT_extensions_string "

-			"WGL_EXT_framebuffer_sRGB "

-			//"WGL_EXT_pixel_format_packed_float "

-			"WGL_EXT_swap_control "

-			"WGL_EXT_swap_control_tear "

-			"WGL_NV_copy_image "

-			"WGL_NV_delay_before_swap "

-			"WGL_NV_DX_interop "

-			"WGL_NV_DX_interop2 "

-			"WGL_NV_float_buffer "

-			"WGL_NV_gpu_affinity "

-			"WGL_NV_multisample_coverage "

-			"WGL_NV_render_depth_texture "

-			"WGL_NV_render_texture_rectangle "

-			"WGL_NV_swap_group "

-			"WGL_NV_video_capture "

-			"WGL_NVX_DX_interop";

-

-

-			/*"WGL_ARB_extensions_string "

-			"GL_ARB_extensions_string "

-			"WGL_ARB_create_context "

-			"GL_ARB_create_context "

-			"GL_ARB_texture_non_power_of_two "

-			"GL_ARB_framebuffer_object "

-			"GL_ARB_fragment_shader "

-			"GL_ARB_vertex_shader "

-			"GL_ARB_shader_objects "

-			"GL_ARB_shading_language_100 "

-			"GL_EXT_framebuffer_object "

 			"GL_EXT_blend_minmax "

 			"GL_EXT_depth_texture "

 			"GL_EXT_depth_texture_cube_map "

 			"GL_EXT_element_index_uint "

 			"GL_EXT_packed_depth_stencil "

 			"GL_EXT_rgb8_rgba8 "

+			//"GL_EXT_pixel_buffer_object "

 			"GL_EXT_standard_derivatives "

 			"GL_EXT_texture_float "

 			"GL_EXT_texture_float_linear "

@@ -4000,6 +3131,11 @@
 			"GL_EXT_blend_func_separate "

 			"GL_EXT_secondary_color "

 			"GL_EXT_texture_filter_anisotropic "

+			//"GL_NV_pixel_data_range "

+			//"WGL_ARB_pixel_format "

+			//"WGL_ARB_pixel_format_float "

+			//"WGL_ATI_pixel_format_float "

+			//"WGL_EXT_pixel_format_packed_float "

 			"GL_EXT_texture_format_BGRA8888 "

 			"GL_EXT_framebuffer_blit "

 			"GL_EXT_framebuffer_multisample "

@@ -4007,330 +3143,7 @@
 			"GL_EXT_texture_compression_dxt3 "

 			"GL_EXT_texture_compression_dxt5 "

 			#endif

-			"GL_NV_fence";*/

-

-

-

-			/*"GL_AMD_multi_draw_indirect "

-			"GL_AMD_seamless_cubemap_per_texture "

-			"GL_ARB_arrays_of_arrays "

-			"GL_ARB_base_instance "

-			"GL_ARB_bindless_texture "

-			"GL_ARB_blend_func_extended "

-			"GL_ARB_buffer_storage "

-			"GL_ARB_clear_buffer_object "

-			"GL_ARB_clear_texture "

-			"GL_ARB_color_buffer_float "

-			"GL_ARB_compatibility "

-			"GL_ARB_compressed_texture_pixel_storage "

-			"GL_ARB_conservative_depth "

-			"GL_ARB_compute_shader "

-			"GL_ARB_compute_variable_group_size "

-			"GL_ARB_copy_buffer "

-			"GL_ARB_copy_image "

-			"GL_ARB_debug_output "

-			"GL_ARB_depth_buffer_float "

-			"GL_ARB_depth_clamp "

-			"GL_ARB_depth_texture "

-			"GL_ARB_draw_buffers "

-			"GL_ARB_draw_buffers_blend "

-			"GL_ARB_draw_indirect "

-			"GL_ARB_draw_elements_base_vertex "

-			"GL_ARB_draw_instanced "

-			"GL_ARB_enhanced_layouts "

-			"GL_ARB_ES2_compatibility "

-			"GL_ARB_ES3_compatibility "

-			"GL_ARB_explicit_attrib_location "

-			"GL_ARB_explicit_uniform_location "

-			"GL_ARB_fragment_coord_conventions "

-			"GL_ARB_fragment_layer_viewport "

-			"GL_ARB_fragment_program "

-			"GL_ARB_fragment_program_shadow "

-			"GL_ARB_fragment_shader "

-			"GL_ARB_framebuffer_no_attachments "

-			"GL_ARB_framebuffer_object "

-			"GL_ARB_framebuffer_sRGB "

-			"GL_ARB_geometry_shader4 "

-			"GL_ARB_get_program_binary "

-			"GL_ARB_gpu_shader5 "

-			"GL_ARB_gpu_shader_fp64 "

-			"GL_ARB_half_float_pixel "

-			"GL_ARB_half_float_vertex "

-			"GL_ARB_indirect_parameters "

-			"GL_ARB_instanced_arrays "

-			"GL_ARB_internalformat_query "

-			"GL_ARB_internalformat_query2 "

-			"GL_ARB_invalidate_subdata "

-			"GL_ARB_map_buffer_alignment "

-			"GL_ARB_map_buffer_range "

-			"GL_ARB_multi_bind "

-			"GL_ARB_multi_draw_indirect "

-			"GL_ARB_multisample "

-			"GL_ARB_multitexture "

-			"GL_ARB_occlusion_query "

-			"GL_ARB_occlusion_query2 "

-			"GL_ARB_pixel_buffer_object "

-			"GL_ARB_point_parameters "

-			"GL_ARB_point_sprite "

-			"GL_ARB_program_interface_query "

-			"GL_ARB_provoking_vertex "

-			"GL_ARB_robust_buffer_access_behavior "

-			"GL_ARB_robustness "

-			"GL_ARB_sample_shading "

-			"GL_ARB_sampler_objects "

-			"GL_ARB_seamless_cube_map "

-			"GL_ARB_seamless_cubemap_per_texture "

-			"GL_ARB_separate_shader_objects "

-			"GL_ARB_shader_atomic_counters "

-			"GL_ARB_shader_bit_encoding "

-			"GL_ARB_shader_draw_parameters "

-			"GL_ARB_shader_group_vote "

-			"GL_ARB_shader_image_load_store "

-			"GL_ARB_shader_image_size "

-			"GL_ARB_shader_objects "

-			"GL_ARB_shader_precision "

-			"GL_ARB_query_buffer_object "

-			"GL_ARB_shader_storage_buffer_object "

-			"GL_ARB_shader_subroutine "

-			"GL_ARB_shader_texture_lod "

-			"GL_ARB_shading_language_100 "

-			"GL_ARB_shading_language_420pack "

-			"GL_ARB_shading_language_include "

-			"GL_ARB_shading_language_packing "

-			"GL_ARB_shadow "

-			"GL_ARB_sparse_texture "

-			"GL_ARB_stencil_texturing "

-			"GL_ARB_sync "

-			"GL_ARB_tessellation_shader "

-			"GL_ARB_texture_border_clamp "

-			"GL_ARB_texture_buffer_object "

-			"GL_ARB_texture_buffer_object_rgb32 "

-			"GL_ARB_texture_buffer_range "

-			"GL_ARB_texture_compression "

-			"GL_ARB_texture_compression_bptc "

-			"GL_ARB_texture_compression_rgtc "

-			"GL_ARB_texture_cube_map "

-			"GL_ARB_texture_cube_map_array "

-			"GL_ARB_texture_env_add "

-			"GL_ARB_texture_env_combine "

-			"GL_ARB_texture_env_crossbar "

-			"GL_ARB_texture_env_dot3 "

-			"GL_ARB_texture_float "

-			"GL_ARB_texture_gather "

-			"GL_ARB_texture_mirror_clamp_to_edge "

-			"GL_ARB_texture_mirrored_repeat "

-			"GL_ARB_texture_multisample "

-			"GL_ARB_texture_non_power_of_two "

-			"GL_ARB_texture_query_levels "

-			"GL_ARB_texture_query_lod "

-			"GL_ARB_texture_rectangle "

-			"GL_ARB_texture_rg "

-			"GL_ARB_texture_rgb10_a2ui "

-			"GL_ARB_texture_stencil8 "

-			"GL_ARB_texture_storage "

-			"GL_ARB_texture_storage_multisample "

-			"GL_ARB_texture_swizzle "

-			"GL_ARB_texture_view "

-			"GL_ARB_timer_query "

-			"GL_ARB_transform_feedback2 "

-			"GL_ARB_transform_feedback3 "

-			"GL_ARB_transform_feedback_instanced "

-			"GL_ARB_transpose_matrix "

-			"GL_ARB_uniform_buffer_object "

-			"GL_ARB_vertex_array_bgra "

-			"GL_ARB_vertex_array_object "

-			"GL_ARB_vertex_attrib_64bit "

-			"GL_ARB_vertex_attrib_binding "

-			"GL_ARB_vertex_buffer_object "

-			"GL_ARB_vertex_program "

-			"GL_ARB_vertex_shader "

-			"GL_ARB_vertex_type_10f_11f_11f_rev "

-			"GL_ARB_vertex_type_2_10_10_10_rev "

-			"GL_ARB_viewport_array "

-			"GL_ARB_window_pos "

-			"GL_ATI_draw_buffers "

-			"GL_ATI_texture_float "

-			"GL_ATI_texture_mirror_once "

-			"GL_S3_s3tc "

-			"GL_EXT_abgr "

-			"GL_EXT_bgra "

-			"GL_EXT_bindable_uniform "

-			"GL_EXT_blend_color "

-			"GL_EXT_blend_equation_separate "

-			"GL_EXT_blend_func_separate "

-			"GL_EXT_blend_minmax "

-			"GL_EXT_blend_subtract "

-			"GL_EXT_compiled_vertex_array "

-			"GL_EXT_Cg_shader "

-			"GL_EXT_depth_bounds_test "

-			"GL_EXT_direct_state_access "

-			"GL_EXT_draw_buffers2 "

-			"GL_EXT_draw_instanced "

-			"GL_EXT_draw_range_elements "

-			"GL_EXT_fog_coord "

-			"GL_EXT_framebuffer_blit "

-			"GL_EXT_framebuffer_multisample "

-			"GL_EXT_framebuffer_multisample_blit_scaled "

-			"GL_EXT_framebuffer_object "

-			"GL_EXT_framebuffer_sRGB "

-			"GL_EXT_geometry_shader4 "

-			"GL_EXT_gpu_program_parameters "

-			"GL_EXT_gpu_shader4 "

-			"GL_EXT_multi_draw_arrays "

-			"GL_EXT_packed_depth_stencil "

-			"GL_EXT_packed_float "

-			"GL_EXT_packed_pixels "

-			"GL_EXT_pixel_buffer_object "

-			"GL_EXT_point_parameters "

-			"GL_EXT_post_depth_coverage "

-			"GL_EXT_provoking_vertex "

-			"GL_EXT_rescale_normal "

-			"GL_EXT_raster_multisample "

-			"GL_EXT_secondary_color "

-			"GL_EXT_separate_shader_objects "

-			"GL_EXT_separate_specular_color "

-			"GL_EXT_shader_image_load_formatted "

-			"GL_EXT_shader_image_load_store "

-			"GL_EXT_shader_integer_mix "

-			"GL_EXT_shadow_funcs "

-			"GL_EXT_sparse_texture2 "

-			"GL_EXT_stencil_two_side "

-			"GL_EXT_stencil_wrap "

-			"GL_EXT_texture3D "

-			"GL_EXT_texture_array "

-			"GL_EXT_texture_buffer_object "

-			"GL_EXT_texture_compression_dxt1 "

-			"GL_EXT_texture_compression_latc "

-			"GL_EXT_texture_compression_rgtc "

-			"GL_EXT_texture_compression_s3tc "

-			"GL_EXT_texture_cube_map "

-			"GL_EXT_texture_edge_clamp "

-			"GL_EXT_texture_env_add "

-			"GL_EXT_texture_env_combine "

-			"GL_EXT_texture_env_dot3 "

-			"GL_EXT_texture_filter_anisotropic "

-			"GL_EXT_texture_filter_minmax "

-			"GL_EXT_texture_integer "

-			"GL_EXT_texture_lod_bias "

-			"GL_EXT_texture_mirror_clamp "

-			"GL_EXT_texture_object "

-			"GL_EXT_texture_shared_exponent "

-			"GL_EXT_texture_sRGB "

-			"GL_EXT_texture_sRGB_decode "

-			"GL_EXT_texture_swizzle "

-			"GL_EXT_timer_query "

-			"GL_EXT_transform_feedback2 "

-			"GL_EXT_vertex_array "

-			"GL_EXT_vertex_array_bgra "

-			"GL_EXT_vertex_attrib_64bit "

-			"GL_EXT_import_sync_object "

-			"GL_KHR_debug "

-			"GL_NV_bindless_multi_draw_indirect "

-			"GL_NV_bindless_texture "

-			"GL_NV_blend_equation_advanced "

-			"GL_NV_blend_square "

-			"GL_NV_command_list "

-			"GL_NV_compute_program5 "

-			"GL_NV_conditional_render "

-			"GL_NV_conservative_raster "

-			"GL_NV_copy_depth_to_color "

-			"GL_NV_copy_image "

-			"GL_NV_deep_texture3D "

-			"GL_NV_depth_buffer_float "

-			"GL_NV_depth_clamp "

-			"GL_NV_draw_texture "

-			"GL_NV_explicit_multisample "

-			"GL_NV_fence "

-			"GL_NV_fill_rectangle "

-			"GL_NV_float_buffer "

-			"GL_NV_fog_distance "

-			"GL_NV_fragment_coverage_to_color "

-			"GL_NV_fragment_program "

-			"GL_NV_fragment_program_option "

-			"GL_NV_fragment_program2 "

-			"GL_NV_fragment_shader_interlock "

-			"GL_NV_framebuffer_mixed_samples "

-			"GL_NV_framebuffer_multisample_coverage "

-			"GL_NV_geometry_shader_passthrough "

-			"GL_NV_geometry_shader4 "

-			"GL_NV_gpu_program4 "

-			"GL_NV_gpu_program5 "

-			"GL_NV_gpu_program5_mem_extended "

-			"GL_NV_gpu_shader5 "

-			"GL_NV_half_float "

-			"GL_NV_light_max_exponent "

-			"GL_NV_multisample_coverage "

-			"GL_NV_multisample_filter_hint "

-			"GL_NV_occlusion_query "

-			"GL_NV_packed_depth_stencil "

-			"GL_NV_parameter_buffer_object "

-			"GL_NV_parameter_buffer_object2 "

-			"GL_NV_path_rendering "

-			"GL_NV_path_rendering_shared_edge "

-			"GL_NV_pixel_data_range "

-			"GL_NV_point_sprite "

-			"GL_NV_primitive_restart "

-			"GL_NV_register_combiners "

-			"GL_NV_register_combiners2 "

-			"GL_NV_sample_locations "

-			"GL_NV_sample_mask_override_coverage "

-			"GL_NV_shader_atomic_counters "

-			"GL_NV_shader_atomic_fp16_vector "

-			"GL_NV_shader_atomic_float "

-			"GL_NV_shader_buffer_load "

-			"GL_NV_shader_storage_buffer_object "

-			"GL_NV_shader_thread_group "

-			"GL_NV_shader_thread_shuffle "

-			"GL_NV_texgen_reflection "

-			"GL_NV_texture_barrier "

-			"GL_NV_texture_compression_vtc "

-			"GL_NV_texture_env_combine4 "

-			"GL_NV_texture_expand_normal "

-			"GL_NV_texture_multisample "

-			"GL_NV_texture_rectangle "

-			"GL_NV_texture_shader "

-			"GL_NV_texture_shader2 "

-			"GL_NV_texture_shader3 "

-			"GL_NV_transform_feedback "

-			"GL_NV_transform_feedback2 "

-			"GL_NV_vertex_array_range "

-			"GL_NV_vertex_array_range2 "

-			"GL_NV_vertex_attrib_integer_64bit "

-			"GL_NV_vertex_buffer_unified_memory "

-			"GL_NV_vertex_program "

-			"GL_NV_vertex_program1_1 "

-			"GL_NV_vertex_program2 "

-			"GL_NV_vertex_program2_option "

-			"GL_NV_vertex_program3 "

-			"GL_NV_video_capture "

-			"GL_NVX_conditional_render "

-			"GL_NVX_gpu_memory_info "

-			"GL_SGIS_generate_mipmap "

-			"GL_SGIS_texture_lod "

-			"GL_SGIX_depth_texture "

-			"GL_SGIX_shadow "

-			"GL_SUN_slice_accum "

-			"WGL_ARB_buffer_region "

-			"WGL_ARB_create_context "

-			"WGL_ARB_extensions_string "

-			"WGL_ARB_pbuffer "

-			"WGL_ARB_pixel_format "

-			"WGL ARB render texture "

-			"WGL ATI pixel_format_float "

-			"WGL_EXT_extensions_string "

-			"WGL_EXT_pbuffer "

-			"WGL_EXT_pixel_format "

-			"WGL_EXT_swap_control "

-			"WGL_EXT_swap_control_tear "

-			"WGL_NV_dx_interop "

-			"WGL_NV_gpu_affinity "

-			"WGL NV render depth texture "

-			"WGL NV render texture rectangle "

-			"WGL_NV_swap_group "

-			"WGL_NV_video_out";*/

-

-

-

+			"GL_NV_fence";

 	default:

 		return error(GL_INVALID_ENUM, (GLubyte*)NULL);

 	}

@@ -4983,49 +3796,6 @@
 	{

 		switch(pname)

 		{

-		case GL_UNPACK_SWAP_BYTES:

-			if(param != GL_TRUE && param != GL_FALSE)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackSwapBytes(param);

-			if(param == GL_TRUE)

-			{

-				UNIMPLEMENTED();

-			}

-			break;

-		case GL_UNPACK_LSB_FIRST:

-			if(param != GL_TRUE && param != GL_FALSE)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackLsbFirst(param);

-			if(param == GL_TRUE)

-			{

-				UNIMPLEMENTED();

-			}

-			break;

-		case GL_UNPACK_ROW_LENGTH:

-			if(param < 0)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackRowLength(param);

-			break;

-		case GL_UNPACK_SKIP_ROWS:

-			if(param < 0)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackSkipRows(param);

-			break;

-		case GL_UNPACK_SKIP_PIXELS:

-			if(param < 0)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackSkipPixels(param);

-			break;

 		case GL_UNPACK_ALIGNMENT:

 			if(param != 1 && param != 2 && param != 4 && param != 8)

 			{

@@ -5040,28 +3810,6 @@
 			}

 			context->setPackAlignment(param);

 			break;

-		case GL_UNPACK_SKIP_IMAGES:

-			if(param < 0)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackSkipImages(param);

-			if(param != 0)

-			{

-				UNIMPLEMENTED();

-			}

-			break;

-		case GL_UNPACK_IMAGE_HEIGHT:

-			if(param < 0)

-			{

-				return error(GL_INVALID_VALUE);

-			}

-			context->setUnpackImageHeight(param);

-			if(param != 0)

-			{

-				UNIMPLEMENTED();

-			}

-			break;

 		default:

 			return error(GL_INVALID_ENUM);

 		}

@@ -5647,9 +4395,7 @@
 

 	switch(target)

 	{

-	case GL_TEXTURE_1D:

 	case GL_TEXTURE_2D:

-	case GL_TEXTURE_RECTANGLE:

 		if(width > (gl::IMPLEMENTATION_MAX_TEXTURE_SIZE >> level) ||

 		   height > (gl::IMPLEMENTATION_MAX_TEXTURE_SIZE >> level))

 		{

@@ -5717,18 +4463,7 @@
 			UNIMPLEMENTED();

 		}

 

-		if(target == GL_TEXTURE_1D)

-		{

-			gl::Texture1D *texture = context->getTexture1D();

-

-			if(!texture)

-			{

-				return error(GL_INVALID_OPERATION);

-			}

-

-			texture->setImage(level, width, height, format, type, context->getUnpackAlignment(), pixels);

-		}

-		else if(target == GL_TEXTURE_2D || target == GL_PROXY_TEXTURE_2D || target == GL_TEXTURE_RECTANGLE)

+		if(target == GL_TEXTURE_2D || target == GL_PROXY_TEXTURE_2D)

 		{

 			gl::Texture2D *texture = context->getTexture2D(target);

 

@@ -5854,14 +4589,6 @@
 

 		switch(target)

 		{

-		case GL_TEXTURE_RECTANGLE:

-			if(!context->getRectangleTextureEnable())

-			{

-				return error(GL_INVALID_VALUE);

-			}

-		case GL_TEXTURE_1D:

-			texture = context->getTexture1D();

-			break;

 		case GL_TEXTURE_2D:

 			texture = context->getTexture2D(target);

 			break;

@@ -5967,16 +4694,8 @@
 		{

 			return error(GL_INVALID_VALUE);

 		}

-		if(target == GL_TEXTURE_1D)

-		{

-			gl::Texture1D *texture = context->getTexture1D();

 

-			if(validateSubImageParams(false, width, height, xoffset, yoffset, target, level, format, texture))

-			{

-				texture->subImage(level, xoffset, yoffset, width, height, format, type, context->getUnpackAlignment(), pixels);

-			}

-		}

-		else if(target == GL_TEXTURE_2D || target == GL_TEXTURE_RECTANGLE)

+		if(target == GL_TEXTURE_2D)

 		{

 			gl::Texture2D *texture = context->getTexture2D(target);

 

@@ -8276,25 +6995,12 @@
 

 void APIENTRY glPopAttrib(void)

 {

-	TRACE("()");

 	UNIMPLEMENTED();

 }

 

 void APIENTRY glPopClientAttrib(void)

 {

-	TRACE("()");

-	

-	gl::Context *context = gl::getContext();

-

-	if(context)

-	{

-		if(context->getListIndex() != 0)

-		{

-			UNIMPLEMENTED();

-		}

-

-		context->popClientAttrib();

-	}

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glPopMatrix(void)

@@ -8326,25 +7032,12 @@
 

 void APIENTRY glPushAttrib(GLbitfield mask)

 {

-	TRACE("(GLbitfield mask = %u)", mask);

-	//UNIMPLEMENTED();

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glPushClientAttrib(GLbitfield mask)

 {

-	TRACE("(GLbitfield mask = %u)", mask);

-

-	gl::Context *context = gl::getContext();

-

-	if(context)

-	{

-		if(context->getListIndex() != 0)

-		{

-			UNIMPLEMENTED();

-		}

-

-		context->pushClientAttrib(mask);

-	}

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glPushMatrix(void)

@@ -8806,30 +7499,7 @@
 

 void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param)

 {

-	TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);

-	

-	if(target != GL_TEXTURE_ENV || pname != GL_TEXTURE_ENV_MODE)

-	{

-		return error(GL_INVALID_ENUM);

-	}

-

-	switch((GLenum)param)

-	{

-	case GL_REPLACE:

-	case GL_MODULATE:

-	case GL_DECAL:

-	case GL_BLEND:

-		break;

-	default:

-		error(GL_INVALID_ENUM);

-	}

-

-	gl::Context *context = gl::getContext();

-

-	if(context)

-	{

-		context->setTextureEnvMode((GLenum)param);

-	}

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint *params)

@@ -8869,20 +7539,12 @@
 

 void APIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)

 {

-	TRACE("(GLenum target = 0x%X, GLint level = %d, GLint internalformat = %d, GLsizei width = %d, "

-		"GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const GLvoid* pixels =  %p)",

-		target, level, internalformat, width, border, format, type, pixels);

-	

-	glTexImage2D(target, level, internalformat, width, 1, border, format, type, pixels);

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)

 {

-	TRACE("(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLsizei width = %d, "

-		"GLenum format =  0x%X, GLenum type = 0x%X, const GLvoid* pixels =  %p)",

-		target, level, xoffset, width, format, type, pixels);

-

-	glTexSubImage2D(target, level, xoffset, 0, width, 1, format, type, pixels);

+	UNIMPLEMENTED();

 }

 

 void APIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z)

@@ -8991,11 +7653,6 @@
 	UNIMPLEMENTED();

 }

 

-GLAPI void APIENTRY glVertexAttrib4dv(GLuint index, const GLdouble *v)

-{

-	UNIMPLEMENTED();

-}

-

 void APIENTRY glVertex3i(GLint x, GLint y, GLint z)

 {

 	UNIMPLEMENTED();

@@ -9178,927 +7835,6 @@
 void APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {UNIMPLEMENTED();}

 void APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {UNIMPLEMENTED();}

 

-void WINAPI glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name) { UNIMPLEMENTED(); }

-void WINAPI glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name) { UNIMPLEMENTED(); }

-GLint WINAPI glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name) { UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glDeleteObjectARB(GLhandleARB obj){ UNIMPLEMENTED(); }

-GLAPI GLhandleARB APIENTRY glGetHandleARB(GLenum pname){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj){ UNIMPLEMENTED(); }

-GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB(GLenum shaderType){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glCompileShaderARB(GLhandleARB shaderObj){ UNIMPLEMENTED(); }

-GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB(void){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glLinkProgramARB(GLhandleARB programObj){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUseProgramObjectARB(GLhandleARB programObj){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glValidateProgramARB(GLhandleARB programObj){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform1fARB(GLint location, GLfloat v0){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform2fARB(GLint location, GLfloat v0, GLfloat v1){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform1iARB(GLint location, GLint v0){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform2iARB(GLint location, GLint v0, GLint v1){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform1ivARB(GLint location, GLsizei count, const GLint *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform2ivARB(GLint location, GLsizei count, const GLint *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform3ivARB(GLint location, GLsizei count, const GLint *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniform4ivARB(GLint location, GLsizei count, const GLint *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj){ UNIMPLEMENTED(); }

-GLAPI GLint APIENTRY glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source){ UNIMPLEMENTED(); }

-

-GLAPI GLboolean APIENTRY glIsRenderbufferEXT(GLuint renderbuffer){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glBindRenderbufferEXT(GLenum target, GLuint renderbuffer){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params){ UNIMPLEMENTED(); }

-GLAPI GLboolean APIENTRY glIsFramebufferEXT(GLuint framebuffer){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glBindFramebufferEXT(GLenum target, GLuint framebuffer){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers)

-{ 

-	TRACE("(GLsizei n = %d, const GLuint* framebuffers = %p)", n, framebuffers);

-	

-	glDeleteFramebuffers(n, framebuffers);

-}

-GLAPI void APIENTRY glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers)

-{ 

-	TRACE("(GLsizei n = %d, GLuint* framebuffers = %p)", n, framebuffers);

-

-	glGenFramebuffers(n, framebuffers);

-}

-GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT(GLenum target){ UNIMPLEMENTED(); return 0; }

-GLAPI void APIENTRY glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params){ UNIMPLEMENTED(); }

-GLAPI void APIENTRY glGenerateMipmapEXT(GLenum target){ UNIMPLEMENTED(); }

-

-HGLRC WINAPI wglCreateContextAttribsARB(HDC hDC, HGLRC hShareContext, const int *attribList)

-{

-	return wglCreateContext(hDC);

-}

-

-HANDLE WINAPI wglCreateBufferRegionARB(HDC hDC, int iLayerPlane, UINT uType) { UNIMPLEMENTED(); return 0; }

-VOID WINAPI wglDeleteBufferRegionARB(HANDLE hRegion) { UNIMPLEMENTED(); }

-BOOL WINAPI wglSaveBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height) { UNIMPLEMENTED(); return FALSE; }

-BOOL WINAPI wglRestoreBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc) { UNIMPLEMENTED(); return FALSE; }

-

-void APIENTRY glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetBooleani_v(GLenum target, GLuint index, GLboolean *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnablei(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisablei(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsEnabledi(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glBeginTransformFeedback(GLenum primitiveMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndTransformFeedback(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClampColor(GLenum target, GLenum clamp){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBeginConditionalRender(GLuint id, GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndConditionalRender(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1i(GLuint index, GLint x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2i(GLuint index, GLint x, GLint y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1ui(GLuint index, GLuint x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2ui(GLuint index, GLuint x, GLuint y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1iv(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2iv(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3iv(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4iv(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1uiv(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2uiv(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3uiv(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4bv(GLuint index, const GLbyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4sv(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4ubv(GLuint index, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4usv(GLuint index, const GLushort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); }

-GLint APIENTRY glGetFragDataLocation(GLuint program, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glUniform1ui(GLint location, GLuint v0){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexParameterIiv(GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil){ TRACE("*"); UNIMPLEMENTED(); }

-const GLubyte *APIENTRY glGetStringi(GLenum name, GLuint index){ TRACE("*"); UNIMPLEMENTED(); return (GLubyte*)""; return 0; }

-void *APIENTRY glMapNamedBufferEXT(GLuint buffer, GLenum access){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-GLboolean APIENTRY glUnmapNamedBufferEXT(GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glcuR0d4nX(GLint* i1)

-{ 

-	i1[1] = 0;

-}

-//

-//000007FEE763807A  lea         rax, [rsp + 20h]

-//000007FEE763807F  lea         rcx, [rsp + 38h]

-//000007FEE7638084  mov         qword ptr[rsp + 20h], rbp

-//000007FEE7638089  mov         qword ptr[rsp + 28h], rsi

-//000007FEE763808E  mov         dword ptr[rsp + 38h], 0Dh

-//000007FEE7638096  mov         dword ptr[rsp + 3Ch], 8

-//000007FEE763809E  mov         qword ptr[rsp + 50h], rax

-//000007FEE76380A3  mov         dword ptr[rsp + 48h], 7

-//000007FEE76380AB  mov         qword ptr[rsp + 40h], 0

-//000007FEE76380B4  call        qword ptr[7FEE81F6890h]

-

-void APIENTRY glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPolygonOffsetEXT(GLfloat factor, GLfloat bias) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels) { TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glBindTextureEXT(GLenum target, GLuint texture) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteTexturesEXT(GLsizei n, const GLuint *textures) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenTexturesEXT(GLsizei n, GLuint *textures) { TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsTextureEXT(GLuint texture) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSampleCoverageARB(GLfloat value, GLboolean invert) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glActiveTextureARB(GLenum texture) 

-{ 

-	TRACE("(GLenum texture = 0x%X)", texture);

-	glActiveTexture(texture);

-}

-void APIENTRY glClientActiveTextureARB(GLenum texture) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1iARB(GLenum target, GLint s) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCompressedTexImageARB(GLenum target, GLint level, void *img) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameterfARB(GLenum pname, GLfloat param) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameterfvARB(GLenum pname, const GLfloat *params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBlendColorEXT(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordfEXT(GLfloat coord) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordfvEXT(const GLfloat *coord) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoorddEXT(GLdouble coord) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoorddvEXT(const GLdouble *coord) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordPointerEXT(GLenum type, GLsizei stride, const void *pointer) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenQueriesARB(GLsizei n, GLuint *ids) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteQueriesARB(GLsizei n, const GLuint *ids) { TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsQueryARB(GLuint id) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glBeginQueryARB(GLenum target, GLuint id) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndQueryARB(GLenum target) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetQueryivARB(GLenum target, GLenum pname, GLint *params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferARB(GLenum target, GLuint buffer) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteBuffersARB(GLsizei n, const GLuint *buffers) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenBuffersARB(GLsizei n, GLuint *buffers) { TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsBufferARB(GLuint buffer) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glBufferDataARB(GLenum target, GLsizeiptrARB size, const void *data, GLenum usage) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data) { TRACE("*"); UNIMPLEMENTED(); }

-void *APIENTRY glMapBufferARB(GLenum target, GLenum access) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-GLboolean APIENTRY glUnmapBufferARB(GLenum target) { TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetBufferPointervARB(GLenum target, GLenum pname, void **params) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawBuffersARB(GLsizei n, const GLenum *bufs) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glActiveStencilFaceEXT(GLenum face) { TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClampColorARB(GLenum target, GLenum clamp){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameteriARB(GLuint program, GLenum pname, GLint value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetColorTable(GLenum target, GLenum format, GLenum type, void *table){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionParameteri(GLenum target, GLenum pname, GLint params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, void *image){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetSeparableFilter(GLenum target, GLenum format, GLenum type, void *row, void *column, void *span){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, void *values){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, void *values){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMinmax(GLenum target, GLenum internalformat, GLboolean sink){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glResetHistogram(GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glResetMinmax(GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribDivisorARB(GLuint index, GLuint divisor){ TRACE("*"); UNIMPLEMENTED(); }

-void *APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindVertexArray(GLuint array){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint *arrays){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenVertexArrays(GLsizei n, GLuint *arrays){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsVertexArray(GLuint array){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glProgramStringARB(GLenum target, GLenum format, GLsizei len, const void *string){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindProgramARB(GLenum target, GLuint program){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteProgramsARB(GLsizei n, const GLuint *programs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenProgramsARB(GLsizei n, GLuint *programs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramivARB(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramStringARB(GLenum target, GLenum pname, void *string){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsProgramARB(GLuint program){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glEnableVertexAttribArrayARB(GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableVertexAttribArrayARB(GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribPointervARB(GLuint index, GLenum pname, void **pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1dARB(GLuint index, GLdouble x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1dvARB(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1fARB(GLuint index, GLfloat x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1fvARB(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1sARB(GLuint index, GLshort x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1svARB(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2dvARB(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2fvARB(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2svARB(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3dvARB(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3fvARB(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3svARB(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NbvARB(GLuint index, const GLbyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NivARB(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NsvARB(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NubvARB(GLuint index, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NuivARB(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4NusvARB(GLuint index, const GLushort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4bvARB(GLuint index, const GLbyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4dvARB(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4fvARB(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4ivARB(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4svARB(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4ubvARB(GLuint index, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4uivARB(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4usvARB(GLuint index, const GLushort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2dARB(GLdouble x, GLdouble y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2dvARB(const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2fARB(GLfloat x, GLfloat y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2fvARB(const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2iARB(GLint x, GLint y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2ivARB(const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2sARB(GLshort x, GLshort y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos2svARB(const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3dvARB(const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3fvARB(const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3iARB(GLint x, GLint y, GLint z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3ivARB(const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3sARB(GLshort x, GLshort y, GLshort z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glWindowPos3svARB(const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawBuffersATI(GLsizei n, const GLenum *bufs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniformBufferEXT(GLuint program, GLint location, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-GLint APIENTRY glGetUniformBufferSizeEXT(GLuint program, GLint location){ TRACE("*"); UNIMPLEMENTED();  return 0; }

-GLintptr APIENTRY glGetUniformOffsetEXT(GLuint program, GLint location){ TRACE("*"); UNIMPLEMENTED();  return 0; }

-void APIENTRY glLockArraysEXT(GLint first, GLsizei count){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUnlockArraysEXT(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDepthBoundsEXT(GLclampd zmin, GLclampd zmax){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixLoadfEXT(GLenum mode, const GLfloat *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixLoaddEXT(GLenum mode, const GLdouble *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixMultfEXT(GLenum mode, const GLfloat *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixMultdEXT(GLenum mode, const GLdouble *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixLoadIdentityEXT(GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixRotatefEXT(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixRotatedEXT(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixScalefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixScaledEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixTranslatefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixTranslatedEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixFrustumEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixOrthoEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixPopEXT(GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixPushEXT(GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClientAttribDefaultEXT(GLbitfield mask){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPushClientAttribDefaultEXT(GLbitfield mask){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnableClientStateIndexedEXT(GLenum array, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableClientStateIndexedEXT(GLenum array, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetPointerIndexedvEXT(GLenum target, GLuint index, void **data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnableIndexedEXT(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableIndexedEXT(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsEnabledIndexedEXT(GLenum target, GLuint index){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glGetIntegerIndexedvEXT(GLenum target, GLuint index, GLint *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetBooleanIndexedvEXT(GLenum target, GLuint index, GLboolean *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, void *img){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, void *img){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixLoadTransposefEXT(GLenum mode, const GLfloat *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixLoadTransposedEXT(GLenum mode, const GLdouble *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixMultTransposefEXT(GLenum mode, const GLfloat *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMatrixMultTransposedEXT(GLenum mode, const GLdouble *m){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, void **params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1fEXT(GLuint program, GLint location, GLfloat v0){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1iEXT(GLuint program, GLint location, GLint v0){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2iEXT(GLuint program, GLint location, GLint v0, GLint v1){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1uiEXT(GLuint program, GLint location, GLuint v0){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameterI4iEXT(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameterI4ivEXT(GLuint program, GLenum target, GLuint index, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParametersI4ivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameterI4uiEXT(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameterI4uivEXT(GLuint program, GLenum target, GLuint index, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParametersI4uivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramLocalParameterIivEXT(GLuint program, GLenum target, GLuint index, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramLocalParameterIuivEXT(GLuint program, GLenum target, GLuint index, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnableClientStateiEXT(GLenum array, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableClientStateiEXT(GLenum array, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetFloati_vEXT(GLenum pname, GLuint index, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetDoublei_vEXT(GLenum pname, GLuint index, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetPointeri_vEXT(GLenum pname, GLuint index, void **params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const void *string){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, void *string){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-GLenum APIENTRY glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glNamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenerateTextureMipmapEXT(GLuint texture, GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferTextureFaceEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureRenderbufferEXT(GLuint texture, GLenum target, GLuint renderbuffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexRenderbufferEXT(GLenum texunit, GLenum target, GLuint renderbuffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnableVertexArrayEXT(GLuint vaobj, GLenum array){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableVertexArrayEXT(GLuint vaobj, GLenum array){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, void **param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint *param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, void **param){ TRACE("*"); UNIMPLEMENTED(); }

-void *APIENTRY glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1dEXT(GLuint program, GLint location, GLdouble x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2dEXT(GLuint program, GLint location, GLdouble x, GLdouble y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform1dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform2dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform3dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniform4dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix2x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix3x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformMatrix4x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor){ TRACE("*"); UNIMPLEMENTED(); }

-

-

-void APIENTRY glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameteriEXT(GLuint program, GLenum pname, GLint value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetUniformuivEXT(GLuint program, GLint location, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); }

-GLint APIENTRY glGetFragDataLocationEXT(GLuint program, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glUniform1uiEXT(GLint location, GLuint v0){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform2uiEXT(GLint location, GLuint v0, GLuint v1){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1iEXT(GLuint index, GLint x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2iEXT(GLuint index, GLint x, GLint y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1uiEXT(GLuint index, GLuint x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1ivEXT(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2ivEXT(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3ivEXT(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4ivEXT(GLuint index, const GLint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI1uivEXT(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI2uivEXT(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI3uivEXT(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4uivEXT(GLuint index, const GLuint *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4bvEXT(GLuint index, const GLbyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4svEXT(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribI4usvEXT(GLuint index, const GLushort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameterfEXT(GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameterfvEXT(GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexBufferEXT(GLenum target, GLenum internalformat, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexParameterIivEXT(GLenum target, GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearColorIiEXT(GLint red, GLint green, GLint blue, GLint alpha){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearColorIuiEXT(GLuint red, GLuint green, GLuint blue, GLuint alpha){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 *params){ TRACE("*"); UNIMPLEMENTED(); }

-#define GL_GLEXT_PROTOTYPES

-void APIENTRY glArrayElementEXT(GLint i){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDrawArraysEXT(GLenum mode, GLint first, GLsizei count){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetPointervEXT(GLenum pname, void **params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBeginConditionalRenderNV(GLuint id, GLenum mode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndConditionalRenderNV(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDepthRangedNV(GLdouble zNear, GLdouble zFar){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glClearDepthdNV(GLdouble depth){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDepthBoundsdNV(GLdouble zmin, GLdouble zmax){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetMultisamplefvNV(GLenum pname, GLuint index, GLfloat *val){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSampleMaskIndexedNV(GLuint index, GLbitfield mask){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexRenderbufferNV(GLenum target, GLuint renderbuffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glRenderbufferStorageMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameterI4ivNV(GLenum target, GLuint index, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParameterI4uivNV(GLenum target, GLuint index, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramLocalParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameterI4ivNV(GLenum target, GLuint index, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParameterI4uivNV(GLenum target, GLuint index, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramEnvParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramLocalParameterIivNV(GLenum target, GLuint index, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramLocalParameterIuivNV(GLenum target, GLuint index, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramEnvParameterIivNV(GLenum target, GLuint index, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramEnvParameterIuivNV(GLenum target, GLuint index, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex2hNV(GLhalfNV x, GLhalfNV y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex2hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex3hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertex4hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNormal3hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColor3hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColor4hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord1hNV(GLhalfNV s){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord1hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord2hNV(GLhalfNV s, GLhalfNV t){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord2hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord3hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoord4hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1hNV(GLenum target, GLhalfNV s){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord1hvNV(GLenum target, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord2hvNV(GLenum target, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord3hvNV(GLenum target, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMultiTexCoord4hvNV(GLenum target, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordhNV(GLhalfNV fog){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordhvNV(const GLhalfNV *fog){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSecondaryColor3hvNV(const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexWeighthNV(GLhalfNV weight){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexWeighthvNV(const GLhalfNV *weight){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1hNV(GLuint index, GLhalfNV x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1hvNV(GLuint index, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2hvNV(GLuint index, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3hvNV(GLuint index, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4hvNV(GLuint index, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBeginOcclusionQueryNV(GLuint id){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndOcclusionQueryNV(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetOcclusionQueryivNV(GLuint id, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetOcclusionQueryuivNV(GLuint id, GLenum pname, GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenOcclusionQueriesNV(GLsizei n, GLuint *ids){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteOcclusionQueriesNV(GLsizei n, const GLuint *ids){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsOcclusionQueryNV(GLuint id){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glProgramBufferParametersfvNV(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramBufferParametersIivNV(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramBufferParametersIuivNV(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPixelDataRangeNV(GLenum target, GLsizei length, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFlushPixelDataRangeNV(GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameteriNV(GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPointParameterivNV(GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPrimitiveRestartNV(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glPrimitiveRestartIndexNV(GLuint index){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerParameterfvNV(GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerParameterfNV(GLenum pname, GLfloat param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerParameterivNV(GLenum pname, const GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerParameteriNV(GLenum pname, GLint param){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMakeBufferResidentNV(GLenum target, GLenum access){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMakeBufferNonResidentNV(GLenum target){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsBufferResidentNV(GLenum target){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glMakeNamedBufferResidentNV(GLuint buffer, GLenum access){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glMakeNamedBufferNonResidentNV(GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsNamedBufferResidentNV(GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetIntegerui64vNV(GLenum value, GLuint64EXT *result){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniformui64NV(GLint location, GLuint64EXT value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glUniformui64vNV(GLint location, GLsizei count, const GLuint64EXT *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetUniformui64vNV(GLuint program, GLint location, GLuint64EXT *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformui64NV(GLuint program, GLint location, GLuint64EXT value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramUniformui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBeginTransformFeedbackNV(GLenum primitiveMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEndTransformFeedbackNV(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTransformFeedbackAttribsNV(GLuint count, const GLint *attribs, GLenum bufferMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferRangeNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferOffsetNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBindBufferBaseNV(GLenum target, GLuint index, GLuint buffer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTransformFeedbackVaryingsNV(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glActiveVaryingNV(GLuint program, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); }

-GLint APIENTRY glGetVaryingLocationNV(GLuint program, const GLchar *name){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glGetActiveVaryingNV(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTransformFeedbackVaryingNV(GLuint program, GLuint index, GLint *location){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTransformFeedbackStreamAttribsNV(GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFlushVertexArrayRangeNV(void){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexArrayRangeNV(GLsizei length, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glBufferAddressRangeNV(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexFormatNV(GLint size, GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glNormalFormatNV(GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glColorFormatNV(GLint size, GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glIndexFormatNV(GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTexCoordFormatNV(GLint size, GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glEdgeFlagFormatNV(GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glSecondaryColorFormatNV(GLint size, GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glFogCoordFormatNV(GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribFormatNV(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribIFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetIntegerui64i_vNV(GLenum value, GLuint index, GLuint64EXT *result){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glAreProgramsResidentNV(GLsizei n, const GLuint *programs, GLboolean *residences){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glBindProgramNV(GLenum target, GLuint id){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glDeleteProgramsNV(GLsizei n, const GLuint *programs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGenProgramsNV(GLsizei n, GLuint *programs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramivNV(GLuint id, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glGetVertexAttribPointervNV(GLuint index, GLenum pname, void **pointer){ TRACE("*"); UNIMPLEMENTED(); }

-GLboolean APIENTRY glIsProgramNV(GLuint id){ TRACE("*"); UNIMPLEMENTED(); return 0; }

-void APIENTRY glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei count, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei count, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glRequestResidentProgramsNV(GLsizei n, const GLuint *programs){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribPointerNV(GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1dNV(GLuint index, GLdouble x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1dvNV(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1fNV(GLuint index, GLfloat x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1fvNV(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1sNV(GLuint index, GLshort x){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib1svNV(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2dvNV(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2fvNV(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib2svNV(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3dvNV(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3fvNV(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib3svNV(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4dvNV(GLuint index, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4fvNV(GLuint index, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4svNV(GLuint index, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttrib4ubvNV(GLuint index, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs1dvNV(GLuint index, GLsizei count, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs1fvNV(GLuint index, GLsizei count, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs1svNV(GLuint index, GLsizei count, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs2dvNV(GLuint index, GLsizei count, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs2fvNV(GLuint index, GLsizei count, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs2svNV(GLuint index, GLsizei count, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs3dvNV(GLuint index, GLsizei count, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs3fvNV(GLuint index, GLsizei count, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs3svNV(GLuint index, GLsizei count, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs4dvNV(GLuint index, GLsizei count, const GLdouble *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs4fvNV(GLuint index, GLsizei count, const GLfloat *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs4svNV(GLuint index, GLsizei count, const GLshort *v){ TRACE("*"); UNIMPLEMENTED(); }

-void APIENTRY glVertexAttribs4ubvNV(GLuint index, GLsizei count, const GLubyte *v){ TRACE("*"); UNIMPLEMENTED(); }

-

-GLboolean APIENTRY wgl1fx34c0da() 

-{ 

-	return -1;// UNIMPLEMENTED();

-}

-

 BOOL WINAPI wglSwapIntervalEXT(int interval)

 {

 	gl::Surface *drawSurface = static_cast<gl::Surface*>(gl::getCurrentDrawSurface());

@@ -10113,13 +7849,6 @@
 	return FALSE;

 }

 

-int WINAPI wglGetSwapIntervalEXT(void)

-{

-	TRACE("(*)");

-	UNIMPLEMENTED();

-	return 1;

-}

-

 int WINAPI wglChoosePixelFormat(HDC hdc, const PIXELFORMATDESCRIPTOR *ppfd)

 {

 	TRACE("(*)");

@@ -10162,7 +7891,7 @@
 		return TRUE;

 	}

 

-	return TRUE;// FALSE;

+	return FALSE;

 }

 

 BOOL WINAPI wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR)

@@ -10171,40 +7900,6 @@
 	return FALSE;

 }

 

-

-

-void APIENTRY glVertexAttrib4bv(GLuint index, const GLbyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4iv(GLuint index, const GLint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4sv(GLuint index, const GLshort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4ubv(GLuint index, const GLubyte *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4uiv(GLuint index, const GLuint *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-void APIENTRY glVertexAttrib4usv(GLuint index, const GLushort *v)

-{

-	TRACE("*");

-	UNIMPLEMENTED();

-}

-

-

 int WINAPI wglDescribePixelFormat(HDC hdc, int iPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR ppfd)

 {

 	TRACE("(*)");

@@ -10274,16 +7969,9 @@
 {

 	TRACE("(*)");

 

-	return "GL_ARB_texture_non_power_of_two "

-		"GL_ARB_framebuffer_object "

-		"GL_ARB_fragment_shader "

-		"GL_ARB_vertex_shader "

-		"GL_ARB_shader_objects "

-		"GL_ARB_shading_language_100 "

-		"GL_EXT_framebuffer_object";

-		//"wglCreateContextAttribsARB";

-	//NVIDIA CARD

-	"WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_context_flush_control WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_copy_image WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_gpu_affinity WGL_NV_multisample_coverage WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle WGL_NV_swap_group WGL_NV_video_capture";

+	return "GL_ARB_framebuffer_object "

+		   "WGL_EXT_extensions_string "

+		   "WGL_EXT_swap_control";

 }

 

 const char *WINAPI wglGetExtensionsStringEXT()

@@ -10481,999 +8169,6 @@
 		EXT(glDepthRangef),

 		EXT(glClearDepthf),

 

-		// UNIMPLEMENTED

-		EXT(glVertexAttrib1dv),

-		EXT(glVertexAttrib1fv),

-		EXT(glVertexAttrib1sv),

-		EXT(glVertexAttrib2dv),

-		EXT(glVertexAttrib2fv),

-		EXT(glVertexAttrib2sv),

-		EXT(glVertexAttrib3dv),

-		EXT(glVertexAttrib3fv),

-		EXT(glVertexAttrib3sv),

-		EXT(glVertexAttrib4Nbv),

-		EXT(glVertexAttrib4Niv),

-		EXT(glVertexAttrib4Nsv),

-		EXT(glVertexAttrib4Nubv),

-		EXT(glVertexAttrib4Nuiv),

-		EXT(glVertexAttrib4Nusv),

-		EXT(glVertexAttrib4bv),

-		EXT(glVertexAttrib4dv),

-		EXT(glVertexAttrib4iv),

-		EXT(glVertexAttrib4sv),

-		EXT(glVertexAttrib4ubv),

-		EXT(glVertexAttrib4uiv),

-		EXT(glVertexAttrib4usv),

-		EXT(glVertexAttrib4fv),

-		EXT(glFogCoordfv),

-		EXT(glFogCoorddv),

-		EXT(glMultiDrawElements),

-		EXT(glSecondaryColor3bv),

-		EXT(glSecondaryColor3dv),

-		EXT(glSecondaryColor3fv),

-		EXT(glSecondaryColor3i),

-		EXT(glSecondaryColor3iv),

-		EXT(glSecondaryColor3s),

-		EXT(glSecondaryColor3sv),

-		EXT(glSecondaryColor3ubv),

-		EXT(glSecondaryColor3ui),

-		EXT(glSecondaryColor3uiv),

-		EXT(glSecondaryColor3us),

-		EXT(glSecondaryColor3usv),

-		EXT(glWindowPos2s),

-		EXT(glWindowPos2dv),

-		EXT(glWindowPos2fv),

-		EXT(glWindowPos2iv),

-		EXT(glWindowPos2sv),

-		EXT(glWindowPos3s),

-		EXT(glWindowPos3dv),

-		EXT(glWindowPos3fv),

-		EXT(glWindowPos3iv),

-		EXT(glWindowPos3sv),

-		EXT(glMultiTexCoord1dv),

-		EXT(glMultiTexCoord1fv),

-		EXT(glMultiTexCoord1i),

-		EXT(glMultiTexCoord1iv),

-		EXT(glMultiTexCoord1s),

-		EXT(glMultiTexCoord1sv),

-		EXT(glMultiTexCoord2dv),

-		EXT(glMultiTexCoord2fv),

-		EXT(glMultiTexCoord2i),

-		EXT(glMultiTexCoord2iv),

-		EXT(glMultiTexCoord2s),

-		EXT(glMultiTexCoord2sv),

-		EXT(glMultiTexCoord3dv),

-		EXT(glMultiTexCoord3fv),

-		EXT(glMultiTexCoord3i),

-		EXT(glMultiTexCoord3iv),

-		EXT(glMultiTexCoord3s),

-		EXT(glMultiTexCoord3sv),

-		EXT(glMultiTexCoord4dv),

-		EXT(glMultiTexCoord4fv),

-		EXT(glMultiTexCoord4i),

-		EXT(glMultiTexCoord4iv),

-		EXT(glMultiTexCoord4s),

-		EXT(glMultiTexCoord4sv),

-		EXT(glBlendEquationEXT),

-		EXT(glBlendFuncSeparateEXT),

-		EXT(glSecondaryColor3bEXT),

-		EXT(glSecondaryColor3bvEXT),

-		EXT(glSecondaryColor3dEXT),

-		EXT(glSecondaryColor3dvEXT),

-		EXT(glSecondaryColor3fEXT),

-		EXT(glSecondaryColor3fvEXT),

-		EXT(glSecondaryColor3iEXT),

-		EXT(glSecondaryColor3ivEXT),

-		EXT(glSecondaryColor3sEXT),

-		EXT(glSecondaryColor3svEXT),

-		EXT(glSecondaryColor3ubEXT),

-		EXT(glSecondaryColor3ubvEXT),

-		EXT(glSecondaryColor3uiEXT),

-		EXT(glSecondaryColor3uivEXT),

-		EXT(glSecondaryColor3usEXT),

-		EXT(glSecondaryColor3usvEXT),

-		EXT(glSecondaryColorPointerEXT),

-		EXT(glBlitFramebufferEXT),

-		EXT(glRenderbufferStorageMultisampleEXT),

-		EXT(glSecondaryColor3i),

-		EXT(glSecondaryColor3s),

-		EXT(glSecondaryColor3ui),

-		EXT(glSecondaryColor3us),

-		EXT(glSecondaryColor3bv),

-		EXT(glSecondaryColor3fv),

-		EXT(glSecondaryColor3dv),

-		EXT(glSecondaryColor3ubv),

-		EXT(glSecondaryColor3iv),

-		EXT(glSecondaryColor3sv),

-		EXT(glSecondaryColor3uiv),

-		EXT(glSecondaryColor3usv),

-		EXT(glBindAttribLocationARB),

-		EXT(glGetActiveAttribARB),

-		EXT(glGetAttribLocationARB),

-		EXT(glAttachObjectARB),

-		EXT(glCompileShaderARB),

-		EXT(glCreateProgramObjectARB),

-		EXT(glCreateShaderObjectARB),

-		EXT(glDeleteObjectARB),

-		EXT(glDetachObjectARB),

-		EXT(glGetActiveUniformARB),

-		EXT(glGetAttachedObjectsARB),

-		EXT(glGetHandleARB),

-		EXT(glGetInfoLogARB),

-		EXT(glGetObjectParameterfvARB),

-		EXT(glGetObjectParameterivARB),

-		EXT(glGetShaderSourceARB),

-		EXT(glGetUniformLocationARB),

-		EXT(glGetUniformfvARB),

-		EXT(glGetUniformivARB),

-		EXT(glLinkProgramARB),

-		EXT(glShaderSourceARB),

-		EXT(glUniform1fARB),

-		EXT(glUniform1fvARB),

-		EXT(glUniform1iARB),

-		EXT(glUniform1ivARB),

-		EXT(glUniform2fARB),

-		EXT(glUniform2fvARB),

-		EXT(glUniform2iARB),

-		EXT(glUniform2ivARB),

-		EXT(glUniform3fARB),

-		EXT(glUniform3fvARB),

-		EXT(glUniform3iARB),

-		EXT(glUniform3ivARB),

-		EXT(glUniform4fARB),

-		EXT(glUniform4fvARB),

-		EXT(glUniform4iARB),

-		EXT(glUniform4ivARB),

-		EXT(glUniformMatrix2fvARB),

-		EXT(glUniformMatrix3fvARB),

-		EXT(glUniformMatrix4fvARB),

-		EXT(glUseProgramObjectARB),

-		EXT(glValidateProgramARB),

-		EXT(glIsRenderbufferEXT),

-		EXT(glBindRenderbufferEXT),

-		EXT(glDeleteRenderbuffersEXT),

-		EXT(glGenRenderbuffersEXT),

-		EXT(glRenderbufferStorageEXT),

-		EXT(glGetRenderbufferParameterivEXT),

-		EXT(glIsFramebufferEXT),

-		EXT(glBindFramebufferEXT),

-		EXT(glDeleteFramebuffersEXT),

-		EXT(glGenFramebuffersEXT),

-		EXT(glCheckFramebufferStatusEXT),

-		EXT(glFramebufferTexture1DEXT),

-		EXT(glFramebufferTexture2DEXT),

-		EXT(glFramebufferTexture3DEXT),

-		EXT(glFramebufferRenderbufferEXT),

-		EXT(glGetFramebufferAttachmentParameterivEXT),

-		EXT(glGenerateMipmapEXT),

-		EXT(glColorMaski),

-		EXT(glGetBooleani_v),

-		EXT(glGetIntegeri_v),

-		EXT(glEnablei),

-		EXT(glIsEnabledi),

-		EXT(glDisablei),

-		EXT(glBeginTransformFeedback),

-		EXT(glEndTransformFeedback),

-		EXT(glBindBufferRange),

-		EXT(glBindBufferBase),

-		EXT(glTransformFeedbackVaryings),

-		EXT(glGetTransformFeedbackVarying),

-		EXT(glClampColor),

-		EXT(glBeginConditionalRender),

-		EXT(glEndConditionalRender),

-		EXT(glVertexAttribIPointer),

-		EXT(glGetVertexAttribIiv),

-		EXT(glGetVertexAttribIuiv),

-		EXT(glVertexAttribI2i),

-		EXT(glVertexAttribI1i),

-		EXT(glVertexAttribI3i),

-		EXT(glVertexAttribI4i),

-		EXT(glVertexAttribI1ui),

-		EXT(glVertexAttribI2ui),

-		EXT(glVertexAttribI3ui),

-		EXT(glVertexAttribI4ui),

-		EXT(glVertexAttribI1iv),

-		EXT(glVertexAttribI2iv),

-		EXT(glVertexAttribI3iv),

-		EXT(glVertexAttribI4iv),

-		EXT(glVertexAttribI1uiv),

-		EXT(glVertexAttribI2uiv),

-		EXT(glVertexAttribI3uiv),

-		EXT(glVertexAttribI4uiv),

-		EXT(glVertexAttribI4bv),

-		EXT(glVertexAttribI4sv),

-		EXT(glVertexAttribI4ubv),

-		EXT(glVertexAttribI4usv),

-		EXT(glGetUniformuiv),

-		EXT(glBindFragDataLocation),

-		EXT(glGetFragDataLocation),

-		EXT(glUniform1ui),

-		EXT(glUniform2ui),

-		EXT(glUniform3ui),

-		EXT(glUniform4ui),

-		EXT(glUniform1uiv),

-		EXT(glUniform2uiv),

-		EXT(glUniform3uiv),

-		EXT(glUniform4uiv),

-		EXT(glTexParameterIiv),

-		EXT(glTexParameterIuiv),

-		EXT(glGetTexParameterIiv),

-		EXT(glGetTexParameterIuiv),

-		EXT(glClearBufferiv),

-		EXT(glClearBufferuiv),

-		EXT(glClearBufferfv),

-		EXT(glClearBufferfi),

-		EXT(glGetStringi),

-		//EXT(wglCreateContextAttribsARB),

-		EXT(glMapNamedBufferEXT),

-		EXT(glUnmapNamedBufferEXT),

-		EXT(glGetNamedBufferParameterivEXT),

-		EXT(glGetTextureImageEXT),

-		EXT(glTextureSubImage2DEXT),

-		EXT(glTextureSubImage3DEXT),

-

-

-		EXT(glcuR0d4nX),

-		EXT(wgl1fx34c0da),

-

-

-		//MORE unimplemented()

-		EXT(glCopyTexImage1DEXT),

-		EXT(glCopyTexImage2DEXT),

-		EXT(glCopyTexSubImage1DEXT),

-		EXT(glCopyTexSubImage2DEXT),

-		EXT(glCopyTexSubImage3DEXT),

-		EXT(glPolygonOffsetEXT),

-		EXT(glTexSubImage1DEXT),

-		EXT(glTexSubImage2DEXT),

-		EXT(glTexImage3DEXT),

-		EXT(glTexSubImage3DEXT),

-		EXT( glAreTexturesResidentEXT),

-		EXT(glBindTextureEXT),

-		EXT(glDeleteTexturesEXT),

-		EXT(glGenTexturesEXT),

-		EXT(glIsTextureEXT),

-		EXT(glPrioritizeTexturesEXT),

-		EXT(glDrawRangeElementsEXT),

-		EXT(glSampleCoverageARB),

-		EXT(glActiveTextureARB),

-		EXT(glClientActiveTextureARB),

-		EXT(glMultiTexCoord1dARB),

-		EXT(glMultiTexCoord1dvARB),

-		EXT(glMultiTexCoord1fARB),

-		EXT(glMultiTexCoord1fvARB),

-		EXT(glMultiTexCoord1iARB),

-		EXT(glMultiTexCoord1ivARB),

-		EXT(glMultiTexCoord1sARB),

-		EXT(glMultiTexCoord1svARB),

-		EXT(glMultiTexCoord2dARB),

-		EXT(glMultiTexCoord2dvARB),

-		EXT(glMultiTexCoord2fARB),

-		EXT(glMultiTexCoord2fvARB),

-		EXT(glMultiTexCoord2iARB),

-		EXT(glMultiTexCoord2ivARB),

-		EXT(glMultiTexCoord2sARB),

-		EXT(glMultiTexCoord2svARB),

-		EXT(glMultiTexCoord3dARB),

-		EXT(glMultiTexCoord3dvARB),

-		EXT(glMultiTexCoord3fARB),

-		EXT(glMultiTexCoord3fvARB),

-		EXT(glMultiTexCoord3iARB),

-		EXT(glMultiTexCoord3ivARB),

-		EXT(glMultiTexCoord3sARB),

-		EXT(glMultiTexCoord3svARB),

-		EXT(glMultiTexCoord4dARB),

-		EXT(glMultiTexCoord4dvARB),

-		EXT(glMultiTexCoord4fARB),

-		EXT(glMultiTexCoord4fvARB),

-		EXT(glMultiTexCoord4iARB),

-		EXT(glMultiTexCoord4ivARB),

-		EXT(glMultiTexCoord4sARB),

-		EXT(glMultiTexCoord4svARB),

-		EXT(glCompressedTexImage3DARB),

-		EXT(glCompressedTexImage2DARB),

-		EXT(glCompressedTexImage1DARB),

-		EXT(glCompressedTexSubImage3DARB),

-		EXT(glCompressedTexSubImage2DARB),

-		EXT(glCompressedTexSubImage1DARB),

-		EXT(glGetCompressedTexImageARB),

-		EXT(glPointParameterfARB),

-		EXT(glPointParameterfvARB),

-		EXT(glBlendColorEXT),

-		EXT(glFogCoordfEXT),

-		EXT(glFogCoordfvEXT),

-		EXT(glFogCoorddEXT),

-		EXT(glFogCoorddvEXT),

-		EXT(glFogCoordPointerEXT),

-		EXT(glMultiDrawArraysEXT),

-		EXT(glMultiDrawElementsEXT),

-		EXT(glGenQueriesARB),

-		EXT(glDeleteQueriesARB),

-		EXT(glIsQueryARB),

-		EXT(glBeginQueryARB),

-		EXT(glEndQueryARB),

-		EXT(glGetQueryivARB),

-		EXT(glGetQueryObjectivARB),

-		EXT(glGetQueryObjectuivARB),

-		EXT(glBindBufferARB),

-		EXT(glDeleteBuffersARB),

-		EXT(glGenBuffersARB),

-		EXT(glIsBufferARB),

-		EXT(glBufferDataARB),

-		EXT(glBufferSubDataARB),

-		EXT(glGetBufferSubDataARB),

-		EXT(glMapBufferARB),

-		EXT(glUnmapBufferARB),

-		EXT(glGetBufferParameterivARB),

-		EXT(glGetBufferPointervARB),

-		EXT(glDrawBuffersARB),

-		EXT(glBlendEquationSeparateEXT),

-		EXT(glActiveStencilFaceEXT),

-		EXT(glClampColorARB),

-		EXT(glDrawArraysInstancedARB),

-		EXT(glDrawElementsInstancedARB),

-		EXT(glProgramParameteriARB),

-		EXT(glFramebufferTextureARB),

-		EXT(glFramebufferTextureLayerARB),

-		EXT(glFramebufferTextureFaceARB),

-		EXT(glColorTable),

-		EXT(glColorTableParameterfv),

-		EXT(glColorTableParameteriv),

-		EXT(glCopyColorTable),

-		EXT(glGetColorTable),

-		EXT(glGetColorTableParameterfv),

-		EXT(glGetColorTableParameteriv),

-		EXT(glColorSubTable),

-		EXT(glCopyColorSubTable),

-		EXT(glConvolutionFilter1D),

-		EXT(glConvolutionFilter2D),

-		EXT(glConvolutionParameterf),

-		EXT(glConvolutionParameterfv),

-		EXT(glConvolutionParameteri),

-		EXT(glConvolutionParameteriv),

-		EXT(glCopyConvolutionFilter1D),

-		EXT(glCopyConvolutionFilter2D),

-		EXT(glGetConvolutionFilter),

-		EXT(glGetConvolutionParameterfv),

-		EXT(glGetConvolutionParameteriv),

-		EXT(glGetSeparableFilter),

-		EXT(glSeparableFilter2D),

-		EXT(glGetHistogram),

-		EXT(glGetHistogramParameterfv),

-		EXT(glGetHistogramParameteriv),

-		EXT(glGetMinmax),

-		EXT(glGetMinmaxParameterfv),

-		EXT(glGetMinmaxParameteriv),

-		EXT(glHistogram),

-		EXT(glMinmax),

-		EXT(glResetHistogram),

-		EXT(glResetMinmax),

-		EXT(glVertexAttribDivisorARB),

-		EXT(glMapBufferRange),

-		EXT(glFlushMappedBufferRange),

-		EXT(glTexBufferARB),

-		EXT(glBindVertexArray),

-		EXT(glDeleteVertexArrays),

-		EXT(glGenVertexArrays),

-		EXT(glIsVertexArray),

-		EXT(glProgramStringARB),

-		EXT(glBindProgramARB),

-		EXT(glDeleteProgramsARB),

-		EXT(glGenProgramsARB),

-		EXT(glProgramEnvParameter4dARB),

-		EXT(glProgramEnvParameter4dvARB),

-		EXT(glProgramEnvParameter4fARB),

-		EXT(glProgramEnvParameter4fvARB),

-		EXT(glProgramLocalParameter4dARB),

-		EXT(glProgramLocalParameter4dvARB),

-		EXT(glProgramLocalParameter4fARB),

-		EXT(glProgramLocalParameter4fvARB),

-		EXT(glGetProgramEnvParameterdvARB),

-		EXT(glGetProgramEnvParameterfvARB),

-		EXT(glGetProgramLocalParameterdvARB),

-		EXT(glGetProgramLocalParameterfvARB),

-		EXT(glGetProgramivARB),

-		EXT(glGetProgramStringARB),

-		EXT(glIsProgramARB),

-		EXT(glEnableVertexAttribArrayARB),

-		EXT(glDisableVertexAttribArrayARB),

-		EXT(glGetVertexAttribdvARB),

-		EXT(glGetVertexAttribfvARB),

-		EXT(glGetVertexAttribivARB),

-		EXT(glGetVertexAttribPointervARB),

-		EXT(glVertexAttrib1dARB),

-		EXT(glVertexAttrib1dvARB),

-		EXT(glVertexAttrib1fARB),

-		EXT(glVertexAttrib1fvARB),

-		EXT(glVertexAttrib1sARB),

-		EXT(glVertexAttrib1svARB),

-		EXT(glVertexAttrib2dARB),

-		EXT(glVertexAttrib2dvARB),

-		EXT(glVertexAttrib2fARB),

-		EXT(glVertexAttrib2fvARB),

-		EXT(glVertexAttrib2sARB),

-		EXT(glVertexAttrib2svARB),

-		EXT(glVertexAttrib3dARB),

-		EXT(glVertexAttrib3dvARB),

-		EXT(glVertexAttrib3fARB),

-		EXT(glVertexAttrib3fvARB),

-		EXT(glVertexAttrib3sARB),

-		EXT(glVertexAttrib3svARB),

-		EXT(glVertexAttrib4NbvARB),

-		EXT(glVertexAttrib4NivARB),

-		EXT(glVertexAttrib4NsvARB),

-		EXT(glVertexAttrib4NubARB),

-		EXT(glVertexAttrib4NubvARB),

-		EXT(glVertexAttrib4NuivARB),

-		EXT(glVertexAttrib4NusvARB),

-		EXT(glVertexAttrib4bvARB),

-		EXT(glVertexAttrib4dARB),

-		EXT(glVertexAttrib4dvARB),

-		EXT(glVertexAttrib4fARB),

-		EXT(glVertexAttrib4fvARB),

-		EXT(glVertexAttrib4ivARB),

-		EXT(glVertexAttrib4sARB),

-		EXT(glVertexAttrib4svARB),

-		EXT(glVertexAttrib4ubvARB),

-		EXT(glVertexAttrib4uivARB),

-		EXT(glVertexAttrib4usvARB),

-		EXT(glVertexAttribPointerARB),

-		EXT(glEnableVertexAttribArrayARB),

-		EXT(glDisableVertexAttribArrayARB),

-		EXT(glWindowPos2dARB),

-		EXT(glWindowPos2dvARB),

-		EXT(glWindowPos2fARB),

-		EXT(glWindowPos2fvARB),

-		EXT(glWindowPos2iARB),

-		EXT(glWindowPos2ivARB),

-		EXT(glWindowPos2sARB),

-		EXT(glWindowPos2svARB),

-		EXT(glWindowPos3dARB),

-		EXT(glWindowPos3dvARB),

-		EXT(glWindowPos3fARB),

-		EXT(glWindowPos3fvARB),

-		EXT(glWindowPos3iARB),

-		EXT(glWindowPos3ivARB),

-		EXT(glWindowPos3sARB),

-		EXT(glWindowPos3svARB),

-		EXT(glDrawBuffersATI),

-		EXT(glUniformBufferEXT),

-		EXT(glGetUniformBufferSizeEXT),

-		EXT(glGetUniformOffsetEXT),

-		EXT(glLockArraysEXT),

-		EXT(glUnlockArraysEXT),

-		EXT(glDepthBoundsEXT),

-		EXT(glMatrixLoadfEXT),

-		EXT(glMatrixLoaddEXT),

-		EXT(glMatrixMultfEXT),

-		EXT(glMatrixMultdEXT),

-		EXT(glMatrixLoadIdentityEXT),

-		EXT(glMatrixRotatefEXT),

-		EXT(glMatrixRotatedEXT),

-		EXT(glMatrixScalefEXT),

-		EXT(glMatrixScaledEXT),

-		EXT(glMatrixTranslatefEXT),

-		EXT(glMatrixTranslatedEXT),

-		EXT(glMatrixFrustumEXT),

-		EXT(glMatrixOrthoEXT),

-		EXT(glMatrixPopEXT),

-		EXT(glMatrixPushEXT),

-		EXT(glClientAttribDefaultEXT),

-		EXT(glPushClientAttribDefaultEXT),

-		EXT(glTextureParameterfEXT),

-		EXT(glTextureParameterfvEXT),

-		EXT(glTextureParameteriEXT),

-		EXT(glTextureParameterivEXT),

-		EXT(glTextureImage1DEXT),

-		EXT(glTextureImage2DEXT),

-		EXT(glTextureSubImage1DEXT),

-		EXT(glTextureSubImage2DEXT),

-		EXT(glCopyTextureImage1DEXT),

-		EXT(glCopyTextureImage2DEXT),

-		EXT(glCopyTextureSubImage1DEXT),

-		EXT(glCopyTextureSubImage2DEXT),

-		EXT(glGetTextureImageEXT),

-		EXT(glGetTextureParameterfvEXT),

-		EXT(glGetTextureParameterivEXT),

-		EXT(glGetTextureLevelParameterfvEXT),

-		EXT(glGetTextureLevelParameterivEXT),

-		EXT(glTextureImage3DEXT),

-		EXT(glTextureSubImage3DEXT),

-		EXT(glCopyTextureSubImage3DEXT),

-		EXT(glBindMultiTextureEXT),

-		EXT(glMultiTexCoordPointerEXT),

-		EXT(glMultiTexEnvfEXT),

-		EXT(glMultiTexEnvfvEXT),

-		EXT(glMultiTexEnviEXT),

-		EXT(glMultiTexEnvivEXT),

-		EXT(glMultiTexGendEXT),

-		EXT(glMultiTexGendvEXT),

-		EXT(glMultiTexGenfEXT),

-		EXT(glMultiTexGenfvEXT),

-		EXT(glMultiTexGeniEXT),

-		EXT(glMultiTexGenivEXT),

-		EXT(glGetMultiTexEnvfvEXT),

-		EXT(glGetMultiTexEnvivEXT),

-		EXT(glGetMultiTexGendvEXT),

-		EXT(glGetMultiTexGenfvEXT),

-		EXT(glGetMultiTexGenivEXT),

-		EXT(glMultiTexParameteriEXT),

-		EXT(glMultiTexParameterivEXT),

-		EXT(glMultiTexParameterfEXT),

-		EXT(glMultiTexParameterfvEXT),

-		EXT(glMultiTexImage1DEXT),

-		EXT(glMultiTexImage2DEXT),

-		EXT(glMultiTexSubImage1DEXT),

-		EXT(glMultiTexSubImage2DEXT),

-		EXT(glCopyMultiTexImage1DEXT),

-		EXT(glCopyMultiTexImage2DEXT),

-		EXT(glCopyMultiTexSubImage1DEXT),

-		EXT(glCopyMultiTexSubImage2DEXT),

-		EXT(glGetMultiTexImageEXT),

-		EXT(glGetMultiTexParameterfvEXT),

-		EXT(glGetMultiTexParameterivEXT),

-		EXT(glGetMultiTexLevelParameterfvEXT),

-		EXT(glGetMultiTexLevelParameterivEXT),

-		EXT(glMultiTexImage3DEXT),

-		EXT(glMultiTexSubImage3DEXT),

-		EXT(glCopyMultiTexSubImage3DEXT),

-		EXT(glEnableClientStateIndexedEXT),

-		EXT(glDisableClientStateIndexedEXT),

-		EXT(glGetFloatIndexedvEXT),

-		EXT(glGetDoubleIndexedvEXT),

-		EXT(glGetPointerIndexedvEXT),

-		EXT(glEnableIndexedEXT),

-		EXT(glDisableIndexedEXT),

-		EXT(glIsEnabledIndexedEXT),

-		EXT(glGetIntegerIndexedvEXT),

-		EXT(glGetBooleanIndexedvEXT),

-		EXT(glCompressedTextureImage3DEXT),

-		EXT(glCompressedTextureImage2DEXT),

-		EXT(glCompressedTextureImage1DEXT),

-		EXT(glCompressedTextureSubImage3DEXT),

-		EXT(glCompressedTextureSubImage2DEXT),

-		EXT(glCompressedTextureSubImage1DEXT),

-		EXT(glGetCompressedTextureImageEXT),

-		EXT(glCompressedMultiTexImage3DEXT),

-		EXT(glCompressedMultiTexImage2DEXT),

-		EXT(glCompressedMultiTexImage1DEXT),

-		EXT(glCompressedMultiTexSubImage3DEXT),

-		EXT(glCompressedMultiTexSubImage2DEXT),

-		EXT(glCompressedMultiTexSubImage1DEXT),

-		EXT(glGetCompressedMultiTexImageEXT),

-		EXT(glMatrixLoadTransposefEXT),

-		EXT(glMatrixLoadTransposedEXT),

-		EXT(glMatrixMultTransposefEXT),

-		EXT(glMatrixMultTransposedEXT),

-		EXT(glNamedBufferDataEXT),

-		EXT(glNamedBufferSubDataEXT),

-		EXT(glMapNamedBufferEXT),

-		EXT(glUnmapNamedBufferEXT),

-		EXT(glGetNamedBufferParameterivEXT),

-		EXT(glGetNamedBufferPointervEXT),

-		EXT(glGetNamedBufferSubDataEXT),

-		EXT(glProgramUniform1fEXT),

-		EXT(glProgramUniform2fEXT),

-		EXT(glProgramUniform3fEXT),

-		EXT(glProgramUniform4fEXT),

-		EXT(glProgramUniform1iEXT),

-		EXT(glProgramUniform2iEXT),

-		EXT(glProgramUniform3iEXT),

-		EXT(glProgramUniform4iEXT),

-		EXT(glProgramUniform1fvEXT),

-		EXT(glProgramUniform2fvEXT),

-		EXT(glProgramUniform3fvEXT),

-		EXT(glProgramUniform4fvEXT),

-		EXT(glProgramUniform1ivEXT),

-		EXT(glProgramUniform2ivEXT),

-		EXT(glProgramUniform3ivEXT),

-		EXT(glProgramUniform4ivEXT),

-		EXT(glProgramUniformMatrix2fvEXT),

-		EXT(glProgramUniformMatrix3fvEXT),

-		EXT(glProgramUniformMatrix4fvEXT),

-		EXT(glProgramUniformMatrix2x3fvEXT),

-		EXT(glProgramUniformMatrix3x2fvEXT),

-		EXT(glProgramUniformMatrix2x4fvEXT),

-		EXT(glProgramUniformMatrix4x2fvEXT),

-		EXT(glProgramUniformMatrix3x4fvEXT),

-		EXT(glProgramUniformMatrix4x3fvEXT),

-		EXT(glTextureBufferEXT),

-		EXT(glMultiTexBufferEXT),

-		EXT(glTextureParameterIivEXT),

-		EXT(glTextureParameterIuivEXT),

-		EXT(glGetTextureParameterIivEXT),

-		EXT(glGetTextureParameterIuivEXT),

-		EXT(glMultiTexParameterIivEXT),

-		EXT(glMultiTexParameterIuivEXT),

-		EXT(glGetMultiTexParameterIivEXT),

-		EXT(glGetMultiTexParameterIuivEXT),

-		EXT(glProgramUniform1uiEXT),

-		EXT(glProgramUniform2uiEXT),

-		EXT(glProgramUniform3uiEXT),

-		EXT(glProgramUniform4uiEXT),

-		EXT(glProgramUniform1uivEXT),

-		EXT(glProgramUniform2uivEXT),

-		EXT(glProgramUniform3uivEXT),

-		EXT(glProgramUniform4uivEXT),

-		EXT(glNamedProgramLocalParameters4fvEXT),

-		EXT(glNamedProgramLocalParameterI4iEXT),

-		EXT(glNamedProgramLocalParameterI4ivEXT),

-		EXT(glNamedProgramLocalParametersI4ivEXT),

-		EXT(glNamedProgramLocalParameterI4uiEXT),

-		EXT(glNamedProgramLocalParameterI4uivEXT),

-		EXT(glNamedProgramLocalParametersI4uivEXT),

-		EXT(glGetNamedProgramLocalParameterIivEXT),

-		EXT(glGetNamedProgramLocalParameterIuivEXT),

-		EXT(glEnableClientStateiEXT),

-		EXT(glDisableClientStateiEXT),

-		EXT(glGetFloati_vEXT),

-		EXT(glGetDoublei_vEXT),

-		EXT(glGetPointeri_vEXT),

-		EXT(glNamedProgramStringEXT),

-		EXT(glNamedProgramLocalParameter4dEXT),

-		EXT(glNamedProgramLocalParameter4dvEXT),

-		EXT(glNamedProgramLocalParameter4fEXT),

-		EXT(glNamedProgramLocalParameter4fvEXT),

-		EXT(glGetNamedProgramLocalParameterdvEXT),

-		EXT(glGetNamedProgramLocalParameterfvEXT),

-		EXT(glGetNamedProgramivEXT),

-		EXT(glGetNamedProgramStringEXT),

-		EXT(glNamedRenderbufferStorageEXT),

-		EXT(glGetNamedRenderbufferParameterivEXT),

-		EXT(glNamedRenderbufferStorageMultisampleEXT),

-		EXT(glNamedRenderbufferStorageMultisampleCoverageEXT),

-		EXT(glCheckNamedFramebufferStatusEXT),

-		EXT(glNamedFramebufferTexture1DEXT),

-		EXT(glNamedFramebufferTexture2DEXT),

-		EXT(glNamedFramebufferTexture3DEXT),

-		EXT(glNamedFramebufferRenderbufferEXT),

-		EXT(glGetNamedFramebufferAttachmentParameterivEXT),

-		EXT(glGenerateTextureMipmapEXT),

-		EXT(glGenerateMultiTexMipmapEXT),

-		EXT(glFramebufferDrawBufferEXT),

-		EXT(glFramebufferDrawBuffersEXT),

-		EXT(glFramebufferReadBufferEXT),

-		EXT(glGetFramebufferParameterivEXT),

-		EXT(glNamedCopyBufferSubDataEXT),

-		EXT(glNamedFramebufferTextureEXT),

-		EXT(glNamedFramebufferTextureLayerEXT),

-		EXT(glNamedFramebufferTextureFaceEXT),

-		EXT(glTextureRenderbufferEXT),

-		EXT(glMultiTexRenderbufferEXT),

-		EXT(glVertexArrayVertexOffsetEXT),

-		EXT(glVertexArrayColorOffsetEXT),

-		EXT(glVertexArrayEdgeFlagOffsetEXT),

-		EXT(glVertexArrayIndexOffsetEXT),

-		EXT(glVertexArrayNormalOffsetEXT),

-		EXT(glVertexArrayTexCoordOffsetEXT),

-		EXT(glVertexArrayMultiTexCoordOffsetEXT),

-		EXT(glVertexArrayFogCoordOffsetEXT),

-		EXT(glVertexArraySecondaryColorOffsetEXT),

-		EXT(glVertexArrayVertexAttribOffsetEXT),

-		EXT(glVertexArrayVertexAttribIOffsetEXT),

-		EXT(glEnableVertexArrayEXT),

-		EXT(glDisableVertexArrayEXT),

-		EXT(glEnableVertexArrayAttribEXT),

-		EXT(glDisableVertexArrayAttribEXT),

-		EXT(glGetVertexArrayIntegervEXT),

-		EXT(glGetVertexArrayPointervEXT),

-		EXT(glGetVertexArrayIntegeri_vEXT),

-		EXT(glGetVertexArrayPointeri_vEXT),

-		EXT(glMapNamedBufferRangeEXT),

-		EXT(glFlushMappedNamedBufferRangeEXT),

-		EXT(glNamedBufferStorageEXT),

-		EXT(glClearNamedBufferDataEXT),

-		EXT(glClearNamedBufferSubDataEXT),

-		EXT(glNamedFramebufferParameteriEXT),

-		EXT(glGetNamedFramebufferParameterivEXT),

-		EXT(glProgramUniform1dEXT),

-		EXT(glProgramUniform2dEXT),

-		EXT(glProgramUniform3dEXT),

-		EXT(glProgramUniform4dEXT),

-		EXT(glProgramUniform1dvEXT),

-		EXT(glProgramUniform2dvEXT),

-		EXT(glProgramUniform3dvEXT),

-		EXT(glProgramUniform4dvEXT),

-		EXT(glProgramUniformMatrix2dvEXT),

-		EXT(glProgramUniformMatrix3dvEXT),

-		EXT(glProgramUniformMatrix4dvEXT),

-		EXT(glProgramUniformMatrix2x3dvEXT),

-		EXT(glProgramUniformMatrix2x4dvEXT),

-		EXT(glProgramUniformMatrix3x2dvEXT),

-		EXT(glProgramUniformMatrix3x4dvEXT),

-		EXT(glProgramUniformMatrix4x2dvEXT),

-		EXT(glProgramUniformMatrix4x3dvEXT),

-		EXT(glTextureBufferRangeEXT),

-		EXT(glTextureStorage1DEXT),

-		EXT(glTextureStorage2DEXT),

-		EXT(glTextureStorage3DEXT),

-		EXT(glTextureStorage2DMultisampleEXT),

-		EXT(glTextureStorage3DMultisampleEXT),

-		EXT(glVertexArrayBindVertexBufferEXT),

-		EXT(glVertexArrayVertexAttribFormatEXT),

-		EXT(glVertexArrayVertexAttribIFormatEXT),

-		EXT(glVertexArrayVertexAttribLFormatEXT),

-		EXT(glVertexArrayVertexAttribBindingEXT),

-		EXT(glVertexArrayVertexBindingDivisorEXT),

-		EXT(glVertexArrayVertexAttribLOffsetEXT),

-		EXT(glTexturePageCommitmentEXT),

-		EXT(glVertexArrayVertexAttribDivisorEXT),

-		EXT(glColorMaskIndexedEXT),

-		EXT(glDrawArraysInstancedEXT),

-		EXT(glDrawElementsInstancedEXT),

-		EXT(glProgramParameteriEXT),

-		EXT(glFramebufferTextureEXT),

-		EXT(glFramebufferTextureLayerEXT),

-		EXT(glFramebufferTextureFaceEXT),

-		EXT(glProgramEnvParameters4fvEXT),

-		EXT(glProgramLocalParameters4fvEXT),

-		EXT(glGetUniformuivEXT),

-		EXT(glBindFragDataLocationEXT),

-		EXT(glGetFragDataLocationEXT),

-		EXT(glUniform1uiEXT),

-		EXT(glUniform2uiEXT),

-		EXT(glUniform3uiEXT),

-		EXT(glUniform4uiEXT),

-		EXT(glUniform1uivEXT),

-		EXT(glUniform2uivEXT),

-		EXT(glUniform3uivEXT),

-		EXT(glUniform4uivEXT),

-		EXT(glVertexAttribI1iEXT),

-		EXT(glVertexAttribI2iEXT),

-		EXT(glVertexAttribI3iEXT),

-		EXT(glVertexAttribI4iEXT),

-		EXT(glVertexAttribI1uiEXT),

-		EXT(glVertexAttribI2uiEXT),

-		EXT(glVertexAttribI3uiEXT),

-		EXT(glVertexAttribI4uiEXT),

-		EXT(glVertexAttribI1ivEXT),

-		EXT(glVertexAttribI2ivEXT),

-		EXT(glVertexAttribI3ivEXT),

-		EXT(glVertexAttribI4ivEXT),

-		EXT(glVertexAttribI1uivEXT),

-		EXT(glVertexAttribI2uivEXT),

-		EXT(glVertexAttribI3uivEXT),

-		EXT(glVertexAttribI4uivEXT),

-		EXT(glVertexAttribI4bvEXT),

-		EXT(glVertexAttribI4svEXT),

-		EXT(glVertexAttribI4ubvEXT),

-		EXT(glVertexAttribI4usvEXT),

-		EXT(glVertexAttribIPointerEXT),

-		EXT(glGetVertexAttribIivEXT),

-		EXT(glGetVertexAttribIuivEXT),

-		EXT(glPointParameterfEXT),

-		EXT(glPointParameterfvEXT),

-		EXT(glTexBufferEXT),

-		EXT(glTexParameterIivEXT),

-		EXT(glTexParameterIuivEXT),

-		EXT(glGetTexParameterIivEXT),

-		EXT(glGetTexParameterIuivEXT),

-		EXT(glClearColorIiEXT),

-		EXT(glClearColorIuiEXT),

-		EXT(glGetQueryObjecti64vEXT),

-		EXT(glGetQueryObjectui64vEXT),

-		EXT(glArrayElementEXT),

-		EXT(glColorPointerEXT),

-		EXT(glDrawArraysEXT),

-		EXT(glEdgeFlagPointerEXT),

-		EXT(glGetPointervEXT),

-		EXT(glIndexPointerEXT),

-		EXT(glNormalPointerEXT),

-		EXT(glTexCoordPointerEXT),

-		EXT(glVertexPointerEXT),

-		EXT(glBeginConditionalRenderNV),

-		EXT(glEndConditionalRenderNV),

-		EXT(glDepthRangedNV),

-		EXT(glClearDepthdNV),

-		EXT(glDepthBoundsdNV),

-		EXT(glGetMultisamplefvNV),

-		EXT(glSampleMaskIndexedNV),

-		EXT(glTexRenderbufferNV),

-		EXT(glProgramNamedParameter4fNV),

-		EXT(glProgramNamedParameter4fvNV),

-		EXT(glProgramNamedParameter4dNV),

-		EXT(glProgramNamedParameter4dvNV),

-		EXT(glGetProgramNamedParameterfvNV),

-		EXT(glGetProgramNamedParameterdvNV),

-		EXT(glRenderbufferStorageMultisampleCoverageNV),

-		EXT(glProgramLocalParameterI4iNV),

-		EXT(glProgramLocalParameterI4ivNV),

-		EXT(glProgramLocalParametersI4ivNV),

-		EXT(glProgramLocalParameterI4uiNV),

-		EXT(glProgramLocalParameterI4uivNV),

-		EXT(glProgramLocalParametersI4uivNV),

-		EXT(glProgramEnvParameterI4iNV),

-		EXT(glProgramEnvParameterI4ivNV),

-		EXT(glProgramEnvParametersI4ivNV),

-		EXT(glProgramEnvParameterI4uiNV),

-		EXT(glProgramEnvParameterI4uivNV),

-		EXT(glProgramEnvParametersI4uivNV),

-		EXT(glGetProgramLocalParameterIivNV),

-		EXT(glGetProgramLocalParameterIuivNV),

-		EXT(glGetProgramEnvParameterIivNV),

-		EXT(glGetProgramEnvParameterIuivNV),

-		EXT(glVertex2hNV),

-		EXT(glVertex2hvNV),

-		EXT(glVertex3hNV),

-		EXT(glVertex3hvNV),

-		EXT(glVertex4hNV),

-		EXT(glVertex4hvNV),

-		EXT(glNormal3hNV),

-		EXT(glNormal3hvNV),

-		EXT(glColor3hNV),

-		EXT(glColor3hvNV),

-		EXT(glColor4hNV),

-		EXT(glColor4hvNV),

-		EXT(glTexCoord1hNV),

-		EXT(glTexCoord1hvNV),

-		EXT(glTexCoord2hNV),

-		EXT(glTexCoord2hvNV),

-		EXT(glTexCoord3hNV),

-		EXT(glTexCoord3hvNV),

-		EXT(glTexCoord4hNV),

-		EXT(glTexCoord4hvNV),

-		EXT(glMultiTexCoord1hNV),

-		EXT(glMultiTexCoord1hvNV),

-		EXT(glMultiTexCoord2hNV),

-		EXT(glMultiTexCoord2hvNV),

-		EXT(glMultiTexCoord3hNV),

-		EXT(glMultiTexCoord3hvNV),

-		EXT(glMultiTexCoord4hNV),

-		EXT(glMultiTexCoord4hvNV),

-		EXT(glFogCoordhNV),

-		EXT(glFogCoordhvNV),

-		EXT(glSecondaryColor3hNV),

-		EXT(glSecondaryColor3hvNV),

-		EXT(glVertexWeighthNV),

-		EXT(glVertexWeighthvNV),

-		EXT(glVertexAttrib1hNV),

-		EXT(glVertexAttrib1hvNV),

-		EXT(glVertexAttrib2hNV),

-		EXT(glVertexAttrib2hvNV),

-		EXT(glVertexAttrib3hNV),

-		EXT(glVertexAttrib3hvNV),

-		EXT(glVertexAttrib4hNV),

-		EXT(glVertexAttrib4hvNV),

-		EXT(glVertexAttribs1hvNV),

-		EXT(glVertexAttribs2hvNV),

-		EXT(glVertexAttribs3hvNV),

-		EXT(glVertexAttribs4hvNV),

-		EXT(glBeginOcclusionQueryNV),

-		EXT(glEndOcclusionQueryNV),

-		EXT(glGetOcclusionQueryivNV),

-		EXT(glGetOcclusionQueryuivNV),

-		EXT(glGenOcclusionQueriesNV),

-		EXT(glDeleteOcclusionQueriesNV),

-		EXT(glIsOcclusionQueryNV),

-		EXT(glProgramBufferParametersfvNV),

-		EXT(glProgramBufferParametersIivNV),

-		EXT(glProgramBufferParametersIuivNV),

-		EXT(glPixelDataRangeNV),

-		EXT(glFlushPixelDataRangeNV),

-		EXT(glPointParameteriNV),

-		EXT(glPointParameterivNV),

-		EXT(glPrimitiveRestartNV),

-		EXT(glPrimitiveRestartIndexNV),

-		EXT(glCombinerParameterfvNV),

-		EXT(glCombinerParameterfNV),

-		EXT(glCombinerParameterivNV),

-		EXT(glCombinerParameteriNV),

-		EXT(glCombinerInputNV),

-		EXT(glCombinerOutputNV),

-		EXT(glFinalCombinerInputNV),

-		EXT(glGetCombinerInputParameterfvNV),

-		EXT(glGetCombinerInputParameterivNV),

-		EXT(glGetCombinerOutputParameterfvNV),

-		EXT(glGetCombinerOutputParameterivNV),

-		EXT(glGetFinalCombinerInputParameterfvNV),

-		EXT(glGetFinalCombinerInputParameterivNV),

-		EXT(glCombinerStageParameterfvNV),

-		EXT(glGetCombinerStageParameterfvNV),

-		EXT(glMakeBufferResidentNV),

-		EXT(glMakeBufferNonResidentNV),

-		EXT(glIsBufferResidentNV),

-		EXT(glMakeNamedBufferResidentNV),

-		EXT(glMakeNamedBufferNonResidentNV),

-		EXT(glIsNamedBufferResidentNV),

-		EXT(glGetBufferParameterui64vNV),

-		EXT(glGetNamedBufferParameterui64vNV),

-		EXT(glGetIntegerui64vNV),

-		EXT(glUniformui64NV),

-		EXT(glUniformui64vNV),

-		EXT(glGetUniformui64vNV),

-		EXT(glProgramUniformui64NV),

-		EXT(glProgramUniformui64vNV),

-		EXT(glBeginTransformFeedbackNV),

-		EXT(glEndTransformFeedbackNV),

-		EXT(glTransformFeedbackAttribsNV),

-		EXT(glBindBufferRangeNV),

-		EXT(glBindBufferOffsetNV),

-		EXT(glBindBufferBaseNV),

-		EXT(glTransformFeedbackVaryingsNV),

-		EXT(glActiveVaryingNV),

-		EXT(glGetVaryingLocationNV),

-		EXT(glGetActiveVaryingNV),

-		EXT(glGetTransformFeedbackVaryingNV),

-		EXT(glTransformFeedbackStreamAttribsNV),

-		EXT(glFlushVertexArrayRangeNV),

-		EXT(glVertexArrayRangeNV),

-		EXT(glBufferAddressRangeNV),

-		EXT(glVertexFormatNV),

-		EXT(glNormalFormatNV),

-		EXT(glColorFormatNV),

-		EXT(glIndexFormatNV),

-		EXT(glTexCoordFormatNV),

-		EXT(glEdgeFlagFormatNV),

-		EXT(glSecondaryColorFormatNV),

-		EXT(glFogCoordFormatNV),

-		EXT(glVertexAttribFormatNV),

-		EXT(glVertexAttribIFormatNV),

-		EXT(glGetIntegerui64i_vNV),

-		EXT(glAreProgramsResidentNV),

-		EXT(glBindProgramNV),

-		EXT(glDeleteProgramsNV),

-		EXT(glExecuteProgramNV),

-		EXT(glGenProgramsNV),

-		EXT(glGetProgramParameterdvNV),

-		EXT(glGetProgramParameterfvNV),

-		EXT(glGetProgramivNV),

-		EXT(glGetProgramStringNV),

-		EXT(glGetTrackMatrixivNV),

-		EXT(glGetVertexAttribdvNV),

-		EXT(glGetVertexAttribfvNV),

-		EXT(glGetVertexAttribivNV),

-		EXT(glGetVertexAttribPointervNV),

-		EXT(glIsProgramNV),

-		EXT(glLoadProgramNV),

-		EXT(glProgramParameter4dNV),

-		EXT(glProgramParameter4dvNV),

-		EXT(glProgramParameter4fNV),

-		EXT(glProgramParameter4fvNV),

-		EXT(glProgramParameters4dvNV),

-		EXT(glProgramParameters4fvNV),

-		EXT(glRequestResidentProgramsNV),

-		EXT(glTrackMatrixNV),

-		EXT(glVertexAttribPointerNV),

-		EXT(glVertexAttrib1dNV),

-		EXT(glVertexAttrib1dvNV),

-		EXT(glVertexAttrib1fNV),

-		EXT(glVertexAttrib1fvNV),

-		EXT(glVertexAttrib1sNV),

-		EXT(glVertexAttrib1svNV),

-		EXT(glVertexAttrib2dNV),

-		EXT(glVertexAttrib2dvNV),

-		EXT(glVertexAttrib2fNV),

-		EXT(glVertexAttrib2fvNV),

-		EXT(glVertexAttrib2sNV),

-		EXT(glVertexAttrib2svNV),

-		EXT(glVertexAttrib3dNV),

-		EXT(glVertexAttrib3dvNV),

-		EXT(glVertexAttrib3fNV),

-		EXT(glVertexAttrib3fvNV),

-		EXT(glVertexAttrib3sNV),

-		EXT(glVertexAttrib3svNV),

-		EXT(glVertexAttrib4dNV),

-		EXT(glVertexAttrib4dvNV),

-		EXT(glVertexAttrib4fNV),

-		EXT(glVertexAttrib4fvNV),

-		EXT(glVertexAttrib4sNV),

-		EXT(glVertexAttrib4svNV),

-		EXT(glVertexAttrib4ubNV),

-		EXT(glVertexAttrib4ubvNV),

-		EXT(glVertexAttribs1dvNV),

-		EXT(glVertexAttribs1fvNV),

-		EXT(glVertexAttribs1svNV),

-		EXT(glVertexAttribs2dvNV),

-		EXT(glVertexAttribs2fvNV),

-		EXT(glVertexAttribs2svNV),

-		EXT(glVertexAttribs3dvNV),

-		EXT(glVertexAttribs3fvNV),

-		EXT(glVertexAttribs3svNV),

-		EXT(glVertexAttribs4dvNV),

-		EXT(glVertexAttribs4fvNV),

-		EXT(glVertexAttribs4svNV),

-		EXT(glVertexAttribs4ubvNV),

-

 		// ARB

 		EXT(wglGetExtensionsStringARB),

 		EXT(glIsRenderbuffer),

@@ -11500,23 +8195,9 @@
 		// EXT

 		EXT(wglSwapIntervalEXT),

 		EXT(wglGetExtensionsStringEXT),

-

-		//UNIMPLEMENTEDg

-		EXT(wglGetSwapIntervalEXT),

 		#undef EXT

 	};

 

-	std::set<const char *> setset;

-	for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)

-	{

-		int size = setset.size();

-		setset.insert(glExtensions[ext].name);

-		if(size == setset.size())

-		{

-			size = size;

-		}

-	}

-

 	for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)

 	{

 		if(strcmp(lpszProc, glExtensions[ext].name) == 0)

@@ -11534,7 +8215,7 @@
 

 	TRACE("(LPCSTR lpszProc = \"%s\") NOT FOUND!!!", lpszProc);

 

-	return (PROC)glIsQueryEXT;

+	return 0;

 }

 

 BOOL WINAPI wglMakeCurrent(HDC hdc, HGLRC hglrc)

@@ -11576,25 +8257,10 @@
 	return TRUE;

 }

 

-BOOL WINAPI wglShareLists(HGLRC hglrc1, HGLRC hglrc2)

+BOOL WINAPI wglShareLists(HGLRC, HGLRC)

 {

-	if(!hglrc1 || !hglrc2)

-	{

-		SetLastError(ERROR_DC_NOT_FOUND);

-		return FALSE;

-	}

-

-	gl::Context* context1 = (gl::Context*)hglrc1;

-	gl::Context* context2 = (gl::Context*)hglrc2;

-

-	if(!context1 || !context2)

-	{

-		SetLastError(ERROR_DC_NOT_FOUND);

-		return FALSE;

-	}

-

-	context1->shareDisplayListSpace(hglrc2);

-	return TRUE;

+	UNIMPLEMENTED();

+	return FALSE;

 }

 

 BOOL WINAPI wglSwapBuffers(HDC hdc)

diff --git a/src/OpenGL/libGL/libGL.def b/src/OpenGL/libGL/libGL.def
index c321bfd..36bc8a4 100644
--- a/src/OpenGL/libGL/libGL.def
+++ b/src/OpenGL/libGL/libGL.def
@@ -368,6 +368,5 @@
 	wglUseFontBitmapsW	@366
 	wglUseFontOutlinesA	@367
 	wglUseFontOutlinesW	@368
-	wglCreateContextAttribsARB @369
 
 	Register
\ No newline at end of file
diff --git a/src/OpenGL/libGL/utilities.cpp b/src/OpenGL/libGL/utilities.cpp
index 9ebed88..79249f2 100644
--- a/src/OpenGL/libGL/utilities.cpp
+++ b/src/OpenGL/libGL/utilities.cpp
@@ -309,7 +309,7 @@
 

 	bool IsTextureTarget(GLenum target)

 	{

-		return target == GL_TEXTURE_1D || target == GL_TEXTURE_RECTANGLE || target == GL_TEXTURE_2D || IsCubemapTextureTarget(target);

+		return target == GL_TEXTURE_2D || IsCubemapTextureTarget(target);

 	}

 

 	// Verify that format/type are one of the combinations from table 3.4.

@@ -617,59 +617,6 @@
 		}

 	}

 

-	void ConvertTextureOperations(GLenum texEnvMode, GLenum texFormat, sw::TextureStage::StageOperation *rgbOperation, sw::TextureStage::StageOperation *alphaOperation)

-	{

-		switch(texEnvMode)

-		{

-		case GL_MODULATE:

-			switch(texFormat)

-			{

-			case GL_LUMINANCE_ALPHA:

-				*rgbOperation = sw::TextureStage::STAGE_MODULATE;

-				*alphaOperation = sw::TextureStage::STAGE_MODULATE;

-				break;

-			case GL_RGB:

-				*rgbOperation = sw::TextureStage::STAGE_MODULATE;

-				*alphaOperation = sw::TextureStage::STAGE_SELECTARG2;

-				break;

-			case GL_RGBA:

-				*rgbOperation = sw::TextureStage::STAGE_MODULATE;

-				*alphaOperation = sw::TextureStage::STAGE_MODULATE;

-				break;

-			case GL_ALPHA:

-			case GL_LUMINANCE:

-				UNIMPLEMENTED();

-				// Default operations for compatibility

-				*rgbOperation = sw::TextureStage::STAGE_MODULATE;

-				*alphaOperation = sw::TextureStage::STAGE_MODULATE;

-				break;

-			default: UNREACHABLE();

-			}

-			break;

-

-		case GL_REPLACE:

-			*rgbOperation = sw::TextureStage::STAGE_SELECTARG1;

-			*alphaOperation = sw::TextureStage::STAGE_SELECTARG1;

-			break;

-

-		case GL_ADD:

-			*rgbOperation = sw::TextureStage::STAGE_ADD;

-			*alphaOperation = sw::TextureStage::STAGE_SELECTARG1;

-			break;

-

-		case GL_DECAL:

-		case GL_BLEND:

-			// Default operations for compatibility

-			*rgbOperation = sw::TextureStage::STAGE_MODULATE;

-			*alphaOperation = sw::TextureStage::STAGE_MODULATE;

-			UNIMPLEMENTED();

-			break;

-

-		default:

-			UNREACHABLE();

-		}

-	}

-

 	bool ConvertPrimitiveType(GLenum primitiveType, GLsizei elementCount,  gl::PrimitiveType &swPrimitiveType, int &primitiveCount)

 	{

 		switch(primitiveType)

diff --git a/src/OpenGL/libGL/utilities.h b/src/OpenGL/libGL/utilities.h
index 39a1e0b..dfcf515 100644
--- a/src/OpenGL/libGL/utilities.h
+++ b/src/OpenGL/libGL/utilities.h
@@ -69,7 +69,6 @@
 	void ConvertMinFilter(GLenum texFilter, sw::FilterType *minFilter, sw::MipmapType *mipFilter, float maxAnisotropy);

 	bool ConvertPrimitiveType(GLenum primitiveType, GLsizei elementCount,  gl::PrimitiveType &swPrimitiveType, int &primitiveCount);

 	sw::Format ConvertRenderbufferFormat(GLenum format);

-	void ConvertTextureOperations(GLenum texEnvMode, GLenum texFormat, sw::TextureStage::StageOperation *rgbOperation, sw::TextureStage::StageOperation *alphaOperation);

 }

 

 namespace sw2es

diff --git a/src/Renderer/Context.hpp b/src/Renderer/Context.hpp
index cc015b3..77b71c8 100644
--- a/src/Renderer/Context.hpp
+++ b/src/Renderer/Context.hpp
@@ -284,8 +284,6 @@
 		// Set fixed-function pixel pipeline states, return true when modified

 		bool setDepthBufferEnable(bool depthBufferEnable);

 

-		void setRectangleTextureEnable(bool rectangleTextureEnable);

-

 		bool setAlphaBlendEnable(bool alphaBlendEnable);

 		bool setSourceBlendFactor(BlendFactor sourceBlendFactor);

 		bool setDestBlendFactor(BlendFactor destBlendFactor);

diff --git a/src/Renderer/VertexProcessor.cpp b/src/Renderer/VertexProcessor.cpp
index 06fb304..d5a394c 100644
--- a/src/Renderer/VertexProcessor.cpp
+++ b/src/Renderer/VertexProcessor.cpp
@@ -213,16 +213,6 @@
 		updateLighting = true;
 	}
 
-	void VertexProcessor::setRectangleTextureEnable(bool enable)
-	{
-		rectangleTextureEnable = enable;
-	}
-
-	bool VertexProcessor::getRectangleTextureEnable()
-	{
-		return rectangleTextureEnable;
-	}
-
 	void VertexProcessor::setSpecularEnable(bool specularEnable)
 	{
 		context->setSpecularEnable(specularEnable);
diff --git a/src/Renderer/VertexProcessor.hpp b/src/Renderer/VertexProcessor.hpp
index 46834c1..b10b7a0 100644
--- a/src/Renderer/VertexProcessor.hpp
+++ b/src/Renderer/VertexProcessor.hpp
@@ -196,9 +196,6 @@
 		virtual void setLightEnable(unsigned int light, bool lightEnable);

 		virtual void setSpecularEnable(bool specularEnable);

 

-		void setRectangleTextureEnable(bool enable);

-		bool getRectangleTextureEnable();

-

 		virtual void setGlobalAmbient(const Color<float> &globalAmbient);

 		virtual void setLightPosition(unsigned int light, const Point &lightPosition);

 		virtual void setLightViewPosition(unsigned int light, const Point &lightPosition);

@@ -299,8 +296,6 @@
 		bool updateBaseMatrix;

 		bool updateProjectionMatrix;

 		bool updateLighting;

-		bool rectangleTextureEnable;

-		bool oneDTextureEnable;

 	};

 }