# Note: we keep the Apple, 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_coverage_sample
IgnoreExtension GL_NV_framebuffer_vertex_attrib_array

# Remove extension suffixes from extensions which are common
RenameExtensionIntoCore GL_ARB_framebuffer_object
IgnoreExtension GL_EXT_framebuffer_object
RenameExtensionIntoCore GL_OES_framebuffer_object

# 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_compressed_paletted_texture
RenameExtensionIntoCore GL_OES_depth24
RenameExtensionIntoCore GL_OES_depth32
RenameExtensionIntoCore GL_OES_mapbuffer
RenameExtensionIntoCore GL_OES_point_sprite
RenameExtensionIntoCore GL_OES_rgb8_rgba8
RenameExtensionIntoCore GL_OES_read_format
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_half_float
RenameExtensionIntoCore GL_OES_texture_mirrored_repeat

# 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