# Note: we keep the Apple, AMD/ATI and NVidia extensions since they are generally
# the most useful and up-to-date
DropUniqVendorExtensions 3DFX
# DropUniqVendorExtensions AMD
# DropUniqVendorExtensions APPLE
# DropUniqVendorExtensions ATI
DropUniqVendorExtensions HP
DropUniqVendorExtensions IBM
DropUniqVendorExtensions INGR
DropUniqVendorExtensions MESA
DropUniqVendorExtensions MESAX
# DropUniqVendorExtensions NV
DropUniqVendorExtensions PGI
DropUniqVendorExtensions SGI
DropUniqVendorExtensions SGIS
DropUniqVendorExtensions SGIX
DropUniqVendorExtensions SUN
DropUniqVendorExtensions WIN

# Drop some obsolete or mostly-integrated vendor extensions that the above directives let in
# Note that some of these are in LWJGL, so perhaps there is justification for leaving them in
IgnoreExtension GL_APPLE_element_array
IgnoreExtension GL_APPLE_vertex_array_object
IgnoreExtension GL_ATI_element_array
IgnoreExtension GL_ATI_envmap_bumpmap
IgnoreExtension GL_ATI_fragment_shader
IgnoreExtension GL_ATI_map_object_buffer
IgnoreExtension GL_ATI_separate_stencil
IgnoreExtension GL_ATI_text_fragment_shader
IgnoreExtension GL_ATI_texture_env_combine3
IgnoreExtension GL_ATI_texture_mirror_once
IgnoreExtension GL_ATI_vertex_array_object
IgnoreExtension GL_ATI_vertex_attrib_array_object
IgnoreExtension GL_ATI_vertex_streams
IgnoreExtension GL_NV_depth_buffer_float
IgnoreExtension GL_NV_fragment_program
IgnoreExtension GL_NV_fragment_program2
IgnoreExtension GL_NV_packed_depth_stencil
IgnoreExtension GL_NV_point_sprite
IgnoreExtension GL_NV_register_combiners
IgnoreExtension GL_NV_register_combiners2
IgnoreExtension GL_NV_texgen_reflection
IgnoreExtension GL_NV_texture_env_combine4
IgnoreExtension GL_NV_texture_rectangle
IgnoreExtension GL_NV_vertex_program
# This one would require more work -- has associated GLX and WGL bindings
IgnoreExtension GL_NV_present_video

# For the time being, ignore these extensions which are in the ES 2.0 spec
IgnoreExtension GL_NV_framebuffer_vertex_attrib_array

# Remove extension suffixes from extensions which are common between OpenGL and OpenGL ES
RenameExtensionIntoCore GL_ARB_half_float_pixel
RenameExtensionIntoCore GL_ARB_point_sprite
RenameExtensionIntoCore GL_OES_blend_equation_separate
RenameExtensionIntoCore GL_OES_blend_func_separate
RenameExtensionIntoCore GL_OES_blend_subtract
RenameExtensionIntoCore GL_OES_depth24
RenameExtensionIntoCore GL_OES_depth32
RenameExtensionIntoCore GL_OES_framebuffer_object
RenameExtensionIntoCore GL_OES_mapbuffer
RenameExtensionIntoCore GL_OES_packed_depth_stencil
RenameExtensionIntoCore GL_OES_point_sprite
RenameExtensionIntoCore GL_OES_rgb8_rgba8
RenameExtensionIntoCore GL_OES_read_format
RenameExtensionIntoCore GL_OES_standard_derivatives
RenameExtensionIntoCore GL_OES_stencil1
RenameExtensionIntoCore GL_OES_stencil4
RenameExtensionIntoCore GL_OES_stencil8
RenameExtensionIntoCore GL_OES_stencil_wrap
RenameExtensionIntoCore GL_OES_texture_cube_map
RenameExtensionIntoCore GL_OES_texture_mirrored_repeat
RenameExtensionIntoCore GL_OES_vertex_type_10_10_10_2
RenameExtensionIntoCore GL_EXT_color_buffer_half_float
RenameExtensionIntoCore GL_EXT_occlusion_query_boolean
RenameExtensionIntoCore GL_EXT_robustness
RenameExtensionIntoCore GL_ARB_robustness
RenameExtensionIntoCore GL_EXT_separate_shader_objects
RenameExtensionIntoCore GL_EXT_shadow_samplers
RenameExtensionIntoCore GL_EXT_sRGB
RenameExtensionIntoCore GL_EXT_texture_array
RenameExtensionIntoCore GL_EXT_texture_rg
RenameExtensionIntoCore GL_EXT_texture_type_2_10_10_10_REV
RenameExtensionIntoCore GL_NV_draw_buffers
RenameExtensionIntoCore GL_NV_fbo_color_attachments
RenameExtensionIntoCore GL_EXT_packed_float
RenameExtensionIntoCore GL_EXT_texture_format_BGRA8888

# A mess w/ the ES2 definition .. sadly
# RenameExtensionIntoCore GL_EXT_texture_storage
RenameJavaSymbol glTexStorage1DEXT glTexStorage1D
RenameJavaSymbol glTexStorage2DEXT glTexStorage2D
RenameJavaSymbol glTexStorage3DEXT glTexStorage3D
RenameJavaSymbol GL_TEXTURE_IMMUTABLE_FORMAT_EXT GL_TEXTURE_IMMUTABLE_FORMAT
RenameJavaSymbol GL_RGBA32F_EXT                  GL_RGBA32F
RenameJavaSymbol GL_RGB32F_EXT                   GL_RGB32F
RenameJavaSymbol GL_ALPHA32F_EXT                 GL_ALPHA32F_ARB
RenameJavaSymbol GL_LUMINANCE32F_EXT             GL_LUMINANCE32F_ARB
RenameJavaSymbol GL_LUMINANCE_ALPHA32F_EXT       GL_LUMINANCE_ALPHA32F_ARB
RenameJavaSymbol GL_RGB16F_EXT                   GL_RGB16F
RenameJavaSymbol GL_ALPHA16F_EXT                 GL_ALPHA16F_ARB
RenameJavaSymbol GL_LUMINANCE16F_EXT             GL_LUMINANCE16F_ARB
RenameJavaSymbol GL_LUMINANCE_ALPHA16F_EXT       GL_LUMINANCE_ALPHA16F_ARB
RenameJavaSymbol GL_RGB10_A2_EXT                 GL_RGB10_A2
RenameJavaSymbol GL_RGB10_EXT                    GL_RGB10


# The following extensions have some differences requiring us to
# manually rename some symbols and leave others alone for best
# correctness
# RenameExtensionIntoCore GL_ARB_matrix_palette
# We do not want to pull in all of this extension into the core namespace
# RenameExtensionIntoCore GL_ARB_vertex_blend

RenameJavaSymbol GL_MAX_VERTEX_UNITS_ARB GL_MAX_VERTEX_UNITS
RenameJavaSymbol GL_MAX_PALETTE_MATRICES_ARB GL_MAX_PALETTE_MATRICES
RenameJavaSymbol GL_MATRIX_PALETTE_ARB GL_MATRIX_PALETTE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_ARB GL_MATRIX_INDEX_ARRAY
RenameJavaSymbol GL_WEIGHT_ARRAY_ARB GL_WEIGHT_ARRAY
RenameJavaSymbol GL_CURRENT_PALETTE_MATRIX_ARB GL_CURRENT_PALETTE_MATRIX
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_SIZE_ARB GL_MATRIX_INDEX_ARRAY_SIZE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_TYPE_ARB GL_MATRIX_INDEX_ARRAY_TYPE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_STRIDE_ARB GL_MATRIX_INDEX_ARRAY_STRIDE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_POINTER_ARB GL_MATRIX_INDEX_ARRAY_POINTER
RenameJavaSymbol GL_WEIGHT_ARRAY_SIZE_ARB GL_WEIGHT_ARRAY_SIZE
RenameJavaSymbol GL_WEIGHT_ARRAY_TYPE_ARB GL_WEIGHT_ARRAY_TYPE
RenameJavaSymbol GL_WEIGHT_ARRAY_STRIDE_ARB GL_WEIGHT_ARRAY_STRIDE
RenameJavaSymbol GL_WEIGHT_ARRAY_POINTER_ARB GL_WEIGHT_ARRAY_POINTER
RenameJavaSymbol glCurrentPaletteMatrixARB glCurrentPaletteMatrix
RenameJavaSymbol glMatrixIndexPointerARB glMatrixIndexPointer
RenameJavaSymbol glWeightPointerARB glWeightPointer

# There are some definitions in this extension that don't exist in desktop OpenGL,
# so we shouldn't remove the suffixes of those OES-only variants
# RenameExtensionIntoCore GL_OES_matrix_palette
RenameJavaSymbol GL_MAX_VERTEX_UNITS_OES GL_MAX_VERTEX_UNITS
RenameJavaSymbol GL_MAX_PALETTE_MATRICES_OES GL_MAX_PALETTE_MATRICES
RenameJavaSymbol GL_MATRIX_PALETTE_OES GL_MATRIX_PALETTE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_OES GL_MATRIX_INDEX_ARRAY
RenameJavaSymbol GL_WEIGHT_ARRAY_OES GL_WEIGHT_ARRAY
RenameJavaSymbol GL_CURRENT_PALETTE_MATRIX_OES GL_CURRENT_PALETTE_MATRIX
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_SIZE_OES GL_MATRIX_INDEX_ARRAY_SIZE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_TYPE_OES GL_MATRIX_INDEX_ARRAY_TYPE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_STRIDE_OES GL_MATRIX_INDEX_ARRAY_STRIDE
RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_POINTER_OES GL_MATRIX_INDEX_ARRAY_POINTER
RenameJavaSymbol GL_WEIGHT_ARRAY_SIZE_OES GL_WEIGHT_ARRAY_SIZE
RenameJavaSymbol GL_WEIGHT_ARRAY_TYPE_OES GL_WEIGHT_ARRAY_TYPE
RenameJavaSymbol GL_WEIGHT_ARRAY_STRIDE_OES GL_WEIGHT_ARRAY_STRIDE
RenameJavaSymbol GL_WEIGHT_ARRAY_POINTER_OES GL_WEIGHT_ARRAY_POINTER
RenameJavaSymbol GL_WEIGHT_ARRAY_BUFFER_BINDING_OES GL_WEIGHT_ARRAY_BUFFER_BINDING
RenameJavaSymbol glCurrentPaletteMatrixOES glCurrentPaletteMatrix
RenameJavaSymbol glMatrixIndexPointerOES glMatrixIndexPointer
RenameJavaSymbol glWeightPointerOES glWeightPointer