Pygmentx

This is an online syntax highlighter using Pygments. Mainly used for testing the improved Haxe lexer which is located at the Haxe3 branch over here. Let me know (@andy_li) if you find some valid Haxe code is highlighted wrong (not about the color scheme).

package native.gl;
#if (cpp || neko)

import native.display.BitmapData;
import native.utils.ArrayBuffer;
import native.utils.ByteArray;
import native.utils.Float32Array;
import native.utils.IMemoryRange;
import native.utils.ArrayBufferView;
import native.geom.Matrix3D;
import native.Lib;
import native.Loader;

class GL 
{
   /* ClearBufferMask */
   public static inline var DEPTH_BUFFER_BIT               = 0x00000100;
   public static inline var STENCIL_BUFFER_BIT             = 0x00000400;
   public static inline var COLOR_BUFFER_BIT               = 0x00004000;

   /* BeginMode */
   public static inline var POINTS                         = 0x0000;
   public static inline var LINES                          = 0x0001;
   public static inline var LINE_LOOP                      = 0x0002;
   public static inline var LINE_STRIP                     = 0x0003;
   public static inline var TRIANGLES                      = 0x0004;
   public static inline var TRIANGLE_STRIP                 = 0x0005;
   public static inline var TRIANGLE_FAN                   = 0x0006;

   /* AlphaFunction(not supported in ES20) */
   /*      NEVER */
   /*      LESS */
   /*      EQUAL */
   /*      LEQUAL */
   /*      GREATER */
   /*      NOTEQUAL */
   /*      GEQUAL */
   /*      ALWAYS */
   /* BlendingFactorDest */
   public static inline var ZERO                           = 0;
   public static inline var ONE                            = 1;
   public static inline var SRC_COLOR                      = 0x0300;
   public static inline var ONE_MINUS_SRC_COLOR            = 0x0301;
   public static inline var SRC_ALPHA                      = 0x0302;
   public static inline var ONE_MINUS_SRC_ALPHA            = 0x0303;
   public static inline var DST_ALPHA                      = 0x0304;
   public static inline var ONE_MINUS_DST_ALPHA            = 0x0305;

   /* BlendingFactorSrc */
   /*      ZERO */
   /*      ONE */
   public static inline var DST_COLOR                      = 0x0306;
   public static inline var ONE_MINUS_DST_COLOR            = 0x0307;
   public static inline var SRC_ALPHA_SATURATE             = 0x0308;
   /*      SRC_ALPHA */
   /*      ONE_MINUS_SRC_ALPHA */
   /*      DST_ALPHA */
   /*      ONE_MINUS_DST_ALPHA */
   /* BlendEquationSeparate */
   public static inline var FUNC_ADD                       = 0x8006;
   public static inline var BLEND_EQUATION                 = 0x8009;
   public static inline var BLEND_EQUATION_RGB             = 0x8009;   /* same as BLEND_EQUATION */
   public static inline var BLEND_EQUATION_ALPHA           = 0x883D;

   /* BlendSubtract */
   public static inline var FUNC_SUBTRACT                  = 0x800A;
   public static inline var FUNC_REVERSE_SUBTRACT          = 0x800B;

   /* Separate Blend Functions */
   public static inline var BLEND_DST_RGB                  = 0x80C8;
   public static inline var BLEND_SRC_RGB                  = 0x80C9;
   public static inline var BLEND_DST_ALPHA                = 0x80CA;
   public static inline var BLEND_SRC_ALPHA                = 0x80CB;
   public static inline var CONSTANT_COLOR                 = 0x8001;
   public static inline var ONE_MINUS_CONSTANT_COLOR       = 0x8002;
   public static inline var CONSTANT_ALPHA                 = 0x8003;
   public static inline var ONE_MINUS_CONSTANT_ALPHA       = 0x8004;
   public static inline var BLEND_COLOR                    = 0x8005;

   /* GLBuffer Objects */
   public static inline var ARRAY_BUFFER                   = 0x8892;
   public static inline var ELEMENT_ARRAY_BUFFER           = 0x8893;
   public static inline var ARRAY_BUFFER_BINDING           = 0x8894;
   public static inline var ELEMENT_ARRAY_BUFFER_BINDING   = 0x8895;

   public static inline var STREAM_DRAW                    = 0x88E0;
   public static inline var STATIC_DRAW                    = 0x88E4;
   public static inline var DYNAMIC_DRAW                   = 0x88E8;

   public static inline var BUFFER_SIZE                    = 0x8764;
   public static inline var BUFFER_USAGE                   = 0x8765;

   public static inline var CURRENT_VERTEX_ATTRIB          = 0x8626;

   /* CullFaceMode */
   public static inline var FRONT                          = 0x0404;
   public static inline var BACK                           = 0x0405;
   public static inline var FRONT_AND_BACK                 = 0x0408;

   /* DepthFunction */
   /*      NEVER */
   /*      LESS */
   /*      EQUAL */
   /*      LEQUAL */
   /*      GREATER */
   /*      NOTEQUAL */
   /*      GEQUAL */
   /*      ALWAYS */
   /* EnableCap */
   /* TEXTURE_2D */
   public static inline var CULL_FACE                      = 0x0B44;
   public static inline var BLEND                          = 0x0BE2;
   public static inline var DITHER                         = 0x0BD0;
   public static inline var STENCIL_TEST                   = 0x0B90;
   public static inline var DEPTH_TEST                     = 0x0B71;
   public static inline var SCISSOR_TEST                   = 0x0C11;
   public static inline var POLYGON_OFFSET_FILL            = 0x8037;
   public static inline var SAMPLE_ALPHA_TO_COVERAGE       = 0x809E;
   public static inline var SAMPLE_COVERAGE                = 0x80A0;

   /* ErrorCode */
   public static inline var NO_ERROR                       = 0;
   public static inline var INVALID_ENUM                   = 0x0500;
   public static inline var INVALID_VALUE                  = 0x0501;
   public static inline var INVALID_OPERATION              = 0x0502;
   public static inline var OUT_OF_MEMORY                  = 0x0505;

   /* FrontFaceDirection */
   public static inline var CW                             = 0x0900;
   public static inline var CCW                            = 0x0901;

   /* GetPName */
   public static inline var LINE_WIDTH                     = 0x0B21;
   public static inline var ALIASED_POINT_SIZE_RANGE       = 0x846D;
   public static inline var ALIASED_LINE_WIDTH_RANGE       = 0x846E;
   public static inline var CULL_FACE_MODE                 = 0x0B45;
   public static inline var FRONT_FACE                     = 0x0B46;
   public static inline var DEPTH_RANGE                    = 0x0B70;
   public static inline var DEPTH_WRITEMASK                = 0x0B72;
   public static inline var DEPTH_CLEAR_VALUE              = 0x0B73;
   public static inline var DEPTH_FUNC                     = 0x0B74;
   public static inline var STENCIL_CLEAR_VALUE            = 0x0B91;
   public static inline var STENCIL_FUNC                   = 0x0B92;
   public static inline var STENCIL_FAIL                   = 0x0B94;
   public static inline var STENCIL_PASS_DEPTH_FAIL        = 0x0B95;
   public static inline var STENCIL_PASS_DEPTH_PASS        = 0x0B96;
   public static inline var STENCIL_REF                    = 0x0B97;
   public static inline var STENCIL_VALUE_MASK             = 0x0B93;
   public static inline var STENCIL_WRITEMASK              = 0x0B98;
   public static inline var STENCIL_BACK_FUNC              = 0x8800;
   public static inline var STENCIL_BACK_FAIL              = 0x8801;
   public static inline var STENCIL_BACK_PASS_DEPTH_FAIL   = 0x8802;
   public static inline var STENCIL_BACK_PASS_DEPTH_PASS   = 0x8803;
   public static inline var STENCIL_BACK_REF               = 0x8CA3;
   public static inline var STENCIL_BACK_VALUE_MASK        = 0x8CA4;
   public static inline var STENCIL_BACK_WRITEMASK         = 0x8CA5;
   public static inline var VIEWPORT                       = 0x0BA2;
   public static inline var SCISSOR_BOX                    = 0x0C10;
   /*      SCISSOR_TEST */
   public static inline var COLOR_CLEAR_VALUE              = 0x0C22;
   public static inline var COLOR_WRITEMASK                = 0x0C23;
   public static inline var UNPACK_ALIGNMENT               = 0x0CF5;
   public static inline var PACK_ALIGNMENT                 = 0x0D05;
   public static inline var MAX_TEXTURE_SIZE               = 0x0D33;
   public static inline var MAX_VIEWPORT_DIMS              = 0x0D3A;
   public static inline var SUBPIXEL_BITS                  = 0x0D50;
   public static inline var RED_BITS                       = 0x0D52;
   public static inline var GREEN_BITS                     = 0x0D53;
   public static inline var BLUE_BITS                      = 0x0D54;
   public static inline var ALPHA_BITS                     = 0x0D55;
   public static inline var DEPTH_BITS                     = 0x0D56;
   public static inline var STENCIL_BITS                   = 0x0D57;
   public static inline var POLYGON_OFFSET_UNITS           = 0x2A00;
   /*      POLYGON_OFFSET_FILL */
   public static inline var POLYGON_OFFSET_FACTOR          = 0x8038;
   public static inline var TEXTURE_BINDING_2D             = 0x8069;
   public static inline var SAMPLE_BUFFERS                 = 0x80A8;
   public static inline var SAMPLES                        = 0x80A9;
   public static inline var SAMPLE_COVERAGE_VALUE          = 0x80AA;
   public static inline var SAMPLE_COVERAGE_INVERT         = 0x80AB;

   /* GetTextureParameter */
   /*      TEXTURE_MAG_FILTER */
   /*      TEXTURE_MIN_FILTER */
   /*      TEXTURE_WRAP_S */
   /*      TEXTURE_WRAP_T */
   public static inline var COMPRESSED_TEXTURE_FORMATS     = 0x86A3;

   /* HintMode */
   public static inline var DONT_CARE                      = 0x1100;
   public static inline var FASTEST                        = 0x1101;
   public static inline var NICEST                         = 0x1102;

   /* HintTarget */
   public static inline var GENERATE_MIPMAP_HINT            = 0x8192;

   /* DataType */
   public static inline var BYTE                           = 0x1400;
   public static inline var UNSIGNED_BYTE                  = 0x1401;
   public static inline var SHORT                          = 0x1402;
   public static inline var UNSIGNED_SHORT                 = 0x1403;
   public static inline var INT                            = 0x1404;
   public static inline var UNSIGNED_INT                   = 0x1405;
   public static inline var FLOAT                          = 0x1406;

   /* PixelFormat */
   public static inline var DEPTH_COMPONENT                = 0x1902;
   public static inline var ALPHA                          = 0x1906;
   public static inline var RGB                            = 0x1907;
   public static inline var RGBA                           = 0x1908;
   public static inline var LUMINANCE                      = 0x1909;
   public static inline var LUMINANCE_ALPHA                = 0x190A;

   /* PixelType */
   /*      UNSIGNED_BYTE */
   public static inline var UNSIGNED_SHORT_4_4_4_4         = 0x8033;
   public static inline var UNSIGNED_SHORT_5_5_5_1         = 0x8034;
   public static inline var UNSIGNED_SHORT_5_6_5           = 0x8363;

   /* Shaders */
   public static inline var FRAGMENT_SHADER                  = 0x8B30;
   public static inline var VERTEX_SHADER                    = 0x8B31;
   public static inline var MAX_VERTEX_ATTRIBS               = 0x8869;
   public static inline var MAX_VERTEX_UNIFORM_VECTORS       = 0x8DFB;
   public static inline var MAX_VARYING_VECTORS              = 0x8DFC;
   public static inline var MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
   public static inline var MAX_VERTEX_TEXTURE_IMAGE_UNITS   = 0x8B4C;
   public static inline var MAX_TEXTURE_IMAGE_UNITS          = 0x8872;
   public static inline var MAX_FRAGMENT_UNIFORM_VECTORS     = 0x8DFD;
   public static inline var SHADER_TYPE                      = 0x8B4F;
   public static inline var DELETE_STATUS                    = 0x8B80;
   public static inline var LINK_STATUS                      = 0x8B82;
   public static inline var VALIDATE_STATUS                  = 0x8B83;
   public static inline var ATTACHED_SHADERS                 = 0x8B85;
   public static inline var ACTIVE_UNIFORMS                  = 0x8B86;
   public static inline var ACTIVE_ATTRIBUTES                = 0x8B89;
   public static inline var SHADING_LANGUAGE_VERSION         = 0x8B8C;
   public static inline var CURRENT_PROGRAM                  = 0x8B8D;

   /* StencilFunction */
   public static inline var NEVER                          = 0x0200;
   public static inline var LESS                           = 0x0201;
   public static inline var EQUAL                          = 0x0202;
   public static inline var LEQUAL                         = 0x0203;
   public static inline var GREATER                        = 0x0204;
   public static inline var NOTEQUAL                       = 0x0205;
   public static inline var GEQUAL                         = 0x0206;
   public static inline var ALWAYS                         = 0x0207;

   /* StencilOp */
   /*      ZERO */
   public static inline var KEEP                           = 0x1E00;
   public static inline var REPLACE                        = 0x1E01;
   public static inline var INCR                           = 0x1E02;
   public static inline var DECR                           = 0x1E03;
   public static inline var INVERT                         = 0x150A;
   public static inline var INCR_WRAP                      = 0x8507;
   public static inline var DECR_WRAP                      = 0x8508;

   /* StringName */
   public static inline var VENDOR                         = 0x1F00;
   public static inline var RENDERER                       = 0x1F01;
   public static inline var VERSION                        = 0x1F02;

   /* TextureMagFilter */
   public static inline var NEAREST                        = 0x2600;
   public static inline var LINEAR                         = 0x2601;

   /* TextureMinFilter */
   /*      NEAREST */
   /*      LINEAR */
   public static inline var NEAREST_MIPMAP_NEAREST         = 0x2700;
   public static inline var LINEAR_MIPMAP_NEAREST          = 0x2701;
   public static inline var NEAREST_MIPMAP_LINEAR          = 0x2702;
   public static inline var LINEAR_MIPMAP_LINEAR           = 0x2703;

   /* TextureParameterName */
   public static inline var TEXTURE_MAG_FILTER             = 0x2800;
   public static inline var TEXTURE_MIN_FILTER             = 0x2801;
   public static inline var TEXTURE_WRAP_S                 = 0x2802;
   public static inline var TEXTURE_WRAP_T                 = 0x2803;

   /* TextureTarget */
   public static inline var TEXTURE_2D                     = 0x0DE1;
   public static inline var TEXTURE                        = 0x1702;

   public static inline var TEXTURE_CUBE_MAP               = 0x8513;
   public static inline var TEXTURE_BINDING_CUBE_MAP       = 0x8514;
   public static inline var TEXTURE_CUBE_MAP_POSITIVE_X    = 0x8515;
   public static inline var TEXTURE_CUBE_MAP_NEGATIVE_X    = 0x8516;
   public static inline var TEXTURE_CUBE_MAP_POSITIVE_Y    = 0x8517;
   public static inline var TEXTURE_CUBE_MAP_NEGATIVE_Y    = 0x8518;
   public static inline var TEXTURE_CUBE_MAP_POSITIVE_Z    = 0x8519;
   public static inline var TEXTURE_CUBE_MAP_NEGATIVE_Z    = 0x851A;
   public static inline var MAX_CUBE_MAP_TEXTURE_SIZE      = 0x851C;

   /* TextureUnit */
   public static inline var TEXTURE0                       = 0x84C0;
   public static inline var TEXTURE1                       = 0x84C1;
   public static inline var TEXTURE2                       = 0x84C2;
   public static inline var TEXTURE3                       = 0x84C3;
   public static inline var TEXTURE4                       = 0x84C4;
   public static inline var TEXTURE5                       = 0x84C5;
   public static inline var TEXTURE6                       = 0x84C6;
   public static inline var TEXTURE7                       = 0x84C7;
   public static inline var TEXTURE8                       = 0x84C8;
   public static inline var TEXTURE9                       = 0x84C9;
   public static inline var TEXTURE10                      = 0x84CA;
   public static inline var TEXTURE11                      = 0x84CB;
   public static inline var TEXTURE12                      = 0x84CC;
   public static inline var TEXTURE13                      = 0x84CD;
   public static inline var TEXTURE14                      = 0x84CE;
   public static inline var TEXTURE15                      = 0x84CF;
   public static inline var TEXTURE16                      = 0x84D0;
   public static inline var TEXTURE17                      = 0x84D1;
   public static inline var TEXTURE18                      = 0x84D2;
   public static inline var TEXTURE19                      = 0x84D3;
   public static inline var TEXTURE20                      = 0x84D4;
   public static inline var TEXTURE21                      = 0x84D5;
   public static inline var TEXTURE22                      = 0x84D6;
   public static inline var TEXTURE23                      = 0x84D7;
   public static inline var TEXTURE24                      = 0x84D8;
   public static inline var TEXTURE25                      = 0x84D9;
   public static inline var TEXTURE26                      = 0x84DA;
   public static inline var TEXTURE27                      = 0x84DB;
   public static inline var TEXTURE28                      = 0x84DC;
   public static inline var TEXTURE29                      = 0x84DD;
   public static inline var TEXTURE30                      = 0x84DE;
   public static inline var TEXTURE31                      = 0x84DF;
   public static inline var ACTIVE_TEXTURE                 = 0x84E0;

   /* TextureWrapMode */
   public static inline var REPEAT                         = 0x2901;
   public static inline var CLAMP_TO_EDGE                  = 0x812F;
   public static inline var MIRRORED_REPEAT                = 0x8370;

   /* Uniform Types */
   public static inline var FLOAT_VEC2                     = 0x8B50;
   public static inline var FLOAT_VEC3                     = 0x8B51;
   public static inline var FLOAT_VEC4                     = 0x8B52;
   public static inline var INT_VEC2                       = 0x8B53;
   public static inline var INT_VEC3                       = 0x8B54;
   public static inline var INT_VEC4                       = 0x8B55;
   public static inline var BOOL                           = 0x8B56;
   public static inline var BOOL_VEC2                      = 0x8B57;
   public static inline var BOOL_VEC3                      = 0x8B58;
   public static inline var BOOL_VEC4                      = 0x8B59;
   public static inline var FLOAT_MAT2                     = 0x8B5A;
   public static inline var FLOAT_MAT3                     = 0x8B5B;
   public static inline var FLOAT_MAT4                     = 0x8B5C;
   public static inline var SAMPLER_2D                     = 0x8B5E;
   public static inline var SAMPLER_CUBE                   = 0x8B60;

   /* Vertex Arrays */
   public static inline var VERTEX_ATTRIB_ARRAY_ENABLED        = 0x8622;
   public static inline var VERTEX_ATTRIB_ARRAY_SIZE           = 0x8623;
   public static inline var VERTEX_ATTRIB_ARRAY_STRIDE         = 0x8624;
   public static inline var VERTEX_ATTRIB_ARRAY_TYPE           = 0x8625;
   public static inline var VERTEX_ATTRIB_ARRAY_NORMALIZED     = 0x886A;
   public static inline var VERTEX_ATTRIB_ARRAY_POINTER        = 0x8645;
   public static inline var VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;

   /* Point Size */
   public static inline var VERTEX_PROGRAM_POINT_SIZE       = 0x8642;
   public static inline var POINT_SPRITE                    = 0x8861;

   /* GLShader Source */
   public static inline var COMPILE_STATUS                 = 0x8B81;

   /* GLShader Precision-Specified Types */
   public static inline var LOW_FLOAT                      = 0x8DF0;
   public static inline var MEDIUM_FLOAT                   = 0x8DF1;
   public static inline var HIGH_FLOAT                     = 0x8DF2;
   public static inline var LOW_INT                        = 0x8DF3;
   public static inline var MEDIUM_INT                     = 0x8DF4;
   public static inline var HIGH_INT                       = 0x8DF5;

   /* GLFramebuffer Object. */
   public static inline var FRAMEBUFFER                    = 0x8D40;
   public static inline var RENDERBUFFER                   = 0x8D41;

   public static inline var RGBA4                          = 0x8056;
   public static inline var RGB5_A1                        = 0x8057;
   public static inline var RGB565                         = 0x8D62;
   public static inline var DEPTH_COMPONENT16              = 0x81A5;
   public static inline var STENCIL_INDEX                  = 0x1901;
   public static inline var STENCIL_INDEX8                 = 0x8D48;
   public static inline var DEPTH_STENCIL                  = 0x84F9;

   public static inline var RENDERBUFFER_WIDTH             = 0x8D42;
   public static inline var RENDERBUFFER_HEIGHT            = 0x8D43;
   public static inline var RENDERBUFFER_INTERNAL_FORMAT   = 0x8D44;
   public static inline var RENDERBUFFER_RED_SIZE          = 0x8D50;
   public static inline var RENDERBUFFER_GREEN_SIZE        = 0x8D51;
   public static inline var RENDERBUFFER_BLUE_SIZE         = 0x8D52;
   public static inline var RENDERBUFFER_ALPHA_SIZE        = 0x8D53;
   public static inline var RENDERBUFFER_DEPTH_SIZE        = 0x8D54;
   public static inline var RENDERBUFFER_STENCIL_SIZE      = 0x8D55;

   public static inline var FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           = 0x8CD0;
   public static inline var FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           = 0x8CD1;
   public static inline var FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         = 0x8CD2;
   public static inline var FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;

   public static inline var COLOR_ATTACHMENT0              = 0x8CE0;
   public static inline var DEPTH_ATTACHMENT               = 0x8D00;
   public static inline var STENCIL_ATTACHMENT             = 0x8D20;
   public static inline var DEPTH_STENCIL_ATTACHMENT       = 0x821A;

   public static inline var NONE                           = 0;

   public static inline var FRAMEBUFFER_COMPLETE                      = 0x8CD5;
   public static inline var FRAMEBUFFER_INCOMPLETE_ATTACHMENT         = 0x8CD6;
   public static inline var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
   public static inline var FRAMEBUFFER_INCOMPLETE_DIMENSIONS         = 0x8CD9;
   public static inline var FRAMEBUFFER_UNSUPPORTED                   = 0x8CDD;

   public static inline var FRAMEBUFFER_BINDING            = 0x8CA6;
   public static inline var RENDERBUFFER_BINDING           = 0x8CA7;
   public static inline var MAX_RENDERBUFFER_SIZE          = 0x84E8;

   public static inline var INVALID_FRAMEBUFFER_OPERATION  = 0x0506;

   /* WebGL-specific enums */
   public static inline var UNPACK_FLIP_Y_WEBGL            = 0x9240;
   public static inline var UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
   public static inline var CONTEXT_LOST_WEBGL             = 0x9242;
   public static inline var UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
   public static inline var BROWSER_DEFAULT_WEBGL          = 0x9244;

   public static var drawingBufferHeight(get_drawingBufferHeight, null):Int;
   public static var drawingBufferWidth(get_drawingBufferWidth, null):Int;
   public static var version(get_version, null):Int;

   public static function activeTexture(texture:Int):Void { nme_gl_active_texture(texture); }

   public static function attachShader(program:GLProgram, shader:GLShader):Void 
   {
      program.attach(shader);
      nme_gl_attach_shader(program.id, shader.id);
   }

   public static function bindAttribLocation(program:GLProgram, index:Int, name:String):Void 
   {
      nme_gl_bind_attrib_location(program.id, index, name);
   }

   public static function bindBitmapDataTexture(texture:BitmapData):Void 
   {
      nme_gl_bind_bitmap_data_texture(texture.nmeHandle);
   }

   public static function bindBuffer(target:Int, buffer:GLBuffer):Void 
   {
      nme_gl_bind_buffer(target, buffer == null ? 0 : buffer.id);
   }

   public static function bindFramebuffer(target:Int, framebuffer:GLFramebuffer):Void 
   {
      nme_gl_bind_framebuffer(target, framebuffer == null ? 0 : framebuffer.id);
   }

   public static function bindRenderbuffer(target:Int, renderbuffer:GLRenderbuffer):Void 
   {
      nme_gl_bind_renderbuffer(target, renderbuffer == null ? 0 : renderbuffer.id);
   }

   public static function bindTexture(target:Int, texture:GLTexture):Void 
   {
      nme_gl_bind_texture(target, texture == null ? 0 : texture.id);
   }

   public static function blendColor(red:Float, green:Float, blue:Float, alpha:Float):Void 
   {
      nme_gl_blend_color(red, green, blue, alpha);
   }

   public static function blendEquation(mode:Int):Void 
   {
      nme_gl_blend_equation(mode);
   }

   public static function blendEquationSeparate(modeRGB:Int, modeAlpha:Int):Void 
   {
      nme_gl_blend_equation_separate(modeRGB, modeAlpha);
   }

   public static function blendFunc(sfactor:Int, dfactor:Int):Void 
   {
      nme_gl_blend_func(sfactor, dfactor);
   }

   public static function blendFuncSeparate(srcRGB:Int, dstRGB:Int, srcAlpha:Int, dstAlpha:Int):Void 
   {
      nme_gl_blend_func_separate(srcRGB, dstRGB, srcAlpha, dstAlpha);
   }

   public static function bufferData(target:Int, data:IMemoryRange, usage:Int):Void 
   {
      nme_gl_buffer_data(target, data.getByteBuffer(), data.getStart(), data.getLength(), usage);
   }

   public static function bufferSubData(target:Int, offset:Int, data:IMemoryRange):Void 
   {
      nme_gl_buffer_sub_data(target, offset, data.getByteBuffer(), data.getStart(), data.getLength());
   }

   public static function checkFramebufferStatus(target:Int):Int 
   {
      return nme_gl_check_framebuffer_status(target);
   }

   public static function clear(mask:Int):Void 
   {
      nme_gl_clear(mask);
   }

   public static function clearColor(red:Float, green:Float, blue:Float, alpha:Float):Void 
   {
      nme_gl_clear_color(red, green, blue, alpha);
   }

   public static function clearDepth(depth:Float):Void 
   {
      nme_gl_clear_depth(depth);
   }

   public static function clearStencil(s:Int):Void 
   {
      nme_gl_clear_stencil(s);
   }

   public static function colorMask(red:Bool, green:Bool, blue:Bool, alpha:Bool):Void 
   {
      nme_gl_color_mask(red, green, blue, alpha);
   }

   public static function compileShader(shader:GLShader):Void 
   {
      nme_gl_compile_shader(shader.id);
   }

   public static function compressedTexImage2D(target:Int, level:Int, internalformat:Int, width:Int, height:Int, border:Int, data:IMemoryRange):Void 
   {
      nme_gl_compressed_tex_image_2d(target, level, internalformat, width, height, border, data == null ? null : data.getByteBuffer(), data == null ? null : data.getStart());
   }

   public static function compressedTexSubImage2D(target:Int, level:Int, xoffset:Int, yoffset:Int, width:Int, height:Int, format:Int, data:IMemoryRange):Void 
   {
      nme_gl_compressed_tex_sub_image_2d(target, level, xoffset, yoffset, width, height, format, data == null ? null : data.getByteBuffer(), data == null ? null : data.getStart());
   }

   public static function copyTexImage2D(target:Int, level:Int, internalformat:Int, x:Int, y:Int, width:Int, height:Int, border:Int):Void 
   {
      nme_gl_copy_tex_image_2d(target, level, internalformat, x, y, width, height, border);
   }

   public static function copyTexSubImage2D(target:Int, level:Int, xoffset:Int, yoffset:Int, x:Int, y:Int, width:Int, height:Int):Void 
   {
      nme_gl_copy_tex_sub_image_2d(target, level, xoffset, yoffset, x, y, width, height);
   }

   public static function createBuffer():GLBuffer 
   {
      return new GLBuffer(version, nme_gl_create_buffer());
   }

   public static function createFramebuffer():GLFramebuffer 
   {
      return new GLFramebuffer(version, nme_gl_create_framebuffer());
   }

   public static function createProgram():GLProgram 
   {
      return new GLProgram(version, nme_gl_create_program());
   }

   public static function createRenderbuffer():GLRenderbuffer 
   {
      return new GLRenderbuffer(version, nme_gl_create_render_buffer());
   }

   public static function createShader(type:Int):GLShader 
   {
      return new GLShader(version, nme_gl_create_shader(type));
   }

   public static function createTexture():GLTexture 
   {
      return new GLTexture(version, nme_gl_create_texture());
   }

   public static function cullFace(mode:Int):Void 
   {
   }

   public static function deleteBuffer(buffer:GLBuffer):Void 
   {
      nme_gl_delete_buffer(buffer.id);
      buffer.invalidate();
   }

   public static function deleteFramebuffer(framebuffer:GLFramebuffer):Void 
   {
   }

   public static function deleteProgram(program:GLProgram):Void 
   {
      nme_gl_delete_program(program.id);
      program.invalidate();
   }

   public static function deleteRenderbuffer(renderbuffer:GLRenderbuffer):Void 
   {
   }

   public static function deleteShader(shader:GLShader):Void 
   {
      nme_gl_delete_shader(shader.id);
      shader.invalidate();
   }

   public static function deleteTexture(texture:GLTexture):Void 
   {
      nme_gl_delete_texture(texture.id);
      texture.invalidate();
   }

   public static function depthFunc(func:Int):Void 
   {
      nme_gl_depth_func(func);
   }

   public static function depthMask(flag:Bool):Void 
   {
      nme_gl_depth_mask(flag);
   }

   public static function depthRange(zNear:Float, zFar:Float):Void 
   {
      nme_gl_depth_range(zNear, zFar);
   }

   public static function detachShader(program:GLProgram, shader:GLShader):Void 
   {
      nme_gl_detach_shader(program.id, shader.id);
   }

   public static function disable(cap:Int):Void 
   {
      nme_gl_disable(cap);
   }

   public static function disableVertexAttribArray(index:Int):Void 
   {
      nme_gl_disable_vertex_attrib_array(index);
   }

   public static function drawArrays(mode:Int, first:Int, count:Int):Void 
   {
      nme_gl_draw_arrays(mode, first, count);
   }

   public static function drawElements(mode:Int, count:Int, type:Int, offset:Int):Void 
   {
      nme_gl_draw_elements(mode, count, type, offset);
   }

   public static function enable(cap:Int):Void 
   {
      nme_gl_enable(cap);
   }

   public static function enableVertexAttribArray(index:Int):Void 
   {
      nme_gl_enable_vertex_attrib_array(index);
   }

   public static function finish():Void 
   {
      nme_gl_finish();
   }

   public static function flush():Void 
   {
      nme_gl_flush();
   }

   public static function framebufferRenderbuffer(target:Int, attachment:Int, renderbuffertarget:Int, renderbuffer:GLRenderbuffer):Void 
   {
      nme_gl_framebuffer_renderbuffer(target, attachment, renderbuffertarget, renderbuffer.id);
   }

   public static function framebufferTexture2D(target:Int, attachment:Int, textarget:Int, texture:GLTexture, level:Int):Void 
   {
      nme_gl_framebuffer_texture2D(target, attachment, textarget, texture.id, level);
   }

   public static function frontFace(mode:Int):Void 
   {
      nme_gl_front_face(mode);
   }

   public static function generateMipmap(target:Int):Void 
   {
      nme_gl_generate_mipmap(target);
   }

   public static function getActiveAttrib(program:GLProgram, index:Int):GLActiveInfo 
   {
      return nme_gl_get_active_attrib(program.id, index);
   }

   public static function getActiveUniform(program:GLProgram, index:Int):GLActiveInfo 
   {
      return nme_gl_get_active_uniform(program.id, index);
   }

   public static function getAttachedShaders(program:GLProgram):Array<GLShader> 
   {
      return program.getShaders();
   }

   public static function getAttribLocation(program:GLProgram, name:String):Int 
   {
      return nme_gl_get_attrib_location(program.id, name);
   }

   public static function getBufferParameter(target:Int, pname:Int):Dynamic 
   {
      return nme_gl_get_buffer_paramerter(target, pname);
   }

   public static function getContextAttributes():GLContextAttributes 
   {
      var base = nme_gl_get_context_attributes();
      base.premultipliedAlpha = false;
      base.preserveDrawingBuffer = false;
      return base;
   }

   public static function getError():Int 
   {
      return nme_gl_get_error();
   }

   public static function getExtension(name:String):Dynamic 
   {
      // Hmmm
      return null;
   }

   public static function getFramebufferAttachmentParameter(target:Int, attachment:Int, pname:Int):Dynamic 
   {
      return nme_gl_get_framebuffer_attachment_parameter(target, attachment, pname);
   }

   public static function getParameter(pname:Int):Dynamic 
   {
      return nme_gl_get_parameter(pname);
   }

   public static function getProgramInfoLog(program:GLProgram):String 
   {
      return nme_gl_get_program_info_log(program.id);
   }

   public static function getProgramParameter(program:GLProgram, pname:Int):Int 
   {
      return nme_gl_get_program_parameter(program.id, pname);
   }

   public static function getRenderbufferParameter(target:Int, pname:Int):Dynamic 
   {
      return nme_gl_get_render_buffer_parameter(target, pname);
   }

   public static function getShaderInfoLog(shader:GLShader):String 
   {
      return nme_gl_get_shader_info_log(shader.id);
   }

   public static function getShaderParameter(shader:GLShader, pname:Int):Int 
   {
      return nme_gl_get_shader_parameter(shader.id, pname);
   }

   public static function getShaderPrecisionFormat(shadertype:Int, precisiontype:Int):ShaderPrecisionFormat 
   {
      return nme_gl_get_shader_precision_format(shadertype, precisiontype);
   }

   public static function getShaderSource(shader:GLShader):String 
   {
      return nme_gl_get_shader_source(shader.id);
   }

   public static function getSupportedExtensions():Array<String> 
   {
      var result = new Array<String>();
      nme_gl_get_supported_extensions(result);
      return result;
   }

   public static function getTexParameter(target:Int, pname:Int):Dynamic 
   {
      return nme_gl_get_tex_parameter(target, pname);
   }

   public static function getUniform(program:GLProgram, location:GLUniformLocation):Dynamic 
   {
      return nme_gl_get_uniform(program.id, location);
   }

   public static function getUniformLocation(program:GLProgram, name:String):Dynamic 
   {
      return nme_gl_get_uniform_location(program.id, name);
   }

   public static function getVertexAttrib(index:Int, pname:Int):Dynamic 
   {
      return nme_gl_get_vertex_attrib(index, pname);
   }

   public static function getVertexAttribOffset(index:Int, pname:Int):Int 
   {
      return nme_gl_get_vertex_attrib_offset(index, pname);
   }

   public static function hint(target:Int, mode:Int):Void 
   {
      nme_gl_hint(target, mode);
   }

   public static function isBuffer(buffer:GLBuffer):Bool 
   {
      return buffer != null && buffer.id > 0 && nme_gl_is_buffer(buffer.id);
   }

   // This is non-static
   // public function isContextLost():Bool { return false; }
   public static function isEnabled(cap:Int):Bool 
   {
      return nme_gl_is_enabled(cap);
   }

   public static function isFramebuffer(framebuffer:GLFramebuffer):Bool 
   {
      return framebuffer != null && framebuffer.id > 0 && nme_gl_is_framebuffer(framebuffer.id);
   }

   public static function isProgram(program:GLProgram):Bool 
   {
      return program != null && program.id > 0 && nme_gl_is_program(program.id);
   }

   public static function isRenderbuffer(renderbuffer:GLRenderbuffer):Bool 
   {
      return renderbuffer != null && renderbuffer.id > 0 && nme_gl_is_renderbuffer(renderbuffer.id);
   }

   public static function isShader(shader:GLShader):Bool 
   {
      return shader != null && shader.id > 0 && nme_gl_is_shader(shader.id);
   }

   public static function isTexture(texture:GLTexture):Bool 
   {
      return texture != null && texture.id > 0 && nme_gl_is_texture(texture.id);
   }

   public static function lineWidth(width:Float):Void 
   {
      nme_gl_line_width(width);
   }

   public static function linkProgram(program:GLProgram):Void 
   {
      nme_gl_link_program(program.id);
   }

   private static function load(inName:String, inArgCount:Int):Dynamic 
   {
      try 
      {
         return Loader.load(inName, inArgCount);

      } catch(e:Dynamic) 
      {
         trace(e);
         return null;
      }
   }

   public static function pixelStorei(pname:Int, param:Int):Void 
   {
      nme_gl_pixel_storei(pname, param);
   }

   public static function polygonOffset(factor:Float, units:Float):Void 
   {
      nme_gl_polygon_offset(factor, units);
   }

   public static function readPixels(x:Int, y:Int, width:Int, height:Int, format:Int, type:Int, pixels:ByteArray):Void 
   {
   }

   public static function renderbufferStorage(target:Int, internalformat:Int, width:Int, height:Int):Void 
   {
      nme_gl_renderbuffer_storage(target, internalformat, width, height);
   }

   public static function sampleCoverage(value:Float, invert:Bool):Void 
   {
      nme_gl_sample_coverage(value, invert);
   }

   public static function scissor(x:Int, y:Int, width:Int, height:Int):Void 
   {
      nme_gl_scissor(x, y, width, height);
   }

   public static function shaderSource(shader:GLShader, source:String):Void 
   {
      nme_gl_shader_source(shader.id, source);
   }

   public static function stencilFunc(func:Int, ref:Int, mask:Int):Void 
   {
      nme_gl_stencil_func(func, ref, mask);
   }

   public static function stencilFuncSeparate(face:Int, func:Int, ref:Int, mask:Int):Void 
   {
      nme_gl_stencil_func_separate(face, func, ref, mask);
   }

   public static function stencilMask(mask:Int):Void 
   {
      nme_gl_stencil_mask(mask);
   }

   public static function stencilMaskSeparate(face:Int, mask:Int):Void 
   {
      nme_gl_stencil_mask_separate(face, mask);
   }

   public static function stencilOp(fail:Int, zfail:Int, zpass:Int):Void 
   {
      nme_gl_stencil_op(fail, zfail, zpass);
   }

   public static function stencilOpSeparate(face:Int, fail:Int, zfail:Int, zpass:Int):Void 
   {
      nme_gl_stencil_op_separate(face, fail, zfail, zpass);
   }

   public static function texImage2D(target:Int, level:Int, internalformat:Int, width:Int, height:Int, border:Int, format:Int, type:Int, pixels:ArrayBufferView):Void
   {
      nme_gl_tex_image_2d(target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels.getByteBuffer(), pixels == null ? null : pixels.getStart());
   }

   public static function texParameterf(target:Int, pname:Int, param:Float):Void 
   {
      nme_gl_tex_parameterf(target, pname, param);
   }

   public static function texParameteri(target:Int, pname:Int, param:Int):Void 
   {
      nme_gl_tex_parameteri(target, pname, param);
   }

   public static function texSubImage2D(target:Int, level:Int, xoffset:Int, yoffset:Int, width:Int, height:Int, format:Int, type:Int, pixels:ArrayBufferView):Void
   {
      nme_gl_tex_sub_image_2d(target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels.getByteBuffer(), pixels == null ? null : pixels.getStart());
   }

   public static function uniform1f(location:GLUniformLocation, x:Float):Void 
   {
      nme_gl_uniform1f(location, x);
   }

   public static function uniform1fv(location:GLUniformLocation, x:Array<Float>):Void 
   {
      nme_gl_uniform1fv(location, x);
   }

   public static function uniform1i(location:GLUniformLocation, x:Int):Void 
   {
      nme_gl_uniform1i(location, x);
   }

   public static function uniform1iv(location:GLUniformLocation, v:Array<Int>):Void 
   {
      nme_gl_uniform1iv(location, v);
   }

   public static function uniform2f(location:GLUniformLocation, x:Float, y:Float):Void 
   {
      nme_gl_uniform2f(location, x, y);
   }

   public static function uniform2fv(location:GLUniformLocation, v:Array<Float>):Void 
   {
      nme_gl_uniform2fv(location, v);
   }

   public static function uniform2i(location:GLUniformLocation, x:Int, y:Int):Void 
   {
      nme_gl_uniform2i(location, x, y);
   }

   public static function uniform2iv(location:GLUniformLocation, v:Array<Int>):Void 
   {
      nme_gl_uniform2iv(location, v);
   }

   public static function uniform3f(location:GLUniformLocation, x:Float, y:Float, z:Float):Void 
   {
      nme_gl_uniform3f(location, x, y, z);
   }

   public static function uniform3fv(location:GLUniformLocation, v:Array<Float>):Void 
   {
      nme_gl_uniform3fv(location, v);
   }

   public static function uniform3i(location:GLUniformLocation, x:Int, y:Int, z:Int):Void 
   {
      nme_gl_uniform3i(location, x, y, z);
   }

   public static function uniform3iv(location:GLUniformLocation, v:Array<Int>):Void 
   {
      nme_gl_uniform3iv(location, v);
   }

   public static function uniform4f(location:GLUniformLocation, x:Float, y:Float, z:Float, w:Float):Void 
   {
      nme_gl_uniform4f(location, x, y, z, w);
   }

   public static function uniform4fv(location:GLUniformLocation, v:Array<Float>):Void 
   {
      nme_gl_uniform4fv(location, v);
   }

   public static function uniform4i(location:GLUniformLocation, x:Int, y:Int, z:Int, w:Int):Void 
   {
      nme_gl_uniform4i(location, x, y, z, w);
   }

   public static function uniform4iv(location:GLUniformLocation, v:Array<Int>):Void 
   {
      nme_gl_uniform4iv(location, v);
   }

   public static function uniformMatrix2fv(location:GLUniformLocation, transpose:Bool, v:Float32Array):Void 
   {
      nme_gl_uniform_matrix(location, transpose, v.getByteBuffer(), 2);
   }

   public static function uniformMatrix3fv(location:GLUniformLocation, transpose:Bool, v:Float32Array):Void 
   {
      nme_gl_uniform_matrix(location, transpose, v.getByteBuffer(), 3);
   }

   public static function uniformMatrix4fv(location:GLUniformLocation, transpose:Bool, v:Float32Array):Void 
   {
      nme_gl_uniform_matrix(location, transpose, v.getByteBuffer(), 4);
   }

   public static function uniformMatrix3D(location:GLUniformLocation, transpose:Bool, matrix:Matrix3D):Void 
   {
      nme_gl_uniform_matrix(location, transpose, Float32Array.fromMatrix(matrix).getByteBuffer() , 4);
   }

   public static function useProgram(program:GLProgram):Void 
   {
      nme_gl_use_program(program == null ? 0 : program.id);
   }

   public static function validateProgram(program:GLProgram):Void 
   {
      nme_gl_validate_program(program.id);
   }

   public static function vertexAttrib1f(indx:Int, x:Float):Void 
   {
      nme_gl_vertex_attrib1f(indx, x);
   }

   public static function vertexAttrib1fv(indx:Int, values:Array<Float>):Void 
   {
      nme_gl_vertex_attrib1fv(indx, values);
   }

   public static function vertexAttrib2f(indx:Int, x:Float, y:Float):Void 
   {
      nme_gl_vertex_attrib2f(indx, x, y);
   }

   public static function vertexAttrib2fv(indx:Int, values:Array<Float>):Void 
   {
      nme_gl_vertex_attrib2fv(indx, values);
   }

   public static function vertexAttrib3f(indx:Int, x:Float, y:Float, z:Float):Void 
   {
      nme_gl_vertex_attrib3f(indx, x, y, z);
   }

   public static function vertexAttrib3fv(indx:Int, values:Array<Float>):Void 
   {
      nme_gl_vertex_attrib3fv(indx, values);
   }

   public static function vertexAttrib4f(indx:Int, x:Float, y:Float, z:Float, w:Float):Void 
   {
      nme_gl_vertex_attrib4f(indx, x, y, z, w);
   }

   public static function vertexAttrib4fv(indx:Int, values:Array<Float>):Void 
   {
      nme_gl_vertex_attrib4fv(indx, values);
   }

   public static function vertexAttribPointer(indx:Int, size:Int, type:Int, normalized:Bool, stride:Int, offset:Int):Void 
   {
      nme_gl_vertex_attrib_pointer(indx, size, type, normalized, stride, offset);
   }

   public static function viewport(x:Int, y:Int, width:Int, height:Int):Void 
   {
      nme_gl_viewport(x, y, width, height);
   }

   // Getters & Setters
   private static function get_drawingBufferHeight() { return Lib.current.stage.stageHeight; }
   private static function get_drawingBufferWidth() { return Lib.current.stage.stageWidth; }
   private static function get_version():Int { return nme_gl_version(); }

   // Native Methods
   private static var nme_gl_active_texture = load("nme_gl_active_texture", 1);
   private static var nme_gl_attach_shader = load("nme_gl_attach_shader", 2);
   private static var nme_gl_bind_attrib_location = load("nme_gl_bind_attrib_location", 3);
   private static var nme_gl_bind_bitmap_data_texture = load("nme_gl_bind_bitmap_data_texture", 1);
   private static var nme_gl_bind_buffer = load("nme_gl_bind_buffer", 2);
   private static var nme_gl_bind_framebuffer = load("nme_gl_bind_framebuffer", 2);
   private static var nme_gl_bind_renderbuffer = load("nme_gl_bind_renderbuffer", 2);
   private static var nme_gl_bind_texture = load("nme_gl_bind_texture", 2);
   private static var nme_gl_blend_color = load("nme_gl_blend_color", 4);
   private static var nme_gl_blend_equation = load("nme_gl_blend_equation", 1);
   private static var nme_gl_blend_equation_separate = load("nme_gl_blend_equation_separate", 2);
   private static var nme_gl_blend_func = load("nme_gl_blend_func", 2);
   private static var nme_gl_blend_func_separate = load("nme_gl_blend_func_separate", 4);
   private static var nme_gl_buffer_data = load("nme_gl_buffer_data", 5);
   private static var nme_gl_buffer_sub_data = load("nme_gl_buffer_sub_data", 5);
   private static var nme_gl_check_framebuffer_status = load("nme_gl_check_framebuffer_status", 1);
   private static var nme_gl_clear = load("nme_gl_clear", 1);
   private static var nme_gl_clear_color = load("nme_gl_clear_color", 4);
   private static var nme_gl_clear_depth = load("nme_gl_clear_depth", 1);
   private static var nme_gl_clear_stencil = load("nme_gl_clear_stencil", 1);
   private static var nme_gl_color_mask = load("nme_gl_color_mask", 4);
   private static var nme_gl_compile_shader = load("nme_gl_compile_shader", 1);
   private static var nme_gl_compressed_tex_image_2d = load("nme_gl_compressed_tex_image_2d", -1);
   private static var nme_gl_compressed_tex_sub_image_2d = load("nme_gl_compressed_tex_sub_image_2d", -1);
   private static var nme_gl_copy_tex_image_2d = load("nme_gl_copy_tex_image_2d", -1);
   private static var nme_gl_copy_tex_sub_image_2d = load("nme_gl_copy_tex_sub_image_2d", -1);
   private static var nme_gl_create_buffer = load("nme_gl_create_buffer", 0);
   private static var nme_gl_create_framebuffer = load("nme_gl_create_framebuffer", 0);
   private static var nme_gl_create_program = load("nme_gl_create_program", 0);
   private static var nme_gl_create_render_buffer = load("nme_gl_create_render_buffer", 0);
   private static var nme_gl_create_shader = load("nme_gl_create_shader", 1);
   private static var nme_gl_create_texture = load("nme_gl_create_texture", 0);
   private static var nme_gl_delete_buffer = load("nme_gl_delete_buffer", 1);
   private static var nme_gl_delete_program = load("nme_gl_delete_program", 1);
   private static var nme_gl_delete_shader = load("nme_gl_delete_shader", 1);
   private static var nme_gl_delete_texture = load("nme_gl_delete_texture", 1);
   private static var nme_gl_depth_func = load("nme_gl_depth_func", 1);
   private static var nme_gl_depth_mask = load("nme_gl_depth_mask", 1);
   private static var nme_gl_depth_range = load("nme_gl_depth_range", 2);
   private static var nme_gl_detach_shader = load("nme_gl_detach_shader", 2);
   private static var nme_gl_disable = load("nme_gl_disable", 1);
   private static var nme_gl_disable_vertex_attrib_array = load("nme_gl_disable_vertex_attrib_array", 1);
   private static var nme_gl_draw_arrays = load("nme_gl_draw_arrays", 3);
   private static var nme_gl_draw_elements = load("nme_gl_draw_elements", 4);
   private static var nme_gl_enable = load("nme_gl_enable", 1);
   private static var nme_gl_enable_vertex_attrib_array = load("nme_gl_enable_vertex_attrib_array", 1);
   private static var nme_gl_finish = load("nme_gl_finish", 0);
   private static var nme_gl_flush = load("nme_gl_flush", 0);
   private static var nme_gl_framebuffer_renderbuffer = load("nme_gl_framebuffer_renderbuffer", 4);
   private static var nme_gl_framebuffer_texture2D = load("nme_gl_framebuffer_texture2D", 5);
   private static var nme_gl_front_face = load("nme_gl_front_face", 1);
   private static var nme_gl_generate_mipmap = load("nme_gl_generate_mipmap", 1);
   private static var nme_gl_get_active_attrib = load("nme_gl_get_active_attrib", 2);
   private static var nme_gl_get_active_uniform = load("nme_gl_get_active_uniform", 2);
   private static var nme_gl_get_attrib_location = load("nme_gl_get_attrib_location", 2);
   private static var nme_gl_get_buffer_paramerter = load("nme_gl_get_buffer_paramerter", 2);
   private static var nme_gl_get_context_attributes = load("nme_gl_get_context_attributes", 0);
   private static var nme_gl_get_error = load("nme_gl_get_error", 0);
   private static var nme_gl_get_framebuffer_attachment_parameter = load("nme_gl_get_framebuffer_attachment_parameter", 3);
   private static var nme_gl_get_parameter = load("nme_gl_get_parameter", 1);
   private static var nme_gl_get_program_info_log = load("nme_gl_get_program_info_log", 1);
   private static var nme_gl_get_program_parameter = load("nme_gl_get_program_parameter", 2);
   private static var nme_gl_get_render_buffer_parameter = load("nme_gl_get_render_buffer_parameter", 2);
   private static var nme_gl_get_shader_info_log = load("nme_gl_get_shader_info_log", 1);
   private static var nme_gl_get_shader_parameter = load("nme_gl_get_shader_parameter", 2);
   private static var nme_gl_get_shader_precision_format = load("nme_gl_get_shader_precision_format", 2);
   private static var nme_gl_get_shader_source = load("nme_gl_get_shader_source", 1);
   private static var nme_gl_get_supported_extensions = load("nme_gl_get_supported_extensions", 1);
   private static var nme_gl_get_tex_parameter = load("nme_gl_get_tex_parameter", 2);
   private static var nme_gl_get_uniform = load("nme_gl_get_uniform", 2);
   private static var nme_gl_get_uniform_location = load("nme_gl_get_uniform_location", 2);
   private static var nme_gl_get_vertex_attrib = load("nme_gl_get_vertex_attrib", 2);
   private static var nme_gl_get_vertex_attrib_offset = load("nme_gl_get_vertex_attrib_offset", 2);
   private static var nme_gl_hint = load("nme_gl_hint", 2);
   private static var nme_gl_is_buffer = load("nme_gl_is_buffer", 1);
   private static var nme_gl_is_enabled = load("nme_gl_is_enabled", 1);
   private static var nme_gl_is_framebuffer = load("nme_gl_is_framebuffer", 1);
   private static var nme_gl_is_program = load("nme_gl_is_program", 1);
   private static var nme_gl_is_renderbuffer = load("nme_gl_is_renderbuffer", 1);
   private static var nme_gl_is_shader = load("nme_gl_is_shader", 1);
   private static var nme_gl_is_texture = load("nme_gl_is_texture", 1);
   private static var nme_gl_line_width = load("nme_gl_line_width", 1);
   private static var nme_gl_link_program = load("nme_gl_link_program", 1);
   private static var nme_gl_pixel_storei = load("nme_gl_pixel_storei", 2);
   private static var nme_gl_polygon_offset = load("nme_gl_polygon_offset", 2);
   private static var nme_gl_renderbuffer_storage = load("nme_gl_renderbuffer_storage", 4);
   private static var nme_gl_sample_coverage = load("nme_gl_sample_coverage", 2);
   private static var nme_gl_scissor = load("nme_gl_scissor", 4);
   private static var nme_gl_shader_source = load("nme_gl_shader_source", 2);
   private static var nme_gl_stencil_func = load("nme_gl_stencil_func", 3);
   private static var nme_gl_stencil_func_separate = load("nme_gl_stencil_func_separate", 4);
   private static var nme_gl_stencil_mask = load("nme_gl_stencil_mask", 1);
   private static var nme_gl_stencil_mask_separate = load("nme_gl_stencil_mask_separate", 2);
   private static var nme_gl_stencil_op = load("nme_gl_stencil_op", 3);
   private static var nme_gl_stencil_op_separate = load("nme_gl_stencil_op_separate", 4);
   private static var nme_gl_tex_image_2d = load("nme_gl_tex_image_2d", -1);
   private static var nme_gl_tex_parameterf = load("nme_gl_tex_parameterf", 3);
   private static var nme_gl_tex_parameteri = load("nme_gl_tex_parameteri", 3);
   private static var nme_gl_tex_sub_image_2d = load("nme_gl_tex_sub_image_2d", -1);
   private static var nme_gl_uniform1f = load("nme_gl_uniform1f", 2);
   private static var nme_gl_uniform1fv = load("nme_gl_uniform1fv", 2);
   private static var nme_gl_uniform1i = load("nme_gl_uniform1i", 2);
   private static var nme_gl_uniform1iv = load("nme_gl_uniform1iv", 2);
   private static var nme_gl_uniform2f = load("nme_gl_uniform2f", 3);
   private static var nme_gl_uniform2fv = load("nme_gl_uniform2fv", 2);
   private static var nme_gl_uniform2i = load("nme_gl_uniform2i", 3);
   private static var nme_gl_uniform2iv = load("nme_gl_uniform2iv", 2);
   private static var nme_gl_uniform3f = load("nme_gl_uniform3f", 4);
   private static var nme_gl_uniform3fv = load("nme_gl_uniform3fv", 2);
   private static var nme_gl_uniform3i = load("nme_gl_uniform3i", 4);
   private static var nme_gl_uniform3iv = load("nme_gl_uniform3iv", 2);
   private static var nme_gl_uniform4f = load("nme_gl_uniform4f", 5);
   private static var nme_gl_uniform4fv = load("nme_gl_uniform4fv", 2);
   private static var nme_gl_uniform4i = load("nme_gl_uniform4i", 5);
   private static var nme_gl_uniform4iv = load("nme_gl_uniform4iv", 2);
   private static var nme_gl_uniform_matrix = load("nme_gl_uniform_matrix", 4);
   private static var nme_gl_use_program = load("nme_gl_use_program", 1);
   private static var nme_gl_validate_program = load("nme_gl_validate_program", 1);
   private static var nme_gl_version = load("nme_gl_version", 0);
   private static var nme_gl_vertex_attrib1f = load("nme_gl_vertex_attrib1f", 2);
   private static var nme_gl_vertex_attrib1fv = load("nme_gl_vertex_attrib1fv", 2);
   private static var nme_gl_vertex_attrib2f = load("nme_gl_vertex_attrib2f", 3);
   private static var nme_gl_vertex_attrib2fv = load("nme_gl_vertex_attrib2fv", 2);
   private static var nme_gl_vertex_attrib3f = load("nme_gl_vertex_attrib3f", 4);
   private static var nme_gl_vertex_attrib3fv = load("nme_gl_vertex_attrib3fv", 2);
   private static var nme_gl_vertex_attrib4f = load("nme_gl_vertex_attrib4f", 5);
   private static var nme_gl_vertex_attrib4fv = load("nme_gl_vertex_attrib4fv", 2);
   private static var nme_gl_vertex_attrib_pointer = load("nme_gl_vertex_attrib_pointer", -1);
   private static var nme_gl_viewport = load("nme_gl_viewport", 4);
}

typedef ShaderPrecisionFormat = 
{
   rangeMin : Int,
   rangeMax : Int,
   precision : Int,

};

#end