diff options
27 files changed, 5945 insertions, 4766 deletions
diff --git a/libxcb/xcb-proto/xcbgen/matcher.py b/libxcb/xcb-proto/xcbgen/matcher.py index e7958fa44..6e45b236c 100644 --- a/libxcb/xcb-proto/xcbgen/matcher.py +++ b/libxcb/xcb-proto/xcbgen/matcher.py @@ -9,14 +9,15 @@ we do not create a new type object, we just record the existing one under a new from os.path import join from xml.etree.cElementTree import parse -import state -from xtypes import * +from xcbgen.xtypes import * def import_(node, module, namespace): ''' For imports, we load the file, create a new namespace object, execute recursively, then record the import (for header files, etc.) ''' + # To avoid circular import error + from xcbgen import state new_file = join(namespace.dir, '%s.xml' % node.text) new_root = parse(new_file).getroot() new_namespace = state.Namespace(new_file) diff --git a/libxcb/xcb-proto/xcbgen/state.py b/libxcb/xcb-proto/xcbgen/state.py index 51efc9480..ae3d2d45f 100644 --- a/libxcb/xcb-proto/xcbgen/state.py +++ b/libxcb/xcb-proto/xcbgen/state.py @@ -4,9 +4,9 @@ This module contains the namespace class and the singleton module class. from os.path import dirname, basename from xml.etree.cElementTree import parse -import matcher -from error import * -from xtypes import * +from xcbgen import matcher +from xcbgen.error import * +from xcbgen.xtypes import * import __main__ diff --git a/libxcb/xcb-proto/xcbgen/xtypes.py b/libxcb/xcb-proto/xcbgen/xtypes.py index fd52d6eeb..14c318ac3 100644 --- a/libxcb/xcb-proto/xcbgen/xtypes.py +++ b/libxcb/xcb-proto/xcbgen/xtypes.py @@ -1,632 +1,632 @@ -'''
-This module contains the classes which represent XCB data types.
-'''
-from expr import Field, Expression
-import __main__
-
-class Type(object):
- '''
- Abstract base class for all XCB data types.
- Contains default fields, and some abstract methods.
- '''
- def __init__(self, name):
- '''
- Default structure initializer. Sets up default fields.
-
- Public fields:
- name is a tuple of strings specifying the full type name.
- size is the size of the datatype in bytes, or None if variable-sized.
- nmemb is 1 for non-list types, None for variable-sized lists, otherwise number of elts.
- booleans for identifying subclasses, because I can't figure out isinstance().
- '''
- self.name = name
- self.size = None
- self.nmemb = None
- self.resolved = False
-
- # Screw isinstance().
- self.is_simple = False
- self.is_list = False
- self.is_expr = False
- self.is_container = False
- self.is_reply = False
- self.is_union = False
- self.is_pad = False
- self.is_switch = False
- self.is_bitcase = False
-
- def resolve(self, module):
- '''
- Abstract method for resolving a type.
- This should make sure any referenced types are already declared.
- '''
- raise Exception('abstract resolve method not overridden!')
-
- def out(self, name):
- '''
- Abstract method for outputting code.
- These are declared in the language-specific modules, and
- there must be a dictionary containing them declared when this module is imported!
- '''
- raise Exception('abstract out method not overridden!')
-
- def fixed_size(self):
- '''
- Abstract method for determining if the data type is fixed-size.
- '''
- raise Exception('abstract fixed_size method not overridden!')
-
- def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto):
- '''
- Default method for making a data type a member of a structure.
- Extend this if the data type needs to add an additional length field or something.
-
- module is the global module object.
- complex_type is the structure object.
- see Field for the meaning of the other parameters.
- '''
- new_field = Field(self, field_type, field_name, visible, wire, auto)
-
- # We dump the _placeholder_byte if any fields are added.
- for (idx, field) in enumerate(complex_type.fields):
- if field == _placeholder_byte:
- complex_type.fields[idx] = new_field
- return
-
- complex_type.fields.append(new_field)
-
-
-class SimpleType(Type):
- '''
- Derived class which represents a cardinal type like CARD32 or char.
- Any type which is typedef'ed to cardinal will be one of these.
-
- Public fields added:
- none
- '''
- def __init__(self, name, size):
- Type.__init__(self, name)
- self.is_simple = True
- self.size = size
- self.nmemb = 1
-
- def resolve(self, module):
- self.resolved = True
-
- def fixed_size(self):
- return True
-
- out = __main__.output['simple']
-
-
-# Cardinal datatype globals. See module __init__ method.
-tcard8 = SimpleType(('uint8_t',), 1)
-tcard16 = SimpleType(('uint16_t',), 2)
-tcard32 = SimpleType(('uint32_t',), 4)
-tint8 = SimpleType(('int8_t',), 1)
-tint16 = SimpleType(('int16_t',), 2)
-tint32 = SimpleType(('int32_t',), 4)
-tchar = SimpleType(('char',), 1)
-tfloat = SimpleType(('float',), 4)
-tdouble = SimpleType(('double',), 8)
-
-
-class Enum(SimpleType):
- '''
- Derived class which represents an enum. Fixed-size.
-
- Public fields added:
- values contains a list of (name, value) tuples. value is empty, or a number.
- bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number.
- '''
- def __init__(self, name, elt):
- SimpleType.__init__(self, name, 4)
- self.values = []
- self.bits = []
- for item in list(elt):
- # First check if we're using a default value
- if len(list(item)) == 0:
- self.values.append((item.get('name'), ''))
- continue
-
- # An explicit value or bit was specified.
- value = list(item)[0]
- if value.tag == 'value':
- self.values.append((item.get('name'), value.text))
- elif value.tag == 'bit':
- self.values.append((item.get('name'), '%u' % (1 << int(value.text, 0))))
- self.bits.append((item.get('name'), value.text))
-
- def resolve(self, module):
- self.resolved = True
-
- def fixed_size(self):
- return True
-
- out = __main__.output['enum']
-
-
-class ListType(Type):
- '''
- Derived class which represents a list of some other datatype. Fixed- or variable-sized.
-
- Public fields added:
- member is the datatype of the list elements.
- parent is the structure type containing the list.
- expr is an Expression object containing the length information, for variable-sized lists.
- '''
- def __init__(self, elt, member, *parent):
- Type.__init__(self, member.name)
- self.is_list = True
- self.member = member
- self.parents = list(parent)
-
- if elt.tag == 'list':
- elts = list(elt)
- self.expr = Expression(elts[0] if len(elts) else elt, self)
- elif elt.tag == 'valueparam':
- self.expr = Expression(elt, self)
-
- self.size = member.size if member.fixed_size() else None
- self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None
-
- def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto):
- if not self.fixed_size():
- # We need a length field.
- # Ask our Expression object for it's name, type, and whether it's on the wire.
- lenfid = self.expr.lenfield_type
- lenfield_name = self.expr.lenfield_name
- lenwire = self.expr.lenwire
- needlen = True
-
- # See if the length field is already in the structure.
- for parent in self.parents:
- for field in parent.fields:
- if field.field_name == lenfield_name:
- needlen = False
-
- # It isn't, so we need to add it to the structure ourself.
- if needlen:
- type = module.get_type(lenfid)
- lenfield_type = module.get_type_name(lenfid)
- type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False)
-
- # Add ourself to the structure by calling our original method.
- Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto)
-
- def resolve(self, module):
- if self.resolved:
- return
- self.member.resolve(module)
- self.expr.resolve(module, self.parents)
-
- # Find my length field again. We need the actual Field object in the expr.
- # This is needed because we might have added it ourself above.
- if not self.fixed_size():
- for parent in self.parents:
- for field in parent.fields:
- if field.field_name == self.expr.lenfield_name and field.wire:
- self.expr.lenfield = field
- break
-
- self.resolved = True
-
- def fixed_size(self):
- return self.member.fixed_size() and self.expr.fixed_size()
-
-class ExprType(Type):
- '''
- Derived class which represents an exprfield. Fixed size.
-
- Public fields added:
- expr is an Expression object containing the value of the field.
- '''
- def __init__(self, elt, member, *parent):
- Type.__init__(self, member.name)
- self.is_expr = True
- self.member = member
- self.parent = parent
-
- self.expr = Expression(list(elt)[0], self)
-
- self.size = member.size
- self.nmemb = 1
-
- def resolve(self, module):
- if self.resolved:
- return
- self.member.resolve(module)
- self.resolved = True
-
- def fixed_size(self):
- return True
-
-class PadType(Type):
- '''
- Derived class which represents a padding field.
- '''
- def __init__(self, elt):
- Type.__init__(self, tcard8.name)
- self.is_pad = True
- self.size = 1
- self.nmemb = 1 if (elt == None) else int(elt.get('bytes'), 0)
-
- def resolve(self, module):
- self.resolved = True
-
- def fixed_size(self):
- return True
-
-
-class ComplexType(Type):
- '''
- Derived class which represents a structure. Base type for all structure types.
-
- Public fields added:
- fields is an array of Field objects describing the structure fields.
- '''
- def __init__(self, name, elt):
- Type.__init__(self, name)
- self.is_container = True
- self.elt = elt
- self.fields = []
- self.nmemb = 1
- self.size = 0
- self.lenfield_parent = [self]
-
- def resolve(self, module):
- if self.resolved:
- return
- pads = 0
-
- # Resolve all of our field datatypes.
- for child in list(self.elt):
- if child.tag == 'pad':
- field_name = 'pad' + str(pads)
- fkey = 'CARD8'
- type = PadType(child)
- pads = pads + 1
- visible = False
- elif child.tag == 'field':
- field_name = child.get('name')
- fkey = child.get('type')
- type = module.get_type(fkey)
- visible = True
- elif child.tag == 'exprfield':
- field_name = child.get('name')
- fkey = child.get('type')
- type = ExprType(child, module.get_type(fkey), *self.lenfield_parent)
- visible = False
- elif child.tag == 'list':
- field_name = child.get('name')
- fkey = child.get('type')
- type = ListType(child, module.get_type(fkey), *self.lenfield_parent)
- visible = True
- elif child.tag == 'valueparam':
- field_name = child.get('value-list-name')
- fkey = 'CARD32'
- type = ListType(child, module.get_type(fkey), *self.lenfield_parent)
- visible = True
- elif child.tag == 'switch':
- field_name = child.get('name')
- # construct the switch type name from the parent type and the field name
- field_type = self.name + (field_name,)
- type = SwitchType(field_type, child, *self.lenfield_parent)
- visible = True
- type.make_member_of(module, self, field_type, field_name, visible, True, False)
- type.resolve(module)
- continue
- else:
- # Hit this on Reply
- continue
-
- # Get the full type name for the field
- field_type = module.get_type_name(fkey)
- # Add the field to ourself
- type.make_member_of(module, self, field_type, field_name, visible, True, False)
- # Recursively resolve the type (could be another structure, list)
- type.resolve(module)
-
- self.calc_size() # Figure out how big we are
- self.resolved = True
-
- def calc_size(self):
- self.size = 0
- for m in self.fields:
- if not m.wire:
- continue
- if m.type.fixed_size():
- self.size = self.size + (m.type.size * m.type.nmemb)
- else:
- self.size = None
- break
-
- def fixed_size(self):
- for m in self.fields:
- if not m.type.fixed_size():
- return False
- return True
-
-class SwitchType(ComplexType):
- '''
- Derived class which represents a List of Items.
-
- Public fields added:
- bitcases is an array of Bitcase objects describing the list items
- '''
-
- def __init__(self, name, elt, *parents):
- ComplexType.__init__(self, name, elt)
- self.parents = parents
- # FIXME: switch cannot store lenfields, so it should just delegate the parents
- self.lenfield_parent = list(parents) + [self]
- # self.fields contains all possible fields collected from the Bitcase objects,
- # whereas self.items contains the Bitcase objects themselves
- self.bitcases = []
-
- self.is_switch = True
- elts = list(elt)
- self.expr = Expression(elts[0] if len(elts) else elt, self)
-
- def resolve(self, module):
- if self.resolved:
- return
-# pads = 0
-
- parents = list(self.parents) + [self]
-
- # Resolve all of our field datatypes.
- for index, child in enumerate(list(self.elt)):
- if child.tag == 'bitcase':
- field_name = child.get('name')
- if field_name is None:
- field_type = self.name + ('bitcase%d' % index,)
- else:
- field_type = self.name + (field_name,)
-
- # use self.parent to indicate anchestor,
- # as switch does not contain named fields itself
- type = BitcaseType(index, field_type, child, *parents)
- # construct the switch type name from the parent type and the field name
- if field_name is None:
- type.has_name = False
- # Get the full type name for the field
- field_type = type.name
- visible = True
-
- # add the field to ourself
- type.make_member_of(module, self, field_type, field_name, visible, True, False)
-
- # recursively resolve the type (could be another structure, list)
- type.resolve(module)
- inserted = False
- for new_field in type.fields:
- # We dump the _placeholder_byte if any fields are added.
- for (idx, field) in enumerate(self.fields):
- if field == _placeholder_byte:
- self.fields[idx] = new_field
- inserted = True
- break
- if False == inserted:
- self.fields.append(new_field)
-
- self.calc_size() # Figure out how big we are
- self.resolved = True
-
- def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto):
- if not self.fixed_size():
- # We need a length field.
- # Ask our Expression object for it's name, type, and whether it's on the wire.
- lenfid = self.expr.lenfield_type
- lenfield_name = self.expr.lenfield_name
- lenwire = self.expr.lenwire
- needlen = True
-
- # See if the length field is already in the structure.
- for parent in self.parents:
- for field in parent.fields:
- if field.field_name == lenfield_name:
- needlen = False
-
- # It isn't, so we need to add it to the structure ourself.
- if needlen:
- type = module.get_type(lenfid)
- lenfield_type = module.get_type_name(lenfid)
- type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False)
-
- # Add ourself to the structure by calling our original method.
- Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto)
-
- # size for switch can only be calculated at runtime
- def calc_size(self):
- pass
-
- # note: switch is _always_ of variable size, but we indicate here wether
- # it contains elements that are variable-sized themselves
- def fixed_size(self):
- return False
-# for m in self.fields:
-# if not m.type.fixed_size():
-# return False
-# return True
-
-
-class Struct(ComplexType):
- '''
- Derived class representing a struct data type.
- '''
- out = __main__.output['struct']
-
-
-class Union(ComplexType):
- '''
- Derived class representing a union data type.
- '''
- def __init__(self, name, elt):
- ComplexType.__init__(self, name, elt)
- self.is_union = True
-
- out = __main__.output['union']
-
-
-class BitcaseType(ComplexType):
- '''
- Derived class representing a struct data type.
- '''
- def __init__(self, index, name, elt, *parent):
- elts = list(elt)
- self.expr = Expression(elts[0] if len(elts) else elt, self)
- ComplexType.__init__(self, name, elts[1:])
- self.has_name = True
- self.index = 1
- self.lenfield_parent = list(parent) + [self]
- self.parents = list(parent)
- self.is_bitcase = True
-
- def make_member_of(self, module, switch_type, field_type, field_name, visible, wire, auto):
- '''
- register BitcaseType with the corresponding SwitchType
-
- module is the global module object.
- complex_type is the structure object.
- see Field for the meaning of the other parameters.
- '''
- new_field = Field(self, field_type, field_name, visible, wire, auto)
-
- # We dump the _placeholder_byte if any bitcases are added.
- for (idx, field) in enumerate(switch_type.bitcases):
- if field == _placeholder_byte:
- switch_type.bitcases[idx] = new_field
- return
-
- switch_type.bitcases.append(new_field)
-
- def resolve(self, module):
- if self.resolved:
- return
-
- self.expr.resolve(module, self.parents+[self])
-
- # Resolve the bitcase expression
- ComplexType.resolve(self, module)
-
-
-class Reply(ComplexType):
- '''
- Derived class representing a reply. Only found as a field of Request.
- '''
- def __init__(self, name, elt):
- ComplexType.__init__(self, name, elt)
- self.is_reply = True
-
- def resolve(self, module):
- if self.resolved:
- return
- # Add the automatic protocol fields
- self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True))
- self.fields.append(_placeholder_byte)
- self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True))
- self.fields.append(Field(tcard32, tcard32.name, 'length', False, True, True))
- ComplexType.resolve(self, module)
-
-
-class Request(ComplexType):
- '''
- Derived class representing a request.
-
- Public fields added:
- reply contains the reply datatype or None for void requests.
- opcode contains the request number.
- '''
- def __init__(self, name, elt):
- ComplexType.__init__(self, name, elt)
- self.reply = None
- self.opcode = elt.get('opcode')
-
- for child in list(elt):
- if child.tag == 'reply':
- self.reply = Reply(name, child)
-
- def resolve(self, module):
- if self.resolved:
- return
- # Add the automatic protocol fields
- if module.namespace.is_ext:
- self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True))
- self.fields.append(Field(tcard8, tcard8.name, 'minor_opcode', False, True, True))
- self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True))
- ComplexType.resolve(self, module)
- else:
- self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True))
- self.fields.append(_placeholder_byte)
- self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True))
- ComplexType.resolve(self, module)
-
- if self.reply:
- self.reply.resolve(module)
-
- out = __main__.output['request']
-
-
-class Event(ComplexType):
- '''
- Derived class representing an event data type.
-
- Public fields added:
- opcodes is a dictionary of name -> opcode number, for eventcopies.
- '''
- def __init__(self, name, elt):
- ComplexType.__init__(self, name, elt)
- self.opcodes = {}
-
- tmp = elt.get('no-sequence-number')
- self.has_seq = (tmp == None or tmp.lower() == 'false' or tmp == '0')
-
- def add_opcode(self, opcode, name, main):
- self.opcodes[name] = opcode
- if main:
- self.name = name
-
- def resolve(self, module):
- if self.resolved:
- return
-
- # Add the automatic protocol fields
- self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True))
- if self.has_seq:
- self.fields.append(_placeholder_byte)
- self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True))
- ComplexType.resolve(self, module)
-
- out = __main__.output['event']
-
-
-class Error(ComplexType):
- '''
- Derived class representing an error data type.
-
- Public fields added:
- opcodes is a dictionary of name -> opcode number, for errorcopies.
- '''
- def __init__(self, name, elt):
- ComplexType.__init__(self, name, elt)
- self.opcodes = {}
-
- def add_opcode(self, opcode, name, main):
- self.opcodes[name] = opcode
- if main:
- self.name = name
-
- def resolve(self, module):
- if self.resolved:
- return
-
- # Add the automatic protocol fields
- self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True))
- self.fields.append(Field(tcard8, tcard8.name, 'error_code', False, True, True))
- self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True))
- ComplexType.resolve(self, module)
-
- out = __main__.output['error']
-
-_placeholder_byte = Field(PadType(None), tcard8.name, 'pad0', False, True, False)
+''' +This module contains the classes which represent XCB data types. +''' +from xcbgen.expr import Field, Expression +import __main__ + +class Type(object): + ''' + Abstract base class for all XCB data types. + Contains default fields, and some abstract methods. + ''' + def __init__(self, name): + ''' + Default structure initializer. Sets up default fields. + + Public fields: + name is a tuple of strings specifying the full type name. + size is the size of the datatype in bytes, or None if variable-sized. + nmemb is 1 for non-list types, None for variable-sized lists, otherwise number of elts. + booleans for identifying subclasses, because I can't figure out isinstance(). + ''' + self.name = name + self.size = None + self.nmemb = None + self.resolved = False + + # Screw isinstance(). + self.is_simple = False + self.is_list = False + self.is_expr = False + self.is_container = False + self.is_reply = False + self.is_union = False + self.is_pad = False + self.is_switch = False + self.is_bitcase = False + + def resolve(self, module): + ''' + Abstract method for resolving a type. + This should make sure any referenced types are already declared. + ''' + raise Exception('abstract resolve method not overridden!') + + def out(self, name): + ''' + Abstract method for outputting code. + These are declared in the language-specific modules, and + there must be a dictionary containing them declared when this module is imported! + ''' + raise Exception('abstract out method not overridden!') + + def fixed_size(self): + ''' + Abstract method for determining if the data type is fixed-size. + ''' + raise Exception('abstract fixed_size method not overridden!') + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto): + ''' + Default method for making a data type a member of a structure. + Extend this if the data type needs to add an additional length field or something. + + module is the global module object. + complex_type is the structure object. + see Field for the meaning of the other parameters. + ''' + new_field = Field(self, field_type, field_name, visible, wire, auto) + + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(complex_type.fields): + if field == _placeholder_byte: + complex_type.fields[idx] = new_field + return + + complex_type.fields.append(new_field) + + +class SimpleType(Type): + ''' + Derived class which represents a cardinal type like CARD32 or char. + Any type which is typedef'ed to cardinal will be one of these. + + Public fields added: + none + ''' + def __init__(self, name, size): + Type.__init__(self, name) + self.is_simple = True + self.size = size + self.nmemb = 1 + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return True + + out = __main__.output['simple'] + + +# Cardinal datatype globals. See module __init__ method. +tcard8 = SimpleType(('uint8_t',), 1) +tcard16 = SimpleType(('uint16_t',), 2) +tcard32 = SimpleType(('uint32_t',), 4) +tint8 = SimpleType(('int8_t',), 1) +tint16 = SimpleType(('int16_t',), 2) +tint32 = SimpleType(('int32_t',), 4) +tchar = SimpleType(('char',), 1) +tfloat = SimpleType(('float',), 4) +tdouble = SimpleType(('double',), 8) + + +class Enum(SimpleType): + ''' + Derived class which represents an enum. Fixed-size. + + Public fields added: + values contains a list of (name, value) tuples. value is empty, or a number. + bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number. + ''' + def __init__(self, name, elt): + SimpleType.__init__(self, name, 4) + self.values = [] + self.bits = [] + for item in list(elt): + # First check if we're using a default value + if len(list(item)) == 0: + self.values.append((item.get('name'), '')) + continue + + # An explicit value or bit was specified. + value = list(item)[0] + if value.tag == 'value': + self.values.append((item.get('name'), value.text)) + elif value.tag == 'bit': + self.values.append((item.get('name'), '%u' % (1 << int(value.text, 0)))) + self.bits.append((item.get('name'), value.text)) + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return True + + out = __main__.output['enum'] + + +class ListType(Type): + ''' + Derived class which represents a list of some other datatype. Fixed- or variable-sized. + + Public fields added: + member is the datatype of the list elements. + parent is the structure type containing the list. + expr is an Expression object containing the length information, for variable-sized lists. + ''' + def __init__(self, elt, member, *parent): + Type.__init__(self, member.name) + self.is_list = True + self.member = member + self.parents = list(parent) + + if elt.tag == 'list': + elts = list(elt) + self.expr = Expression(elts[0] if len(elts) else elt, self) + elif elt.tag == 'valueparam': + self.expr = Expression(elt, self) + + self.size = member.size if member.fixed_size() else None + self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto): + if not self.fixed_size(): + # We need a length field. + # Ask our Expression object for it's name, type, and whether it's on the wire. + lenfid = self.expr.lenfield_type + lenfield_name = self.expr.lenfield_name + lenwire = self.expr.lenwire + needlen = True + + # See if the length field is already in the structure. + for parent in self.parents: + for field in parent.fields: + if field.field_name == lenfield_name: + needlen = False + + # It isn't, so we need to add it to the structure ourself. + if needlen: + type = module.get_type(lenfid) + lenfield_type = module.get_type_name(lenfid) + type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False) + + # Add ourself to the structure by calling our original method. + Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto) + + def resolve(self, module): + if self.resolved: + return + self.member.resolve(module) + self.expr.resolve(module, self.parents) + + # Find my length field again. We need the actual Field object in the expr. + # This is needed because we might have added it ourself above. + if not self.fixed_size(): + for parent in self.parents: + for field in parent.fields: + if field.field_name == self.expr.lenfield_name and field.wire: + self.expr.lenfield = field + break + + self.resolved = True + + def fixed_size(self): + return self.member.fixed_size() and self.expr.fixed_size() + +class ExprType(Type): + ''' + Derived class which represents an exprfield. Fixed size. + + Public fields added: + expr is an Expression object containing the value of the field. + ''' + def __init__(self, elt, member, *parent): + Type.__init__(self, member.name) + self.is_expr = True + self.member = member + self.parent = parent + + self.expr = Expression(list(elt)[0], self) + + self.size = member.size + self.nmemb = 1 + + def resolve(self, module): + if self.resolved: + return + self.member.resolve(module) + self.resolved = True + + def fixed_size(self): + return True + +class PadType(Type): + ''' + Derived class which represents a padding field. + ''' + def __init__(self, elt): + Type.__init__(self, tcard8.name) + self.is_pad = True + self.size = 1 + self.nmemb = 1 if (elt == None) else int(elt.get('bytes'), 0) + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return True + + +class ComplexType(Type): + ''' + Derived class which represents a structure. Base type for all structure types. + + Public fields added: + fields is an array of Field objects describing the structure fields. + ''' + def __init__(self, name, elt): + Type.__init__(self, name) + self.is_container = True + self.elt = elt + self.fields = [] + self.nmemb = 1 + self.size = 0 + self.lenfield_parent = [self] + + def resolve(self, module): + if self.resolved: + return + pads = 0 + + # Resolve all of our field datatypes. + for child in list(self.elt): + if child.tag == 'pad': + field_name = 'pad' + str(pads) + fkey = 'CARD8' + type = PadType(child) + pads = pads + 1 + visible = False + elif child.tag == 'field': + field_name = child.get('name') + fkey = child.get('type') + type = module.get_type(fkey) + visible = True + elif child.tag == 'exprfield': + field_name = child.get('name') + fkey = child.get('type') + type = ExprType(child, module.get_type(fkey), *self.lenfield_parent) + visible = False + elif child.tag == 'list': + field_name = child.get('name') + fkey = child.get('type') + type = ListType(child, module.get_type(fkey), *self.lenfield_parent) + visible = True + elif child.tag == 'valueparam': + field_name = child.get('value-list-name') + fkey = 'CARD32' + type = ListType(child, module.get_type(fkey), *self.lenfield_parent) + visible = True + elif child.tag == 'switch': + field_name = child.get('name') + # construct the switch type name from the parent type and the field name + field_type = self.name + (field_name,) + type = SwitchType(field_type, child, *self.lenfield_parent) + visible = True + type.make_member_of(module, self, field_type, field_name, visible, True, False) + type.resolve(module) + continue + else: + # Hit this on Reply + continue + + # Get the full type name for the field + field_type = module.get_type_name(fkey) + # Add the field to ourself + type.make_member_of(module, self, field_type, field_name, visible, True, False) + # Recursively resolve the type (could be another structure, list) + type.resolve(module) + + self.calc_size() # Figure out how big we are + self.resolved = True + + def calc_size(self): + self.size = 0 + for m in self.fields: + if not m.wire: + continue + if m.type.fixed_size(): + self.size = self.size + (m.type.size * m.type.nmemb) + else: + self.size = None + break + + def fixed_size(self): + for m in self.fields: + if not m.type.fixed_size(): + return False + return True + +class SwitchType(ComplexType): + ''' + Derived class which represents a List of Items. + + Public fields added: + bitcases is an array of Bitcase objects describing the list items + ''' + + def __init__(self, name, elt, *parents): + ComplexType.__init__(self, name, elt) + self.parents = parents + # FIXME: switch cannot store lenfields, so it should just delegate the parents + self.lenfield_parent = list(parents) + [self] + # self.fields contains all possible fields collected from the Bitcase objects, + # whereas self.items contains the Bitcase objects themselves + self.bitcases = [] + + self.is_switch = True + elts = list(elt) + self.expr = Expression(elts[0] if len(elts) else elt, self) + + def resolve(self, module): + if self.resolved: + return +# pads = 0 + + parents = list(self.parents) + [self] + + # Resolve all of our field datatypes. + for index, child in enumerate(list(self.elt)): + if child.tag == 'bitcase': + field_name = child.get('name') + if field_name is None: + field_type = self.name + ('bitcase%d' % index,) + else: + field_type = self.name + (field_name,) + + # use self.parent to indicate anchestor, + # as switch does not contain named fields itself + type = BitcaseType(index, field_type, child, *parents) + # construct the switch type name from the parent type and the field name + if field_name is None: + type.has_name = False + # Get the full type name for the field + field_type = type.name + visible = True + + # add the field to ourself + type.make_member_of(module, self, field_type, field_name, visible, True, False) + + # recursively resolve the type (could be another structure, list) + type.resolve(module) + inserted = False + for new_field in type.fields: + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(self.fields): + if field == _placeholder_byte: + self.fields[idx] = new_field + inserted = True + break + if False == inserted: + self.fields.append(new_field) + + self.calc_size() # Figure out how big we are + self.resolved = True + + def make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto): + if not self.fixed_size(): + # We need a length field. + # Ask our Expression object for it's name, type, and whether it's on the wire. + lenfid = self.expr.lenfield_type + lenfield_name = self.expr.lenfield_name + lenwire = self.expr.lenwire + needlen = True + + # See if the length field is already in the structure. + for parent in self.parents: + for field in parent.fields: + if field.field_name == lenfield_name: + needlen = False + + # It isn't, so we need to add it to the structure ourself. + if needlen: + type = module.get_type(lenfid) + lenfield_type = module.get_type_name(lenfid) + type.make_member_of(module, complex_type, lenfield_type, lenfield_name, True, lenwire, False) + + # Add ourself to the structure by calling our original method. + Type.make_member_of(self, module, complex_type, field_type, field_name, visible, wire, auto) + + # size for switch can only be calculated at runtime + def calc_size(self): + pass + + # note: switch is _always_ of variable size, but we indicate here wether + # it contains elements that are variable-sized themselves + def fixed_size(self): + return False +# for m in self.fields: +# if not m.type.fixed_size(): +# return False +# return True + + +class Struct(ComplexType): + ''' + Derived class representing a struct data type. + ''' + out = __main__.output['struct'] + + +class Union(ComplexType): + ''' + Derived class representing a union data type. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.is_union = True + + out = __main__.output['union'] + + +class BitcaseType(ComplexType): + ''' + Derived class representing a struct data type. + ''' + def __init__(self, index, name, elt, *parent): + elts = list(elt) + self.expr = Expression(elts[0] if len(elts) else elt, self) + ComplexType.__init__(self, name, elts[1:]) + self.has_name = True + self.index = 1 + self.lenfield_parent = list(parent) + [self] + self.parents = list(parent) + self.is_bitcase = True + + def make_member_of(self, module, switch_type, field_type, field_name, visible, wire, auto): + ''' + register BitcaseType with the corresponding SwitchType + + module is the global module object. + complex_type is the structure object. + see Field for the meaning of the other parameters. + ''' + new_field = Field(self, field_type, field_name, visible, wire, auto) + + # We dump the _placeholder_byte if any bitcases are added. + for (idx, field) in enumerate(switch_type.bitcases): + if field == _placeholder_byte: + switch_type.bitcases[idx] = new_field + return + + switch_type.bitcases.append(new_field) + + def resolve(self, module): + if self.resolved: + return + + self.expr.resolve(module, self.parents+[self]) + + # Resolve the bitcase expression + ComplexType.resolve(self, module) + + +class Reply(ComplexType): + ''' + Derived class representing a reply. Only found as a field of Request. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.is_reply = True + + def resolve(self, module): + if self.resolved: + return + # Add the automatic protocol fields + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + self.fields.append(Field(tcard32, tcard32.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + + +class Request(ComplexType): + ''' + Derived class representing a request. + + Public fields added: + reply contains the reply datatype or None for void requests. + opcode contains the request number. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.reply = None + self.opcode = elt.get('opcode') + + for child in list(elt): + if child.tag == 'reply': + self.reply = Reply(name, child) + + def resolve(self, module): + if self.resolved: + return + # Add the automatic protocol fields + if module.namespace.is_ext: + self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True)) + self.fields.append(Field(tcard8, tcard8.name, 'minor_opcode', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + else: + self.fields.append(Field(tcard8, tcard8.name, 'major_opcode', False, True, True)) + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'length', False, True, True)) + ComplexType.resolve(self, module) + + if self.reply: + self.reply.resolve(module) + + out = __main__.output['request'] + + +class Event(ComplexType): + ''' + Derived class representing an event data type. + + Public fields added: + opcodes is a dictionary of name -> opcode number, for eventcopies. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.opcodes = {} + + tmp = elt.get('no-sequence-number') + self.has_seq = (tmp == None or tmp.lower() == 'false' or tmp == '0') + + def add_opcode(self, opcode, name, main): + self.opcodes[name] = opcode + if main: + self.name = name + + def resolve(self, module): + if self.resolved: + return + + # Add the automatic protocol fields + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + if self.has_seq: + self.fields.append(_placeholder_byte) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + ComplexType.resolve(self, module) + + out = __main__.output['event'] + + +class Error(ComplexType): + ''' + Derived class representing an error data type. + + Public fields added: + opcodes is a dictionary of name -> opcode number, for errorcopies. + ''' + def __init__(self, name, elt): + ComplexType.__init__(self, name, elt) + self.opcodes = {} + + def add_opcode(self, opcode, name, main): + self.opcodes[name] = opcode + if main: + self.name = name + + def resolve(self, module): + if self.resolved: + return + + # Add the automatic protocol fields + self.fields.append(Field(tcard8, tcard8.name, 'response_type', False, True, True)) + self.fields.append(Field(tcard8, tcard8.name, 'error_code', False, True, True)) + self.fields.append(Field(tcard16, tcard16.name, 'sequence', False, True, True)) + ComplexType.resolve(self, module) + + out = __main__.output['error'] + +_placeholder_byte = Field(PadType(None), tcard8.name, 'pad0', False, True, False) diff --git a/mesalib/configure.ac b/mesalib/configure.ac index 3b05ca353..54d9c2968 100644 --- a/mesalib/configure.ac +++ b/mesalib/configure.ac @@ -1784,6 +1784,13 @@ AC_ARG_ENABLE([gallium-r300], [build gallium r300 @<:@default=build DRI driver only@:>@])], [enable_gallium_r300="$enableval"], [enable_gallium_r300=auto]) + +if test "$mesa_driver" != dri ; then + if test "x$enable_gallium_r300" = xauto; then + enable_gallium_r300=no + fi +fi + if test "x$enable_gallium_r300" != xno; then if test "x$MESA_LLVM" = x0; then case "$host_cpu" in diff --git a/mesalib/src/glsl/glsl_parser_extras.cpp b/mesalib/src/glsl/glsl_parser_extras.cpp index 5bb3a6f25..18bff88de 100644 --- a/mesalib/src/glsl/glsl_parser_extras.cpp +++ b/mesalib/src/glsl/glsl_parser_extras.cpp @@ -255,6 +255,16 @@ _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp, state->AMD_conservative_depth_enable = (ext_mode != extension_disable); state->AMD_conservative_depth_warn = (ext_mode == extension_warn); unsupported = !state->extensions->AMD_conservative_depth; + } else if (strcmp(name, "GL_AMD_shader_stencil_export") == 0) { + state->AMD_shader_stencil_export_enable = (ext_mode != extension_disable); + state->AMD_shader_stencil_export_warn = (ext_mode == extension_warn); + + /* This extension is only supported in fragment shaders. + * Both the ARB and AMD variants share the same ARB flag + * in gl_extensions. + */ + unsupported = (state->target != fragment_shader) + || !state->extensions->ARB_shader_stencil_export; } else if (strcmp(name, "GL_OES_texture_3D") == 0 && state->es_shader) { state->OES_texture_3D_enable = (ext_mode != extension_disable); state->OES_texture_3D_warn = (ext_mode == extension_warn); diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h index 6df0e160a..f9147653f 100644 --- a/mesalib/src/glsl/glsl_parser_extras.h +++ b/mesalib/src/glsl/glsl_parser_extras.h @@ -172,6 +172,8 @@ struct _mesa_glsl_parse_state { unsigned ARB_shader_stencil_export_warn:1; unsigned AMD_conservative_depth_enable:1; unsigned AMD_conservative_depth_warn:1; + unsigned AMD_shader_stencil_export_enable:1; + unsigned AMD_shader_stencil_export_warn:1; unsigned OES_texture_3D_enable:1; unsigned OES_texture_3D_warn:1; /*@}*/ diff --git a/mesalib/src/glsl/ir_variable.cpp b/mesalib/src/glsl/ir_variable.cpp index f35771756..b8487694c 100644 --- a/mesalib/src/glsl/ir_variable.cpp +++ b/mesalib/src/glsl/ir_variable.cpp @@ -767,6 +767,22 @@ generate_ARB_shader_stencil_export_variables(exec_list *instructions, } static void +generate_AMD_shader_stencil_export_variables(exec_list *instructions, + struct _mesa_glsl_parse_state *state, + bool warn) +{ + /* gl_FragStencilRefAMD is only available in the fragment shader. + */ + ir_variable *const fd = + add_variable(instructions, state->symbols, + "gl_FragStencilRefAMD", glsl_type::int_type, + ir_var_out, FRAG_RESULT_STENCIL); + + if (warn) + fd->warn_extension = "GL_AMD_shader_stencil_export"; +} + +static void generate_120_fs_variables(exec_list *instructions, struct _mesa_glsl_parse_state *state) { @@ -818,6 +834,10 @@ initialize_fs_variables(exec_list *instructions, if (state->ARB_shader_stencil_export_enable) generate_ARB_shader_stencil_export_variables(instructions, state, state->ARB_shader_stencil_export_warn); + + if (state->AMD_shader_stencil_export_enable) + generate_AMD_shader_stencil_export_variables(instructions, state, + state->AMD_shader_stencil_export_warn); } void diff --git a/mesalib/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml b/mesalib/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml new file mode 100644 index 000000000..2ed0e0b18 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd"> + +<!-- Note: no GLX protocol info yet. --> + + +<OpenGLAPI> + +<category name="GL_AMD_draw_buffers_blend" number="366"> + + <function name="BlendEquationIndexedAMD" alias="BlendEquationiARB"> + <param name="buf" type="GLuint"/> + <param name="mode" type="GLenum"/> + </function> + + <function name="BlendEquationSeparateIndexedAMD" alias="BlendEquationSeparateiARB"> + <param name="buf" type="GLuint"/> + <param name="modeRGB" type="GLenum"/> + <param name="modeA" type="GLenum"/> + </function> + + <function name="BlendFuncIndexedAMD" alias="BlendFunciARB"> + <param name="buf" type="GLuint"/> + <param name="src" type="GLenum"/> + <param name="dst" type="GLenum"/> + </function> + + <function name="BlendFuncSeparateIndexedAMD" alias="BlendFuncSeparateiARB"> + <param name="buf" type="GLuint"/> + <param name="srcRGB" type="GLenum"/> + <param name="dstRGB" type="GLenum"/> + <param name="srcA" type="GLenum"/> + <param name="dstA" type="GLenum"/> + </function> + +</category> + +</OpenGLAPI> diff --git a/mesalib/src/mapi/glapi/gen/Makefile b/mesalib/src/mapi/glapi/gen/Makefile index f02e5d274..87b928ccf 100644 --- a/mesalib/src/mapi/glapi/gen/Makefile +++ b/mesalib/src/mapi/glapi/gen/Makefile @@ -86,6 +86,7 @@ API_XML = \ ARB_sync.xml \ ARB_texture_buffer_object.xml \ ARB_vertex_array_object.xml \ + AMD_draw_buffers_blend.xml \ APPLE_object_purgeable.xml \ APPLE_vertex_array_object.xml \ EXT_draw_buffers2.xml \ diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml index 669be6064..7a7b1e903 100644 --- a/mesalib/src/mapi/glapi/gen/gl_API.xml +++ b/mesalib/src/mapi/glapi/gen/gl_API.xml @@ -12533,6 +12533,7 @@ <xi:include href="ARB_instanced_arrays.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> <xi:include href="ARB_draw_buffers_blend.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> +<xi:include href="AMD_draw_buffers_blend.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> <xi:include href="ARB_texture_buffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> diff --git a/mesalib/src/mapi/glapi/glapi_mapi_tmp.h b/mesalib/src/mapi/glapi/glapi_mapi_tmp.h index b3ee552c6..43da6c489 100644 --- a/mesalib/src/mapi/glapi/glapi_mapi_tmp.h +++ b/mesalib/src/mapi/glapi/glapi_mapi_tmp.h @@ -804,9 +804,13 @@ GLAPI void APIENTRY GLAPI_PREFIX(DrawElementsBaseVertex)(GLenum mode, GLsizei co GLAPI void APIENTRY GLAPI_PREFIX(DrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); GLAPI void APIENTRY GLAPI_PREFIX(MultiDrawElementsBaseVertex)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount, const GLint *basevertex); GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationSeparateiARB)(GLuint buf, GLenum modeRGB, GLenum modeA); +GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationSeparateIndexedAMD)(GLuint buf, GLenum modeRGB, GLenum modeA); GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationiARB)(GLuint buf, GLenum mode); +GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationIndexedAMD)(GLuint buf, GLenum mode); GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA); +GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncSeparateIndexedAMD)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA); GLAPI void APIENTRY GLAPI_PREFIX(BlendFunciARB)(GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncIndexedAMD)(GLuint buf, GLenum src, GLenum dst); GLAPI void APIENTRY GLAPI_PREFIX(BindSampler)(GLuint unit, GLuint sampler); GLAPI void APIENTRY GLAPI_PREFIX(DeleteSamplers)(GLsizei count, const GLuint *samplers); GLAPI void APIENTRY GLAPI_PREFIX(GenSamplers)(GLsizei count, GLuint *samplers); @@ -6761,6 +6765,13 @@ GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationSeparateiARB)(GLuint buf, GLenum m ((void (APIENTRY *)(GLuint buf, GLenum modeRGB, GLenum modeA)) _func)(buf, modeRGB, modeA); } +GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationSeparateIndexedAMD)(GLuint buf, GLenum modeRGB, GLenum modeA) +{ + const struct mapi_table *_tbl = entry_current_get(); + mapi_func _func = ((const mapi_func *) _tbl)[596]; + ((void (APIENTRY *)(GLuint buf, GLenum modeRGB, GLenum modeA)) _func)(buf, modeRGB, modeA); +} + GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationiARB)(GLuint buf, GLenum mode) { const struct mapi_table *_tbl = entry_current_get(); @@ -6768,6 +6779,13 @@ GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationiARB)(GLuint buf, GLenum mode) ((void (APIENTRY *)(GLuint buf, GLenum mode)) _func)(buf, mode); } +GLAPI void APIENTRY GLAPI_PREFIX(BlendEquationIndexedAMD)(GLuint buf, GLenum mode) +{ + const struct mapi_table *_tbl = entry_current_get(); + mapi_func _func = ((const mapi_func *) _tbl)[597]; + ((void (APIENTRY *)(GLuint buf, GLenum mode)) _func)(buf, mode); +} + GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA) { const struct mapi_table *_tbl = entry_current_get(); @@ -6775,6 +6793,13 @@ GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncSeparateiARB)(GLuint buf, GLenum srcRG ((void (APIENTRY *)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA)) _func)(buf, srcRGB, dstRGB, srcA, dstA); } +GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncSeparateIndexedAMD)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA) +{ + const struct mapi_table *_tbl = entry_current_get(); + mapi_func _func = ((const mapi_func *) _tbl)[598]; + ((void (APIENTRY *)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA)) _func)(buf, srcRGB, dstRGB, srcA, dstA); +} + GLAPI void APIENTRY GLAPI_PREFIX(BlendFunciARB)(GLuint buf, GLenum src, GLenum dst) { const struct mapi_table *_tbl = entry_current_get(); @@ -6782,6 +6807,13 @@ GLAPI void APIENTRY GLAPI_PREFIX(BlendFunciARB)(GLuint buf, GLenum src, GLenum d ((void (APIENTRY *)(GLuint buf, GLenum src, GLenum dst)) _func)(buf, src, dst); } +GLAPI void APIENTRY GLAPI_PREFIX(BlendFuncIndexedAMD)(GLuint buf, GLenum src, GLenum dst) +{ + const struct mapi_table *_tbl = entry_current_get(); + mapi_func _func = ((const mapi_func *) _tbl)[599]; + ((void (APIENTRY *)(GLuint buf, GLenum src, GLenum dst)) _func)(buf, src, dst); +} + GLAPI void APIENTRY GLAPI_PREFIX(BindSampler)(GLuint unit, GLuint sampler) { const struct mapi_table *_tbl = entry_current_get(); @@ -12184,15 +12216,27 @@ STUB_ASM_ENTRY(GLAPI_PREFIX_STR(MultiDrawElementsBaseVertex))"\n" STUB_ASM_ENTRY(GLAPI_PREFIX_STR(BlendEquationSeparateiARB))"\n" "\t"STUB_ASM_CODE("596")"\n" +".globl "GLAPI_PREFIX_STR(BlendEquationSeparateIndexedAMD)"\n" +".set "GLAPI_PREFIX_STR(BlendEquationSeparateIndexedAMD)", "GLAPI_PREFIX_STR(BlendEquationSeparateiARB)"\n" + STUB_ASM_ENTRY(GLAPI_PREFIX_STR(BlendEquationiARB))"\n" "\t"STUB_ASM_CODE("597")"\n" +".globl "GLAPI_PREFIX_STR(BlendEquationIndexedAMD)"\n" +".set "GLAPI_PREFIX_STR(BlendEquationIndexedAMD)", "GLAPI_PREFIX_STR(BlendEquationiARB)"\n" + STUB_ASM_ENTRY(GLAPI_PREFIX_STR(BlendFuncSeparateiARB))"\n" "\t"STUB_ASM_CODE("598")"\n" +".globl "GLAPI_PREFIX_STR(BlendFuncSeparateIndexedAMD)"\n" +".set "GLAPI_PREFIX_STR(BlendFuncSeparateIndexedAMD)", "GLAPI_PREFIX_STR(BlendFuncSeparateiARB)"\n" + STUB_ASM_ENTRY(GLAPI_PREFIX_STR(BlendFunciARB))"\n" "\t"STUB_ASM_CODE("599")"\n" +".globl "GLAPI_PREFIX_STR(BlendFuncIndexedAMD)"\n" +".set "GLAPI_PREFIX_STR(BlendFuncIndexedAMD)", "GLAPI_PREFIX_STR(BlendFunciARB)"\n" + STUB_ASM_ENTRY(GLAPI_PREFIX_STR(BindSampler))"\n" "\t"STUB_ASM_CODE("600")"\n" diff --git a/mesalib/src/mapi/glapi/glapi_sparc.S b/mesalib/src/mapi/glapi/glapi_sparc.S index cff25f8cc..cb11a8b23 100644 --- a/mesalib/src/mapi/glapi/glapi_sparc.S +++ b/mesalib/src/mapi/glapi/glapi_sparc.S @@ -1406,6 +1406,10 @@ gl_dispatch_functions_start: GL_STUB_ALIAS(glDrawElementsInstancedEXT, glDrawElementsInstancedARB) GL_STUB_ALIAS(glDrawElementsInstanced, glDrawElementsInstancedARB) GL_STUB_ALIAS(glRenderbufferStorageMultisampleEXT, glRenderbufferStorageMultisample) + GL_STUB_ALIAS(glBlendEquationSeparateIndexedAMD, glBlendEquationSeparateiARB) + GL_STUB_ALIAS(glBlendEquationIndexedAMD, glBlendEquationiARB) + GL_STUB_ALIAS(glBlendFuncSeparateIndexedAMD, glBlendFuncSeparateiARB) + GL_STUB_ALIAS(glBlendFuncIndexedAMD, glBlendFunciARB) GL_STUB_ALIAS(glPointParameterf, glPointParameterfEXT) GL_STUB_ALIAS(glPointParameterfARB, glPointParameterfEXT) GL_STUB_ALIAS(glPointParameterfSGIS, glPointParameterfEXT) diff --git a/mesalib/src/mapi/glapi/glapi_x86-64.S b/mesalib/src/mapi/glapi/glapi_x86-64.S index b21d9717d..ec7a2c5cc 100644 --- a/mesalib/src/mapi/glapi/glapi_x86-64.S +++ b/mesalib/src/mapi/glapi/glapi_x86-64.S @@ -35479,6 +35479,10 @@ GL_PREFIX(EGLImageTargetTexture2DOES): .globl GL_PREFIX(DrawElementsInstancedEXT) ; .set GL_PREFIX(DrawElementsInstancedEXT), GL_PREFIX(DrawElementsInstancedARB) .globl GL_PREFIX(DrawElementsInstanced) ; .set GL_PREFIX(DrawElementsInstanced), GL_PREFIX(DrawElementsInstancedARB) .globl GL_PREFIX(RenderbufferStorageMultisampleEXT) ; .set GL_PREFIX(RenderbufferStorageMultisampleEXT), GL_PREFIX(RenderbufferStorageMultisample) + .globl GL_PREFIX(BlendEquationSeparateIndexedAMD) ; .set GL_PREFIX(BlendEquationSeparateIndexedAMD), GL_PREFIX(BlendEquationSeparateiARB) + .globl GL_PREFIX(BlendEquationIndexedAMD) ; .set GL_PREFIX(BlendEquationIndexedAMD), GL_PREFIX(BlendEquationiARB) + .globl GL_PREFIX(BlendFuncSeparateIndexedAMD) ; .set GL_PREFIX(BlendFuncSeparateIndexedAMD), GL_PREFIX(BlendFuncSeparateiARB) + .globl GL_PREFIX(BlendFuncIndexedAMD) ; .set GL_PREFIX(BlendFuncIndexedAMD), GL_PREFIX(BlendFunciARB) .globl GL_PREFIX(PointParameterf) ; .set GL_PREFIX(PointParameterf), GL_PREFIX(PointParameterfEXT) .globl GL_PREFIX(PointParameterfARB) ; .set GL_PREFIX(PointParameterfARB), GL_PREFIX(PointParameterfEXT) .globl GL_PREFIX(PointParameterfv) ; .set GL_PREFIX(PointParameterfv), GL_PREFIX(PointParameterfvEXT) diff --git a/mesalib/src/mapi/glapi/glapi_x86.S b/mesalib/src/mapi/glapi/glapi_x86.S index d5084da17..61d7ff802 100644 --- a/mesalib/src/mapi/glapi/glapi_x86.S +++ b/mesalib/src/mapi/glapi/glapi_x86.S @@ -1302,6 +1302,10 @@ GLNAME(gl_dispatch_functions_start): GL_STUB_ALIAS(DrawElementsInstancedEXT, 574, DrawElementsInstancedEXT@20, DrawElementsInstancedARB, DrawElementsInstancedARB@20) GL_STUB_ALIAS(DrawElementsInstanced, 574, DrawElementsInstanced@20, DrawElementsInstancedARB, DrawElementsInstancedARB@20) GL_STUB_ALIAS(RenderbufferStorageMultisampleEXT, 575, RenderbufferStorageMultisampleEXT@20, RenderbufferStorageMultisample, RenderbufferStorageMultisample@20) + GL_STUB_ALIAS(BlendEquationSeparateIndexedAMD, 596, BlendEquationSeparateIndexedAMD@12, BlendEquationSeparateiARB, BlendEquationSeparateiARB@12) + GL_STUB_ALIAS(BlendEquationIndexedAMD, 597, BlendEquationIndexedAMD@8, BlendEquationiARB, BlendEquationiARB@8) + GL_STUB_ALIAS(BlendFuncSeparateIndexedAMD, 598, BlendFuncSeparateIndexedAMD@20, BlendFuncSeparateiARB, BlendFuncSeparateiARB@20) + GL_STUB_ALIAS(BlendFuncIndexedAMD, 599, BlendFuncIndexedAMD@12, BlendFunciARB, BlendFunciARB@12) GL_STUB_ALIAS(PointParameterf, 661, PointParameterf@8, PointParameterfEXT, PointParameterfEXT@8) GL_STUB_ALIAS(PointParameterfARB, 661, PointParameterfARB@8, PointParameterfEXT, PointParameterfEXT@8) GL_STUB_ALIAS(PointParameterfv, 662, PointParameterfv@8, PointParameterfvEXT, PointParameterfvEXT@8) diff --git a/mesalib/src/mapi/glapi/glapitemp.h b/mesalib/src/mapi/glapi/glapitemp.h index 46e6e2758..c0ed1731c 100644 --- a/mesalib/src/mapi/glapi/glapitemp.h +++ b/mesalib/src/mapi/glapi/glapitemp.h @@ -4047,21 +4047,41 @@ KEYWORD1 void KEYWORD2 NAME(BlendEquationSeparateiARB)(GLuint buf, GLenum modeRG DISPATCH(BlendEquationSeparateiARB, (buf, modeRGB, modeA), (F, "glBlendEquationSeparateiARB(%d, 0x%x, 0x%x);\n", buf, modeRGB, modeA)); } +KEYWORD1 void KEYWORD2 NAME(BlendEquationSeparateIndexedAMD)(GLuint buf, GLenum modeRGB, GLenum modeA) +{ + DISPATCH(BlendEquationSeparateiARB, (buf, modeRGB, modeA), (F, "glBlendEquationSeparateIndexedAMD(%d, 0x%x, 0x%x);\n", buf, modeRGB, modeA)); +} + KEYWORD1 void KEYWORD2 NAME(BlendEquationiARB)(GLuint buf, GLenum mode) { DISPATCH(BlendEquationiARB, (buf, mode), (F, "glBlendEquationiARB(%d, 0x%x);\n", buf, mode)); } +KEYWORD1 void KEYWORD2 NAME(BlendEquationIndexedAMD)(GLuint buf, GLenum mode) +{ + DISPATCH(BlendEquationiARB, (buf, mode), (F, "glBlendEquationIndexedAMD(%d, 0x%x);\n", buf, mode)); +} + KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA) { DISPATCH(BlendFuncSeparateiARB, (buf, srcRGB, dstRGB, srcA, dstA), (F, "glBlendFuncSeparateiARB(%d, 0x%x, 0x%x, 0x%x, 0x%x);\n", buf, srcRGB, dstRGB, srcA, dstA)); } +KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateIndexedAMD)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA) +{ + DISPATCH(BlendFuncSeparateiARB, (buf, srcRGB, dstRGB, srcA, dstA), (F, "glBlendFuncSeparateIndexedAMD(%d, 0x%x, 0x%x, 0x%x, 0x%x);\n", buf, srcRGB, dstRGB, srcA, dstA)); +} + KEYWORD1 void KEYWORD2 NAME(BlendFunciARB)(GLuint buf, GLenum src, GLenum dst) { DISPATCH(BlendFunciARB, (buf, src, dst), (F, "glBlendFunciARB(%d, 0x%x, 0x%x);\n", buf, src, dst)); } +KEYWORD1 void KEYWORD2 NAME(BlendFuncIndexedAMD)(GLuint buf, GLenum src, GLenum dst) +{ + DISPATCH(BlendFunciARB, (buf, src, dst), (F, "glBlendFuncIndexedAMD(%d, 0x%x, 0x%x);\n", buf, src, dst)); +} + KEYWORD1 void KEYWORD2 NAME(BindSampler)(GLuint unit, GLuint sampler) { DISPATCH(BindSampler, (unit, sampler), (F, "glBindSampler(%d, %d);\n", unit, sampler)); @@ -7901,6 +7921,10 @@ _glapi_proc UNUSED_TABLE_NAME[] = { TABLE_ENTRY(DrawElementsInstancedEXT), TABLE_ENTRY(DrawElementsInstanced), TABLE_ENTRY(RenderbufferStorageMultisampleEXT), + TABLE_ENTRY(BlendEquationSeparateIndexedAMD), + TABLE_ENTRY(BlendEquationIndexedAMD), + TABLE_ENTRY(BlendFuncSeparateIndexedAMD), + TABLE_ENTRY(BlendFuncIndexedAMD), TABLE_ENTRY(PointParameterf), TABLE_ENTRY(PointParameterfARB), TABLE_ENTRY(_dispatch_stub_661), diff --git a/mesalib/src/mapi/glapi/glprocs.h b/mesalib/src/mapi/glapi/glprocs.h index 9da75011b..c10c3da40 100644 --- a/mesalib/src/mapi/glapi/glprocs.h +++ b/mesalib/src/mapi/glapi/glprocs.h @@ -1188,6 +1188,10 @@ static const char gl_string_table[] = "glDrawElementsInstancedEXT\0" "glDrawElementsInstanced\0" "glRenderbufferStorageMultisampleEXT\0" + "glBlendEquationSeparateIndexedAMD\0" + "glBlendEquationIndexedAMD\0" + "glBlendFuncSeparateIndexedAMD\0" + "glBlendFuncIndexedAMD\0" "glSampleMaskEXT\0" "glSamplePatternEXT\0" "glPointParameterf\0" @@ -2582,157 +2586,161 @@ static const glprocs_table_t static_functions[] = { NAME_FUNC_OFFSET(20863, glDrawElementsInstancedARB, glDrawElementsInstancedARB, NULL, 574), NAME_FUNC_OFFSET(20890, glDrawElementsInstancedARB, glDrawElementsInstancedARB, NULL, 574), NAME_FUNC_OFFSET(20914, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, 575), - NAME_FUNC_OFFSET(20950, gl_dispatch_stub_653, gl_dispatch_stub_653, NULL, 653), - NAME_FUNC_OFFSET(20966, gl_dispatch_stub_654, gl_dispatch_stub_654, NULL, 654), - NAME_FUNC_OFFSET(20985, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), - NAME_FUNC_OFFSET(21003, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), - NAME_FUNC_OFFSET(21024, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), - NAME_FUNC_OFFSET(21046, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), - NAME_FUNC_OFFSET(21065, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), - NAME_FUNC_OFFSET(21087, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), - NAME_FUNC_OFFSET(21110, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, 665), - NAME_FUNC_OFFSET(21129, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, 666), - NAME_FUNC_OFFSET(21149, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, 667), - NAME_FUNC_OFFSET(21168, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, 668), - NAME_FUNC_OFFSET(21188, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, 669), - NAME_FUNC_OFFSET(21207, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, 670), - NAME_FUNC_OFFSET(21227, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, 671), - NAME_FUNC_OFFSET(21246, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, 672), - NAME_FUNC_OFFSET(21266, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, 673), - NAME_FUNC_OFFSET(21285, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, 674), - NAME_FUNC_OFFSET(21305, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, 675), - NAME_FUNC_OFFSET(21325, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, 676), - NAME_FUNC_OFFSET(21346, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, 677), - NAME_FUNC_OFFSET(21366, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, 678), - NAME_FUNC_OFFSET(21387, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, 679), - NAME_FUNC_OFFSET(21407, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, 680), - NAME_FUNC_OFFSET(21428, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, 681), - NAME_FUNC_OFFSET(21452, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, 682), - NAME_FUNC_OFFSET(21470, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, 683), - NAME_FUNC_OFFSET(21490, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, 684), - NAME_FUNC_OFFSET(21508, glFogCoorddEXT, glFogCoorddEXT, NULL, 685), - NAME_FUNC_OFFSET(21520, glFogCoorddvEXT, glFogCoorddvEXT, NULL, 686), - NAME_FUNC_OFFSET(21533, glFogCoordfEXT, glFogCoordfEXT, NULL, 687), - NAME_FUNC_OFFSET(21545, glFogCoordfvEXT, glFogCoordfvEXT, NULL, 688), - NAME_FUNC_OFFSET(21558, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, 690), - NAME_FUNC_OFFSET(21578, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, 690), - NAME_FUNC_OFFSET(21602, glWindowPos2dMESA, glWindowPos2dMESA, NULL, 707), - NAME_FUNC_OFFSET(21616, glWindowPos2dMESA, glWindowPos2dMESA, NULL, 707), - NAME_FUNC_OFFSET(21633, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, 708), - NAME_FUNC_OFFSET(21648, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, 708), - NAME_FUNC_OFFSET(21666, glWindowPos2fMESA, glWindowPos2fMESA, NULL, 709), - NAME_FUNC_OFFSET(21680, glWindowPos2fMESA, glWindowPos2fMESA, NULL, 709), - NAME_FUNC_OFFSET(21697, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, 710), - NAME_FUNC_OFFSET(21712, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, 710), - NAME_FUNC_OFFSET(21730, glWindowPos2iMESA, glWindowPos2iMESA, NULL, 711), - NAME_FUNC_OFFSET(21744, glWindowPos2iMESA, glWindowPos2iMESA, NULL, 711), - NAME_FUNC_OFFSET(21761, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, 712), - NAME_FUNC_OFFSET(21776, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, 712), - NAME_FUNC_OFFSET(21794, glWindowPos2sMESA, glWindowPos2sMESA, NULL, 713), - NAME_FUNC_OFFSET(21808, glWindowPos2sMESA, glWindowPos2sMESA, NULL, 713), - NAME_FUNC_OFFSET(21825, glWindowPos2svMESA, glWindowPos2svMESA, NULL, 714), - NAME_FUNC_OFFSET(21840, glWindowPos2svMESA, glWindowPos2svMESA, NULL, 714), - NAME_FUNC_OFFSET(21858, glWindowPos3dMESA, glWindowPos3dMESA, NULL, 715), - NAME_FUNC_OFFSET(21872, glWindowPos3dMESA, glWindowPos3dMESA, NULL, 715), - NAME_FUNC_OFFSET(21889, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, 716), - NAME_FUNC_OFFSET(21904, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, 716), - NAME_FUNC_OFFSET(21922, glWindowPos3fMESA, glWindowPos3fMESA, NULL, 717), - NAME_FUNC_OFFSET(21936, glWindowPos3fMESA, glWindowPos3fMESA, NULL, 717), - NAME_FUNC_OFFSET(21953, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, 718), - NAME_FUNC_OFFSET(21968, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, 718), - NAME_FUNC_OFFSET(21986, glWindowPos3iMESA, glWindowPos3iMESA, NULL, 719), - NAME_FUNC_OFFSET(22000, glWindowPos3iMESA, glWindowPos3iMESA, NULL, 719), - NAME_FUNC_OFFSET(22017, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, 720), - NAME_FUNC_OFFSET(22032, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, 720), - NAME_FUNC_OFFSET(22050, glWindowPos3sMESA, glWindowPos3sMESA, NULL, 721), - NAME_FUNC_OFFSET(22064, glWindowPos3sMESA, glWindowPos3sMESA, NULL, 721), - NAME_FUNC_OFFSET(22081, glWindowPos3svMESA, glWindowPos3svMESA, NULL, 722), - NAME_FUNC_OFFSET(22096, glWindowPos3svMESA, glWindowPos3svMESA, NULL, 722), - NAME_FUNC_OFFSET(22114, glBindProgramNV, glBindProgramNV, NULL, 741), - NAME_FUNC_OFFSET(22131, glDeleteProgramsNV, glDeleteProgramsNV, NULL, 742), - NAME_FUNC_OFFSET(22151, glGenProgramsNV, glGenProgramsNV, NULL, 744), - NAME_FUNC_OFFSET(22168, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, 750), - NAME_FUNC_OFFSET(22194, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, 750), - NAME_FUNC_OFFSET(22223, glIsProgramNV, glIsProgramNV, NULL, 754), - NAME_FUNC_OFFSET(22238, glPointParameteriNV, glPointParameteriNV, NULL, 818), - NAME_FUNC_OFFSET(22256, glPointParameterivNV, glPointParameterivNV, NULL, 819), - NAME_FUNC_OFFSET(22275, gl_dispatch_stub_822, gl_dispatch_stub_822, NULL, 822), - NAME_FUNC_OFFSET(22296, gl_dispatch_stub_824, gl_dispatch_stub_824, NULL, 824), - NAME_FUNC_OFFSET(22312, glPrimitiveRestartIndexNV, glPrimitiveRestartIndexNV, NULL, 831), - NAME_FUNC_OFFSET(22336, gl_dispatch_stub_834, gl_dispatch_stub_834, NULL, 834), - NAME_FUNC_OFFSET(22360, gl_dispatch_stub_834, gl_dispatch_stub_834, NULL, 834), - NAME_FUNC_OFFSET(22387, glBindFramebufferEXT, glBindFramebufferEXT, NULL, 835), - NAME_FUNC_OFFSET(22405, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, 836), - NAME_FUNC_OFFSET(22424, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, 837), - NAME_FUNC_OFFSET(22449, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, 838), - NAME_FUNC_OFFSET(22470, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, 839), - NAME_FUNC_OFFSET(22492, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, 840), - NAME_FUNC_OFFSET(22518, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, 841), - NAME_FUNC_OFFSET(22541, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, 842), - NAME_FUNC_OFFSET(22564, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, 843), - NAME_FUNC_OFFSET(22587, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, 844), - NAME_FUNC_OFFSET(22605, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, 845), - NAME_FUNC_OFFSET(22624, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, 846), - NAME_FUNC_OFFSET(22641, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, 847), - NAME_FUNC_OFFSET(22679, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, 848), - NAME_FUNC_OFFSET(22708, glIsFramebufferEXT, glIsFramebufferEXT, NULL, 849), - NAME_FUNC_OFFSET(22724, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, 850), - NAME_FUNC_OFFSET(22741, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, 851), - NAME_FUNC_OFFSET(22763, gl_dispatch_stub_852, gl_dispatch_stub_852, NULL, 852), - NAME_FUNC_OFFSET(22781, glBindFragDataLocationEXT, glBindFragDataLocationEXT, NULL, 855), - NAME_FUNC_OFFSET(22804, glGetFragDataLocationEXT, glGetFragDataLocationEXT, NULL, 856), - NAME_FUNC_OFFSET(22826, glGetUniformuivEXT, glGetUniformuivEXT, NULL, 857), - NAME_FUNC_OFFSET(22842, glGetVertexAttribIivEXT, glGetVertexAttribIivEXT, NULL, 858), - NAME_FUNC_OFFSET(22863, glGetVertexAttribIuivEXT, glGetVertexAttribIuivEXT, NULL, 859), - NAME_FUNC_OFFSET(22885, glUniform1uiEXT, glUniform1uiEXT, NULL, 860), - NAME_FUNC_OFFSET(22898, glUniform1uivEXT, glUniform1uivEXT, NULL, 861), - NAME_FUNC_OFFSET(22912, glUniform2uiEXT, glUniform2uiEXT, NULL, 862), - NAME_FUNC_OFFSET(22925, glUniform2uivEXT, glUniform2uivEXT, NULL, 863), - NAME_FUNC_OFFSET(22939, glUniform3uiEXT, glUniform3uiEXT, NULL, 864), - NAME_FUNC_OFFSET(22952, glUniform3uivEXT, glUniform3uivEXT, NULL, 865), - NAME_FUNC_OFFSET(22966, glUniform4uiEXT, glUniform4uiEXT, NULL, 866), - NAME_FUNC_OFFSET(22979, glUniform4uivEXT, glUniform4uivEXT, NULL, 867), - NAME_FUNC_OFFSET(22993, glVertexAttribI1iEXT, glVertexAttribI1iEXT, NULL, 868), - NAME_FUNC_OFFSET(23011, glVertexAttribI1ivEXT, glVertexAttribI1ivEXT, NULL, 869), - NAME_FUNC_OFFSET(23030, glVertexAttribI1uiEXT, glVertexAttribI1uiEXT, NULL, 870), - NAME_FUNC_OFFSET(23049, glVertexAttribI1uivEXT, glVertexAttribI1uivEXT, NULL, 871), - NAME_FUNC_OFFSET(23069, glVertexAttribI2iEXT, glVertexAttribI2iEXT, NULL, 872), - NAME_FUNC_OFFSET(23087, glVertexAttribI2ivEXT, glVertexAttribI2ivEXT, NULL, 873), - NAME_FUNC_OFFSET(23106, glVertexAttribI2uiEXT, glVertexAttribI2uiEXT, NULL, 874), - NAME_FUNC_OFFSET(23125, glVertexAttribI2uivEXT, glVertexAttribI2uivEXT, NULL, 875), - NAME_FUNC_OFFSET(23145, glVertexAttribI3iEXT, glVertexAttribI3iEXT, NULL, 876), - NAME_FUNC_OFFSET(23163, glVertexAttribI3ivEXT, glVertexAttribI3ivEXT, NULL, 877), - NAME_FUNC_OFFSET(23182, glVertexAttribI3uiEXT, glVertexAttribI3uiEXT, NULL, 878), - NAME_FUNC_OFFSET(23201, glVertexAttribI3uivEXT, glVertexAttribI3uivEXT, NULL, 879), - NAME_FUNC_OFFSET(23221, glVertexAttribI4bvEXT, glVertexAttribI4bvEXT, NULL, 880), - NAME_FUNC_OFFSET(23240, glVertexAttribI4iEXT, glVertexAttribI4iEXT, NULL, 881), - NAME_FUNC_OFFSET(23258, glVertexAttribI4ivEXT, glVertexAttribI4ivEXT, NULL, 882), - NAME_FUNC_OFFSET(23277, glVertexAttribI4svEXT, glVertexAttribI4svEXT, NULL, 883), - NAME_FUNC_OFFSET(23296, glVertexAttribI4ubvEXT, glVertexAttribI4ubvEXT, NULL, 884), - NAME_FUNC_OFFSET(23316, glVertexAttribI4uiEXT, glVertexAttribI4uiEXT, NULL, 885), - NAME_FUNC_OFFSET(23335, glVertexAttribI4uivEXT, glVertexAttribI4uivEXT, NULL, 886), - NAME_FUNC_OFFSET(23355, glVertexAttribI4usvEXT, glVertexAttribI4usvEXT, NULL, 887), - NAME_FUNC_OFFSET(23375, glVertexAttribIPointerEXT, glVertexAttribIPointerEXT, NULL, 888), - NAME_FUNC_OFFSET(23398, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, 889), - NAME_FUNC_OFFSET(23424, glColorMaskIndexedEXT, glColorMaskIndexedEXT, NULL, 890), - NAME_FUNC_OFFSET(23437, glDisableIndexedEXT, glDisableIndexedEXT, NULL, 891), - NAME_FUNC_OFFSET(23448, glEnableIndexedEXT, glEnableIndexedEXT, NULL, 892), - NAME_FUNC_OFFSET(23458, glGetBooleanIndexedvEXT, glGetBooleanIndexedvEXT, NULL, 893), - NAME_FUNC_OFFSET(23474, glGetIntegerIndexedvEXT, glGetIntegerIndexedvEXT, NULL, 894), - NAME_FUNC_OFFSET(23490, glIsEnabledIndexedEXT, glIsEnabledIndexedEXT, NULL, 895), - NAME_FUNC_OFFSET(23503, glGetTexParameterIivEXT, glGetTexParameterIivEXT, NULL, 898), - NAME_FUNC_OFFSET(23524, glGetTexParameterIuivEXT, glGetTexParameterIuivEXT, NULL, 899), - NAME_FUNC_OFFSET(23546, glTexParameterIivEXT, glTexParameterIivEXT, NULL, 900), - NAME_FUNC_OFFSET(23564, glTexParameterIuivEXT, glTexParameterIuivEXT, NULL, 901), - NAME_FUNC_OFFSET(23583, glBeginConditionalRenderNV, glBeginConditionalRenderNV, NULL, 902), - NAME_FUNC_OFFSET(23608, glEndConditionalRenderNV, glEndConditionalRenderNV, NULL, 903), - NAME_FUNC_OFFSET(23631, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, 904), - NAME_FUNC_OFFSET(23656, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, 905), - NAME_FUNC_OFFSET(23673, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, 907), - NAME_FUNC_OFFSET(23691, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, 908), - NAME_FUNC_OFFSET(23714, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, 909), - NAME_FUNC_OFFSET(23744, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, 910), - NAME_FUNC_OFFSET(23772, glProvokingVertexEXT, glProvokingVertexEXT, NULL, 911), + NAME_FUNC_OFFSET(20950, glBlendEquationSeparateiARB, glBlendEquationSeparateiARB, NULL, 596), + NAME_FUNC_OFFSET(20984, glBlendEquationiARB, glBlendEquationiARB, NULL, 597), + NAME_FUNC_OFFSET(21010, glBlendFuncSeparateiARB, glBlendFuncSeparateiARB, NULL, 598), + NAME_FUNC_OFFSET(21040, glBlendFunciARB, glBlendFunciARB, NULL, 599), + NAME_FUNC_OFFSET(21062, gl_dispatch_stub_653, gl_dispatch_stub_653, NULL, 653), + NAME_FUNC_OFFSET(21078, gl_dispatch_stub_654, gl_dispatch_stub_654, NULL, 654), + NAME_FUNC_OFFSET(21097, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), + NAME_FUNC_OFFSET(21115, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), + NAME_FUNC_OFFSET(21136, glPointParameterfEXT, glPointParameterfEXT, NULL, 661), + NAME_FUNC_OFFSET(21158, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), + NAME_FUNC_OFFSET(21177, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), + NAME_FUNC_OFFSET(21199, glPointParameterfvEXT, glPointParameterfvEXT, NULL, 662), + NAME_FUNC_OFFSET(21222, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, 665), + NAME_FUNC_OFFSET(21241, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, 666), + NAME_FUNC_OFFSET(21261, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, 667), + NAME_FUNC_OFFSET(21280, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, 668), + NAME_FUNC_OFFSET(21300, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, 669), + NAME_FUNC_OFFSET(21319, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, 670), + NAME_FUNC_OFFSET(21339, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, 671), + NAME_FUNC_OFFSET(21358, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, 672), + NAME_FUNC_OFFSET(21378, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, 673), + NAME_FUNC_OFFSET(21397, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, 674), + NAME_FUNC_OFFSET(21417, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, 675), + NAME_FUNC_OFFSET(21437, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, 676), + NAME_FUNC_OFFSET(21458, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, 677), + NAME_FUNC_OFFSET(21478, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, 678), + NAME_FUNC_OFFSET(21499, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, 679), + NAME_FUNC_OFFSET(21519, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, 680), + NAME_FUNC_OFFSET(21540, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, 681), + NAME_FUNC_OFFSET(21564, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, 682), + NAME_FUNC_OFFSET(21582, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, 683), + NAME_FUNC_OFFSET(21602, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, 684), + NAME_FUNC_OFFSET(21620, glFogCoorddEXT, glFogCoorddEXT, NULL, 685), + NAME_FUNC_OFFSET(21632, glFogCoorddvEXT, glFogCoorddvEXT, NULL, 686), + NAME_FUNC_OFFSET(21645, glFogCoordfEXT, glFogCoordfEXT, NULL, 687), + NAME_FUNC_OFFSET(21657, glFogCoordfvEXT, glFogCoordfvEXT, NULL, 688), + NAME_FUNC_OFFSET(21670, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, 690), + NAME_FUNC_OFFSET(21690, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, 690), + NAME_FUNC_OFFSET(21714, glWindowPos2dMESA, glWindowPos2dMESA, NULL, 707), + NAME_FUNC_OFFSET(21728, glWindowPos2dMESA, glWindowPos2dMESA, NULL, 707), + NAME_FUNC_OFFSET(21745, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, 708), + NAME_FUNC_OFFSET(21760, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, 708), + NAME_FUNC_OFFSET(21778, glWindowPos2fMESA, glWindowPos2fMESA, NULL, 709), + NAME_FUNC_OFFSET(21792, glWindowPos2fMESA, glWindowPos2fMESA, NULL, 709), + NAME_FUNC_OFFSET(21809, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, 710), + NAME_FUNC_OFFSET(21824, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, 710), + NAME_FUNC_OFFSET(21842, glWindowPos2iMESA, glWindowPos2iMESA, NULL, 711), + NAME_FUNC_OFFSET(21856, glWindowPos2iMESA, glWindowPos2iMESA, NULL, 711), + NAME_FUNC_OFFSET(21873, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, 712), + NAME_FUNC_OFFSET(21888, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, 712), + NAME_FUNC_OFFSET(21906, glWindowPos2sMESA, glWindowPos2sMESA, NULL, 713), + NAME_FUNC_OFFSET(21920, glWindowPos2sMESA, glWindowPos2sMESA, NULL, 713), + NAME_FUNC_OFFSET(21937, glWindowPos2svMESA, glWindowPos2svMESA, NULL, 714), + NAME_FUNC_OFFSET(21952, glWindowPos2svMESA, glWindowPos2svMESA, NULL, 714), + NAME_FUNC_OFFSET(21970, glWindowPos3dMESA, glWindowPos3dMESA, NULL, 715), + NAME_FUNC_OFFSET(21984, glWindowPos3dMESA, glWindowPos3dMESA, NULL, 715), + NAME_FUNC_OFFSET(22001, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, 716), + NAME_FUNC_OFFSET(22016, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, 716), + NAME_FUNC_OFFSET(22034, glWindowPos3fMESA, glWindowPos3fMESA, NULL, 717), + NAME_FUNC_OFFSET(22048, glWindowPos3fMESA, glWindowPos3fMESA, NULL, 717), + NAME_FUNC_OFFSET(22065, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, 718), + NAME_FUNC_OFFSET(22080, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, 718), + NAME_FUNC_OFFSET(22098, glWindowPos3iMESA, glWindowPos3iMESA, NULL, 719), + NAME_FUNC_OFFSET(22112, glWindowPos3iMESA, glWindowPos3iMESA, NULL, 719), + NAME_FUNC_OFFSET(22129, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, 720), + NAME_FUNC_OFFSET(22144, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, 720), + NAME_FUNC_OFFSET(22162, glWindowPos3sMESA, glWindowPos3sMESA, NULL, 721), + NAME_FUNC_OFFSET(22176, glWindowPos3sMESA, glWindowPos3sMESA, NULL, 721), + NAME_FUNC_OFFSET(22193, glWindowPos3svMESA, glWindowPos3svMESA, NULL, 722), + NAME_FUNC_OFFSET(22208, glWindowPos3svMESA, glWindowPos3svMESA, NULL, 722), + NAME_FUNC_OFFSET(22226, glBindProgramNV, glBindProgramNV, NULL, 741), + NAME_FUNC_OFFSET(22243, glDeleteProgramsNV, glDeleteProgramsNV, NULL, 742), + NAME_FUNC_OFFSET(22263, glGenProgramsNV, glGenProgramsNV, NULL, 744), + NAME_FUNC_OFFSET(22280, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, 750), + NAME_FUNC_OFFSET(22306, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, 750), + NAME_FUNC_OFFSET(22335, glIsProgramNV, glIsProgramNV, NULL, 754), + NAME_FUNC_OFFSET(22350, glPointParameteriNV, glPointParameteriNV, NULL, 818), + NAME_FUNC_OFFSET(22368, glPointParameterivNV, glPointParameterivNV, NULL, 819), + NAME_FUNC_OFFSET(22387, gl_dispatch_stub_822, gl_dispatch_stub_822, NULL, 822), + NAME_FUNC_OFFSET(22408, gl_dispatch_stub_824, gl_dispatch_stub_824, NULL, 824), + NAME_FUNC_OFFSET(22424, glPrimitiveRestartIndexNV, glPrimitiveRestartIndexNV, NULL, 831), + NAME_FUNC_OFFSET(22448, gl_dispatch_stub_834, gl_dispatch_stub_834, NULL, 834), + NAME_FUNC_OFFSET(22472, gl_dispatch_stub_834, gl_dispatch_stub_834, NULL, 834), + NAME_FUNC_OFFSET(22499, glBindFramebufferEXT, glBindFramebufferEXT, NULL, 835), + NAME_FUNC_OFFSET(22517, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, 836), + NAME_FUNC_OFFSET(22536, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, 837), + NAME_FUNC_OFFSET(22561, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, 838), + NAME_FUNC_OFFSET(22582, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, 839), + NAME_FUNC_OFFSET(22604, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, 840), + NAME_FUNC_OFFSET(22630, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, 841), + NAME_FUNC_OFFSET(22653, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, 842), + NAME_FUNC_OFFSET(22676, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, 843), + NAME_FUNC_OFFSET(22699, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, 844), + NAME_FUNC_OFFSET(22717, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, 845), + NAME_FUNC_OFFSET(22736, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, 846), + NAME_FUNC_OFFSET(22753, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, 847), + NAME_FUNC_OFFSET(22791, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, 848), + NAME_FUNC_OFFSET(22820, glIsFramebufferEXT, glIsFramebufferEXT, NULL, 849), + NAME_FUNC_OFFSET(22836, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, 850), + NAME_FUNC_OFFSET(22853, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, 851), + NAME_FUNC_OFFSET(22875, gl_dispatch_stub_852, gl_dispatch_stub_852, NULL, 852), + NAME_FUNC_OFFSET(22893, glBindFragDataLocationEXT, glBindFragDataLocationEXT, NULL, 855), + NAME_FUNC_OFFSET(22916, glGetFragDataLocationEXT, glGetFragDataLocationEXT, NULL, 856), + NAME_FUNC_OFFSET(22938, glGetUniformuivEXT, glGetUniformuivEXT, NULL, 857), + NAME_FUNC_OFFSET(22954, glGetVertexAttribIivEXT, glGetVertexAttribIivEXT, NULL, 858), + NAME_FUNC_OFFSET(22975, glGetVertexAttribIuivEXT, glGetVertexAttribIuivEXT, NULL, 859), + NAME_FUNC_OFFSET(22997, glUniform1uiEXT, glUniform1uiEXT, NULL, 860), + NAME_FUNC_OFFSET(23010, glUniform1uivEXT, glUniform1uivEXT, NULL, 861), + NAME_FUNC_OFFSET(23024, glUniform2uiEXT, glUniform2uiEXT, NULL, 862), + NAME_FUNC_OFFSET(23037, glUniform2uivEXT, glUniform2uivEXT, NULL, 863), + NAME_FUNC_OFFSET(23051, glUniform3uiEXT, glUniform3uiEXT, NULL, 864), + NAME_FUNC_OFFSET(23064, glUniform3uivEXT, glUniform3uivEXT, NULL, 865), + NAME_FUNC_OFFSET(23078, glUniform4uiEXT, glUniform4uiEXT, NULL, 866), + NAME_FUNC_OFFSET(23091, glUniform4uivEXT, glUniform4uivEXT, NULL, 867), + NAME_FUNC_OFFSET(23105, glVertexAttribI1iEXT, glVertexAttribI1iEXT, NULL, 868), + NAME_FUNC_OFFSET(23123, glVertexAttribI1ivEXT, glVertexAttribI1ivEXT, NULL, 869), + NAME_FUNC_OFFSET(23142, glVertexAttribI1uiEXT, glVertexAttribI1uiEXT, NULL, 870), + NAME_FUNC_OFFSET(23161, glVertexAttribI1uivEXT, glVertexAttribI1uivEXT, NULL, 871), + NAME_FUNC_OFFSET(23181, glVertexAttribI2iEXT, glVertexAttribI2iEXT, NULL, 872), + NAME_FUNC_OFFSET(23199, glVertexAttribI2ivEXT, glVertexAttribI2ivEXT, NULL, 873), + NAME_FUNC_OFFSET(23218, glVertexAttribI2uiEXT, glVertexAttribI2uiEXT, NULL, 874), + NAME_FUNC_OFFSET(23237, glVertexAttribI2uivEXT, glVertexAttribI2uivEXT, NULL, 875), + NAME_FUNC_OFFSET(23257, glVertexAttribI3iEXT, glVertexAttribI3iEXT, NULL, 876), + NAME_FUNC_OFFSET(23275, glVertexAttribI3ivEXT, glVertexAttribI3ivEXT, NULL, 877), + NAME_FUNC_OFFSET(23294, glVertexAttribI3uiEXT, glVertexAttribI3uiEXT, NULL, 878), + NAME_FUNC_OFFSET(23313, glVertexAttribI3uivEXT, glVertexAttribI3uivEXT, NULL, 879), + NAME_FUNC_OFFSET(23333, glVertexAttribI4bvEXT, glVertexAttribI4bvEXT, NULL, 880), + NAME_FUNC_OFFSET(23352, glVertexAttribI4iEXT, glVertexAttribI4iEXT, NULL, 881), + NAME_FUNC_OFFSET(23370, glVertexAttribI4ivEXT, glVertexAttribI4ivEXT, NULL, 882), + NAME_FUNC_OFFSET(23389, glVertexAttribI4svEXT, glVertexAttribI4svEXT, NULL, 883), + NAME_FUNC_OFFSET(23408, glVertexAttribI4ubvEXT, glVertexAttribI4ubvEXT, NULL, 884), + NAME_FUNC_OFFSET(23428, glVertexAttribI4uiEXT, glVertexAttribI4uiEXT, NULL, 885), + NAME_FUNC_OFFSET(23447, glVertexAttribI4uivEXT, glVertexAttribI4uivEXT, NULL, 886), + NAME_FUNC_OFFSET(23467, glVertexAttribI4usvEXT, glVertexAttribI4usvEXT, NULL, 887), + NAME_FUNC_OFFSET(23487, glVertexAttribIPointerEXT, glVertexAttribIPointerEXT, NULL, 888), + NAME_FUNC_OFFSET(23510, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, 889), + NAME_FUNC_OFFSET(23536, glColorMaskIndexedEXT, glColorMaskIndexedEXT, NULL, 890), + NAME_FUNC_OFFSET(23549, glDisableIndexedEXT, glDisableIndexedEXT, NULL, 891), + NAME_FUNC_OFFSET(23560, glEnableIndexedEXT, glEnableIndexedEXT, NULL, 892), + NAME_FUNC_OFFSET(23570, glGetBooleanIndexedvEXT, glGetBooleanIndexedvEXT, NULL, 893), + NAME_FUNC_OFFSET(23586, glGetIntegerIndexedvEXT, glGetIntegerIndexedvEXT, NULL, 894), + NAME_FUNC_OFFSET(23602, glIsEnabledIndexedEXT, glIsEnabledIndexedEXT, NULL, 895), + NAME_FUNC_OFFSET(23615, glGetTexParameterIivEXT, glGetTexParameterIivEXT, NULL, 898), + NAME_FUNC_OFFSET(23636, glGetTexParameterIuivEXT, glGetTexParameterIuivEXT, NULL, 899), + NAME_FUNC_OFFSET(23658, glTexParameterIivEXT, glTexParameterIivEXT, NULL, 900), + NAME_FUNC_OFFSET(23676, glTexParameterIuivEXT, glTexParameterIuivEXT, NULL, 901), + NAME_FUNC_OFFSET(23695, glBeginConditionalRenderNV, glBeginConditionalRenderNV, NULL, 902), + NAME_FUNC_OFFSET(23720, glEndConditionalRenderNV, glEndConditionalRenderNV, NULL, 903), + NAME_FUNC_OFFSET(23743, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, 904), + NAME_FUNC_OFFSET(23768, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, 905), + NAME_FUNC_OFFSET(23785, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, 907), + NAME_FUNC_OFFSET(23803, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, 908), + NAME_FUNC_OFFSET(23826, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, 909), + NAME_FUNC_OFFSET(23856, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, 910), + NAME_FUNC_OFFSET(23884, glProvokingVertexEXT, glProvokingVertexEXT, NULL, 911), NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0) }; diff --git a/mesalib/src/mesa/main/enable.c b/mesalib/src/mesa/main/enable.c index 8df3ac1f6..aac8b9c5e 100644 --- a/mesalib/src/mesa/main/enable.c +++ b/mesalib/src/mesa/main/enable.c @@ -1,1425 +1,1428 @@ -/**
- * \file enable.c
- * Enable/disable/query GL capabilities.
- */
-
-/*
- * Mesa 3-D graphics library
- * Version: 7.0.3
- *
- * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#include "glheader.h"
-#include "clip.h"
-#include "context.h"
-#include "enable.h"
-#include "light.h"
-#include "simple_list.h"
-#include "mfeatures.h"
-#include "mtypes.h"
-#include "enums.h"
-#include "api_arrayelt.h"
-#include "texstate.h"
-
-
-
-#define CHECK_EXTENSION(EXTNAME, CAP) \
- if (!ctx->Extensions.EXTNAME) { \
- goto invalid_enum_error; \
- }
-
-
-/**
- * Helper to enable/disable client-side state.
- */
-static void
-client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
-{
- struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
- GLuint flag;
- GLboolean *var;
-
- switch (cap) {
- case GL_VERTEX_ARRAY:
- var = &arrayObj->Vertex.Enabled;
- flag = _NEW_ARRAY_VERTEX;
- break;
- case GL_NORMAL_ARRAY:
- var = &arrayObj->Normal.Enabled;
- flag = _NEW_ARRAY_NORMAL;
- break;
- case GL_COLOR_ARRAY:
- var = &arrayObj->Color.Enabled;
- flag = _NEW_ARRAY_COLOR0;
- break;
- case GL_INDEX_ARRAY:
- var = &arrayObj->Index.Enabled;
- flag = _NEW_ARRAY_INDEX;
- break;
- case GL_TEXTURE_COORD_ARRAY:
- var = &arrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled;
- flag = _NEW_ARRAY_TEXCOORD(ctx->Array.ActiveTexture);
- break;
- case GL_EDGE_FLAG_ARRAY:
- var = &arrayObj->EdgeFlag.Enabled;
- flag = _NEW_ARRAY_EDGEFLAG;
- break;
- case GL_FOG_COORDINATE_ARRAY_EXT:
- var = &arrayObj->FogCoord.Enabled;
- flag = _NEW_ARRAY_FOGCOORD;
- break;
- case GL_SECONDARY_COLOR_ARRAY_EXT:
- var = &arrayObj->SecondaryColor.Enabled;
- flag = _NEW_ARRAY_COLOR1;
- break;
-
-#if FEATURE_point_size_array
- case GL_POINT_SIZE_ARRAY_OES:
- var = &arrayObj->PointSize.Enabled;
- flag = _NEW_ARRAY_POINT_SIZE;
- break;
-#endif
-
-#if FEATURE_NV_vertex_program
- case GL_VERTEX_ATTRIB_ARRAY0_NV:
- case GL_VERTEX_ATTRIB_ARRAY1_NV:
- case GL_VERTEX_ATTRIB_ARRAY2_NV:
- case GL_VERTEX_ATTRIB_ARRAY3_NV:
- case GL_VERTEX_ATTRIB_ARRAY4_NV:
- case GL_VERTEX_ATTRIB_ARRAY5_NV:
- case GL_VERTEX_ATTRIB_ARRAY6_NV:
- case GL_VERTEX_ATTRIB_ARRAY7_NV:
- case GL_VERTEX_ATTRIB_ARRAY8_NV:
- case GL_VERTEX_ATTRIB_ARRAY9_NV:
- case GL_VERTEX_ATTRIB_ARRAY10_NV:
- case GL_VERTEX_ATTRIB_ARRAY11_NV:
- case GL_VERTEX_ATTRIB_ARRAY12_NV:
- case GL_VERTEX_ATTRIB_ARRAY13_NV:
- case GL_VERTEX_ATTRIB_ARRAY14_NV:
- case GL_VERTEX_ATTRIB_ARRAY15_NV:
- CHECK_EXTENSION(NV_vertex_program, cap);
- {
- GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV;
- ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib));
- var = &arrayObj->VertexAttrib[n].Enabled;
- flag = _NEW_ARRAY_ATTRIB(n);
- }
- break;
-#endif /* FEATURE_NV_vertex_program */
-
- /* GL_NV_primitive_restart */
- case GL_PRIMITIVE_RESTART_NV:
- if (!ctx->Extensions.NV_primitive_restart) {
- goto invalid_enum_error;
- }
- var = &ctx->Array.PrimitiveRestart;
- flag = 0;
- break;
-
- default:
- goto invalid_enum_error;
- }
-
- if (*var == state)
- return;
-
- FLUSH_VERTICES(ctx, _NEW_ARRAY);
- ctx->Array.NewState |= flag;
-
- _ae_invalidate_state(ctx, _NEW_ARRAY);
-
- *var = state;
-
- if (state)
- ctx->Array.ArrayObj->_Enabled |= flag;
- else
- ctx->Array.ArrayObj->_Enabled &= ~flag;
-
- if (ctx->Driver.Enable) {
- ctx->Driver.Enable( ctx, cap, state );
- }
-
- return;
-
-invalid_enum_error:
- _mesa_error(ctx, GL_INVALID_ENUM, "gl%sClientState(0x%x)",
- state ? "Enable" : "Disable", cap);
-}
-
-
-/**
- * Enable GL capability.
- * \param cap state to enable/disable.
- *
- * Get's the current context, assures that we're outside glBegin()/glEnd() and
- * calls client_state().
- */
-void GLAPIENTRY
-_mesa_EnableClientState( GLenum cap )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
- client_state( ctx, cap, GL_TRUE );
-}
-
-
-/**
- * Disable GL capability.
- * \param cap state to enable/disable.
- *
- * Get's the current context, assures that we're outside glBegin()/glEnd() and
- * calls client_state().
- */
-void GLAPIENTRY
-_mesa_DisableClientState( GLenum cap )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
- client_state( ctx, cap, GL_FALSE );
-}
-
-
-#undef CHECK_EXTENSION
-#define CHECK_EXTENSION(EXTNAME, CAP) \
- if (!ctx->Extensions.EXTNAME) { \
- goto invalid_enum_error; \
- }
-
-#define CHECK_EXTENSION2(EXT1, EXT2, CAP) \
- if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
- goto invalid_enum_error; \
- }
-
-
-
-/**
- * Return pointer to current texture unit for setting/getting coordinate
- * state.
- * Note that we'll set GL_INVALID_OPERATION and return NULL if the active
- * texture unit is higher than the number of supported coordinate units.
- */
-static struct gl_texture_unit *
-get_texcoord_unit(struct gl_context *ctx)
-{
- if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)");
- return NULL;
- }
- else {
- return &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
- }
-}
-
-
-/**
- * Helper function to enable or disable a texture target.
- * \param bit one of the TEXTURE_x_BIT values
- * \return GL_TRUE if state is changing or GL_FALSE if no change
- */
-static GLboolean
-enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit)
-{
- struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
- const GLbitfield newenabled = state
- ? (texUnit->Enabled | texBit) : (texUnit->Enabled & ~texBit);
-
- if (texUnit->Enabled == newenabled)
- return GL_FALSE;
-
- FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- texUnit->Enabled = newenabled;
- return GL_TRUE;
-}
-
-
-/**
- * Helper function to enable or disable state.
- *
- * \param ctx GL context.
- * \param cap the state to enable/disable
- * \param state whether to enable or disable the specified capability.
- *
- * Updates the current context and flushes the vertices as needed. For
- * capabilities associated with extensions it verifies that those extensions
- * are effectivly present before updating. Notifies the driver via
- * dd_function_table::Enable.
- */
-void
-_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
-{
- if (MESA_VERBOSE & VERBOSE_API)
- _mesa_debug(ctx, "%s %s (newstate is %x)\n",
- state ? "glEnable" : "glDisable",
- _mesa_lookup_enum_by_nr(cap),
- ctx->NewState);
-
- switch (cap) {
- case GL_ALPHA_TEST:
- if (ctx->Color.AlphaEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- ctx->Color.AlphaEnabled = state;
- break;
- case GL_AUTO_NORMAL:
- if (ctx->Eval.AutoNormal == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.AutoNormal = state;
- break;
- case GL_BLEND:
- {
- GLbitfield newEnabled =
- state * ((1 << ctx->Const.MaxDrawBuffers) - 1);
- if (newEnabled != ctx->Color.BlendEnabled) {
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- ctx->Color.BlendEnabled = newEnabled;
- }
- }
- break;
-#if FEATURE_userclip
- case GL_CLIP_PLANE0:
- case GL_CLIP_PLANE1:
- case GL_CLIP_PLANE2:
- case GL_CLIP_PLANE3:
- case GL_CLIP_PLANE4:
- case GL_CLIP_PLANE5:
- {
- const GLuint p = cap - GL_CLIP_PLANE0;
-
- if ((ctx->Transform.ClipPlanesEnabled & (1 << p))
- == ((GLuint) state << p))
- return;
-
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
-
- if (state) {
- ctx->Transform.ClipPlanesEnabled |= (1 << p);
- _mesa_update_clip_plane(ctx, p);
- }
- else {
- ctx->Transform.ClipPlanesEnabled &= ~(1 << p);
- }
- }
- break;
-#endif
- case GL_COLOR_MATERIAL:
- if (ctx->Light.ColorMaterialEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_LIGHT);
- FLUSH_CURRENT(ctx, 0);
- ctx->Light.ColorMaterialEnabled = state;
- if (state) {
- _mesa_update_color_material( ctx,
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0] );
- }
- break;
- case GL_CULL_FACE:
- if (ctx->Polygon.CullFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.CullFlag = state;
- break;
- case GL_DEPTH_TEST:
- if (ctx->Depth.Test == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_DEPTH);
- ctx->Depth.Test = state;
- break;
- case GL_DITHER:
- if (ctx->Color.DitherFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- ctx->Color.DitherFlag = state;
- break;
- case GL_FOG:
- if (ctx->Fog.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_FOG);
- ctx->Fog.Enabled = state;
- break;
- case GL_LIGHT0:
- case GL_LIGHT1:
- case GL_LIGHT2:
- case GL_LIGHT3:
- case GL_LIGHT4:
- case GL_LIGHT5:
- case GL_LIGHT6:
- case GL_LIGHT7:
- if (ctx->Light.Light[cap-GL_LIGHT0].Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_LIGHT);
- ctx->Light.Light[cap-GL_LIGHT0].Enabled = state;
- if (state) {
- insert_at_tail(&ctx->Light.EnabledList,
- &ctx->Light.Light[cap-GL_LIGHT0]);
- }
- else {
- remove_from_list(&ctx->Light.Light[cap-GL_LIGHT0]);
- }
- break;
- case GL_LIGHTING:
- if (ctx->Light.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_LIGHT);
- ctx->Light.Enabled = state;
- if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
- ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE;
- else
- ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE;
- break;
- case GL_LINE_SMOOTH:
- if (ctx->Line.SmoothFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_LINE);
- ctx->Line.SmoothFlag = state;
- ctx->_TriangleCaps ^= DD_LINE_SMOOTH;
- break;
- case GL_LINE_STIPPLE:
- if (ctx->Line.StippleFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_LINE);
- ctx->Line.StippleFlag = state;
- ctx->_TriangleCaps ^= DD_LINE_STIPPLE;
- break;
- case GL_INDEX_LOGIC_OP:
- if (ctx->Color.IndexLogicOpEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- ctx->Color.IndexLogicOpEnabled = state;
- break;
- case GL_COLOR_LOGIC_OP:
- if (ctx->Color.ColorLogicOpEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- ctx->Color.ColorLogicOpEnabled = state;
- break;
- case GL_MAP1_COLOR_4:
- if (ctx->Eval.Map1Color4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Color4 = state;
- break;
- case GL_MAP1_INDEX:
- if (ctx->Eval.Map1Index == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Index = state;
- break;
- case GL_MAP1_NORMAL:
- if (ctx->Eval.Map1Normal == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Normal = state;
- break;
- case GL_MAP1_TEXTURE_COORD_1:
- if (ctx->Eval.Map1TextureCoord1 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1TextureCoord1 = state;
- break;
- case GL_MAP1_TEXTURE_COORD_2:
- if (ctx->Eval.Map1TextureCoord2 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1TextureCoord2 = state;
- break;
- case GL_MAP1_TEXTURE_COORD_3:
- if (ctx->Eval.Map1TextureCoord3 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1TextureCoord3 = state;
- break;
- case GL_MAP1_TEXTURE_COORD_4:
- if (ctx->Eval.Map1TextureCoord4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1TextureCoord4 = state;
- break;
- case GL_MAP1_VERTEX_3:
- if (ctx->Eval.Map1Vertex3 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Vertex3 = state;
- break;
- case GL_MAP1_VERTEX_4:
- if (ctx->Eval.Map1Vertex4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Vertex4 = state;
- break;
- case GL_MAP2_COLOR_4:
- if (ctx->Eval.Map2Color4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Color4 = state;
- break;
- case GL_MAP2_INDEX:
- if (ctx->Eval.Map2Index == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Index = state;
- break;
- case GL_MAP2_NORMAL:
- if (ctx->Eval.Map2Normal == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Normal = state;
- break;
- case GL_MAP2_TEXTURE_COORD_1:
- if (ctx->Eval.Map2TextureCoord1 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2TextureCoord1 = state;
- break;
- case GL_MAP2_TEXTURE_COORD_2:
- if (ctx->Eval.Map2TextureCoord2 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2TextureCoord2 = state;
- break;
- case GL_MAP2_TEXTURE_COORD_3:
- if (ctx->Eval.Map2TextureCoord3 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2TextureCoord3 = state;
- break;
- case GL_MAP2_TEXTURE_COORD_4:
- if (ctx->Eval.Map2TextureCoord4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2TextureCoord4 = state;
- break;
- case GL_MAP2_VERTEX_3:
- if (ctx->Eval.Map2Vertex3 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Vertex3 = state;
- break;
- case GL_MAP2_VERTEX_4:
- if (ctx->Eval.Map2Vertex4 == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Vertex4 = state;
- break;
- case GL_NORMALIZE:
- if (ctx->Transform.Normalize == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- ctx->Transform.Normalize = state;
- break;
- case GL_POINT_SMOOTH:
- if (ctx->Point.SmoothFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POINT);
- ctx->Point.SmoothFlag = state;
- ctx->_TriangleCaps ^= DD_POINT_SMOOTH;
- break;
- case GL_POLYGON_SMOOTH:
- if (ctx->Polygon.SmoothFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.SmoothFlag = state;
- ctx->_TriangleCaps ^= DD_TRI_SMOOTH;
- break;
- case GL_POLYGON_STIPPLE:
- if (ctx->Polygon.StippleFlag == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.StippleFlag = state;
- ctx->_TriangleCaps ^= DD_TRI_STIPPLE;
- break;
- case GL_POLYGON_OFFSET_POINT:
- if (ctx->Polygon.OffsetPoint == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.OffsetPoint = state;
- break;
- case GL_POLYGON_OFFSET_LINE:
- if (ctx->Polygon.OffsetLine == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.OffsetLine = state;
- break;
- case GL_POLYGON_OFFSET_FILL:
- /*case GL_POLYGON_OFFSET_EXT:*/
- if (ctx->Polygon.OffsetFill == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POLYGON);
- ctx->Polygon.OffsetFill = state;
- break;
- case GL_RESCALE_NORMAL_EXT:
- if (ctx->Transform.RescaleNormals == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- ctx->Transform.RescaleNormals = state;
- break;
- case GL_SCISSOR_TEST:
- if (ctx->Scissor.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_SCISSOR);
- ctx->Scissor.Enabled = state;
- break;
- case GL_SHARED_TEXTURE_PALETTE_EXT:
- if (ctx->Texture.SharedPalette == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- ctx->Texture.SharedPalette = state;
- break;
- case GL_STENCIL_TEST:
- if (ctx->Stencil.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_STENCIL);
- ctx->Stencil.Enabled = state;
- break;
- case GL_TEXTURE_1D:
- if (!enable_texture(ctx, state, TEXTURE_1D_BIT)) {
- return;
- }
- break;
- case GL_TEXTURE_2D:
- if (!enable_texture(ctx, state, TEXTURE_2D_BIT)) {
- return;
- }
- break;
- case GL_TEXTURE_3D:
- if (!enable_texture(ctx, state, TEXTURE_3D_BIT)) {
- return;
- }
- break;
- case GL_TEXTURE_GEN_S:
- case GL_TEXTURE_GEN_T:
- case GL_TEXTURE_GEN_R:
- case GL_TEXTURE_GEN_Q:
- {
- struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
- if (texUnit) {
- GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S);
- GLbitfield newenabled = texUnit->TexGenEnabled & ~coordBit;
- if (state)
- newenabled |= coordBit;
- if (texUnit->TexGenEnabled == newenabled)
- return;
- FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- texUnit->TexGenEnabled = newenabled;
- }
- }
- break;
-
-#if FEATURE_ES1
- case GL_TEXTURE_GEN_STR_OES:
- /* disable S, T, and R at the same time */
- {
- struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
- if (texUnit) {
- GLuint newenabled =
- texUnit->TexGenEnabled & ~STR_BITS;
- if (state)
- newenabled |= STR_BITS;
- if (texUnit->TexGenEnabled == newenabled)
- return;
- FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- texUnit->TexGenEnabled = newenabled;
- }
- }
- break;
-#endif
-
- /*
- * CLIENT STATE!!!
- */
- case GL_VERTEX_ARRAY:
- case GL_NORMAL_ARRAY:
- case GL_COLOR_ARRAY:
- case GL_INDEX_ARRAY:
- case GL_TEXTURE_COORD_ARRAY:
- case GL_EDGE_FLAG_ARRAY:
- case GL_FOG_COORDINATE_ARRAY_EXT:
- case GL_SECONDARY_COLOR_ARRAY_EXT:
- case GL_POINT_SIZE_ARRAY_OES:
- client_state( ctx, cap, state );
- return;
-
- /* GL_ARB_texture_cube_map */
- case GL_TEXTURE_CUBE_MAP_ARB:
- CHECK_EXTENSION(ARB_texture_cube_map, cap);
- if (!enable_texture(ctx, state, TEXTURE_CUBE_BIT)) {
- return;
- }
- break;
-
- /* GL_EXT_secondary_color */
- case GL_COLOR_SUM_EXT:
- CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program, cap);
- if (ctx->Fog.ColorSumEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_FOG);
- ctx->Fog.ColorSumEnabled = state;
- break;
-
- /* GL_ARB_multisample */
- case GL_MULTISAMPLE_ARB:
- if (ctx->Multisample.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);
- ctx->Multisample.Enabled = state;
- break;
- case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
- if (ctx->Multisample.SampleAlphaToCoverage == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);
- ctx->Multisample.SampleAlphaToCoverage = state;
- break;
- case GL_SAMPLE_ALPHA_TO_ONE_ARB:
- if (ctx->Multisample.SampleAlphaToOne == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);
- ctx->Multisample.SampleAlphaToOne = state;
- break;
- case GL_SAMPLE_COVERAGE_ARB:
- if (ctx->Multisample.SampleCoverage == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);
- ctx->Multisample.SampleCoverage = state;
- break;
- case GL_SAMPLE_COVERAGE_INVERT_ARB:
- if (ctx->Multisample.SampleCoverageInvert == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);
- ctx->Multisample.SampleCoverageInvert = state;
- break;
-
- /* GL_IBM_rasterpos_clip */
- case GL_RASTER_POSITION_UNCLIPPED_IBM:
- CHECK_EXTENSION(IBM_rasterpos_clip, cap);
- if (ctx->Transform.RasterPositionUnclipped == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- ctx->Transform.RasterPositionUnclipped = state;
- break;
-
- /* GL_NV_point_sprite */
- case GL_POINT_SPRITE_NV:
- CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite, cap);
- if (ctx->Point.PointSprite == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_POINT);
- ctx->Point.PointSprite = state;
- break;
-
-#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program
- case GL_VERTEX_PROGRAM_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
- if (ctx->VertexProgram.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->VertexProgram.Enabled = state;
- break;
- case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
- if (ctx->VertexProgram.PointSizeEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->VertexProgram.PointSizeEnabled = state;
- break;
- case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
- if (ctx->VertexProgram.TwoSideEnabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->VertexProgram.TwoSideEnabled = state;
- break;
-#endif
-#if FEATURE_NV_vertex_program
- case GL_MAP1_VERTEX_ATTRIB0_4_NV:
- case GL_MAP1_VERTEX_ATTRIB1_4_NV:
- case GL_MAP1_VERTEX_ATTRIB2_4_NV:
- case GL_MAP1_VERTEX_ATTRIB3_4_NV:
- case GL_MAP1_VERTEX_ATTRIB4_4_NV:
- case GL_MAP1_VERTEX_ATTRIB5_4_NV:
- case GL_MAP1_VERTEX_ATTRIB6_4_NV:
- case GL_MAP1_VERTEX_ATTRIB7_4_NV:
- case GL_MAP1_VERTEX_ATTRIB8_4_NV:
- case GL_MAP1_VERTEX_ATTRIB9_4_NV:
- case GL_MAP1_VERTEX_ATTRIB10_4_NV:
- case GL_MAP1_VERTEX_ATTRIB11_4_NV:
- case GL_MAP1_VERTEX_ATTRIB12_4_NV:
- case GL_MAP1_VERTEX_ATTRIB13_4_NV:
- case GL_MAP1_VERTEX_ATTRIB14_4_NV:
- case GL_MAP1_VERTEX_ATTRIB15_4_NV:
- CHECK_EXTENSION(NV_vertex_program, cap);
- {
- const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV);
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map1Attrib[map] = state;
- }
- break;
- case GL_MAP2_VERTEX_ATTRIB0_4_NV:
- case GL_MAP2_VERTEX_ATTRIB1_4_NV:
- case GL_MAP2_VERTEX_ATTRIB2_4_NV:
- case GL_MAP2_VERTEX_ATTRIB3_4_NV:
- case GL_MAP2_VERTEX_ATTRIB4_4_NV:
- case GL_MAP2_VERTEX_ATTRIB5_4_NV:
- case GL_MAP2_VERTEX_ATTRIB6_4_NV:
- case GL_MAP2_VERTEX_ATTRIB7_4_NV:
- case GL_MAP2_VERTEX_ATTRIB8_4_NV:
- case GL_MAP2_VERTEX_ATTRIB9_4_NV:
- case GL_MAP2_VERTEX_ATTRIB10_4_NV:
- case GL_MAP2_VERTEX_ATTRIB11_4_NV:
- case GL_MAP2_VERTEX_ATTRIB12_4_NV:
- case GL_MAP2_VERTEX_ATTRIB13_4_NV:
- case GL_MAP2_VERTEX_ATTRIB14_4_NV:
- case GL_MAP2_VERTEX_ATTRIB15_4_NV:
- CHECK_EXTENSION(NV_vertex_program, cap);
- {
- const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV);
- FLUSH_VERTICES(ctx, _NEW_EVAL);
- ctx->Eval.Map2Attrib[map] = state;
- }
- break;
-#endif /* FEATURE_NV_vertex_program */
-
-#if FEATURE_NV_fragment_program
- case GL_FRAGMENT_PROGRAM_NV:
- CHECK_EXTENSION(NV_fragment_program, cap);
- if (ctx->FragmentProgram.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->FragmentProgram.Enabled = state;
- break;
-#endif /* FEATURE_NV_fragment_program */
-
- /* GL_NV_texture_rectangle */
- case GL_TEXTURE_RECTANGLE_NV:
- CHECK_EXTENSION(NV_texture_rectangle, cap);
- if (!enable_texture(ctx, state, TEXTURE_RECT_BIT)) {
- return;
- }
- break;
-
- /* GL_EXT_stencil_two_side */
- case GL_STENCIL_TEST_TWO_SIDE_EXT:
- CHECK_EXTENSION(EXT_stencil_two_side, cap);
- if (ctx->Stencil.TestTwoSide == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_STENCIL);
- ctx->Stencil.TestTwoSide = state;
- if (state) {
- ctx->Stencil._BackFace = 2;
- ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL;
- } else {
- ctx->Stencil._BackFace = 1;
- ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL;
- }
- break;
-
-#if FEATURE_ARB_fragment_program
- case GL_FRAGMENT_PROGRAM_ARB:
- CHECK_EXTENSION(ARB_fragment_program, cap);
- if (ctx->FragmentProgram.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->FragmentProgram.Enabled = state;
- break;
-#endif /* FEATURE_ARB_fragment_program */
-
- /* GL_EXT_depth_bounds_test */
- case GL_DEPTH_BOUNDS_TEST_EXT:
- CHECK_EXTENSION(EXT_depth_bounds_test, cap);
- if (ctx->Depth.BoundsTest == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_DEPTH);
- ctx->Depth.BoundsTest = state;
- break;
-
- case GL_DEPTH_CLAMP:
- if (ctx->Transform.DepthClamp == state)
- return;
- CHECK_EXTENSION(ARB_depth_clamp, cap);
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- ctx->Transform.DepthClamp = state;
- break;
-
-#if FEATURE_ATI_fragment_shader
- case GL_FRAGMENT_SHADER_ATI:
- CHECK_EXTENSION(ATI_fragment_shader, cap);
- if (ctx->ATIFragmentShader.Enabled == state)
- return;
- FLUSH_VERTICES(ctx, _NEW_PROGRAM);
- ctx->ATIFragmentShader.Enabled = state;
- break;
-#endif
-
- /* GL_MESA_texture_array */
- case GL_TEXTURE_1D_ARRAY_EXT:
- CHECK_EXTENSION(MESA_texture_array, cap);
- if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) {
- return;
- }
- break;
-
- case GL_TEXTURE_2D_ARRAY_EXT:
- CHECK_EXTENSION(MESA_texture_array, cap);
- if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) {
- return;
- }
- break;
-
- case GL_TEXTURE_CUBE_MAP_SEAMLESS:
- CHECK_EXTENSION(ARB_seamless_cube_map, cap);
- ctx->Texture.CubeMapSeamless = state;
- break;
-
-#if FEATURE_EXT_transform_feedback
- case GL_RASTERIZER_DISCARD:
- CHECK_EXTENSION(EXT_transform_feedback, cap);
- if (ctx->TransformFeedback.RasterDiscard != state) {
- ctx->TransformFeedback.RasterDiscard = state;
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- }
- break;
-#endif
-
- /* GL 3.1 primitive restart. Note: this enum is different from
- * GL_PRIMITIVE_RESTART_NV (which is client state).
- */
- case GL_PRIMITIVE_RESTART:
- if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
- goto invalid_enum_error;
- }
- if (ctx->Array.PrimitiveRestart != state) {
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
- ctx->Array.PrimitiveRestart = state;
- }
- break;
-
- /* GL3.0 - GL_framebuffer_sRGB */
- case GL_FRAMEBUFFER_SRGB_EXT:
- CHECK_EXTENSION(EXT_framebuffer_sRGB, cap);
- FLUSH_VERTICES(ctx, _NEW_BUFFERS);
- ctx->Color.sRGBEnabled = state;
- break;
-
- default:
- goto invalid_enum_error;
- }
-
- if (ctx->Driver.Enable) {
- ctx->Driver.Enable( ctx, cap, state );
- }
-
- return;
-
-invalid_enum_error:
- _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(0x%x)",
- state ? "Enable" : "Disable", cap);
-}
-
-
-/**
- * Enable GL capability. Called by glEnable()
- * \param cap state to enable.
- */
-void GLAPIENTRY
-_mesa_Enable( GLenum cap )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
-
- _mesa_set_enable( ctx, cap, GL_TRUE );
-}
-
-
-/**
- * Disable GL capability. Called by glDisable()
- * \param cap state to disable.
- */
-void GLAPIENTRY
-_mesa_Disable( GLenum cap )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
-
- _mesa_set_enable( ctx, cap, GL_FALSE );
-}
-
-
-
-/**
- * Enable/disable an indexed state var.
- */
-void
-_mesa_set_enablei(struct gl_context *ctx, GLenum cap,
- GLuint index, GLboolean state)
-{
- ASSERT(state == 0 || state == 1);
- switch (cap) {
- case GL_BLEND:
- if (!ctx->Extensions.EXT_draw_buffers2) {
- goto invalid_enum_error;
- }
- if (index >= ctx->Const.MaxDrawBuffers) {
- _mesa_error(ctx, GL_INVALID_VALUE, "%s(index=%u)",
- state ? "glEnableIndexed" : "glDisableIndexed", index);
- return;
- }
- if (((ctx->Color.BlendEnabled >> index) & 1) != state) {
- FLUSH_VERTICES(ctx, _NEW_COLOR);
- if (state)
- ctx->Color.BlendEnabled |= (1 << index);
- else
- ctx->Color.BlendEnabled &= ~(1 << index);
- }
- break;
- default:
- goto invalid_enum_error;
- }
- return;
-
-invalid_enum_error:
- _mesa_error(ctx, GL_INVALID_ENUM, "%s(cap=%s)",
- state ? "glEnablei" : "glDisablei",
- _mesa_lookup_enum_by_nr(cap));
-}
-
-
-void GLAPIENTRY
-_mesa_DisableIndexed( GLenum cap, GLuint index )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
- _mesa_set_enablei(ctx, cap, index, GL_FALSE);
-}
-
-
-void GLAPIENTRY
-_mesa_EnableIndexed( GLenum cap, GLuint index )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
- _mesa_set_enablei(ctx, cap, index, GL_TRUE);
-}
-
-
-GLboolean GLAPIENTRY
-_mesa_IsEnabledIndexed( GLenum cap, GLuint index )
-{
- GET_CURRENT_CONTEXT(ctx);
- switch (cap) {
- case GL_BLEND:
- if (index >= ctx->Const.MaxDrawBuffers) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glIsEnabledIndexed(index=%u)",
- index);
- return GL_FALSE;
- }
- return (ctx->Color.BlendEnabled >> index) & 1;
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabledIndexed(cap=%s)",
- _mesa_lookup_enum_by_nr(cap));
- return GL_FALSE;
- }
-}
-
-
-
-
-#undef CHECK_EXTENSION
-#define CHECK_EXTENSION(EXTNAME) \
- if (!ctx->Extensions.EXTNAME) { \
- goto invalid_enum_error; \
- }
-
-#undef CHECK_EXTENSION2
-#define CHECK_EXTENSION2(EXT1, EXT2) \
- if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \
- goto invalid_enum_error; \
- }
-
-
-/**
- * Helper function to determine whether a texture target is enabled.
- */
-static GLboolean
-is_texture_enabled(struct gl_context *ctx, GLbitfield bit)
-{
- const struct gl_texture_unit *const texUnit =
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
- return (texUnit->Enabled & bit) ? GL_TRUE : GL_FALSE;
-}
-
-
-/**
- * Return simple enable/disable state.
- *
- * \param cap state variable to query.
- *
- * Returns the state of the specified capability from the current GL context.
- * For the capabilities associated with extensions verifies that those
- * extensions are effectively present before reporting.
- */
-GLboolean GLAPIENTRY
-_mesa_IsEnabled( GLenum cap )
-{
- GET_CURRENT_CONTEXT(ctx);
- switch (cap) {
- case GL_ALPHA_TEST:
- return ctx->Color.AlphaEnabled;
- case GL_AUTO_NORMAL:
- return ctx->Eval.AutoNormal;
- case GL_BLEND:
- return ctx->Color.BlendEnabled & 1; /* return state for buffer[0] */
- case GL_CLIP_PLANE0:
- case GL_CLIP_PLANE1:
- case GL_CLIP_PLANE2:
- case GL_CLIP_PLANE3:
- case GL_CLIP_PLANE4:
- case GL_CLIP_PLANE5:
- return (ctx->Transform.ClipPlanesEnabled >> (cap - GL_CLIP_PLANE0)) & 1;
- case GL_COLOR_MATERIAL:
- return ctx->Light.ColorMaterialEnabled;
- case GL_CULL_FACE:
- return ctx->Polygon.CullFlag;
- case GL_DEPTH_TEST:
- return ctx->Depth.Test;
- case GL_DITHER:
- return ctx->Color.DitherFlag;
- case GL_FOG:
- return ctx->Fog.Enabled;
- case GL_LIGHTING:
- return ctx->Light.Enabled;
- case GL_LIGHT0:
- case GL_LIGHT1:
- case GL_LIGHT2:
- case GL_LIGHT3:
- case GL_LIGHT4:
- case GL_LIGHT5:
- case GL_LIGHT6:
- case GL_LIGHT7:
- return ctx->Light.Light[cap-GL_LIGHT0].Enabled;
- case GL_LINE_SMOOTH:
- return ctx->Line.SmoothFlag;
- case GL_LINE_STIPPLE:
- return ctx->Line.StippleFlag;
- case GL_INDEX_LOGIC_OP:
- return ctx->Color.IndexLogicOpEnabled;
- case GL_COLOR_LOGIC_OP:
- return ctx->Color.ColorLogicOpEnabled;
- case GL_MAP1_COLOR_4:
- return ctx->Eval.Map1Color4;
- case GL_MAP1_INDEX:
- return ctx->Eval.Map1Index;
- case GL_MAP1_NORMAL:
- return ctx->Eval.Map1Normal;
- case GL_MAP1_TEXTURE_COORD_1:
- return ctx->Eval.Map1TextureCoord1;
- case GL_MAP1_TEXTURE_COORD_2:
- return ctx->Eval.Map1TextureCoord2;
- case GL_MAP1_TEXTURE_COORD_3:
- return ctx->Eval.Map1TextureCoord3;
- case GL_MAP1_TEXTURE_COORD_4:
- return ctx->Eval.Map1TextureCoord4;
- case GL_MAP1_VERTEX_3:
- return ctx->Eval.Map1Vertex3;
- case GL_MAP1_VERTEX_4:
- return ctx->Eval.Map1Vertex4;
- case GL_MAP2_COLOR_4:
- return ctx->Eval.Map2Color4;
- case GL_MAP2_INDEX:
- return ctx->Eval.Map2Index;
- case GL_MAP2_NORMAL:
- return ctx->Eval.Map2Normal;
- case GL_MAP2_TEXTURE_COORD_1:
- return ctx->Eval.Map2TextureCoord1;
- case GL_MAP2_TEXTURE_COORD_2:
- return ctx->Eval.Map2TextureCoord2;
- case GL_MAP2_TEXTURE_COORD_3:
- return ctx->Eval.Map2TextureCoord3;
- case GL_MAP2_TEXTURE_COORD_4:
- return ctx->Eval.Map2TextureCoord4;
- case GL_MAP2_VERTEX_3:
- return ctx->Eval.Map2Vertex3;
- case GL_MAP2_VERTEX_4:
- return ctx->Eval.Map2Vertex4;
- case GL_NORMALIZE:
- return ctx->Transform.Normalize;
- case GL_POINT_SMOOTH:
- return ctx->Point.SmoothFlag;
- case GL_POLYGON_SMOOTH:
- return ctx->Polygon.SmoothFlag;
- case GL_POLYGON_STIPPLE:
- return ctx->Polygon.StippleFlag;
- case GL_POLYGON_OFFSET_POINT:
- return ctx->Polygon.OffsetPoint;
- case GL_POLYGON_OFFSET_LINE:
- return ctx->Polygon.OffsetLine;
- case GL_POLYGON_OFFSET_FILL:
- /*case GL_POLYGON_OFFSET_EXT:*/
- return ctx->Polygon.OffsetFill;
- case GL_RESCALE_NORMAL_EXT:
- return ctx->Transform.RescaleNormals;
- case GL_SCISSOR_TEST:
- return ctx->Scissor.Enabled;
- case GL_SHARED_TEXTURE_PALETTE_EXT:
- return ctx->Texture.SharedPalette;
- case GL_STENCIL_TEST:
- return ctx->Stencil.Enabled;
- case GL_TEXTURE_1D:
- return is_texture_enabled(ctx, TEXTURE_1D_BIT);
- case GL_TEXTURE_2D:
- return is_texture_enabled(ctx, TEXTURE_2D_BIT);
- case GL_TEXTURE_3D:
- return is_texture_enabled(ctx, TEXTURE_3D_BIT);
- case GL_TEXTURE_GEN_S:
- case GL_TEXTURE_GEN_T:
- case GL_TEXTURE_GEN_R:
- case GL_TEXTURE_GEN_Q:
- {
- const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
- if (texUnit) {
- GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S);
- return (texUnit->TexGenEnabled & coordBit) ? GL_TRUE : GL_FALSE;
- }
- }
- return GL_FALSE;
-#if FEATURE_ES1
- case GL_TEXTURE_GEN_STR_OES:
- {
- const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
- if (texUnit) {
- return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS
- ? GL_TRUE : GL_FALSE;
- }
- }
-#endif
-
- /*
- * CLIENT STATE!!!
- */
- case GL_VERTEX_ARRAY:
- return (ctx->Array.ArrayObj->Vertex.Enabled != 0);
- case GL_NORMAL_ARRAY:
- return (ctx->Array.ArrayObj->Normal.Enabled != 0);
- case GL_COLOR_ARRAY:
- return (ctx->Array.ArrayObj->Color.Enabled != 0);
- case GL_INDEX_ARRAY:
- return (ctx->Array.ArrayObj->Index.Enabled != 0);
- case GL_TEXTURE_COORD_ARRAY:
- return (ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture]
- .Enabled != 0);
- case GL_EDGE_FLAG_ARRAY:
- return (ctx->Array.ArrayObj->EdgeFlag.Enabled != 0);
- case GL_FOG_COORDINATE_ARRAY_EXT:
- CHECK_EXTENSION(EXT_fog_coord);
- return (ctx->Array.ArrayObj->FogCoord.Enabled != 0);
- case GL_SECONDARY_COLOR_ARRAY_EXT:
- CHECK_EXTENSION(EXT_secondary_color);
- return (ctx->Array.ArrayObj->SecondaryColor.Enabled != 0);
-#if FEATURE_point_size_array
- case GL_POINT_SIZE_ARRAY_OES:
- return (ctx->Array.ArrayObj->PointSize.Enabled != 0);
-#endif
-
- /* GL_ARB_texture_cube_map */
- case GL_TEXTURE_CUBE_MAP_ARB:
- CHECK_EXTENSION(ARB_texture_cube_map);
- return is_texture_enabled(ctx, TEXTURE_CUBE_BIT);
-
- /* GL_EXT_secondary_color */
- case GL_COLOR_SUM_EXT:
- CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program);
- return ctx->Fog.ColorSumEnabled;
-
- /* GL_ARB_multisample */
- case GL_MULTISAMPLE_ARB:
- return ctx->Multisample.Enabled;
- case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
- return ctx->Multisample.SampleAlphaToCoverage;
- case GL_SAMPLE_ALPHA_TO_ONE_ARB:
- return ctx->Multisample.SampleAlphaToOne;
- case GL_SAMPLE_COVERAGE_ARB:
- return ctx->Multisample.SampleCoverage;
- case GL_SAMPLE_COVERAGE_INVERT_ARB:
- return ctx->Multisample.SampleCoverageInvert;
-
- /* GL_IBM_rasterpos_clip */
- case GL_RASTER_POSITION_UNCLIPPED_IBM:
- CHECK_EXTENSION(IBM_rasterpos_clip);
- return ctx->Transform.RasterPositionUnclipped;
-
- /* GL_NV_point_sprite */
- case GL_POINT_SPRITE_NV:
- CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite)
- return ctx->Point.PointSprite;
-
-#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program
- case GL_VERTEX_PROGRAM_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
- return ctx->VertexProgram.Enabled;
- case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
- return ctx->VertexProgram.PointSizeEnabled;
- case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
- CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
- return ctx->VertexProgram.TwoSideEnabled;
-#endif
-#if FEATURE_NV_vertex_program
- case GL_VERTEX_ATTRIB_ARRAY0_NV:
- case GL_VERTEX_ATTRIB_ARRAY1_NV:
- case GL_VERTEX_ATTRIB_ARRAY2_NV:
- case GL_VERTEX_ATTRIB_ARRAY3_NV:
- case GL_VERTEX_ATTRIB_ARRAY4_NV:
- case GL_VERTEX_ATTRIB_ARRAY5_NV:
- case GL_VERTEX_ATTRIB_ARRAY6_NV:
- case GL_VERTEX_ATTRIB_ARRAY7_NV:
- case GL_VERTEX_ATTRIB_ARRAY8_NV:
- case GL_VERTEX_ATTRIB_ARRAY9_NV:
- case GL_VERTEX_ATTRIB_ARRAY10_NV:
- case GL_VERTEX_ATTRIB_ARRAY11_NV:
- case GL_VERTEX_ATTRIB_ARRAY12_NV:
- case GL_VERTEX_ATTRIB_ARRAY13_NV:
- case GL_VERTEX_ATTRIB_ARRAY14_NV:
- case GL_VERTEX_ATTRIB_ARRAY15_NV:
- CHECK_EXTENSION(NV_vertex_program);
- {
- GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV;
- ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib));
- return (ctx->Array.ArrayObj->VertexAttrib[n].Enabled != 0);
- }
- case GL_MAP1_VERTEX_ATTRIB0_4_NV:
- case GL_MAP1_VERTEX_ATTRIB1_4_NV:
- case GL_MAP1_VERTEX_ATTRIB2_4_NV:
- case GL_MAP1_VERTEX_ATTRIB3_4_NV:
- case GL_MAP1_VERTEX_ATTRIB4_4_NV:
- case GL_MAP1_VERTEX_ATTRIB5_4_NV:
- case GL_MAP1_VERTEX_ATTRIB6_4_NV:
- case GL_MAP1_VERTEX_ATTRIB7_4_NV:
- case GL_MAP1_VERTEX_ATTRIB8_4_NV:
- case GL_MAP1_VERTEX_ATTRIB9_4_NV:
- case GL_MAP1_VERTEX_ATTRIB10_4_NV:
- case GL_MAP1_VERTEX_ATTRIB11_4_NV:
- case GL_MAP1_VERTEX_ATTRIB12_4_NV:
- case GL_MAP1_VERTEX_ATTRIB13_4_NV:
- case GL_MAP1_VERTEX_ATTRIB14_4_NV:
- case GL_MAP1_VERTEX_ATTRIB15_4_NV:
- CHECK_EXTENSION(NV_vertex_program);
- {
- const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV);
- return ctx->Eval.Map1Attrib[map];
- }
- case GL_MAP2_VERTEX_ATTRIB0_4_NV:
- case GL_MAP2_VERTEX_ATTRIB1_4_NV:
- case GL_MAP2_VERTEX_ATTRIB2_4_NV:
- case GL_MAP2_VERTEX_ATTRIB3_4_NV:
- case GL_MAP2_VERTEX_ATTRIB4_4_NV:
- case GL_MAP2_VERTEX_ATTRIB5_4_NV:
- case GL_MAP2_VERTEX_ATTRIB6_4_NV:
- case GL_MAP2_VERTEX_ATTRIB7_4_NV:
- case GL_MAP2_VERTEX_ATTRIB8_4_NV:
- case GL_MAP2_VERTEX_ATTRIB9_4_NV:
- case GL_MAP2_VERTEX_ATTRIB10_4_NV:
- case GL_MAP2_VERTEX_ATTRIB11_4_NV:
- case GL_MAP2_VERTEX_ATTRIB12_4_NV:
- case GL_MAP2_VERTEX_ATTRIB13_4_NV:
- case GL_MAP2_VERTEX_ATTRIB14_4_NV:
- case GL_MAP2_VERTEX_ATTRIB15_4_NV:
- CHECK_EXTENSION(NV_vertex_program);
- {
- const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV);
- return ctx->Eval.Map2Attrib[map];
- }
-#endif /* FEATURE_NV_vertex_program */
-
-#if FEATURE_NV_fragment_program
- case GL_FRAGMENT_PROGRAM_NV:
- CHECK_EXTENSION(NV_fragment_program);
- return ctx->FragmentProgram.Enabled;
-#endif /* FEATURE_NV_fragment_program */
-
- /* GL_NV_texture_rectangle */
- case GL_TEXTURE_RECTANGLE_NV:
- CHECK_EXTENSION(NV_texture_rectangle);
- return is_texture_enabled(ctx, TEXTURE_RECT_BIT);
-
- /* GL_EXT_stencil_two_side */
- case GL_STENCIL_TEST_TWO_SIDE_EXT:
- CHECK_EXTENSION(EXT_stencil_two_side);
- return ctx->Stencil.TestTwoSide;
-
-#if FEATURE_ARB_fragment_program
- case GL_FRAGMENT_PROGRAM_ARB:
- return ctx->FragmentProgram.Enabled;
-#endif /* FEATURE_ARB_fragment_program */
-
- /* GL_EXT_depth_bounds_test */
- case GL_DEPTH_BOUNDS_TEST_EXT:
- CHECK_EXTENSION(EXT_depth_bounds_test);
- return ctx->Depth.BoundsTest;
-
- /* GL_ARB_depth_clamp */
- case GL_DEPTH_CLAMP:
- CHECK_EXTENSION(ARB_depth_clamp);
- return ctx->Transform.DepthClamp;
-
-#if FEATURE_ATI_fragment_shader
- case GL_FRAGMENT_SHADER_ATI:
- CHECK_EXTENSION(ATI_fragment_shader);
- return ctx->ATIFragmentShader.Enabled;
-#endif /* FEATURE_ATI_fragment_shader */
-
- case GL_TEXTURE_CUBE_MAP_SEAMLESS:
- CHECK_EXTENSION(ARB_seamless_cube_map);
- return ctx->Texture.CubeMapSeamless;
-
-#if FEATURE_EXT_transform_feedback
- case GL_RASTERIZER_DISCARD:
- CHECK_EXTENSION(EXT_transform_feedback);
- return ctx->TransformFeedback.RasterDiscard;
-#endif
-
- /* GL_NV_primitive_restart */
- case GL_PRIMITIVE_RESTART_NV:
- if (!ctx->Extensions.NV_primitive_restart) {
- goto invalid_enum_error;
- }
- return ctx->Array.PrimitiveRestart;
-
- /* GL 3.1 primitive restart */
- case GL_PRIMITIVE_RESTART:
- if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
- goto invalid_enum_error;
- }
- return ctx->Array.PrimitiveRestart;
-
- /* GL3.0 - GL_framebuffer_sRGB */
- case GL_FRAMEBUFFER_SRGB_EXT:
- CHECK_EXTENSION(EXT_framebuffer_sRGB);
- return ctx->Color.sRGBEnabled;
-
- default:
- goto invalid_enum_error;
- }
-
- return GL_FALSE;
-
-invalid_enum_error:
- _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled(0x%x)", (int) cap);
- return GL_FALSE;
-}
+/** + * \file enable.c + * Enable/disable/query GL capabilities. + */ + +/* + * Mesa 3-D graphics library + * Version: 7.0.3 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "glheader.h" +#include "clip.h" +#include "context.h" +#include "enable.h" +#include "light.h" +#include "simple_list.h" +#include "mfeatures.h" +#include "mtypes.h" +#include "enums.h" +#include "api_arrayelt.h" +#include "texstate.h" + + + +#define CHECK_EXTENSION(EXTNAME, CAP) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + + +/** + * Helper to enable/disable client-side state. + */ +static void +client_state(struct gl_context *ctx, GLenum cap, GLboolean state) +{ + struct gl_array_object *arrayObj = ctx->Array.ArrayObj; + GLuint flag; + GLboolean *var; + + switch (cap) { + case GL_VERTEX_ARRAY: + var = &arrayObj->Vertex.Enabled; + flag = _NEW_ARRAY_VERTEX; + break; + case GL_NORMAL_ARRAY: + var = &arrayObj->Normal.Enabled; + flag = _NEW_ARRAY_NORMAL; + break; + case GL_COLOR_ARRAY: + var = &arrayObj->Color.Enabled; + flag = _NEW_ARRAY_COLOR0; + break; + case GL_INDEX_ARRAY: + var = &arrayObj->Index.Enabled; + flag = _NEW_ARRAY_INDEX; + break; + case GL_TEXTURE_COORD_ARRAY: + var = &arrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled; + flag = _NEW_ARRAY_TEXCOORD(ctx->Array.ActiveTexture); + break; + case GL_EDGE_FLAG_ARRAY: + var = &arrayObj->EdgeFlag.Enabled; + flag = _NEW_ARRAY_EDGEFLAG; + break; + case GL_FOG_COORDINATE_ARRAY_EXT: + var = &arrayObj->FogCoord.Enabled; + flag = _NEW_ARRAY_FOGCOORD; + break; + case GL_SECONDARY_COLOR_ARRAY_EXT: + var = &arrayObj->SecondaryColor.Enabled; + flag = _NEW_ARRAY_COLOR1; + break; + +#if FEATURE_point_size_array + case GL_POINT_SIZE_ARRAY_OES: + var = &arrayObj->PointSize.Enabled; + flag = _NEW_ARRAY_POINT_SIZE; + break; +#endif + +#if FEATURE_NV_vertex_program + case GL_VERTEX_ATTRIB_ARRAY0_NV: + case GL_VERTEX_ATTRIB_ARRAY1_NV: + case GL_VERTEX_ATTRIB_ARRAY2_NV: + case GL_VERTEX_ATTRIB_ARRAY3_NV: + case GL_VERTEX_ATTRIB_ARRAY4_NV: + case GL_VERTEX_ATTRIB_ARRAY5_NV: + case GL_VERTEX_ATTRIB_ARRAY6_NV: + case GL_VERTEX_ATTRIB_ARRAY7_NV: + case GL_VERTEX_ATTRIB_ARRAY8_NV: + case GL_VERTEX_ATTRIB_ARRAY9_NV: + case GL_VERTEX_ATTRIB_ARRAY10_NV: + case GL_VERTEX_ATTRIB_ARRAY11_NV: + case GL_VERTEX_ATTRIB_ARRAY12_NV: + case GL_VERTEX_ATTRIB_ARRAY13_NV: + case GL_VERTEX_ATTRIB_ARRAY14_NV: + case GL_VERTEX_ATTRIB_ARRAY15_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; + ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); + var = &arrayObj->VertexAttrib[n].Enabled; + flag = _NEW_ARRAY_ATTRIB(n); + } + break; +#endif /* FEATURE_NV_vertex_program */ + + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + var = &ctx->Array.PrimitiveRestart; + flag = 0; + break; + + default: + goto invalid_enum_error; + } + + if (*var == state) + return; + + FLUSH_VERTICES(ctx, _NEW_ARRAY); + ctx->Array.NewState |= flag; + + _ae_invalidate_state(ctx, _NEW_ARRAY); + + *var = state; + + if (state) + ctx->Array.ArrayObj->_Enabled |= flag; + else + ctx->Array.ArrayObj->_Enabled &= ~flag; + + if (ctx->Driver.Enable) { + ctx->Driver.Enable( ctx, cap, state ); + } + + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "gl%sClientState(0x%x)", + state ? "Enable" : "Disable", cap); +} + + +/** + * Enable GL capability. + * \param cap state to enable/disable. + * + * Get's the current context, assures that we're outside glBegin()/glEnd() and + * calls client_state(). + */ +void GLAPIENTRY +_mesa_EnableClientState( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + client_state( ctx, cap, GL_TRUE ); +} + + +/** + * Disable GL capability. + * \param cap state to enable/disable. + * + * Get's the current context, assures that we're outside glBegin()/glEnd() and + * calls client_state(). + */ +void GLAPIENTRY +_mesa_DisableClientState( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + client_state( ctx, cap, GL_FALSE ); +} + + +#undef CHECK_EXTENSION +#define CHECK_EXTENSION(EXTNAME, CAP) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + +#define CHECK_EXTENSION2(EXT1, EXT2, CAP) \ + if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ + goto invalid_enum_error; \ + } + + + +/** + * Return pointer to current texture unit for setting/getting coordinate + * state. + * Note that we'll set GL_INVALID_OPERATION and return NULL if the active + * texture unit is higher than the number of supported coordinate units. + */ +static struct gl_texture_unit * +get_texcoord_unit(struct gl_context *ctx) +{ + if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)"); + return NULL; + } + else { + return &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; + } +} + + +/** + * Helper function to enable or disable a texture target. + * \param bit one of the TEXTURE_x_BIT values + * \return GL_TRUE if state is changing or GL_FALSE if no change + */ +static GLboolean +enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) +{ + struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); + const GLbitfield newenabled = state + ? (texUnit->Enabled | texBit) : (texUnit->Enabled & ~texBit); + + if (texUnit->Enabled == newenabled) + return GL_FALSE; + + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->Enabled = newenabled; + return GL_TRUE; +} + + +/** + * Helper function to enable or disable state. + * + * \param ctx GL context. + * \param cap the state to enable/disable + * \param state whether to enable or disable the specified capability. + * + * Updates the current context and flushes the vertices as needed. For + * capabilities associated with extensions it verifies that those extensions + * are effectivly present before updating. Notifies the driver via + * dd_function_table::Enable. + */ +void +_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) +{ + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "%s %s (newstate is %x)\n", + state ? "glEnable" : "glDisable", + _mesa_lookup_enum_by_nr(cap), + ctx->NewState); + + switch (cap) { + case GL_ALPHA_TEST: + if (ctx->Color.AlphaEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.AlphaEnabled = state; + break; + case GL_AUTO_NORMAL: + if (ctx->Eval.AutoNormal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.AutoNormal = state; + break; + case GL_BLEND: + { + GLbitfield newEnabled = + state * ((1 << ctx->Const.MaxDrawBuffers) - 1); + if (newEnabled != ctx->Color.BlendEnabled) { + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.BlendEnabled = newEnabled; + } + } + break; +#if FEATURE_userclip + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + { + const GLuint p = cap - GL_CLIP_PLANE0; + + if ((ctx->Transform.ClipPlanesEnabled & (1 << p)) + == ((GLuint) state << p)) + return; + + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + + if (state) { + ctx->Transform.ClipPlanesEnabled |= (1 << p); + _mesa_update_clip_plane(ctx, p); + } + else { + ctx->Transform.ClipPlanesEnabled &= ~(1 << p); + } + } + break; +#endif + case GL_COLOR_MATERIAL: + if (ctx->Light.ColorMaterialEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + FLUSH_CURRENT(ctx, 0); + ctx->Light.ColorMaterialEnabled = state; + if (state) { + _mesa_update_color_material( ctx, + ctx->Current.Attrib[VERT_ATTRIB_COLOR0] ); + } + break; + case GL_CULL_FACE: + if (ctx->Polygon.CullFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.CullFlag = state; + break; + case GL_DEPTH_TEST: + if (ctx->Depth.Test == state) + return; + FLUSH_VERTICES(ctx, _NEW_DEPTH); + ctx->Depth.Test = state; + break; + case GL_DITHER: + if (ctx->Color.DitherFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.DitherFlag = state; + break; + case GL_FOG: + if (ctx->Fog.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_FOG); + ctx->Fog.Enabled = state; + break; + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + if (ctx->Light.Light[cap-GL_LIGHT0].Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + ctx->Light.Light[cap-GL_LIGHT0].Enabled = state; + if (state) { + insert_at_tail(&ctx->Light.EnabledList, + &ctx->Light.Light[cap-GL_LIGHT0]); + } + else { + remove_from_list(&ctx->Light.Light[cap-GL_LIGHT0]); + } + break; + case GL_LIGHTING: + if (ctx->Light.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_LIGHT); + ctx->Light.Enabled = state; + if (ctx->Light.Enabled && ctx->Light.Model.TwoSide) + ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE; + else + ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE; + break; + case GL_LINE_SMOOTH: + if (ctx->Line.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_LINE); + ctx->Line.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_LINE_SMOOTH; + break; + case GL_LINE_STIPPLE: + if (ctx->Line.StippleFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_LINE); + ctx->Line.StippleFlag = state; + ctx->_TriangleCaps ^= DD_LINE_STIPPLE; + break; + case GL_INDEX_LOGIC_OP: + if (ctx->Color.IndexLogicOpEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.IndexLogicOpEnabled = state; + break; + case GL_COLOR_LOGIC_OP: + if (ctx->Color.ColorLogicOpEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_COLOR); + ctx->Color.ColorLogicOpEnabled = state; + break; + case GL_MAP1_COLOR_4: + if (ctx->Eval.Map1Color4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Color4 = state; + break; + case GL_MAP1_INDEX: + if (ctx->Eval.Map1Index == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Index = state; + break; + case GL_MAP1_NORMAL: + if (ctx->Eval.Map1Normal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Normal = state; + break; + case GL_MAP1_TEXTURE_COORD_1: + if (ctx->Eval.Map1TextureCoord1 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord1 = state; + break; + case GL_MAP1_TEXTURE_COORD_2: + if (ctx->Eval.Map1TextureCoord2 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord2 = state; + break; + case GL_MAP1_TEXTURE_COORD_3: + if (ctx->Eval.Map1TextureCoord3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord3 = state; + break; + case GL_MAP1_TEXTURE_COORD_4: + if (ctx->Eval.Map1TextureCoord4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1TextureCoord4 = state; + break; + case GL_MAP1_VERTEX_3: + if (ctx->Eval.Map1Vertex3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Vertex3 = state; + break; + case GL_MAP1_VERTEX_4: + if (ctx->Eval.Map1Vertex4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Vertex4 = state; + break; + case GL_MAP2_COLOR_4: + if (ctx->Eval.Map2Color4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Color4 = state; + break; + case GL_MAP2_INDEX: + if (ctx->Eval.Map2Index == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Index = state; + break; + case GL_MAP2_NORMAL: + if (ctx->Eval.Map2Normal == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Normal = state; + break; + case GL_MAP2_TEXTURE_COORD_1: + if (ctx->Eval.Map2TextureCoord1 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord1 = state; + break; + case GL_MAP2_TEXTURE_COORD_2: + if (ctx->Eval.Map2TextureCoord2 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord2 = state; + break; + case GL_MAP2_TEXTURE_COORD_3: + if (ctx->Eval.Map2TextureCoord3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord3 = state; + break; + case GL_MAP2_TEXTURE_COORD_4: + if (ctx->Eval.Map2TextureCoord4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2TextureCoord4 = state; + break; + case GL_MAP2_VERTEX_3: + if (ctx->Eval.Map2Vertex3 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Vertex3 = state; + break; + case GL_MAP2_VERTEX_4: + if (ctx->Eval.Map2Vertex4 == state) + return; + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Vertex4 = state; + break; + case GL_NORMALIZE: + if (ctx->Transform.Normalize == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.Normalize = state; + break; + case GL_POINT_SMOOTH: + if (ctx->Point.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POINT); + ctx->Point.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_POINT_SMOOTH; + break; + case GL_POLYGON_SMOOTH: + if (ctx->Polygon.SmoothFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.SmoothFlag = state; + ctx->_TriangleCaps ^= DD_TRI_SMOOTH; + break; + case GL_POLYGON_STIPPLE: + if (ctx->Polygon.StippleFlag == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.StippleFlag = state; + ctx->_TriangleCaps ^= DD_TRI_STIPPLE; + break; + case GL_POLYGON_OFFSET_POINT: + if (ctx->Polygon.OffsetPoint == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetPoint = state; + break; + case GL_POLYGON_OFFSET_LINE: + if (ctx->Polygon.OffsetLine == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetLine = state; + break; + case GL_POLYGON_OFFSET_FILL: + /*case GL_POLYGON_OFFSET_EXT:*/ + if (ctx->Polygon.OffsetFill == state) + return; + FLUSH_VERTICES(ctx, _NEW_POLYGON); + ctx->Polygon.OffsetFill = state; + break; + case GL_RESCALE_NORMAL_EXT: + if (ctx->Transform.RescaleNormals == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.RescaleNormals = state; + break; + case GL_SCISSOR_TEST: + if (ctx->Scissor.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_SCISSOR); + ctx->Scissor.Enabled = state; + break; + case GL_SHARED_TEXTURE_PALETTE_EXT: + if (ctx->Texture.SharedPalette == state) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + ctx->Texture.SharedPalette = state; + break; + case GL_STENCIL_TEST: + if (ctx->Stencil.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_STENCIL); + ctx->Stencil.Enabled = state; + break; + case GL_TEXTURE_1D: + if (!enable_texture(ctx, state, TEXTURE_1D_BIT)) { + return; + } + break; + case GL_TEXTURE_2D: + if (!enable_texture(ctx, state, TEXTURE_2D_BIT)) { + return; + } + break; + case GL_TEXTURE_3D: + if (!enable_texture(ctx, state, TEXTURE_3D_BIT)) { + return; + } + break; + case GL_TEXTURE_GEN_S: + case GL_TEXTURE_GEN_T: + case GL_TEXTURE_GEN_R: + case GL_TEXTURE_GEN_Q: + { + struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); + GLbitfield newenabled = texUnit->TexGenEnabled & ~coordBit; + if (state) + newenabled |= coordBit; + if (texUnit->TexGenEnabled == newenabled) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->TexGenEnabled = newenabled; + } + } + break; + +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + /* disable S, T, and R at the same time */ + { + struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLuint newenabled = + texUnit->TexGenEnabled & ~STR_BITS; + if (state) + newenabled |= STR_BITS; + if (texUnit->TexGenEnabled == newenabled) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->TexGenEnabled = newenabled; + } + } + break; +#endif + + /* + * CLIENT STATE!!! + */ + case GL_VERTEX_ARRAY: + case GL_NORMAL_ARRAY: + case GL_COLOR_ARRAY: + case GL_INDEX_ARRAY: + case GL_TEXTURE_COORD_ARRAY: + case GL_EDGE_FLAG_ARRAY: + case GL_FOG_COORDINATE_ARRAY_EXT: + case GL_SECONDARY_COLOR_ARRAY_EXT: + case GL_POINT_SIZE_ARRAY_OES: + client_state( ctx, cap, state ); + return; + + /* GL_ARB_texture_cube_map */ + case GL_TEXTURE_CUBE_MAP_ARB: + CHECK_EXTENSION(ARB_texture_cube_map, cap); + if (!enable_texture(ctx, state, TEXTURE_CUBE_BIT)) { + return; + } + break; + + /* GL_EXT_secondary_color */ + case GL_COLOR_SUM_EXT: + CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program, cap); + if (ctx->Fog.ColorSumEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_FOG); + ctx->Fog.ColorSumEnabled = state; + break; + + /* GL_ARB_multisample */ + case GL_MULTISAMPLE_ARB: + if (ctx->Multisample.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.Enabled = state; + break; + case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: + if (ctx->Multisample.SampleAlphaToCoverage == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleAlphaToCoverage = state; + break; + case GL_SAMPLE_ALPHA_TO_ONE_ARB: + if (ctx->Multisample.SampleAlphaToOne == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleAlphaToOne = state; + break; + case GL_SAMPLE_COVERAGE_ARB: + if (ctx->Multisample.SampleCoverage == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleCoverage = state; + break; + case GL_SAMPLE_COVERAGE_INVERT_ARB: + if (ctx->Multisample.SampleCoverageInvert == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.SampleCoverageInvert = state; + break; + + /* GL_IBM_rasterpos_clip */ + case GL_RASTER_POSITION_UNCLIPPED_IBM: + CHECK_EXTENSION(IBM_rasterpos_clip, cap); + if (ctx->Transform.RasterPositionUnclipped == state) + return; + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.RasterPositionUnclipped = state; + break; + + /* GL_NV_point_sprite */ + case GL_POINT_SPRITE_NV: + CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite, cap); + if (ctx->Point.PointSprite == state) + return; + FLUSH_VERTICES(ctx, _NEW_POINT); + ctx->Point.PointSprite = state; + break; + +#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program + case GL_VERTEX_PROGRAM_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.Enabled = state; + break; + case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.PointSizeEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.PointSizeEnabled = state; + break; + case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap); + if (ctx->VertexProgram.TwoSideEnabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->VertexProgram.TwoSideEnabled = state; + break; +#endif +#if FEATURE_NV_vertex_program + case GL_MAP1_VERTEX_ATTRIB0_4_NV: + case GL_MAP1_VERTEX_ATTRIB1_4_NV: + case GL_MAP1_VERTEX_ATTRIB2_4_NV: + case GL_MAP1_VERTEX_ATTRIB3_4_NV: + case GL_MAP1_VERTEX_ATTRIB4_4_NV: + case GL_MAP1_VERTEX_ATTRIB5_4_NV: + case GL_MAP1_VERTEX_ATTRIB6_4_NV: + case GL_MAP1_VERTEX_ATTRIB7_4_NV: + case GL_MAP1_VERTEX_ATTRIB8_4_NV: + case GL_MAP1_VERTEX_ATTRIB9_4_NV: + case GL_MAP1_VERTEX_ATTRIB10_4_NV: + case GL_MAP1_VERTEX_ATTRIB11_4_NV: + case GL_MAP1_VERTEX_ATTRIB12_4_NV: + case GL_MAP1_VERTEX_ATTRIB13_4_NV: + case GL_MAP1_VERTEX_ATTRIB14_4_NV: + case GL_MAP1_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map1Attrib[map] = state; + } + break; + case GL_MAP2_VERTEX_ATTRIB0_4_NV: + case GL_MAP2_VERTEX_ATTRIB1_4_NV: + case GL_MAP2_VERTEX_ATTRIB2_4_NV: + case GL_MAP2_VERTEX_ATTRIB3_4_NV: + case GL_MAP2_VERTEX_ATTRIB4_4_NV: + case GL_MAP2_VERTEX_ATTRIB5_4_NV: + case GL_MAP2_VERTEX_ATTRIB6_4_NV: + case GL_MAP2_VERTEX_ATTRIB7_4_NV: + case GL_MAP2_VERTEX_ATTRIB8_4_NV: + case GL_MAP2_VERTEX_ATTRIB9_4_NV: + case GL_MAP2_VERTEX_ATTRIB10_4_NV: + case GL_MAP2_VERTEX_ATTRIB11_4_NV: + case GL_MAP2_VERTEX_ATTRIB12_4_NV: + case GL_MAP2_VERTEX_ATTRIB13_4_NV: + case GL_MAP2_VERTEX_ATTRIB14_4_NV: + case GL_MAP2_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program, cap); + { + const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); + FLUSH_VERTICES(ctx, _NEW_EVAL); + ctx->Eval.Map2Attrib[map] = state; + } + break; +#endif /* FEATURE_NV_vertex_program */ + +#if FEATURE_NV_fragment_program + case GL_FRAGMENT_PROGRAM_NV: + CHECK_EXTENSION(NV_fragment_program, cap); + if (ctx->FragmentProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->FragmentProgram.Enabled = state; + break; +#endif /* FEATURE_NV_fragment_program */ + + /* GL_NV_texture_rectangle */ + case GL_TEXTURE_RECTANGLE_NV: + CHECK_EXTENSION(NV_texture_rectangle, cap); + if (!enable_texture(ctx, state, TEXTURE_RECT_BIT)) { + return; + } + break; + + /* GL_EXT_stencil_two_side */ + case GL_STENCIL_TEST_TWO_SIDE_EXT: + CHECK_EXTENSION(EXT_stencil_two_side, cap); + if (ctx->Stencil.TestTwoSide == state) + return; + FLUSH_VERTICES(ctx, _NEW_STENCIL); + ctx->Stencil.TestTwoSide = state; + if (state) { + ctx->Stencil._BackFace = 2; + ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL; + } else { + ctx->Stencil._BackFace = 1; + ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL; + } + break; + +#if FEATURE_ARB_fragment_program + case GL_FRAGMENT_PROGRAM_ARB: + CHECK_EXTENSION(ARB_fragment_program, cap); + if (ctx->FragmentProgram.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->FragmentProgram.Enabled = state; + break; +#endif /* FEATURE_ARB_fragment_program */ + + /* GL_EXT_depth_bounds_test */ + case GL_DEPTH_BOUNDS_TEST_EXT: + CHECK_EXTENSION(EXT_depth_bounds_test, cap); + if (ctx->Depth.BoundsTest == state) + return; + FLUSH_VERTICES(ctx, _NEW_DEPTH); + ctx->Depth.BoundsTest = state; + break; + + case GL_DEPTH_CLAMP: + if (ctx->Transform.DepthClamp == state) + return; + CHECK_EXTENSION(ARB_depth_clamp, cap); + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Transform.DepthClamp = state; + break; + +#if FEATURE_ATI_fragment_shader + case GL_FRAGMENT_SHADER_ATI: + CHECK_EXTENSION(ATI_fragment_shader, cap); + if (ctx->ATIFragmentShader.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + ctx->ATIFragmentShader.Enabled = state; + break; +#endif + + /* GL_MESA_texture_array */ + case GL_TEXTURE_1D_ARRAY_EXT: + CHECK_EXTENSION(MESA_texture_array, cap); + if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) { + return; + } + break; + + case GL_TEXTURE_2D_ARRAY_EXT: + CHECK_EXTENSION(MESA_texture_array, cap); + if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) { + return; + } + break; + + case GL_TEXTURE_CUBE_MAP_SEAMLESS: + CHECK_EXTENSION(ARB_seamless_cube_map, cap); + if (ctx->Texture.CubeMapSeamless != state) { + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + ctx->Texture.CubeMapSeamless = state; + } + break; + +#if FEATURE_EXT_transform_feedback + case GL_RASTERIZER_DISCARD: + CHECK_EXTENSION(EXT_transform_feedback, cap); + if (ctx->TransformFeedback.RasterDiscard != state) { + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->TransformFeedback.RasterDiscard = state; + } + break; +#endif + + /* GL 3.1 primitive restart. Note: this enum is different from + * GL_PRIMITIVE_RESTART_NV (which is client state). + */ + case GL_PRIMITIVE_RESTART: + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + goto invalid_enum_error; + } + if (ctx->Array.PrimitiveRestart != state) { + FLUSH_VERTICES(ctx, _NEW_TRANSFORM); + ctx->Array.PrimitiveRestart = state; + } + break; + + /* GL3.0 - GL_framebuffer_sRGB */ + case GL_FRAMEBUFFER_SRGB_EXT: + CHECK_EXTENSION(EXT_framebuffer_sRGB, cap); + FLUSH_VERTICES(ctx, _NEW_BUFFERS); + ctx->Color.sRGBEnabled = state; + break; + + default: + goto invalid_enum_error; + } + + if (ctx->Driver.Enable) { + ctx->Driver.Enable( ctx, cap, state ); + } + + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(0x%x)", + state ? "Enable" : "Disable", cap); +} + + +/** + * Enable GL capability. Called by glEnable() + * \param cap state to enable. + */ +void GLAPIENTRY +_mesa_Enable( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + _mesa_set_enable( ctx, cap, GL_TRUE ); +} + + +/** + * Disable GL capability. Called by glDisable() + * \param cap state to disable. + */ +void GLAPIENTRY +_mesa_Disable( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + _mesa_set_enable( ctx, cap, GL_FALSE ); +} + + + +/** + * Enable/disable an indexed state var. + */ +void +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, + GLuint index, GLboolean state) +{ + ASSERT(state == 0 || state == 1); + switch (cap) { + case GL_BLEND: + if (!ctx->Extensions.EXT_draw_buffers2) { + goto invalid_enum_error; + } + if (index >= ctx->Const.MaxDrawBuffers) { + _mesa_error(ctx, GL_INVALID_VALUE, "%s(index=%u)", + state ? "glEnableIndexed" : "glDisableIndexed", index); + return; + } + if (((ctx->Color.BlendEnabled >> index) & 1) != state) { + FLUSH_VERTICES(ctx, _NEW_COLOR); + if (state) + ctx->Color.BlendEnabled |= (1 << index); + else + ctx->Color.BlendEnabled &= ~(1 << index); + } + break; + default: + goto invalid_enum_error; + } + return; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "%s(cap=%s)", + state ? "glEnablei" : "glDisablei", + _mesa_lookup_enum_by_nr(cap)); +} + + +void GLAPIENTRY +_mesa_DisableIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + _mesa_set_enablei(ctx, cap, index, GL_FALSE); +} + + +void GLAPIENTRY +_mesa_EnableIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + _mesa_set_enablei(ctx, cap, index, GL_TRUE); +} + + +GLboolean GLAPIENTRY +_mesa_IsEnabledIndexed( GLenum cap, GLuint index ) +{ + GET_CURRENT_CONTEXT(ctx); + switch (cap) { + case GL_BLEND: + if (index >= ctx->Const.MaxDrawBuffers) { + _mesa_error(ctx, GL_INVALID_VALUE, "glIsEnabledIndexed(index=%u)", + index); + return GL_FALSE; + } + return (ctx->Color.BlendEnabled >> index) & 1; + default: + _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabledIndexed(cap=%s)", + _mesa_lookup_enum_by_nr(cap)); + return GL_FALSE; + } +} + + + + +#undef CHECK_EXTENSION +#define CHECK_EXTENSION(EXTNAME) \ + if (!ctx->Extensions.EXTNAME) { \ + goto invalid_enum_error; \ + } + +#undef CHECK_EXTENSION2 +#define CHECK_EXTENSION2(EXT1, EXT2) \ + if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \ + goto invalid_enum_error; \ + } + + +/** + * Helper function to determine whether a texture target is enabled. + */ +static GLboolean +is_texture_enabled(struct gl_context *ctx, GLbitfield bit) +{ + const struct gl_texture_unit *const texUnit = + &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; + return (texUnit->Enabled & bit) ? GL_TRUE : GL_FALSE; +} + + +/** + * Return simple enable/disable state. + * + * \param cap state variable to query. + * + * Returns the state of the specified capability from the current GL context. + * For the capabilities associated with extensions verifies that those + * extensions are effectively present before reporting. + */ +GLboolean GLAPIENTRY +_mesa_IsEnabled( GLenum cap ) +{ + GET_CURRENT_CONTEXT(ctx); + switch (cap) { + case GL_ALPHA_TEST: + return ctx->Color.AlphaEnabled; + case GL_AUTO_NORMAL: + return ctx->Eval.AutoNormal; + case GL_BLEND: + return ctx->Color.BlendEnabled & 1; /* return state for buffer[0] */ + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + return (ctx->Transform.ClipPlanesEnabled >> (cap - GL_CLIP_PLANE0)) & 1; + case GL_COLOR_MATERIAL: + return ctx->Light.ColorMaterialEnabled; + case GL_CULL_FACE: + return ctx->Polygon.CullFlag; + case GL_DEPTH_TEST: + return ctx->Depth.Test; + case GL_DITHER: + return ctx->Color.DitherFlag; + case GL_FOG: + return ctx->Fog.Enabled; + case GL_LIGHTING: + return ctx->Light.Enabled; + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + return ctx->Light.Light[cap-GL_LIGHT0].Enabled; + case GL_LINE_SMOOTH: + return ctx->Line.SmoothFlag; + case GL_LINE_STIPPLE: + return ctx->Line.StippleFlag; + case GL_INDEX_LOGIC_OP: + return ctx->Color.IndexLogicOpEnabled; + case GL_COLOR_LOGIC_OP: + return ctx->Color.ColorLogicOpEnabled; + case GL_MAP1_COLOR_4: + return ctx->Eval.Map1Color4; + case GL_MAP1_INDEX: + return ctx->Eval.Map1Index; + case GL_MAP1_NORMAL: + return ctx->Eval.Map1Normal; + case GL_MAP1_TEXTURE_COORD_1: + return ctx->Eval.Map1TextureCoord1; + case GL_MAP1_TEXTURE_COORD_2: + return ctx->Eval.Map1TextureCoord2; + case GL_MAP1_TEXTURE_COORD_3: + return ctx->Eval.Map1TextureCoord3; + case GL_MAP1_TEXTURE_COORD_4: + return ctx->Eval.Map1TextureCoord4; + case GL_MAP1_VERTEX_3: + return ctx->Eval.Map1Vertex3; + case GL_MAP1_VERTEX_4: + return ctx->Eval.Map1Vertex4; + case GL_MAP2_COLOR_4: + return ctx->Eval.Map2Color4; + case GL_MAP2_INDEX: + return ctx->Eval.Map2Index; + case GL_MAP2_NORMAL: + return ctx->Eval.Map2Normal; + case GL_MAP2_TEXTURE_COORD_1: + return ctx->Eval.Map2TextureCoord1; + case GL_MAP2_TEXTURE_COORD_2: + return ctx->Eval.Map2TextureCoord2; + case GL_MAP2_TEXTURE_COORD_3: + return ctx->Eval.Map2TextureCoord3; + case GL_MAP2_TEXTURE_COORD_4: + return ctx->Eval.Map2TextureCoord4; + case GL_MAP2_VERTEX_3: + return ctx->Eval.Map2Vertex3; + case GL_MAP2_VERTEX_4: + return ctx->Eval.Map2Vertex4; + case GL_NORMALIZE: + return ctx->Transform.Normalize; + case GL_POINT_SMOOTH: + return ctx->Point.SmoothFlag; + case GL_POLYGON_SMOOTH: + return ctx->Polygon.SmoothFlag; + case GL_POLYGON_STIPPLE: + return ctx->Polygon.StippleFlag; + case GL_POLYGON_OFFSET_POINT: + return ctx->Polygon.OffsetPoint; + case GL_POLYGON_OFFSET_LINE: + return ctx->Polygon.OffsetLine; + case GL_POLYGON_OFFSET_FILL: + /*case GL_POLYGON_OFFSET_EXT:*/ + return ctx->Polygon.OffsetFill; + case GL_RESCALE_NORMAL_EXT: + return ctx->Transform.RescaleNormals; + case GL_SCISSOR_TEST: + return ctx->Scissor.Enabled; + case GL_SHARED_TEXTURE_PALETTE_EXT: + return ctx->Texture.SharedPalette; + case GL_STENCIL_TEST: + return ctx->Stencil.Enabled; + case GL_TEXTURE_1D: + return is_texture_enabled(ctx, TEXTURE_1D_BIT); + case GL_TEXTURE_2D: + return is_texture_enabled(ctx, TEXTURE_2D_BIT); + case GL_TEXTURE_3D: + return is_texture_enabled(ctx, TEXTURE_3D_BIT); + case GL_TEXTURE_GEN_S: + case GL_TEXTURE_GEN_T: + case GL_TEXTURE_GEN_R: + case GL_TEXTURE_GEN_Q: + { + const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLbitfield coordBit = S_BIT << (cap - GL_TEXTURE_GEN_S); + return (texUnit->TexGenEnabled & coordBit) ? GL_TRUE : GL_FALSE; + } + } + return GL_FALSE; +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + { + const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS + ? GL_TRUE : GL_FALSE; + } + } +#endif + + /* + * CLIENT STATE!!! + */ + case GL_VERTEX_ARRAY: + return (ctx->Array.ArrayObj->Vertex.Enabled != 0); + case GL_NORMAL_ARRAY: + return (ctx->Array.ArrayObj->Normal.Enabled != 0); + case GL_COLOR_ARRAY: + return (ctx->Array.ArrayObj->Color.Enabled != 0); + case GL_INDEX_ARRAY: + return (ctx->Array.ArrayObj->Index.Enabled != 0); + case GL_TEXTURE_COORD_ARRAY: + return (ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture] + .Enabled != 0); + case GL_EDGE_FLAG_ARRAY: + return (ctx->Array.ArrayObj->EdgeFlag.Enabled != 0); + case GL_FOG_COORDINATE_ARRAY_EXT: + CHECK_EXTENSION(EXT_fog_coord); + return (ctx->Array.ArrayObj->FogCoord.Enabled != 0); + case GL_SECONDARY_COLOR_ARRAY_EXT: + CHECK_EXTENSION(EXT_secondary_color); + return (ctx->Array.ArrayObj->SecondaryColor.Enabled != 0); +#if FEATURE_point_size_array + case GL_POINT_SIZE_ARRAY_OES: + return (ctx->Array.ArrayObj->PointSize.Enabled != 0); +#endif + + /* GL_ARB_texture_cube_map */ + case GL_TEXTURE_CUBE_MAP_ARB: + CHECK_EXTENSION(ARB_texture_cube_map); + return is_texture_enabled(ctx, TEXTURE_CUBE_BIT); + + /* GL_EXT_secondary_color */ + case GL_COLOR_SUM_EXT: + CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program); + return ctx->Fog.ColorSumEnabled; + + /* GL_ARB_multisample */ + case GL_MULTISAMPLE_ARB: + return ctx->Multisample.Enabled; + case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: + return ctx->Multisample.SampleAlphaToCoverage; + case GL_SAMPLE_ALPHA_TO_ONE_ARB: + return ctx->Multisample.SampleAlphaToOne; + case GL_SAMPLE_COVERAGE_ARB: + return ctx->Multisample.SampleCoverage; + case GL_SAMPLE_COVERAGE_INVERT_ARB: + return ctx->Multisample.SampleCoverageInvert; + + /* GL_IBM_rasterpos_clip */ + case GL_RASTER_POSITION_UNCLIPPED_IBM: + CHECK_EXTENSION(IBM_rasterpos_clip); + return ctx->Transform.RasterPositionUnclipped; + + /* GL_NV_point_sprite */ + case GL_POINT_SPRITE_NV: + CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite) + return ctx->Point.PointSprite; + +#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program + case GL_VERTEX_PROGRAM_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.Enabled; + case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.PointSizeEnabled; + case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: + CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program); + return ctx->VertexProgram.TwoSideEnabled; +#endif +#if FEATURE_NV_vertex_program + case GL_VERTEX_ATTRIB_ARRAY0_NV: + case GL_VERTEX_ATTRIB_ARRAY1_NV: + case GL_VERTEX_ATTRIB_ARRAY2_NV: + case GL_VERTEX_ATTRIB_ARRAY3_NV: + case GL_VERTEX_ATTRIB_ARRAY4_NV: + case GL_VERTEX_ATTRIB_ARRAY5_NV: + case GL_VERTEX_ATTRIB_ARRAY6_NV: + case GL_VERTEX_ATTRIB_ARRAY7_NV: + case GL_VERTEX_ATTRIB_ARRAY8_NV: + case GL_VERTEX_ATTRIB_ARRAY9_NV: + case GL_VERTEX_ATTRIB_ARRAY10_NV: + case GL_VERTEX_ATTRIB_ARRAY11_NV: + case GL_VERTEX_ATTRIB_ARRAY12_NV: + case GL_VERTEX_ATTRIB_ARRAY13_NV: + case GL_VERTEX_ATTRIB_ARRAY14_NV: + case GL_VERTEX_ATTRIB_ARRAY15_NV: + CHECK_EXTENSION(NV_vertex_program); + { + GLint n = (GLint) cap - GL_VERTEX_ATTRIB_ARRAY0_NV; + ASSERT(n < Elements(ctx->Array.ArrayObj->VertexAttrib)); + return (ctx->Array.ArrayObj->VertexAttrib[n].Enabled != 0); + } + case GL_MAP1_VERTEX_ATTRIB0_4_NV: + case GL_MAP1_VERTEX_ATTRIB1_4_NV: + case GL_MAP1_VERTEX_ATTRIB2_4_NV: + case GL_MAP1_VERTEX_ATTRIB3_4_NV: + case GL_MAP1_VERTEX_ATTRIB4_4_NV: + case GL_MAP1_VERTEX_ATTRIB5_4_NV: + case GL_MAP1_VERTEX_ATTRIB6_4_NV: + case GL_MAP1_VERTEX_ATTRIB7_4_NV: + case GL_MAP1_VERTEX_ATTRIB8_4_NV: + case GL_MAP1_VERTEX_ATTRIB9_4_NV: + case GL_MAP1_VERTEX_ATTRIB10_4_NV: + case GL_MAP1_VERTEX_ATTRIB11_4_NV: + case GL_MAP1_VERTEX_ATTRIB12_4_NV: + case GL_MAP1_VERTEX_ATTRIB13_4_NV: + case GL_MAP1_VERTEX_ATTRIB14_4_NV: + case GL_MAP1_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program); + { + const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV); + return ctx->Eval.Map1Attrib[map]; + } + case GL_MAP2_VERTEX_ATTRIB0_4_NV: + case GL_MAP2_VERTEX_ATTRIB1_4_NV: + case GL_MAP2_VERTEX_ATTRIB2_4_NV: + case GL_MAP2_VERTEX_ATTRIB3_4_NV: + case GL_MAP2_VERTEX_ATTRIB4_4_NV: + case GL_MAP2_VERTEX_ATTRIB5_4_NV: + case GL_MAP2_VERTEX_ATTRIB6_4_NV: + case GL_MAP2_VERTEX_ATTRIB7_4_NV: + case GL_MAP2_VERTEX_ATTRIB8_4_NV: + case GL_MAP2_VERTEX_ATTRIB9_4_NV: + case GL_MAP2_VERTEX_ATTRIB10_4_NV: + case GL_MAP2_VERTEX_ATTRIB11_4_NV: + case GL_MAP2_VERTEX_ATTRIB12_4_NV: + case GL_MAP2_VERTEX_ATTRIB13_4_NV: + case GL_MAP2_VERTEX_ATTRIB14_4_NV: + case GL_MAP2_VERTEX_ATTRIB15_4_NV: + CHECK_EXTENSION(NV_vertex_program); + { + const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV); + return ctx->Eval.Map2Attrib[map]; + } +#endif /* FEATURE_NV_vertex_program */ + +#if FEATURE_NV_fragment_program + case GL_FRAGMENT_PROGRAM_NV: + CHECK_EXTENSION(NV_fragment_program); + return ctx->FragmentProgram.Enabled; +#endif /* FEATURE_NV_fragment_program */ + + /* GL_NV_texture_rectangle */ + case GL_TEXTURE_RECTANGLE_NV: + CHECK_EXTENSION(NV_texture_rectangle); + return is_texture_enabled(ctx, TEXTURE_RECT_BIT); + + /* GL_EXT_stencil_two_side */ + case GL_STENCIL_TEST_TWO_SIDE_EXT: + CHECK_EXTENSION(EXT_stencil_two_side); + return ctx->Stencil.TestTwoSide; + +#if FEATURE_ARB_fragment_program + case GL_FRAGMENT_PROGRAM_ARB: + return ctx->FragmentProgram.Enabled; +#endif /* FEATURE_ARB_fragment_program */ + + /* GL_EXT_depth_bounds_test */ + case GL_DEPTH_BOUNDS_TEST_EXT: + CHECK_EXTENSION(EXT_depth_bounds_test); + return ctx->Depth.BoundsTest; + + /* GL_ARB_depth_clamp */ + case GL_DEPTH_CLAMP: + CHECK_EXTENSION(ARB_depth_clamp); + return ctx->Transform.DepthClamp; + +#if FEATURE_ATI_fragment_shader + case GL_FRAGMENT_SHADER_ATI: + CHECK_EXTENSION(ATI_fragment_shader); + return ctx->ATIFragmentShader.Enabled; +#endif /* FEATURE_ATI_fragment_shader */ + + case GL_TEXTURE_CUBE_MAP_SEAMLESS: + CHECK_EXTENSION(ARB_seamless_cube_map); + return ctx->Texture.CubeMapSeamless; + +#if FEATURE_EXT_transform_feedback + case GL_RASTERIZER_DISCARD: + CHECK_EXTENSION(EXT_transform_feedback); + return ctx->TransformFeedback.RasterDiscard; +#endif + + /* GL_NV_primitive_restart */ + case GL_PRIMITIVE_RESTART_NV: + if (!ctx->Extensions.NV_primitive_restart) { + goto invalid_enum_error; + } + return ctx->Array.PrimitiveRestart; + + /* GL 3.1 primitive restart */ + case GL_PRIMITIVE_RESTART: + if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) { + goto invalid_enum_error; + } + return ctx->Array.PrimitiveRestart; + + /* GL3.0 - GL_framebuffer_sRGB */ + case GL_FRAMEBUFFER_SRGB_EXT: + CHECK_EXTENSION(EXT_framebuffer_sRGB); + return ctx->Color.sRGBEnabled; + + default: + goto invalid_enum_error; + } + + return GL_FALSE; + +invalid_enum_error: + _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled(0x%x)", (int) cap); + return GL_FALSE; +} diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c index d31477731..1062cde9e 100644 --- a/mesalib/src/mesa/main/extensions.c +++ b/mesalib/src/mesa/main/extensions.c @@ -1,1000 +1,1002 @@ -/*
- * Mesa 3-D graphics library
- * Version: 7.6
- *
- * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
- * Copyright (C) 2009 VMware, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/**
- * \file
- * \brief Extension handling
- */
-
-
-#include "glheader.h"
-#include "imports.h"
-#include "context.h"
-#include "extensions.h"
-#include "mfeatures.h"
-#include "mtypes.h"
-
-enum {
- DISABLE = 0,
- GL = 1 << API_OPENGL,
- ES1 = 1 << API_OPENGLES,
- ES2 = 1 << API_OPENGLES2,
-};
-
-/**
- * \brief An element of the \c extension_table.
- */
-struct extension {
- /** Name of extension, such as "GL_ARB_depth_clamp". */
- const char *name;
-
- /** Offset (in bytes) of the corresponding member in struct gl_extensions. */
- size_t offset;
-
- /** Set of API's in which the extension exists, as a bitset. */
- uint8_t api_set;
-
- /** Year the extension was proposed or approved. Used to sort the
- * extension string chronologically. */
- uint16_t year;
-};
-
-
-/**
- * Given a member \c x of struct gl_extensions, return offset of
- * \c x in bytes.
- */
-#define o(x) offsetof(struct gl_extensions, x)
-
-
-/**
- * \brief Table of supported OpenGL extensions for all API's.
- *
- * Note: The GL_MESAX_* extensions are placeholders for future ARB extensions.
- */
-static const struct extension extension_table[] = {
- /* ARB Extensions */
- { "GL_ARB_ES2_compatibility", o(ARB_ES2_compatibility), GL, 2009 },
- { "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL, 2009 },
- { "GL_ARB_color_buffer_float", o(ARB_color_buffer_float), GL, 2004 },
- { "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL, 2008 },
- { "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL, 2008 },
- { "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 },
- { "GL_ARB_depth_texture", o(ARB_depth_texture), GL, 2001 },
- { "GL_ARB_draw_buffers", o(ARB_draw_buffers), GL, 2002 },
- { "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 },
- { "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 },
- { "GL_ARB_draw_instanced", o(ARB_draw_instanced), GL, 2008 },
- { "GL_ARB_explicit_attrib_location", o(ARB_explicit_attrib_location), GL, 2009 },
- { "GL_ARB_fragment_coord_conventions", o(ARB_fragment_coord_conventions), GL, 2009 },
- { "GL_ARB_fragment_program", o(ARB_fragment_program), GL, 2002 },
- { "GL_ARB_fragment_program_shadow", o(ARB_fragment_program_shadow), GL, 2003 },
- { "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL, 2002 },
- { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL, 2005 },
- { "GL_ARB_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 },
- { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 },
- { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 },
- { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 },
- { "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL, 2008 },
- { "GL_ARB_multisample", o(ARB_multisample), GL, 1994 },
- { "GL_ARB_multitexture", o(ARB_multitexture), GL, 1998 },
- { "GL_ARB_occlusion_query2", o(ARB_occlusion_query2), GL, 2003 },
- { "GL_ARB_occlusion_query", o(ARB_occlusion_query), GL, 2001 },
- { "GL_ARB_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 },
- { "GL_ARB_point_parameters", o(EXT_point_parameters), GL, 1997 },
- { "GL_ARB_point_sprite", o(ARB_point_sprite), GL, 2003 },
- { "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 },
- { "GL_ARB_robustness", o(dummy_true), GL, 2010 },
- { "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL, 2009 },
- { "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 },
- { "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 },
- { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 },
- { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GL, 2003 },
- { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL, 2001 },
- { "GL_ARB_shadow", o(ARB_shadow), GL, 2001 },
- { "GL_ARB_sync", o(ARB_sync), GL, 2003 },
- { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GL, 2000 },
- { "GL_ARB_texture_buffer_object", o(ARB_texture_buffer_object), GL, 2008 },
- { "GL_ARB_texture_compression", o(ARB_texture_compression), GL, 2000 },
- { "GL_ARB_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 },
- { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), GL, 1999 },
- { "GL_ARB_texture_env_add", o(EXT_texture_env_add), GL, 1999 },
- { "GL_ARB_texture_env_combine", o(ARB_texture_env_combine), GL, 2001 },
- { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), GL, 2001 },
- { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), GL, 2001 },
- { "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 },
- { "GL_ARB_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 2001 },
- { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 },
- { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 },
- { "GL_ARB_texture_rectangle", o(NV_texture_rectangle), GL, 2004 },
- { "GL_ARB_texture_rgb10_a2ui", o(ARB_texture_rgb10_a2ui), GL, 2009 },
- { "GL_ARB_texture_rg", o(ARB_texture_rg), GL, 2008 },
- { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 },
- { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL, 2010 },
- { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), GL, 1999 },
- { "GL_ARB_uniform_buffer_object", o(ARB_uniform_buffer_object), GL, 2002 },
- { "GL_ARB_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 },
- { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), GL, 2006 },
- { "GL_ARB_vertex_buffer_object", o(ARB_vertex_buffer_object), GL, 2003 },
- { "GL_ARB_vertex_program", o(ARB_vertex_program), GL, 2002 },
- { "GL_ARB_vertex_shader", o(ARB_vertex_shader), GL, 2002 },
- { "GL_ARB_vertex_type_2_10_10_10_rev", o(ARB_vertex_type_2_10_10_10_rev), GL, 2009 },
- { "GL_ARB_window_pos", o(ARB_window_pos), GL, 2001 },
-
- /* EXT extensions */
- { "GL_EXT_abgr", o(EXT_abgr), GL, 1995 },
- { "GL_EXT_bgra", o(EXT_bgra), GL, 1995 },
- { "GL_EXT_blend_color", o(EXT_blend_color), GL, 1995 },
- { "GL_EXT_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 },
- { "GL_EXT_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 },
- { "GL_EXT_blend_logic_op", o(EXT_blend_logic_op), GL, 1995 },
- { "GL_EXT_blend_minmax", o(EXT_blend_minmax), GL | ES1 | ES2, 1995 },
- { "GL_EXT_blend_subtract", o(EXT_blend_subtract), GL, 1995 },
- { "GL_EXT_clip_volume_hint", o(EXT_clip_volume_hint), GL, 1996 },
- { "GL_EXT_compiled_vertex_array", o(EXT_compiled_vertex_array), GL, 1996 },
- { "GL_EXT_copy_texture", o(EXT_copy_texture), GL, 1995 },
- { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL, 2002 },
- { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL, 2006 },
- { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL, 2006 },
- { "GL_EXT_draw_range_elements", o(EXT_draw_range_elements), GL, 1997 },
- { "GL_EXT_fog_coord", o(EXT_fog_coord), GL, 1999 },
- { "GL_EXT_framebuffer_blit", o(EXT_framebuffer_blit), GL, 2005 },
- { "GL_EXT_framebuffer_multisample", o(EXT_framebuffer_multisample), GL, 2005 },
- { "GL_EXT_framebuffer_object", o(EXT_framebuffer_object), GL, 2000 },
- { "GL_EXT_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 },
- { "GL_EXT_gpu_program_parameters", o(EXT_gpu_program_parameters), GL, 2006 },
- { "GL_EXT_gpu_shader4", o(EXT_gpu_shader4), GL, 2006 },
- { "GL_EXT_multi_draw_arrays", o(EXT_multi_draw_arrays), GL | ES1 | ES2, 1999 },
- { "GL_EXT_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2005 },
- { "GL_EXT_packed_float", o(EXT_packed_float), GL, 2004 },
- { "GL_EXT_packed_pixels", o(EXT_packed_pixels), GL, 1997 },
- { "GL_EXT_paletted_texture", o(EXT_paletted_texture), GL, 1995 },
- { "GL_EXT_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 },
- { "GL_EXT_point_parameters", o(EXT_point_parameters), GL, 1997 },
- { "GL_EXT_polygon_offset", o(EXT_polygon_offset), GL, 1995 },
- { "GL_EXT_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 },
- { "GL_EXT_rescale_normal", o(EXT_rescale_normal), GL, 1997 },
- { "GL_EXT_secondary_color", o(EXT_secondary_color), GL, 1999 },
- { "GL_EXT_separate_shader_objects", o(EXT_separate_shader_objects), GL, 2008 },
- { "GL_EXT_separate_specular_color", o(EXT_separate_specular_color), GL, 1997 },
- { "GL_EXT_shadow_funcs", o(EXT_shadow_funcs), GL, 2002 },
- { "GL_EXT_shared_texture_palette", o(EXT_shared_texture_palette), GL, 2000 },
- { "GL_EXT_stencil_two_side", o(EXT_stencil_two_side), GL, 2001 },
- { "GL_EXT_stencil_wrap", o(EXT_stencil_wrap), GL, 2002 },
- { "GL_EXT_subtexture", o(EXT_subtexture), GL, 1995 },
- { "GL_EXT_texture3D", o(EXT_texture3D), GL, 1996 },
- { "GL_EXT_texture_array", o(EXT_texture_array), GL, 2006 },
- { "GL_EXT_texture_compression_dxt1", o(EXT_texture_compression_s3tc), GL | ES1 | ES2, 2004 },
- { "GL_EXT_texture_compression_latc", o(EXT_texture_compression_latc), GL, 2006 },
- { "GL_EXT_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 },
- { "GL_EXT_texture_compression_s3tc", o(EXT_texture_compression_s3tc), GL, 2000 },
- { "GL_EXT_texture_cube_map", o(ARB_texture_cube_map), GL, 2001 },
- { "GL_EXT_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 },
- { "GL_EXT_texture_env_add", o(EXT_texture_env_add), GL, 1999 },
- { "GL_EXT_texture_env_combine", o(EXT_texture_env_combine), GL, 2006 },
- { "GL_EXT_texture_env_dot3", o(EXT_texture_env_dot3), GL, 2000 },
- { "GL_EXT_texture_filter_anisotropic", o(EXT_texture_filter_anisotropic), GL | ES1 | ES2, 1999 },
- { "GL_EXT_texture_format_BGRA8888", o(EXT_texture_format_BGRA8888), ES1 | ES2, 2009 },
- { "GL_EXT_texture_integer", o(EXT_texture_integer), GL, 2006 },
- { "GL_EXT_texture_lod_bias", o(EXT_texture_lod_bias), GL | ES1, 1999 },
- { "GL_EXT_texture_mirror_clamp", o(EXT_texture_mirror_clamp), GL, 2004 },
- { "GL_EXT_texture_object", o(EXT_texture_object), GL, 1995 },
- { "GL_EXT_texture", o(EXT_texture), GL, 1996 },
- { "GL_EXT_texture_rectangle", o(NV_texture_rectangle), GL, 2004 },
- { "GL_EXT_texture_shared_exponent", o(EXT_texture_shared_exponent), GL, 2004 },
- { "GL_EXT_texture_snorm", o(EXT_texture_snorm), GL, 2009 },
- { "GL_EXT_texture_sRGB", o(EXT_texture_sRGB), GL, 2004 },
- { "GL_EXT_texture_sRGB_decode", o(EXT_texture_sRGB_decode), GL, 2006 },
- { "GL_EXT_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 },
- { "GL_EXT_texture_type_2_10_10_10_REV", o(dummy_true), ES2, 2008 },
- { "GL_EXT_timer_query", o(EXT_timer_query), GL, 2006 },
- { "GL_EXT_transform_feedback", o(EXT_transform_feedback), GL, 2011 },
- { "GL_EXT_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 },
- { "GL_EXT_vertex_array", o(EXT_vertex_array), GL, 1995 },
- { "GL_EXT_vertex_array_set", o(EXT_vertex_array_set), GL, 1997 },
-
- /* OES extensions */
- { "GL_OES_blend_equation_separate", o(EXT_blend_equation_separate), ES1, 2009 },
- { "GL_OES_blend_func_separate", o(EXT_blend_func_separate), ES1, 2009 },
- { "GL_OES_blend_subtract", o(EXT_blend_subtract), ES1, 2009 },
- { "GL_OES_byte_coordinates", o(dummy_true), ES1, 2002 },
- { "GL_OES_compressed_paletted_texture", o(dummy_false), DISABLE, 2003 },
- { "GL_OES_depth24", o(EXT_framebuffer_object), ES1 | ES2, 2005 },
- { "GL_OES_depth32", o(dummy_false), DISABLE, 2005 },
- { "GL_OES_depth_texture", o(ARB_depth_texture), ES2, 2006 },
-#if FEATURE_OES_draw_texture
- { "GL_OES_draw_texture", o(OES_draw_texture), ES1 | ES2, 2004 },
-#endif
-#if FEATURE_OES_EGL_image
- /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */
- { "GL_OES_EGL_image", o(OES_EGL_image), GL | ES1 | ES2, 2006 },
-#endif
- { "GL_OES_element_index_uint", o(EXT_vertex_array), ES1 | ES2, 2005 },
- { "GL_OES_fbo_render_mipmap", o(EXT_framebuffer_object), ES1 | ES2, 2005 },
- { "GL_OES_fixed_point", o(dummy_true), ES1, 2002 },
- { "GL_OES_framebuffer_object", o(EXT_framebuffer_object), ES1, 2005 },
- { "GL_OES_mapbuffer", o(ARB_vertex_buffer_object), ES1 | ES2, 2005 },
- { "GL_OES_matrix_get", o(dummy_true), ES1, 2004 },
- { "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2, 2007 },
- { "GL_OES_point_size_array", o(dummy_true), ES1, 2004 },
- { "GL_OES_point_sprite", o(ARB_point_sprite), ES1, 2004 },
- { "GL_OES_query_matrix", o(dummy_true), ES1, 2003 },
- { "GL_OES_read_format", o(OES_read_format), GL | ES1, 2003 },
- { "GL_OES_rgb8_rgba8", o(EXT_framebuffer_object), ES1 | ES2, 2005 },
- { "GL_OES_single_precision", o(dummy_true), ES1, 2003 },
- { "GL_OES_standard_derivatives", o(OES_standard_derivatives), ES2, 2005 },
- { "GL_OES_stencil1", o(dummy_false), DISABLE, 2005 },
- { "GL_OES_stencil4", o(dummy_false), DISABLE, 2005 },
- { "GL_OES_stencil8", o(EXT_framebuffer_object), ES1 | ES2, 2005 },
- { "GL_OES_stencil_wrap", o(EXT_stencil_wrap), ES1, 2002 },
- { "GL_OES_texture_3D", o(EXT_texture3D), ES2, 2005 },
- { "GL_OES_texture_cube_map", o(ARB_texture_cube_map), ES1, 2007 },
- { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 },
- { "GL_OES_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), ES1, 2005 },
- { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 },
-
- /* Vendor extensions */
- { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 },
- { "GL_AMD_conservative_depth", o(AMD_conservative_depth), GL, 2009 },
- { "GL_APPLE_client_storage", o(APPLE_client_storage), GL, 2002 },
- { "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL, 2006 },
- { "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL, 2002 },
- { "GL_APPLE_vertex_array_object", o(APPLE_vertex_array_object), GL, 2002 },
- { "GL_ATI_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 },
- { "GL_ATI_draw_buffers", o(ARB_draw_buffers), GL, 2002 },
- { "GL_ATI_envmap_bumpmap", o(ATI_envmap_bumpmap), GL, 2001 },
- { "GL_ATI_fragment_shader", o(ATI_fragment_shader), GL, 2001 },
- { "GL_ATI_separate_stencil", o(ATI_separate_stencil), GL, 2006 },
- { "GL_ATI_texture_compression_3dc", o(ATI_texture_compression_3dc), GL, 2004 },
- { "GL_ATI_texture_env_combine3", o(ATI_texture_env_combine3), GL, 2002 },
- { "GL_ATI_texture_float", o(ARB_texture_float), GL, 2002 },
- { "GL_ATI_texture_mirror_once", o(ATI_texture_mirror_once), GL, 2006 },
- { "GL_IBM_multimode_draw_arrays", o(IBM_multimode_draw_arrays), GL, 1998 },
- { "GL_IBM_rasterpos_clip", o(IBM_rasterpos_clip), GL, 1996 },
- { "GL_IBM_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 1998 },
- { "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 },
- { "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 },
- { "GL_MESA_resize_buffers", o(MESA_resize_buffers), GL, 1999 },
- { "GL_MESA_texture_array", o(MESA_texture_array), GL, 2007 },
- { "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 },
- { "GL_MESA_window_pos", o(ARB_window_pos), GL, 2000 },
- { "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 },
- { "GL_NV_blend_square", o(NV_blend_square), GL, 1999 },
- { "GL_NV_conditional_render", o(NV_conditional_render), GL, 2008 },
- { "GL_NV_depth_clamp", o(ARB_depth_clamp), GL, 2001 },
- { "GL_NV_fragment_program", o(NV_fragment_program), GL, 2001 },
- { "GL_NV_fragment_program_option", o(NV_fragment_program_option), GL, 2005 },
- { "GL_NV_light_max_exponent", o(NV_light_max_exponent), GL, 1999 },
- { "GL_NV_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2000 },
- { "GL_NV_point_sprite", o(NV_point_sprite), GL, 2001 },
- { "GL_NV_primitive_restart", o(NV_primitive_restart), GL, 2002 },
- { "GL_NV_texgen_reflection", o(NV_texgen_reflection), GL, 1999 },
- { "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 },
- { "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GL, 1999 },
- { "GL_NV_texture_rectangle", o(NV_texture_rectangle), GL, 2000 },
- { "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GL, 2001 },
- { "GL_NV_vertex_program", o(NV_vertex_program), GL, 2000 },
- { "GL_S3_s3tc", o(S3_s3tc), GL, 1999 },
- { "GL_SGIS_generate_mipmap", o(SGIS_generate_mipmap), GL, 1997 },
- { "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GL, 1997 },
- { "GL_SGIS_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 },
- { "GL_SGIS_texture_lod", o(SGIS_texture_lod), GL, 1997 },
- { "GL_SUN_multi_draw_arrays", o(EXT_multi_draw_arrays), GL, 1999 },
-
- { 0, 0, 0, 0 },
-};
-
-
-/**
- * Given an extension name, lookup up the corresponding member of struct
- * gl_extensions and return that member's offset (in bytes). If the name is
- * not found in the \c extension_table, return 0.
- *
- * \param name Name of extension.
- * \return Offset of member in struct gl_extensions.
- */
-static size_t
-name_to_offset(const char* name)
-{
- const struct extension *i;
-
- if (name == 0)
- return 0;
-
- for (i = extension_table; i->name != 0; ++i) {
- if (strcmp(name, i->name) == 0)
- return i->offset;
- }
-
- return 0;
-}
-
-
-/**
- * \brief Extensions enabled by default.
- *
- * These extensions are enabled by _mesa_init_extensions().
- *
- * XXX: Should these defaults also apply to GLES?
- */
-static const size_t default_extensions[] = {
- o(ARB_copy_buffer),
- o(ARB_draw_buffers),
- o(ARB_multisample),
- o(ARB_texture_compression),
- o(ARB_transpose_matrix),
- o(ARB_vertex_buffer_object),
- o(ARB_window_pos),
-
- o(EXT_abgr),
- o(EXT_bgra),
- o(EXT_compiled_vertex_array),
- o(EXT_copy_texture),
- o(EXT_draw_range_elements),
- o(EXT_multi_draw_arrays),
- o(EXT_packed_pixels),
- o(EXT_polygon_offset),
- o(EXT_rescale_normal),
- o(EXT_separate_specular_color),
- o(EXT_subtexture),
- o(EXT_texture),
- o(EXT_texture3D),
- o(EXT_texture_object),
- o(EXT_vertex_array),
-
- o(OES_read_format),
- o(OES_standard_derivatives),
-
- /* Vendor Extensions */
- o(APPLE_packed_pixels),
- o(IBM_multimode_draw_arrays),
- o(IBM_rasterpos_clip),
- o(NV_light_max_exponent),
- o(NV_texgen_reflection),
- o(SGIS_generate_mipmap),
- o(SGIS_texture_edge_clamp),
- o(SGIS_texture_lod),
-
- 0,
-};
-
-
-/**
- * Enable all extensions suitable for a software-only renderer.
- * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc.
- */
-void
-_mesa_enable_sw_extensions(struct gl_context *ctx)
-{
- /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/
- ctx->Extensions.ARB_depth_clamp = GL_TRUE;
- ctx->Extensions.ARB_depth_texture = GL_TRUE;
- /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/
- ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE;
- ctx->Extensions.ARB_draw_instanced = GL_TRUE;
- ctx->Extensions.ARB_explicit_attrib_location = GL_TRUE;
- ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE;
-#if FEATURE_ARB_fragment_program
- ctx->Extensions.ARB_fragment_program = GL_TRUE;
- ctx->Extensions.ARB_fragment_program_shadow = GL_TRUE;
-#endif
-#if FEATURE_ARB_fragment_shader
- ctx->Extensions.ARB_fragment_shader = GL_TRUE;
-#endif
-#if FEATURE_ARB_framebuffer_object
- ctx->Extensions.ARB_framebuffer_object = GL_TRUE;
-#endif
-#if FEATURE_ARB_geometry_shader4 && 0
- /* XXX re-enable when GLSL compiler again supports geometry shaders */
- ctx->Extensions.ARB_geometry_shader4 = GL_TRUE;
-#endif
- ctx->Extensions.ARB_half_float_pixel = GL_TRUE;
- ctx->Extensions.ARB_half_float_vertex = GL_TRUE;
- ctx->Extensions.ARB_map_buffer_range = GL_TRUE;
- ctx->Extensions.ARB_multitexture = GL_TRUE;
-#if FEATURE_queryobj
- ctx->Extensions.ARB_occlusion_query = GL_TRUE;
- ctx->Extensions.ARB_occlusion_query2 = GL_TRUE;
-#endif
- ctx->Extensions.ARB_point_sprite = GL_TRUE;
-#if FEATURE_ARB_shader_objects
- ctx->Extensions.ARB_shader_objects = GL_TRUE;
- ctx->Extensions.EXT_separate_shader_objects = GL_TRUE;
-#endif
-#if FEATURE_ARB_shading_language_100
- ctx->Extensions.ARB_shading_language_100 = GL_TRUE;
-#endif
- ctx->Extensions.ARB_shadow = GL_TRUE;
- ctx->Extensions.ARB_shadow_ambient = GL_TRUE;
- ctx->Extensions.ARB_texture_border_clamp = GL_TRUE;
- ctx->Extensions.ARB_texture_cube_map = GL_TRUE;
- ctx->Extensions.ARB_texture_env_combine = GL_TRUE;
- ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE;
- ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE;
- /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/
- ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE;
- ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
- ctx->Extensions.ARB_texture_rg = GL_TRUE;
- ctx->Extensions.ARB_texture_compression_rgtc = GL_TRUE;
- ctx->Extensions.ARB_vertex_array_object = GL_TRUE;
-#if FEATURE_ARB_vertex_program
- ctx->Extensions.ARB_vertex_program = GL_TRUE;
-#endif
-#if FEATURE_ARB_vertex_shader
- ctx->Extensions.ARB_vertex_shader = GL_TRUE;
-#endif
-#if FEATURE_ARB_vertex_buffer_object
- /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/
-#endif
-#if FEATURE_ARB_sync
- ctx->Extensions.ARB_sync = GL_TRUE;
-#endif
- ctx->Extensions.APPLE_vertex_array_object = GL_TRUE;
-#if FEATURE_APPLE_object_purgeable
- ctx->Extensions.APPLE_object_purgeable = GL_TRUE;
-#endif
- ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE;
-#if FEATURE_ATI_fragment_shader
- ctx->Extensions.ATI_fragment_shader = GL_TRUE;
-#endif
- ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE;
- ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE;
- ctx->Extensions.ATI_texture_mirror_once = GL_TRUE;
- ctx->Extensions.ATI_separate_stencil = GL_TRUE;
- ctx->Extensions.EXT_blend_color = GL_TRUE;
- ctx->Extensions.EXT_blend_equation_separate = GL_TRUE;
- ctx->Extensions.EXT_blend_func_separate = GL_TRUE;
- ctx->Extensions.EXT_blend_logic_op = GL_TRUE;
- ctx->Extensions.EXT_blend_minmax = GL_TRUE;
- ctx->Extensions.EXT_blend_subtract = GL_TRUE;
- ctx->Extensions.EXT_depth_bounds_test = GL_TRUE;
- ctx->Extensions.EXT_draw_buffers2 = GL_TRUE;
- ctx->Extensions.EXT_fog_coord = GL_TRUE;
-#if FEATURE_EXT_framebuffer_object
- ctx->Extensions.EXT_framebuffer_object = GL_TRUE;
-#endif
-#if FEATURE_EXT_framebuffer_blit
- ctx->Extensions.EXT_framebuffer_blit = GL_TRUE;
-#endif
-#if FEATURE_ARB_framebuffer_object
- ctx->Extensions.EXT_framebuffer_multisample = GL_TRUE;
-#endif
- /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/
- ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
- ctx->Extensions.EXT_paletted_texture = GL_TRUE;
-#if FEATURE_EXT_pixel_buffer_object
- ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
-#endif
- ctx->Extensions.EXT_point_parameters = GL_TRUE;
- ctx->Extensions.EXT_provoking_vertex = GL_TRUE;
- ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
- ctx->Extensions.EXT_secondary_color = GL_TRUE;
- ctx->Extensions.EXT_shared_texture_palette = GL_TRUE;
- ctx->Extensions.EXT_stencil_wrap = GL_TRUE;
- ctx->Extensions.EXT_stencil_two_side = GL_TRUE;
- ctx->Extensions.EXT_texture_array = GL_TRUE;
- ctx->Extensions.EXT_texture_compression_latc = GL_TRUE;
- ctx->Extensions.EXT_texture_env_add = GL_TRUE;
- ctx->Extensions.EXT_texture_env_combine = GL_TRUE;
- ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE;
- ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE;
- ctx->Extensions.EXT_texture_lod_bias = GL_TRUE;
- ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE;
-#if FEATURE_EXT_texture_sRGB
- ctx->Extensions.EXT_texture_sRGB = GL_TRUE;
- ctx->Extensions.EXT_texture_sRGB_decode = GL_TRUE;
-#endif
- ctx->Extensions.EXT_texture_swizzle = GL_TRUE;
-#if FEATURE_EXT_transform_feedback
- /*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/
-#endif
- ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE;
- /*ctx->Extensions.IBM_multimode_draw_arrays = GL_TRUE;*/
- ctx->Extensions.MESA_pack_invert = GL_TRUE;
- ctx->Extensions.MESA_resize_buffers = GL_TRUE;
- ctx->Extensions.MESA_texture_array = GL_TRUE;
- ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
- ctx->Extensions.NV_blend_square = GL_TRUE;
- ctx->Extensions.NV_conditional_render = GL_TRUE;
- /*ctx->Extensions.NV_light_max_exponent = GL_TRUE;*/
- ctx->Extensions.NV_point_sprite = GL_TRUE;
- ctx->Extensions.NV_texture_env_combine4 = GL_TRUE;
- ctx->Extensions.NV_texture_rectangle = GL_TRUE;
- /*ctx->Extensions.NV_texgen_reflection = GL_TRUE;*/
-#if FEATURE_NV_vertex_program
- ctx->Extensions.NV_vertex_program = GL_TRUE;
- ctx->Extensions.NV_vertex_program1_1 = GL_TRUE;
-#endif
-#if FEATURE_NV_fragment_program
- ctx->Extensions.NV_fragment_program = GL_TRUE;
-#endif
-#if FEATURE_NV_fragment_program && FEATURE_ARB_fragment_program
- ctx->Extensions.NV_fragment_program_option = GL_TRUE;
-#endif
- /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/
- ctx->Extensions.SGIS_texture_edge_clamp = GL_TRUE;
-#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
- ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE;
-#endif
-#if FEATURE_texture_fxt1
- _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1");
-#endif
-#if FEATURE_texture_s3tc
- if (ctx->Mesa_DXTn) {
- _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc");
- _mesa_enable_extension(ctx, "GL_S3_s3tc");
- }
-#endif
-}
-
-
-/**
- * Enable common EXT extensions in the ARB_imaging subset.
- */
-void
-_mesa_enable_imaging_extensions(struct gl_context *ctx)
-{
- ctx->Extensions.EXT_blend_color = GL_TRUE;
- ctx->Extensions.EXT_blend_logic_op = GL_TRUE;
- ctx->Extensions.EXT_blend_minmax = GL_TRUE;
- ctx->Extensions.EXT_blend_subtract = GL_TRUE;
-}
-
-
-
-/**
- * Enable all OpenGL 1.3 features and extensions.
- * A convenience function to be called by drivers.
- */
-void
-_mesa_enable_1_3_extensions(struct gl_context *ctx)
-{
- /*ctx->Extensions.ARB_multisample = GL_TRUE;*/
- ctx->Extensions.ARB_multitexture = GL_TRUE;
- ctx->Extensions.ARB_texture_border_clamp = GL_TRUE;
- /*ctx->Extensions.ARB_texture_compression = GL_TRUE;*/
- ctx->Extensions.ARB_texture_cube_map = GL_TRUE;
- ctx->Extensions.ARB_texture_env_combine = GL_TRUE;
- ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE;
- ctx->Extensions.EXT_texture_env_add = GL_TRUE;
- /*ctx->Extensions.ARB_transpose_matrix = GL_TRUE;*/
-}
-
-
-
-/**
- * Enable all OpenGL 1.4 features and extensions.
- * A convenience function to be called by drivers.
- */
-void
-_mesa_enable_1_4_extensions(struct gl_context *ctx)
-{
- ctx->Extensions.ARB_depth_texture = GL_TRUE;
- ctx->Extensions.ARB_shadow = GL_TRUE;
- ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE;
- ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE;
- ctx->Extensions.ARB_window_pos = GL_TRUE;
- ctx->Extensions.EXT_blend_color = GL_TRUE;
- ctx->Extensions.EXT_blend_func_separate = GL_TRUE;
- ctx->Extensions.EXT_blend_minmax = GL_TRUE;
- ctx->Extensions.EXT_blend_subtract = GL_TRUE;
- ctx->Extensions.EXT_fog_coord = GL_TRUE;
- /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/
- ctx->Extensions.EXT_point_parameters = GL_TRUE;
- ctx->Extensions.EXT_secondary_color = GL_TRUE;
- ctx->Extensions.EXT_stencil_wrap = GL_TRUE;
- ctx->Extensions.EXT_texture_lod_bias = GL_TRUE;
- /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/
-}
-
-
-/**
- * Enable all OpenGL 1.5 features and extensions.
- * A convenience function to be called by drivers.
- */
-void
-_mesa_enable_1_5_extensions(struct gl_context *ctx)
-{
- ctx->Extensions.ARB_occlusion_query = GL_TRUE;
- /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/
- ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
-}
-
-
-/**
- * Enable all OpenGL 2.0 features and extensions.
- * A convenience function to be called by drivers.
- */
-void
-_mesa_enable_2_0_extensions(struct gl_context *ctx)
-{
- /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/
-#if FEATURE_ARB_fragment_shader
- ctx->Extensions.ARB_fragment_shader = GL_TRUE;
-#endif
- ctx->Extensions.ARB_point_sprite = GL_TRUE;
- ctx->Extensions.EXT_blend_equation_separate = GL_TRUE;
- ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
-#if FEATURE_ARB_shader_objects
- ctx->Extensions.ARB_shader_objects = GL_TRUE;
-#endif
-#if FEATURE_ARB_shading_language_100
- ctx->Extensions.ARB_shading_language_100 = GL_TRUE;
-#endif
- ctx->Extensions.EXT_stencil_two_side = GL_TRUE;
-#if FEATURE_ARB_vertex_shader
- ctx->Extensions.ARB_vertex_shader = GL_TRUE;
-#endif
-}
-
-
-/**
- * Enable all OpenGL 2.1 features and extensions.
- * A convenience function to be called by drivers.
- */
-void
-_mesa_enable_2_1_extensions(struct gl_context *ctx)
-{
-#if FEATURE_EXT_pixel_buffer_object
- ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
-#endif
-#if FEATURE_EXT_texture_sRGB
- ctx->Extensions.EXT_texture_sRGB = GL_TRUE;
-#endif
-}
-
-
-/**
- * Either enable or disable the named extension.
- * \return GL_TRUE for success, GL_FALSE if invalid extension name
- */
-static GLboolean
-set_extension( struct gl_context *ctx, const char *name, GLboolean state )
-{
- size_t offset;
-
- if (ctx->Extensions.String) {
- /* The string was already queried - can't change it now! */
- _mesa_problem(ctx, "Trying to enable/disable extension after glGetString(GL_EXTENSIONS): %s", name);
- return GL_FALSE;
- }
-
- offset = name_to_offset(name);
- if (offset == 0) {
- _mesa_problem(ctx, "Trying to enable/disable unknown extension %s",
- name);
- return GL_FALSE;
- } else if (offset == o(dummy_true) && state == GL_FALSE) {
- _mesa_problem(ctx, "Trying to disable a permanently enabled extension: "
- "%s", name);
- return GL_FALSE;
- } else {
- GLboolean *base = (GLboolean *) &ctx->Extensions;
- base[offset] = state;
- return GL_TRUE;
- }
-}
-
-
-/**
- * Enable the named extension.
- * Typically called by drivers.
- */
-void
-_mesa_enable_extension( struct gl_context *ctx, const char *name )
-{
- if (!set_extension(ctx, name, GL_TRUE))
- _mesa_problem(ctx, "Trying to enable unknown extension: %s", name);
-}
-
-
-/**
- * Disable the named extension.
- * XXX is this really needed???
- */
-void
-_mesa_disable_extension( struct gl_context *ctx, const char *name )
-{
- if (!set_extension(ctx, name, GL_FALSE))
- _mesa_problem(ctx, "Trying to disable unknown extension: %s", name);
-}
-
-
-/**
- * Test if the named extension is enabled in this context.
- */
-GLboolean
-_mesa_extension_is_enabled( struct gl_context *ctx, const char *name )
-{
- size_t offset;
- GLboolean *base;
-
- if (name == 0)
- return GL_FALSE;
-
- offset = name_to_offset(name);
- if (offset == 0)
- return GL_FALSE;
- base = (GLboolean *) &ctx->Extensions;
- return base[offset];
-}
-
-
-/**
- * \brief Apply the \c MESA_EXTENSION_OVERRIDE environment variable.
- *
- * \c MESA_EXTENSION_OVERRIDE is a space-separated list of extensions to
- * enable or disable. The list is processed thus:
- * - Enable recognized extension names that are prefixed with '+'.
- * - Disable recognized extension names that are prefixed with '-'.
- * - Enable recognized extension names that are not prefixed.
- * - Collect unrecognized extension names in a new string.
- *
- * \return Space-separated list of unrecognized extension names (which must
- * be freed). Does not return \c NULL.
- */
-static char *
-get_extension_override( struct gl_context *ctx )
-{
- const char *env_const = _mesa_getenv("MESA_EXTENSION_OVERRIDE");
- char *env;
- char *ext;
- char *extra_exts;
- int len;
-
- if (env_const == NULL) {
- /* Return the empty string rather than NULL. This simplifies the logic
- * of client functions. */
- return calloc(1, sizeof(char));
- }
-
- /* extra_exts: List of unrecognized extensions. */
- extra_exts = calloc(strlen(env_const), sizeof(char));
-
- /* Copy env_const because strtok() is destructive. */
- env = strdup(env_const);
- for (ext = strtok(env, " "); ext != NULL; ext = strtok(NULL, " ")) {
- int enable;
- int recognized;
- switch (ext[0]) {
- case '+':
- enable = 1;
- ++ext;
- break;
- case '-':
- enable = 0;
- ++ext;
- break;
- default:
- enable = 1;
- break;
- }
- recognized = set_extension(ctx, ext, enable);
- if (!recognized) {
- strcat(extra_exts, ext);
- strcat(extra_exts, " ");
- }
- }
-
- /* Remove trailing space. */
- len = strlen(extra_exts);
- if (extra_exts[len - 1] == ' ')
- extra_exts[len - 1] = '\0';
-
- return extra_exts;
-}
-
-
-/**
- * \brief Initialize extension tables and enable default extensions.
- *
- * This should be called during context initialization.
- * Note: Sets gl_extensions.dummy_true to true.
- */
-void
-_mesa_init_extensions( struct gl_context *ctx )
-{
- GLboolean *base = (GLboolean *) &ctx->Extensions;
- GLboolean *sentinel = base + o(extension_sentinel);
- GLboolean *i;
- const size_t *j;
-
- /* First, turn all extensions off. */
- for (i = base; i != sentinel; ++i)
- *i = GL_FALSE;
-
- /* Then, selectively turn default extensions on. */
- ctx->Extensions.dummy_true = GL_TRUE;
- for (j = default_extensions; *j != 0; ++j)
- base[*j] = GL_TRUE;
-}
-
-
-typedef unsigned short extension_index;
-
-
-/**
- * Compare two entries of the extensions table. Sorts first by year,
- * then by name.
- *
- * Arguments are indices into extension_table.
- */
-static int
-extension_compare(const void *p1, const void *p2)
-{
- extension_index i1 = * (const extension_index *) p1;
- extension_index i2 = * (const extension_index *) p2;
- const struct extension *e1 = &extension_table[i1];
- const struct extension *e2 = &extension_table[i2];
- int res;
-
- res = (int)e1->year - (int)e2->year;
-
- if (res == 0) {
- res = strcmp(e1->name, e2->name);
- }
-
- return res;
-}
-
-
-/**
- * Construct the GL_EXTENSIONS string. Called the first time that
- * glGetString(GL_EXTENSIONS) is called.
- */
-GLubyte*
-_mesa_make_extension_string(struct gl_context *ctx)
-{
- /* The extension string. */
- char *exts = 0;
- /* Length of extension string. */
- size_t length = 0;
- /* Number of extensions */
- unsigned count;
- /* Indices of the extensions sorted by year */
- extension_index *extension_indices;
- /* String of extra extensions. */
- char *extra_extensions = get_extension_override(ctx);
- GLboolean *base = (GLboolean *) &ctx->Extensions;
- const struct extension *i;
- unsigned j;
- unsigned maxYear = ~0;
-
- /* Check if the MESA_EXTENSION_MAX_YEAR env var is set */
- {
- const char *env = getenv("MESA_EXTENSION_MAX_YEAR");
- if (env) {
- maxYear = atoi(env);
- _mesa_debug(ctx, "Note: limiting GL extensions to %u or earlier\n",
- maxYear);
- }
- }
-
- /* Compute length of the extension string. */
- count = 0;
- for (i = extension_table; i->name != 0; ++i) {
- if (base[i->offset] &&
- i->year <= maxYear &&
- (i->api_set & (1 << ctx->API))) {
- length += strlen(i->name) + 1; /* +1 for space */
- ++count;
- }
- }
- if (extra_extensions != NULL)
- length += 1 + strlen(extra_extensions); /* +1 for space */
-
- exts = (char *) calloc(length + 1, sizeof(char));
- if (exts == NULL) {
- free(extra_extensions);
- return NULL;
- }
-
- extension_indices = malloc(count * sizeof(extension_index));
- if (extension_indices == NULL) {
- free(exts);
- free(extra_extensions);
- return NULL;
- }
-
- /* Sort extensions in chronological order because certain old applications (e.g.,
- * Quake3 demo) store the extension list in a static size buffer so chronologically
- * order ensure that the extensions that such applications expect will fit into
- * that buffer.
- */
- j = 0;
- for (i = extension_table; i->name != 0; ++i) {
- if (base[i->offset] &&
- i->year <= maxYear &&
- (i->api_set & (1 << ctx->API))) {
- extension_indices[j++] = i - extension_table;
- }
- }
- assert(j == count);
- qsort(extension_indices, count, sizeof *extension_indices, extension_compare);
-
- /* Build the extension string.*/
- for (j = 0; j < count; ++j) {
- i = &extension_table[extension_indices[j]];
- assert(base[i->offset] && (i->api_set & (1 << ctx->API)));
- strcat(exts, i->name);
- strcat(exts, " ");
- }
- free(extension_indices);
- if (extra_extensions != 0) {
- strcat(exts, extra_extensions);
- free(extra_extensions);
- }
-
- return (GLubyte *) exts;
-}
-
-/**
- * Return number of enabled extensions.
- */
-GLuint
-_mesa_get_extension_count(struct gl_context *ctx)
-{
- GLboolean *base;
- const struct extension *i;
-
- /* only count once */
- if (ctx->Extensions.Count != 0)
- return ctx->Extensions.Count;
-
- base = (GLboolean *) &ctx->Extensions;
- for (i = extension_table; i->name != 0; ++i) {
- if (base[i->offset]) {
- ctx->Extensions.Count++;
- }
- }
- return ctx->Extensions.Count;
-}
-
-/**
- * Return name of i-th enabled extension
- */
-const GLubyte *
-_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index)
-{
- const GLboolean *base;
- size_t n;
- const struct extension *i;
-
- if (index < 0)
- return NULL;
-
- base = (GLboolean*) &ctx->Extensions;
- n = 0;
- for (i = extension_table; i->name != 0; ++i) {
- if (n == index && base[i->offset]) {
- return (GLubyte*) i->name;
- } else if (base[i->offset]) {
- ++n;
- }
- }
-
- return NULL;
-}
+/* + * Mesa 3-D graphics library + * Version: 7.6 + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +/** + * \file + * \brief Extension handling + */ + + +#include "glheader.h" +#include "imports.h" +#include "context.h" +#include "extensions.h" +#include "mfeatures.h" +#include "mtypes.h" + +enum { + DISABLE = 0, + GL = 1 << API_OPENGL, + ES1 = 1 << API_OPENGLES, + ES2 = 1 << API_OPENGLES2, +}; + +/** + * \brief An element of the \c extension_table. + */ +struct extension { + /** Name of extension, such as "GL_ARB_depth_clamp". */ + const char *name; + + /** Offset (in bytes) of the corresponding member in struct gl_extensions. */ + size_t offset; + + /** Set of API's in which the extension exists, as a bitset. */ + uint8_t api_set; + + /** Year the extension was proposed or approved. Used to sort the + * extension string chronologically. */ + uint16_t year; +}; + + +/** + * Given a member \c x of struct gl_extensions, return offset of + * \c x in bytes. + */ +#define o(x) offsetof(struct gl_extensions, x) + + +/** + * \brief Table of supported OpenGL extensions for all API's. + * + * Note: The GL_MESAX_* extensions are placeholders for future ARB extensions. + */ +static const struct extension extension_table[] = { + /* ARB Extensions */ + { "GL_ARB_ES2_compatibility", o(ARB_ES2_compatibility), GL, 2009 }, + { "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL, 2009 }, + { "GL_ARB_color_buffer_float", o(ARB_color_buffer_float), GL, 2004 }, + { "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL, 2008 }, + { "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL, 2008 }, + { "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 }, + { "GL_ARB_depth_texture", o(ARB_depth_texture), GL, 2001 }, + { "GL_ARB_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, + { "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 }, + { "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 }, + { "GL_ARB_draw_instanced", o(ARB_draw_instanced), GL, 2008 }, + { "GL_ARB_explicit_attrib_location", o(ARB_explicit_attrib_location), GL, 2009 }, + { "GL_ARB_fragment_coord_conventions", o(ARB_fragment_coord_conventions), GL, 2009 }, + { "GL_ARB_fragment_program", o(ARB_fragment_program), GL, 2002 }, + { "GL_ARB_fragment_program_shadow", o(ARB_fragment_program_shadow), GL, 2003 }, + { "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL, 2002 }, + { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL, 2005 }, + { "GL_ARB_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, + { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 }, + { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 }, + { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 }, + { "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL, 2008 }, + { "GL_ARB_multisample", o(ARB_multisample), GL, 1994 }, + { "GL_ARB_multitexture", o(ARB_multitexture), GL, 1998 }, + { "GL_ARB_occlusion_query2", o(ARB_occlusion_query2), GL, 2003 }, + { "GL_ARB_occlusion_query", o(ARB_occlusion_query), GL, 2001 }, + { "GL_ARB_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, + { "GL_ARB_point_parameters", o(EXT_point_parameters), GL, 1997 }, + { "GL_ARB_point_sprite", o(ARB_point_sprite), GL, 2003 }, + { "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, + { "GL_ARB_robustness", o(dummy_true), GL, 2010 }, + { "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL, 2009 }, + { "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 }, + { "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 }, + { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, + { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GL, 2003 }, + { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL, 2001 }, + { "GL_ARB_shadow", o(ARB_shadow), GL, 2001 }, + { "GL_ARB_sync", o(ARB_sync), GL, 2003 }, + { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GL, 2000 }, + { "GL_ARB_texture_buffer_object", o(ARB_texture_buffer_object), GL, 2008 }, + { "GL_ARB_texture_compression", o(ARB_texture_compression), GL, 2000 }, + { "GL_ARB_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, + { "GL_ARB_texture_cube_map", o(ARB_texture_cube_map), GL, 1999 }, + { "GL_ARB_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, + { "GL_ARB_texture_env_combine", o(ARB_texture_env_combine), GL, 2001 }, + { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), GL, 2001 }, + { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), GL, 2001 }, + { "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 }, + { "GL_ARB_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 2001 }, + { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 }, + { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 }, + { "GL_ARB_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, + { "GL_ARB_texture_rgb10_a2ui", o(ARB_texture_rgb10_a2ui), GL, 2009 }, + { "GL_ARB_texture_rg", o(ARB_texture_rg), GL, 2008 }, + { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, + { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL, 2010 }, + { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), GL, 1999 }, + { "GL_ARB_uniform_buffer_object", o(ARB_uniform_buffer_object), GL, 2002 }, + { "GL_ARB_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, + { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), GL, 2006 }, + { "GL_ARB_vertex_buffer_object", o(ARB_vertex_buffer_object), GL, 2003 }, + { "GL_ARB_vertex_program", o(ARB_vertex_program), GL, 2002 }, + { "GL_ARB_vertex_shader", o(ARB_vertex_shader), GL, 2002 }, + { "GL_ARB_vertex_type_2_10_10_10_rev", o(ARB_vertex_type_2_10_10_10_rev), GL, 2009 }, + { "GL_ARB_window_pos", o(ARB_window_pos), GL, 2001 }, + + /* EXT extensions */ + { "GL_EXT_abgr", o(EXT_abgr), GL, 1995 }, + { "GL_EXT_bgra", o(EXT_bgra), GL, 1995 }, + { "GL_EXT_blend_color", o(EXT_blend_color), GL, 1995 }, + { "GL_EXT_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, + { "GL_EXT_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, + { "GL_EXT_blend_logic_op", o(EXT_blend_logic_op), GL, 1995 }, + { "GL_EXT_blend_minmax", o(EXT_blend_minmax), GL | ES1 | ES2, 1995 }, + { "GL_EXT_blend_subtract", o(EXT_blend_subtract), GL, 1995 }, + { "GL_EXT_clip_volume_hint", o(EXT_clip_volume_hint), GL, 1996 }, + { "GL_EXT_compiled_vertex_array", o(EXT_compiled_vertex_array), GL, 1996 }, + { "GL_EXT_copy_texture", o(EXT_copy_texture), GL, 1995 }, + { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL, 2002 }, + { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL, 2006 }, + { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL, 2006 }, + { "GL_EXT_draw_range_elements", o(EXT_draw_range_elements), GL, 1997 }, + { "GL_EXT_fog_coord", o(EXT_fog_coord), GL, 1999 }, + { "GL_EXT_framebuffer_blit", o(EXT_framebuffer_blit), GL, 2005 }, + { "GL_EXT_framebuffer_multisample", o(EXT_framebuffer_multisample), GL, 2005 }, + { "GL_EXT_framebuffer_object", o(EXT_framebuffer_object), GL, 2000 }, + { "GL_EXT_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, + { "GL_EXT_gpu_program_parameters", o(EXT_gpu_program_parameters), GL, 2006 }, + { "GL_EXT_gpu_shader4", o(EXT_gpu_shader4), GL, 2006 }, + { "GL_EXT_multi_draw_arrays", o(EXT_multi_draw_arrays), GL | ES1 | ES2, 1999 }, + { "GL_EXT_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2005 }, + { "GL_EXT_packed_float", o(EXT_packed_float), GL, 2004 }, + { "GL_EXT_packed_pixels", o(EXT_packed_pixels), GL, 1997 }, + { "GL_EXT_paletted_texture", o(EXT_paletted_texture), GL, 1995 }, + { "GL_EXT_pixel_buffer_object", o(EXT_pixel_buffer_object), GL, 2004 }, + { "GL_EXT_point_parameters", o(EXT_point_parameters), GL, 1997 }, + { "GL_EXT_polygon_offset", o(EXT_polygon_offset), GL, 1995 }, + { "GL_EXT_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 }, + { "GL_EXT_rescale_normal", o(EXT_rescale_normal), GL, 1997 }, + { "GL_EXT_secondary_color", o(EXT_secondary_color), GL, 1999 }, + { "GL_EXT_separate_shader_objects", o(EXT_separate_shader_objects), GL, 2008 }, + { "GL_EXT_separate_specular_color", o(EXT_separate_specular_color), GL, 1997 }, + { "GL_EXT_shadow_funcs", o(EXT_shadow_funcs), GL, 2002 }, + { "GL_EXT_shared_texture_palette", o(EXT_shared_texture_palette), GL, 2000 }, + { "GL_EXT_stencil_two_side", o(EXT_stencil_two_side), GL, 2001 }, + { "GL_EXT_stencil_wrap", o(EXT_stencil_wrap), GL, 2002 }, + { "GL_EXT_subtexture", o(EXT_subtexture), GL, 1995 }, + { "GL_EXT_texture3D", o(EXT_texture3D), GL, 1996 }, + { "GL_EXT_texture_array", o(EXT_texture_array), GL, 2006 }, + { "GL_EXT_texture_compression_dxt1", o(EXT_texture_compression_s3tc), GL | ES1 | ES2, 2004 }, + { "GL_EXT_texture_compression_latc", o(EXT_texture_compression_latc), GL, 2006 }, + { "GL_EXT_texture_compression_rgtc", o(ARB_texture_compression_rgtc), GL, 2004 }, + { "GL_EXT_texture_compression_s3tc", o(EXT_texture_compression_s3tc), GL, 2000 }, + { "GL_EXT_texture_cube_map", o(ARB_texture_cube_map), GL, 2001 }, + { "GL_EXT_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, + { "GL_EXT_texture_env_add", o(EXT_texture_env_add), GL, 1999 }, + { "GL_EXT_texture_env_combine", o(EXT_texture_env_combine), GL, 2006 }, + { "GL_EXT_texture_env_dot3", o(EXT_texture_env_dot3), GL, 2000 }, + { "GL_EXT_texture_filter_anisotropic", o(EXT_texture_filter_anisotropic), GL | ES1 | ES2, 1999 }, + { "GL_EXT_texture_format_BGRA8888", o(EXT_texture_format_BGRA8888), ES1 | ES2, 2009 }, + { "GL_EXT_texture_integer", o(EXT_texture_integer), GL, 2006 }, + { "GL_EXT_texture_lod_bias", o(EXT_texture_lod_bias), GL | ES1, 1999 }, + { "GL_EXT_texture_mirror_clamp", o(EXT_texture_mirror_clamp), GL, 2004 }, + { "GL_EXT_texture_object", o(EXT_texture_object), GL, 1995 }, + { "GL_EXT_texture", o(EXT_texture), GL, 1996 }, + { "GL_EXT_texture_rectangle", o(NV_texture_rectangle), GL, 2004 }, + { "GL_EXT_texture_shared_exponent", o(EXT_texture_shared_exponent), GL, 2004 }, + { "GL_EXT_texture_snorm", o(EXT_texture_snorm), GL, 2009 }, + { "GL_EXT_texture_sRGB", o(EXT_texture_sRGB), GL, 2004 }, + { "GL_EXT_texture_sRGB_decode", o(EXT_texture_sRGB_decode), GL, 2006 }, + { "GL_EXT_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 }, + { "GL_EXT_texture_type_2_10_10_10_REV", o(dummy_true), ES2, 2008 }, + { "GL_EXT_timer_query", o(EXT_timer_query), GL, 2006 }, + { "GL_EXT_transform_feedback", o(EXT_transform_feedback), GL, 2011 }, + { "GL_EXT_vertex_array_bgra", o(EXT_vertex_array_bgra), GL, 2008 }, + { "GL_EXT_vertex_array", o(EXT_vertex_array), GL, 1995 }, + { "GL_EXT_vertex_array_set", o(EXT_vertex_array_set), GL, 1997 }, + + /* OES extensions */ + { "GL_OES_blend_equation_separate", o(EXT_blend_equation_separate), ES1, 2009 }, + { "GL_OES_blend_func_separate", o(EXT_blend_func_separate), ES1, 2009 }, + { "GL_OES_blend_subtract", o(EXT_blend_subtract), ES1, 2009 }, + { "GL_OES_byte_coordinates", o(dummy_true), ES1, 2002 }, + { "GL_OES_compressed_paletted_texture", o(dummy_false), DISABLE, 2003 }, + { "GL_OES_depth24", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_depth32", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_depth_texture", o(ARB_depth_texture), ES2, 2006 }, +#if FEATURE_OES_draw_texture + { "GL_OES_draw_texture", o(OES_draw_texture), ES1 | ES2, 2004 }, +#endif +#if FEATURE_OES_EGL_image + /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */ + { "GL_OES_EGL_image", o(OES_EGL_image), GL | ES1 | ES2, 2006 }, +#endif + { "GL_OES_element_index_uint", o(EXT_vertex_array), ES1 | ES2, 2005 }, + { "GL_OES_fbo_render_mipmap", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_fixed_point", o(dummy_true), ES1, 2002 }, + { "GL_OES_framebuffer_object", o(EXT_framebuffer_object), ES1, 2005 }, + { "GL_OES_mapbuffer", o(ARB_vertex_buffer_object), ES1 | ES2, 2005 }, + { "GL_OES_matrix_get", o(dummy_true), ES1, 2004 }, + { "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2, 2007 }, + { "GL_OES_point_size_array", o(dummy_true), ES1, 2004 }, + { "GL_OES_point_sprite", o(ARB_point_sprite), ES1, 2004 }, + { "GL_OES_query_matrix", o(dummy_true), ES1, 2003 }, + { "GL_OES_read_format", o(OES_read_format), GL | ES1, 2003 }, + { "GL_OES_rgb8_rgba8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_single_precision", o(dummy_true), ES1, 2003 }, + { "GL_OES_standard_derivatives", o(OES_standard_derivatives), ES2, 2005 }, + { "GL_OES_stencil1", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_stencil4", o(dummy_false), DISABLE, 2005 }, + { "GL_OES_stencil8", o(EXT_framebuffer_object), ES1 | ES2, 2005 }, + { "GL_OES_stencil_wrap", o(EXT_stencil_wrap), ES1, 2002 }, + { "GL_OES_texture_3D", o(EXT_texture3D), ES2, 2005 }, + { "GL_OES_texture_cube_map", o(ARB_texture_cube_map), ES1, 2007 }, + { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 }, + { "GL_OES_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), ES1, 2005 }, + { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 }, + + /* Vendor extensions */ + { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 }, + { "GL_AMD_conservative_depth", o(AMD_conservative_depth), GL, 2009 }, + { "GL_AMD_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 }, + { "GL_AMD_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, + { "GL_APPLE_client_storage", o(APPLE_client_storage), GL, 2002 }, + { "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL, 2006 }, + { "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL, 2002 }, + { "GL_APPLE_vertex_array_object", o(APPLE_vertex_array_object), GL, 2002 }, + { "GL_ATI_blend_equation_separate", o(EXT_blend_equation_separate), GL, 2003 }, + { "GL_ATI_draw_buffers", o(ARB_draw_buffers), GL, 2002 }, + { "GL_ATI_envmap_bumpmap", o(ATI_envmap_bumpmap), GL, 2001 }, + { "GL_ATI_fragment_shader", o(ATI_fragment_shader), GL, 2001 }, + { "GL_ATI_separate_stencil", o(ATI_separate_stencil), GL, 2006 }, + { "GL_ATI_texture_compression_3dc", o(ATI_texture_compression_3dc), GL, 2004 }, + { "GL_ATI_texture_env_combine3", o(ATI_texture_env_combine3), GL, 2002 }, + { "GL_ATI_texture_float", o(ARB_texture_float), GL, 2002 }, + { "GL_ATI_texture_mirror_once", o(ATI_texture_mirror_once), GL, 2006 }, + { "GL_IBM_multimode_draw_arrays", o(IBM_multimode_draw_arrays), GL, 1998 }, + { "GL_IBM_rasterpos_clip", o(IBM_rasterpos_clip), GL, 1996 }, + { "GL_IBM_texture_mirrored_repeat", o(ARB_texture_mirrored_repeat), GL, 1998 }, + { "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GL, 1999 }, + { "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 }, + { "GL_MESA_resize_buffers", o(MESA_resize_buffers), GL, 1999 }, + { "GL_MESA_texture_array", o(MESA_texture_array), GL, 2007 }, + { "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 }, + { "GL_MESA_window_pos", o(ARB_window_pos), GL, 2000 }, + { "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 }, + { "GL_NV_blend_square", o(NV_blend_square), GL, 1999 }, + { "GL_NV_conditional_render", o(NV_conditional_render), GL, 2008 }, + { "GL_NV_depth_clamp", o(ARB_depth_clamp), GL, 2001 }, + { "GL_NV_fragment_program", o(NV_fragment_program), GL, 2001 }, + { "GL_NV_fragment_program_option", o(NV_fragment_program_option), GL, 2005 }, + { "GL_NV_light_max_exponent", o(NV_light_max_exponent), GL, 1999 }, + { "GL_NV_packed_depth_stencil", o(EXT_packed_depth_stencil), GL, 2000 }, + { "GL_NV_point_sprite", o(NV_point_sprite), GL, 2001 }, + { "GL_NV_primitive_restart", o(NV_primitive_restart), GL, 2002 }, + { "GL_NV_texgen_reflection", o(NV_texgen_reflection), GL, 1999 }, + { "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 }, + { "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GL, 1999 }, + { "GL_NV_texture_rectangle", o(NV_texture_rectangle), GL, 2000 }, + { "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GL, 2001 }, + { "GL_NV_vertex_program", o(NV_vertex_program), GL, 2000 }, + { "GL_S3_s3tc", o(S3_s3tc), GL, 1999 }, + { "GL_SGIS_generate_mipmap", o(SGIS_generate_mipmap), GL, 1997 }, + { "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GL, 1997 }, + { "GL_SGIS_texture_edge_clamp", o(SGIS_texture_edge_clamp), GL, 1997 }, + { "GL_SGIS_texture_lod", o(SGIS_texture_lod), GL, 1997 }, + { "GL_SUN_multi_draw_arrays", o(EXT_multi_draw_arrays), GL, 1999 }, + + { 0, 0, 0, 0 }, +}; + + +/** + * Given an extension name, lookup up the corresponding member of struct + * gl_extensions and return that member's offset (in bytes). If the name is + * not found in the \c extension_table, return 0. + * + * \param name Name of extension. + * \return Offset of member in struct gl_extensions. + */ +static size_t +name_to_offset(const char* name) +{ + const struct extension *i; + + if (name == 0) + return 0; + + for (i = extension_table; i->name != 0; ++i) { + if (strcmp(name, i->name) == 0) + return i->offset; + } + + return 0; +} + + +/** + * \brief Extensions enabled by default. + * + * These extensions are enabled by _mesa_init_extensions(). + * + * XXX: Should these defaults also apply to GLES? + */ +static const size_t default_extensions[] = { + o(ARB_copy_buffer), + o(ARB_draw_buffers), + o(ARB_multisample), + o(ARB_texture_compression), + o(ARB_transpose_matrix), + o(ARB_vertex_buffer_object), + o(ARB_window_pos), + + o(EXT_abgr), + o(EXT_bgra), + o(EXT_compiled_vertex_array), + o(EXT_copy_texture), + o(EXT_draw_range_elements), + o(EXT_multi_draw_arrays), + o(EXT_packed_pixels), + o(EXT_polygon_offset), + o(EXT_rescale_normal), + o(EXT_separate_specular_color), + o(EXT_subtexture), + o(EXT_texture), + o(EXT_texture3D), + o(EXT_texture_object), + o(EXT_vertex_array), + + o(OES_read_format), + o(OES_standard_derivatives), + + /* Vendor Extensions */ + o(APPLE_packed_pixels), + o(IBM_multimode_draw_arrays), + o(IBM_rasterpos_clip), + o(NV_light_max_exponent), + o(NV_texgen_reflection), + o(SGIS_generate_mipmap), + o(SGIS_texture_edge_clamp), + o(SGIS_texture_lod), + + 0, +}; + + +/** + * Enable all extensions suitable for a software-only renderer. + * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc. + */ +void +_mesa_enable_sw_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/ + ctx->Extensions.ARB_depth_clamp = GL_TRUE; + ctx->Extensions.ARB_depth_texture = GL_TRUE; + /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ + ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE; + ctx->Extensions.ARB_draw_instanced = GL_TRUE; + ctx->Extensions.ARB_explicit_attrib_location = GL_TRUE; + ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE; +#if FEATURE_ARB_fragment_program + ctx->Extensions.ARB_fragment_program = GL_TRUE; + ctx->Extensions.ARB_fragment_program_shadow = GL_TRUE; +#endif +#if FEATURE_ARB_fragment_shader + ctx->Extensions.ARB_fragment_shader = GL_TRUE; +#endif +#if FEATURE_ARB_framebuffer_object + ctx->Extensions.ARB_framebuffer_object = GL_TRUE; +#endif +#if FEATURE_ARB_geometry_shader4 && 0 + /* XXX re-enable when GLSL compiler again supports geometry shaders */ + ctx->Extensions.ARB_geometry_shader4 = GL_TRUE; +#endif + ctx->Extensions.ARB_half_float_pixel = GL_TRUE; + ctx->Extensions.ARB_half_float_vertex = GL_TRUE; + ctx->Extensions.ARB_map_buffer_range = GL_TRUE; + ctx->Extensions.ARB_multitexture = GL_TRUE; +#if FEATURE_queryobj + ctx->Extensions.ARB_occlusion_query = GL_TRUE; + ctx->Extensions.ARB_occlusion_query2 = GL_TRUE; +#endif + ctx->Extensions.ARB_point_sprite = GL_TRUE; +#if FEATURE_ARB_shader_objects + ctx->Extensions.ARB_shader_objects = GL_TRUE; + ctx->Extensions.EXT_separate_shader_objects = GL_TRUE; +#endif +#if FEATURE_ARB_shading_language_100 + ctx->Extensions.ARB_shading_language_100 = GL_TRUE; +#endif + ctx->Extensions.ARB_shadow = GL_TRUE; + ctx->Extensions.ARB_shadow_ambient = GL_TRUE; + ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; + ctx->Extensions.ARB_texture_cube_map = GL_TRUE; + ctx->Extensions.ARB_texture_env_combine = GL_TRUE; + ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; + ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; + /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/ + ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; + ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; + ctx->Extensions.ARB_texture_rg = GL_TRUE; + ctx->Extensions.ARB_texture_compression_rgtc = GL_TRUE; + ctx->Extensions.ARB_vertex_array_object = GL_TRUE; +#if FEATURE_ARB_vertex_program + ctx->Extensions.ARB_vertex_program = GL_TRUE; +#endif +#if FEATURE_ARB_vertex_shader + ctx->Extensions.ARB_vertex_shader = GL_TRUE; +#endif +#if FEATURE_ARB_vertex_buffer_object + /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ +#endif +#if FEATURE_ARB_sync + ctx->Extensions.ARB_sync = GL_TRUE; +#endif + ctx->Extensions.APPLE_vertex_array_object = GL_TRUE; +#if FEATURE_APPLE_object_purgeable + ctx->Extensions.APPLE_object_purgeable = GL_TRUE; +#endif + ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE; +#if FEATURE_ATI_fragment_shader + ctx->Extensions.ATI_fragment_shader = GL_TRUE; +#endif + ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE; + ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE; + ctx->Extensions.ATI_texture_mirror_once = GL_TRUE; + ctx->Extensions.ATI_separate_stencil = GL_TRUE; + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; + ctx->Extensions.EXT_blend_func_separate = GL_TRUE; + ctx->Extensions.EXT_blend_logic_op = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; + ctx->Extensions.EXT_depth_bounds_test = GL_TRUE; + ctx->Extensions.EXT_draw_buffers2 = GL_TRUE; + ctx->Extensions.EXT_fog_coord = GL_TRUE; +#if FEATURE_EXT_framebuffer_object + ctx->Extensions.EXT_framebuffer_object = GL_TRUE; +#endif +#if FEATURE_EXT_framebuffer_blit + ctx->Extensions.EXT_framebuffer_blit = GL_TRUE; +#endif +#if FEATURE_ARB_framebuffer_object + ctx->Extensions.EXT_framebuffer_multisample = GL_TRUE; +#endif + /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ + ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE; + ctx->Extensions.EXT_paletted_texture = GL_TRUE; +#if FEATURE_EXT_pixel_buffer_object + ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; +#endif + ctx->Extensions.EXT_point_parameters = GL_TRUE; + ctx->Extensions.EXT_provoking_vertex = GL_TRUE; + ctx->Extensions.EXT_shadow_funcs = GL_TRUE; + ctx->Extensions.EXT_secondary_color = GL_TRUE; + ctx->Extensions.EXT_shared_texture_palette = GL_TRUE; + ctx->Extensions.EXT_stencil_wrap = GL_TRUE; + ctx->Extensions.EXT_stencil_two_side = GL_TRUE; + ctx->Extensions.EXT_texture_array = GL_TRUE; + ctx->Extensions.EXT_texture_compression_latc = GL_TRUE; + ctx->Extensions.EXT_texture_env_add = GL_TRUE; + ctx->Extensions.EXT_texture_env_combine = GL_TRUE; + ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE; + ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE; + ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; + ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE; +#if FEATURE_EXT_texture_sRGB + ctx->Extensions.EXT_texture_sRGB = GL_TRUE; + ctx->Extensions.EXT_texture_sRGB_decode = GL_TRUE; +#endif + ctx->Extensions.EXT_texture_swizzle = GL_TRUE; +#if FEATURE_EXT_transform_feedback + /*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/ +#endif + ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE; + /*ctx->Extensions.IBM_multimode_draw_arrays = GL_TRUE;*/ + ctx->Extensions.MESA_pack_invert = GL_TRUE; + ctx->Extensions.MESA_resize_buffers = GL_TRUE; + ctx->Extensions.MESA_texture_array = GL_TRUE; + ctx->Extensions.MESA_ycbcr_texture = GL_TRUE; + ctx->Extensions.NV_blend_square = GL_TRUE; + ctx->Extensions.NV_conditional_render = GL_TRUE; + /*ctx->Extensions.NV_light_max_exponent = GL_TRUE;*/ + ctx->Extensions.NV_point_sprite = GL_TRUE; + ctx->Extensions.NV_texture_env_combine4 = GL_TRUE; + ctx->Extensions.NV_texture_rectangle = GL_TRUE; + /*ctx->Extensions.NV_texgen_reflection = GL_TRUE;*/ +#if FEATURE_NV_vertex_program + ctx->Extensions.NV_vertex_program = GL_TRUE; + ctx->Extensions.NV_vertex_program1_1 = GL_TRUE; +#endif +#if FEATURE_NV_fragment_program + ctx->Extensions.NV_fragment_program = GL_TRUE; +#endif +#if FEATURE_NV_fragment_program && FEATURE_ARB_fragment_program + ctx->Extensions.NV_fragment_program_option = GL_TRUE; +#endif + /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ + ctx->Extensions.SGIS_texture_edge_clamp = GL_TRUE; +#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program + ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE; +#endif +#if FEATURE_texture_fxt1 + _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1"); +#endif +#if FEATURE_texture_s3tc + if (ctx->Mesa_DXTn) { + _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc"); + _mesa_enable_extension(ctx, "GL_S3_s3tc"); + } +#endif +} + + +/** + * Enable common EXT extensions in the ARB_imaging subset. + */ +void +_mesa_enable_imaging_extensions(struct gl_context *ctx) +{ + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_logic_op = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; +} + + + +/** + * Enable all OpenGL 1.3 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_3_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_multisample = GL_TRUE;*/ + ctx->Extensions.ARB_multitexture = GL_TRUE; + ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; + /*ctx->Extensions.ARB_texture_compression = GL_TRUE;*/ + ctx->Extensions.ARB_texture_cube_map = GL_TRUE; + ctx->Extensions.ARB_texture_env_combine = GL_TRUE; + ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; + ctx->Extensions.EXT_texture_env_add = GL_TRUE; + /*ctx->Extensions.ARB_transpose_matrix = GL_TRUE;*/ +} + + + +/** + * Enable all OpenGL 1.4 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_4_extensions(struct gl_context *ctx) +{ + ctx->Extensions.ARB_depth_texture = GL_TRUE; + ctx->Extensions.ARB_shadow = GL_TRUE; + ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; + ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; + ctx->Extensions.ARB_window_pos = GL_TRUE; + ctx->Extensions.EXT_blend_color = GL_TRUE; + ctx->Extensions.EXT_blend_func_separate = GL_TRUE; + ctx->Extensions.EXT_blend_minmax = GL_TRUE; + ctx->Extensions.EXT_blend_subtract = GL_TRUE; + ctx->Extensions.EXT_fog_coord = GL_TRUE; + /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/ + ctx->Extensions.EXT_point_parameters = GL_TRUE; + ctx->Extensions.EXT_secondary_color = GL_TRUE; + ctx->Extensions.EXT_stencil_wrap = GL_TRUE; + ctx->Extensions.EXT_texture_lod_bias = GL_TRUE; + /*ctx->Extensions.SGIS_generate_mipmap = GL_TRUE;*/ +} + + +/** + * Enable all OpenGL 1.5 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_1_5_extensions(struct gl_context *ctx) +{ + ctx->Extensions.ARB_occlusion_query = GL_TRUE; + /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ + ctx->Extensions.EXT_shadow_funcs = GL_TRUE; +} + + +/** + * Enable all OpenGL 2.0 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_2_0_extensions(struct gl_context *ctx) +{ + /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ +#if FEATURE_ARB_fragment_shader + ctx->Extensions.ARB_fragment_shader = GL_TRUE; +#endif + ctx->Extensions.ARB_point_sprite = GL_TRUE; + ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; + ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; +#if FEATURE_ARB_shader_objects + ctx->Extensions.ARB_shader_objects = GL_TRUE; +#endif +#if FEATURE_ARB_shading_language_100 + ctx->Extensions.ARB_shading_language_100 = GL_TRUE; +#endif + ctx->Extensions.EXT_stencil_two_side = GL_TRUE; +#if FEATURE_ARB_vertex_shader + ctx->Extensions.ARB_vertex_shader = GL_TRUE; +#endif +} + + +/** + * Enable all OpenGL 2.1 features and extensions. + * A convenience function to be called by drivers. + */ +void +_mesa_enable_2_1_extensions(struct gl_context *ctx) +{ +#if FEATURE_EXT_pixel_buffer_object + ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; +#endif +#if FEATURE_EXT_texture_sRGB + ctx->Extensions.EXT_texture_sRGB = GL_TRUE; +#endif +} + + +/** + * Either enable or disable the named extension. + * \return GL_TRUE for success, GL_FALSE if invalid extension name + */ +static GLboolean +set_extension( struct gl_context *ctx, const char *name, GLboolean state ) +{ + size_t offset; + + if (ctx->Extensions.String) { + /* The string was already queried - can't change it now! */ + _mesa_problem(ctx, "Trying to enable/disable extension after glGetString(GL_EXTENSIONS): %s", name); + return GL_FALSE; + } + + offset = name_to_offset(name); + if (offset == 0) { + _mesa_problem(ctx, "Trying to enable/disable unknown extension %s", + name); + return GL_FALSE; + } else if (offset == o(dummy_true) && state == GL_FALSE) { + _mesa_problem(ctx, "Trying to disable a permanently enabled extension: " + "%s", name); + return GL_FALSE; + } else { + GLboolean *base = (GLboolean *) &ctx->Extensions; + base[offset] = state; + return GL_TRUE; + } +} + + +/** + * Enable the named extension. + * Typically called by drivers. + */ +void +_mesa_enable_extension( struct gl_context *ctx, const char *name ) +{ + if (!set_extension(ctx, name, GL_TRUE)) + _mesa_problem(ctx, "Trying to enable unknown extension: %s", name); +} + + +/** + * Disable the named extension. + * XXX is this really needed??? + */ +void +_mesa_disable_extension( struct gl_context *ctx, const char *name ) +{ + if (!set_extension(ctx, name, GL_FALSE)) + _mesa_problem(ctx, "Trying to disable unknown extension: %s", name); +} + + +/** + * Test if the named extension is enabled in this context. + */ +GLboolean +_mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) +{ + size_t offset; + GLboolean *base; + + if (name == 0) + return GL_FALSE; + + offset = name_to_offset(name); + if (offset == 0) + return GL_FALSE; + base = (GLboolean *) &ctx->Extensions; + return base[offset]; +} + + +/** + * \brief Apply the \c MESA_EXTENSION_OVERRIDE environment variable. + * + * \c MESA_EXTENSION_OVERRIDE is a space-separated list of extensions to + * enable or disable. The list is processed thus: + * - Enable recognized extension names that are prefixed with '+'. + * - Disable recognized extension names that are prefixed with '-'. + * - Enable recognized extension names that are not prefixed. + * - Collect unrecognized extension names in a new string. + * + * \return Space-separated list of unrecognized extension names (which must + * be freed). Does not return \c NULL. + */ +static char * +get_extension_override( struct gl_context *ctx ) +{ + const char *env_const = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); + char *env; + char *ext; + char *extra_exts; + int len; + + if (env_const == NULL) { + /* Return the empty string rather than NULL. This simplifies the logic + * of client functions. */ + return calloc(1, sizeof(char)); + } + + /* extra_exts: List of unrecognized extensions. */ + extra_exts = calloc(strlen(env_const), sizeof(char)); + + /* Copy env_const because strtok() is destructive. */ + env = strdup(env_const); + for (ext = strtok(env, " "); ext != NULL; ext = strtok(NULL, " ")) { + int enable; + int recognized; + switch (ext[0]) { + case '+': + enable = 1; + ++ext; + break; + case '-': + enable = 0; + ++ext; + break; + default: + enable = 1; + break; + } + recognized = set_extension(ctx, ext, enable); + if (!recognized) { + strcat(extra_exts, ext); + strcat(extra_exts, " "); + } + } + + /* Remove trailing space. */ + len = strlen(extra_exts); + if (extra_exts[len - 1] == ' ') + extra_exts[len - 1] = '\0'; + + return extra_exts; +} + + +/** + * \brief Initialize extension tables and enable default extensions. + * + * This should be called during context initialization. + * Note: Sets gl_extensions.dummy_true to true. + */ +void +_mesa_init_extensions( struct gl_context *ctx ) +{ + GLboolean *base = (GLboolean *) &ctx->Extensions; + GLboolean *sentinel = base + o(extension_sentinel); + GLboolean *i; + const size_t *j; + + /* First, turn all extensions off. */ + for (i = base; i != sentinel; ++i) + *i = GL_FALSE; + + /* Then, selectively turn default extensions on. */ + ctx->Extensions.dummy_true = GL_TRUE; + for (j = default_extensions; *j != 0; ++j) + base[*j] = GL_TRUE; +} + + +typedef unsigned short extension_index; + + +/** + * Compare two entries of the extensions table. Sorts first by year, + * then by name. + * + * Arguments are indices into extension_table. + */ +static int +extension_compare(const void *p1, const void *p2) +{ + extension_index i1 = * (const extension_index *) p1; + extension_index i2 = * (const extension_index *) p2; + const struct extension *e1 = &extension_table[i1]; + const struct extension *e2 = &extension_table[i2]; + int res; + + res = (int)e1->year - (int)e2->year; + + if (res == 0) { + res = strcmp(e1->name, e2->name); + } + + return res; +} + + +/** + * Construct the GL_EXTENSIONS string. Called the first time that + * glGetString(GL_EXTENSIONS) is called. + */ +GLubyte* +_mesa_make_extension_string(struct gl_context *ctx) +{ + /* The extension string. */ + char *exts = 0; + /* Length of extension string. */ + size_t length = 0; + /* Number of extensions */ + unsigned count; + /* Indices of the extensions sorted by year */ + extension_index *extension_indices; + /* String of extra extensions. */ + char *extra_extensions = get_extension_override(ctx); + GLboolean *base = (GLboolean *) &ctx->Extensions; + const struct extension *i; + unsigned j; + unsigned maxYear = ~0; + + /* Check if the MESA_EXTENSION_MAX_YEAR env var is set */ + { + const char *env = getenv("MESA_EXTENSION_MAX_YEAR"); + if (env) { + maxYear = atoi(env); + _mesa_debug(ctx, "Note: limiting GL extensions to %u or earlier\n", + maxYear); + } + } + + /* Compute length of the extension string. */ + count = 0; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && + i->year <= maxYear && + (i->api_set & (1 << ctx->API))) { + length += strlen(i->name) + 1; /* +1 for space */ + ++count; + } + } + if (extra_extensions != NULL) + length += 1 + strlen(extra_extensions); /* +1 for space */ + + exts = (char *) calloc(length + 1, sizeof(char)); + if (exts == NULL) { + free(extra_extensions); + return NULL; + } + + extension_indices = malloc(count * sizeof(extension_index)); + if (extension_indices == NULL) { + free(exts); + free(extra_extensions); + return NULL; + } + + /* Sort extensions in chronological order because certain old applications (e.g., + * Quake3 demo) store the extension list in a static size buffer so chronologically + * order ensure that the extensions that such applications expect will fit into + * that buffer. + */ + j = 0; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset] && + i->year <= maxYear && + (i->api_set & (1 << ctx->API))) { + extension_indices[j++] = i - extension_table; + } + } + assert(j == count); + qsort(extension_indices, count, sizeof *extension_indices, extension_compare); + + /* Build the extension string.*/ + for (j = 0; j < count; ++j) { + i = &extension_table[extension_indices[j]]; + assert(base[i->offset] && (i->api_set & (1 << ctx->API))); + strcat(exts, i->name); + strcat(exts, " "); + } + free(extension_indices); + if (extra_extensions != 0) { + strcat(exts, extra_extensions); + free(extra_extensions); + } + + return (GLubyte *) exts; +} + +/** + * Return number of enabled extensions. + */ +GLuint +_mesa_get_extension_count(struct gl_context *ctx) +{ + GLboolean *base; + const struct extension *i; + + /* only count once */ + if (ctx->Extensions.Count != 0) + return ctx->Extensions.Count; + + base = (GLboolean *) &ctx->Extensions; + for (i = extension_table; i->name != 0; ++i) { + if (base[i->offset]) { + ctx->Extensions.Count++; + } + } + return ctx->Extensions.Count; +} + +/** + * Return name of i-th enabled extension + */ +const GLubyte * +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) +{ + const GLboolean *base; + size_t n; + const struct extension *i; + + if (index < 0) + return NULL; + + base = (GLboolean*) &ctx->Extensions; + n = 0; + for (i = extension_table; i->name != 0; ++i) { + if (n == index && base[i->offset]) { + return (GLubyte*) i->name; + } else if (base[i->offset]) { + ++n; + } + } + + return NULL; +} diff --git a/mesalib/src/mesa/main/remap_helper.h b/mesalib/src/mesa/main/remap_helper.h index f506efcef..fdb86d3e3 100644 --- a/mesalib/src/mesa/main/remap_helper.h +++ b/mesalib/src/mesa/main/remap_helper.h @@ -70,2583 +70,2577 @@ static const char _mesa_function_pool[] = "\0" "glLoadIdentity\0" "\0" - /* _mesa_function_pool[216]: SampleCoverageARB (will be remapped) */ + /* _mesa_function_pool[216]: GetCombinerOutputParameterfvNV (will be remapped) */ + "iiip\0" + "glGetCombinerOutputParameterfvNV\0" + "\0" + /* _mesa_function_pool[255]: SampleCoverageARB (will be remapped) */ "fi\0" "glSampleCoverage\0" "glSampleCoverageARB\0" "\0" - /* _mesa_function_pool[257]: ConvolutionFilter1D (offset 348) */ + /* _mesa_function_pool[296]: ConvolutionFilter1D (offset 348) */ "iiiiip\0" "glConvolutionFilter1D\0" "glConvolutionFilter1DEXT\0" "\0" - /* _mesa_function_pool[312]: BeginQueryARB (will be remapped) */ + /* _mesa_function_pool[351]: BeginQueryARB (will be remapped) */ "ii\0" "glBeginQuery\0" "glBeginQueryARB\0" "\0" - /* _mesa_function_pool[345]: RasterPos3dv (offset 71) */ + /* _mesa_function_pool[384]: RasterPos3dv (offset 71) */ "p\0" "glRasterPos3dv\0" "\0" - /* _mesa_function_pool[363]: PointParameteriNV (will be remapped) */ + /* _mesa_function_pool[402]: PointParameteriNV (will be remapped) */ "ii\0" "glPointParameteri\0" "glPointParameteriNV\0" "\0" - /* _mesa_function_pool[405]: GetProgramiv (will be remapped) */ + /* _mesa_function_pool[444]: GetProgramiv (will be remapped) */ "iip\0" "glGetProgramiv\0" "\0" - /* _mesa_function_pool[425]: MultiTexCoord3sARB (offset 398) */ + /* _mesa_function_pool[464]: MultiTexCoord3sARB (offset 398) */ "iiii\0" "glMultiTexCoord3s\0" "glMultiTexCoord3sARB\0" "\0" - /* _mesa_function_pool[470]: SecondaryColor3iEXT (will be remapped) */ + /* _mesa_function_pool[509]: SecondaryColor3iEXT (will be remapped) */ "iii\0" "glSecondaryColor3i\0" "glSecondaryColor3iEXT\0" "\0" - /* _mesa_function_pool[516]: WindowPos3fMESA (will be remapped) */ + /* _mesa_function_pool[555]: WindowPos3fMESA (will be remapped) */ "fff\0" "glWindowPos3f\0" "glWindowPos3fARB\0" "glWindowPos3fMESA\0" "\0" - /* _mesa_function_pool[570]: TexCoord1iv (offset 99) */ + /* _mesa_function_pool[609]: TexCoord1iv (offset 99) */ "p\0" "glTexCoord1iv\0" "\0" - /* _mesa_function_pool[587]: TexCoord4sv (offset 125) */ + /* _mesa_function_pool[626]: TexCoord4sv (offset 125) */ "p\0" "glTexCoord4sv\0" "\0" - /* _mesa_function_pool[604]: RasterPos4s (offset 84) */ + /* _mesa_function_pool[643]: RasterPos4s (offset 84) */ "iiii\0" "glRasterPos4s\0" "\0" - /* _mesa_function_pool[624]: PixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[663]: PixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[657]: ActiveTextureARB (offset 374) */ + /* _mesa_function_pool[696]: ActiveTextureARB (offset 374) */ "i\0" "glActiveTexture\0" "glActiveTextureARB\0" "\0" - /* _mesa_function_pool[695]: BlitFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[734]: BlitFramebufferEXT (will be remapped) */ "iiiiiiiiii\0" "glBlitFramebuffer\0" "glBlitFramebufferEXT\0" "\0" - /* _mesa_function_pool[746]: TexCoord1f (offset 96) */ + /* _mesa_function_pool[785]: TexCoord1f (offset 96) */ "f\0" "glTexCoord1f\0" "\0" - /* _mesa_function_pool[762]: TexCoord1d (offset 94) */ + /* _mesa_function_pool[801]: TexCoord1d (offset 94) */ "d\0" "glTexCoord1d\0" "\0" - /* _mesa_function_pool[778]: VertexAttrib4ubvNV (will be remapped) */ + /* _mesa_function_pool[817]: VertexAttrib4ubvNV (will be remapped) */ "ip\0" "glVertexAttrib4ubvNV\0" "\0" - /* _mesa_function_pool[803]: TexCoord1i (offset 98) */ + /* _mesa_function_pool[842]: TexCoord1i (offset 98) */ "i\0" "glTexCoord1i\0" "\0" - /* _mesa_function_pool[819]: GetProgramNamedParameterdvNV (will be remapped) */ + /* _mesa_function_pool[858]: GetProgramNamedParameterdvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterdvNV\0" "\0" - /* _mesa_function_pool[856]: Histogram (offset 367) */ + /* _mesa_function_pool[895]: Histogram (offset 367) */ "iiii\0" "glHistogram\0" "glHistogramEXT\0" "\0" - /* _mesa_function_pool[889]: TexCoord1s (offset 100) */ + /* _mesa_function_pool[928]: TexCoord1s (offset 100) */ "i\0" "glTexCoord1s\0" "\0" - /* _mesa_function_pool[905]: GetMapfv (offset 267) */ + /* _mesa_function_pool[944]: GetMapfv (offset 267) */ "iip\0" "glGetMapfv\0" "\0" - /* _mesa_function_pool[921]: EvalCoord1f (offset 230) */ + /* _mesa_function_pool[960]: EvalCoord1f (offset 230) */ "f\0" "glEvalCoord1f\0" "\0" - /* _mesa_function_pool[938]: FramebufferTexture (will be remapped) */ + /* _mesa_function_pool[977]: FramebufferTexture (will be remapped) */ "iiii\0" "glFramebufferTexture\0" "\0" - /* _mesa_function_pool[965]: GetGraphicsResetStatusARB (will be remapped) */ + /* _mesa_function_pool[1004]: GetGraphicsResetStatusARB (will be remapped) */ "\0" "glGetGraphicsResetStatusARB\0" "\0" - /* _mesa_function_pool[995]: TexImage4DSGIS (dynamic) */ + /* _mesa_function_pool[1034]: TexImage4DSGIS (dynamic) */ "iiiiiiiiiip\0" "glTexImage4DSGIS\0" "\0" - /* _mesa_function_pool[1025]: PolygonStipple (offset 175) */ + /* _mesa_function_pool[1064]: PolygonStipple (offset 175) */ "p\0" "glPolygonStipple\0" "\0" - /* _mesa_function_pool[1045]: WindowPos2dvMESA (will be remapped) */ + /* _mesa_function_pool[1084]: WindowPos2dvMESA (will be remapped) */ "p\0" "glWindowPos2dv\0" "glWindowPos2dvARB\0" "glWindowPos2dvMESA\0" "\0" - /* _mesa_function_pool[1100]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1139]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1144]: BlendEquationSeparateEXT (will be remapped) */ + /* _mesa_function_pool[1183]: BlendEquationSeparateEXT (will be remapped) */ "ii\0" "glBlendEquationSeparate\0" "glBlendEquationSeparateEXT\0" "glBlendEquationSeparateATI\0" "\0" - /* _mesa_function_pool[1226]: ListParameterfSGIX (dynamic) */ + /* _mesa_function_pool[1265]: ListParameterfSGIX (dynamic) */ "iif\0" "glListParameterfSGIX\0" "\0" - /* _mesa_function_pool[1252]: SecondaryColor3bEXT (will be remapped) */ + /* _mesa_function_pool[1291]: SecondaryColor3bEXT (will be remapped) */ "iii\0" "glSecondaryColor3b\0" "glSecondaryColor3bEXT\0" "\0" - /* _mesa_function_pool[1298]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[1337]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */ "pppp\0" "glTexCoord4fColor4fNormal3fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[1344]: GetnPolygonStippleARB (will be remapped) */ + /* _mesa_function_pool[1383]: GetnPolygonStippleARB (will be remapped) */ "ip\0" "glGetnPolygonStippleARB\0" "\0" - /* _mesa_function_pool[1372]: GetPixelMapfv (offset 271) */ + /* _mesa_function_pool[1411]: GetPixelMapfv (offset 271) */ "ip\0" "glGetPixelMapfv\0" "\0" - /* _mesa_function_pool[1392]: Color3uiv (offset 22) */ + /* _mesa_function_pool[1431]: Color3uiv (offset 22) */ "p\0" "glColor3uiv\0" "\0" - /* _mesa_function_pool[1407]: IsEnabled (offset 286) */ + /* _mesa_function_pool[1446]: IsEnabled (offset 286) */ "i\0" "glIsEnabled\0" "\0" - /* _mesa_function_pool[1422]: VertexAttrib4svNV (will be remapped) */ + /* _mesa_function_pool[1461]: VertexAttrib4svNV (will be remapped) */ "ip\0" "glVertexAttrib4svNV\0" "\0" - /* _mesa_function_pool[1446]: EvalCoord2fv (offset 235) */ + /* _mesa_function_pool[1485]: EvalCoord2fv (offset 235) */ "p\0" "glEvalCoord2fv\0" "\0" - /* _mesa_function_pool[1464]: GetBufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1503]: GetBufferSubDataARB (will be remapped) */ "iiip\0" "glGetBufferSubData\0" "glGetBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1511]: BufferSubDataARB (will be remapped) */ + /* _mesa_function_pool[1550]: BufferSubDataARB (will be remapped) */ "iiip\0" "glBufferSubData\0" "glBufferSubDataARB\0" "\0" - /* _mesa_function_pool[1552]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1591]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1590]: AttachShader (will be remapped) */ + /* _mesa_function_pool[1629]: AttachShader (will be remapped) */ "ii\0" "glAttachShader\0" "\0" - /* _mesa_function_pool[1609]: GetCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[1648]: GetCombinerInputParameterfvNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[1648]: VertexAttrib2fARB (will be remapped) */ + /* _mesa_function_pool[1687]: VertexAttrib2fARB (will be remapped) */ "iff\0" "glVertexAttrib2f\0" "glVertexAttrib2fARB\0" "\0" - /* _mesa_function_pool[1690]: GetDebugLogLengthMESA (dynamic) */ + /* _mesa_function_pool[1729]: GetDebugLogLengthMESA (dynamic) */ "iii\0" "glGetDebugLogLengthMESA\0" "\0" - /* _mesa_function_pool[1719]: GetMapiv (offset 268) */ + /* _mesa_function_pool[1758]: GetMapiv (offset 268) */ "iip\0" "glGetMapiv\0" "\0" - /* _mesa_function_pool[1735]: VertexAttrib3fARB (will be remapped) */ + /* _mesa_function_pool[1774]: VertexAttrib3fARB (will be remapped) */ "ifff\0" "glVertexAttrib3f\0" "glVertexAttrib3fARB\0" "\0" - /* _mesa_function_pool[1778]: Indexubv (offset 316) */ + /* _mesa_function_pool[1817]: Indexubv (offset 316) */ "p\0" "glIndexubv\0" "\0" - /* _mesa_function_pool[1792]: GetQueryivARB (will be remapped) */ + /* _mesa_function_pool[1831]: GetQueryivARB (will be remapped) */ "iip\0" "glGetQueryiv\0" "glGetQueryivARB\0" "\0" - /* _mesa_function_pool[1826]: TexImage3D (offset 371) */ + /* _mesa_function_pool[1865]: TexImage3D (offset 371) */ "iiiiiiiiip\0" "glTexImage3D\0" "glTexImage3DEXT\0" "\0" - /* _mesa_function_pool[1867]: BindFragDataLocationEXT (will be remapped) */ + /* _mesa_function_pool[1906]: BindFragDataLocationEXT (will be remapped) */ "iip\0" "glBindFragDataLocationEXT\0" "glBindFragDataLocation\0" "\0" - /* _mesa_function_pool[1921]: ReplacementCodeuiVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[1960]: ReplacementCodeuiVertex3fvSUN (dynamic) */ "pp\0" "glReplacementCodeuiVertex3fvSUN\0" "\0" - /* _mesa_function_pool[1957]: EdgeFlagPointer (offset 312) */ + /* _mesa_function_pool[1996]: EdgeFlagPointer (offset 312) */ "ip\0" "glEdgeFlagPointer\0" "\0" - /* _mesa_function_pool[1979]: Color3ubv (offset 20) */ + /* _mesa_function_pool[2018]: Color3ubv (offset 20) */ "p\0" "glColor3ubv\0" "\0" - /* _mesa_function_pool[1994]: GetQueryObjectivARB (will be remapped) */ + /* _mesa_function_pool[2033]: GetQueryObjectivARB (will be remapped) */ "iip\0" "glGetQueryObjectiv\0" "glGetQueryObjectivARB\0" "\0" - /* _mesa_function_pool[2040]: Vertex3dv (offset 135) */ + /* _mesa_function_pool[2079]: Vertex3dv (offset 135) */ "p\0" "glVertex3dv\0" "\0" - /* _mesa_function_pool[2055]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[2094]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[2102]: CompressedTexSubImage2DARB (will be remapped) */ + /* _mesa_function_pool[2141]: CompressedTexSubImage2DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexSubImage2D\0" "glCompressedTexSubImage2DARB\0" "\0" - /* _mesa_function_pool[2168]: CombinerOutputNV (will be remapped) */ + /* _mesa_function_pool[2207]: CombinerOutputNV (will be remapped) */ "iiiiiiiiii\0" "glCombinerOutputNV\0" "\0" - /* _mesa_function_pool[2199]: VertexAttribs3fvNV (will be remapped) */ + /* _mesa_function_pool[2238]: VertexAttribs3fvNV (will be remapped) */ "iip\0" "glVertexAttribs3fvNV\0" "\0" - /* _mesa_function_pool[2225]: GetnMapivARB (will be remapped) */ + /* _mesa_function_pool[2264]: GetnMapivARB (will be remapped) */ "iiip\0" "glGetnMapivARB\0" "\0" - /* _mesa_function_pool[2246]: Uniform2fARB (will be remapped) */ + /* _mesa_function_pool[2285]: Uniform2fARB (will be remapped) */ "iff\0" "glUniform2f\0" "glUniform2fARB\0" "\0" - /* _mesa_function_pool[2278]: LightModeliv (offset 166) */ + /* _mesa_function_pool[2317]: LightModeliv (offset 166) */ "ip\0" "glLightModeliv\0" "\0" - /* _mesa_function_pool[2297]: VertexAttrib1svARB (will be remapped) */ + /* _mesa_function_pool[2336]: VertexAttrib1svARB (will be remapped) */ "ip\0" "glVertexAttrib1sv\0" "glVertexAttrib1svARB\0" "\0" - /* _mesa_function_pool[2340]: VertexAttribs1dvNV (will be remapped) */ + /* _mesa_function_pool[2379]: VertexAttribs1dvNV (will be remapped) */ "iip\0" "glVertexAttribs1dvNV\0" "\0" - /* _mesa_function_pool[2366]: Uniform2ivARB (will be remapped) */ + /* _mesa_function_pool[2405]: Uniform2ivARB (will be remapped) */ "iip\0" "glUniform2iv\0" "glUniform2ivARB\0" "\0" - /* _mesa_function_pool[2400]: GetImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[2439]: GetImageTransformParameterfvHP (dynamic) */ "iip\0" "glGetImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[2438]: Normal3bv (offset 53) */ + /* _mesa_function_pool[2477]: Normal3bv (offset 53) */ "p\0" "glNormal3bv\0" "\0" - /* _mesa_function_pool[2453]: TexGeniv (offset 193) */ + /* _mesa_function_pool[2492]: TexGeniv (offset 193) */ "iip\0" "glTexGeniv\0" "\0" - /* _mesa_function_pool[2469]: WeightubvARB (dynamic) */ + /* _mesa_function_pool[2508]: WeightubvARB (dynamic) */ "ip\0" "glWeightubvARB\0" "\0" - /* _mesa_function_pool[2488]: VertexAttrib1fvNV (will be remapped) */ + /* _mesa_function_pool[2527]: VertexAttrib1fvNV (will be remapped) */ "ip\0" "glVertexAttrib1fvNV\0" "\0" - /* _mesa_function_pool[2512]: Vertex3iv (offset 139) */ + /* _mesa_function_pool[2551]: Vertex3iv (offset 139) */ "p\0" "glVertex3iv\0" "\0" - /* _mesa_function_pool[2527]: CopyConvolutionFilter1D (offset 354) */ + /* _mesa_function_pool[2566]: CopyConvolutionFilter1D (offset 354) */ "iiiii\0" "glCopyConvolutionFilter1D\0" "glCopyConvolutionFilter1DEXT\0" "\0" - /* _mesa_function_pool[2589]: VertexAttribI1uiEXT (will be remapped) */ + /* _mesa_function_pool[2628]: VertexAttribI1uiEXT (will be remapped) */ "ii\0" "glVertexAttribI1uiEXT\0" "glVertexAttribI1ui\0" "\0" - /* _mesa_function_pool[2634]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[2673]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[2682]: DeleteSync (will be remapped) */ + /* _mesa_function_pool[2721]: DeleteSync (will be remapped) */ "i\0" "glDeleteSync\0" "\0" - /* _mesa_function_pool[2698]: FragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[2737]: FragmentMaterialfvSGIX (dynamic) */ "iip\0" "glFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[2728]: BlendColor (offset 336) */ + /* _mesa_function_pool[2767]: BlendColor (offset 336) */ "ffff\0" "glBlendColor\0" "glBlendColorEXT\0" "\0" - /* _mesa_function_pool[2763]: UniformMatrix4fvARB (will be remapped) */ + /* _mesa_function_pool[2802]: UniformMatrix4fvARB (will be remapped) */ "iiip\0" "glUniformMatrix4fv\0" "glUniformMatrix4fvARB\0" "\0" - /* _mesa_function_pool[2810]: DeleteVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[2849]: DeleteVertexArraysAPPLE (will be remapped) */ "ip\0" "glDeleteVertexArrays\0" "glDeleteVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[2861]: TexBuffer (will be remapped) */ + /* _mesa_function_pool[2900]: TexBuffer (will be remapped) */ "iii\0" "glTexBuffer\0" "\0" - /* _mesa_function_pool[2878]: ReadInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[2917]: ReadInstrumentsSGIX (dynamic) */ "i\0" "glReadInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[2903]: CallLists (offset 3) */ + /* _mesa_function_pool[2942]: CallLists (offset 3) */ "iip\0" "glCallLists\0" "\0" - /* _mesa_function_pool[2920]: UniformMatrix2x4fv (will be remapped) */ + /* _mesa_function_pool[2959]: DeformationMap3dSGIX (dynamic) */ + "iddiiddiiddiip\0" + "glDeformationMap3dSGIX\0" + "\0" + /* _mesa_function_pool[2998]: UniformMatrix2x4fv (will be remapped) */ "iiip\0" "glUniformMatrix2x4fv\0" "\0" - /* _mesa_function_pool[2947]: ReadnPixelsARB (will be remapped) */ + /* _mesa_function_pool[3025]: ReadnPixelsARB (will be remapped) */ "iiiiiiip\0" "glReadnPixelsARB\0" "\0" - /* _mesa_function_pool[2974]: Color4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[3052]: Color4ubVertex3fvSUN (dynamic) */ "pp\0" "glColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[3001]: Normal3iv (offset 59) */ + /* _mesa_function_pool[3079]: Normal3iv (offset 59) */ "p\0" "glNormal3iv\0" "\0" - /* _mesa_function_pool[3016]: PassThrough (offset 199) */ + /* _mesa_function_pool[3094]: PassThrough (offset 199) */ "f\0" "glPassThrough\0" "\0" - /* _mesa_function_pool[3033]: GetnPixelMapusvARB (will be remapped) */ + /* _mesa_function_pool[3111]: GetnPixelMapusvARB (will be remapped) */ "iip\0" "glGetnPixelMapusvARB\0" "\0" - /* _mesa_function_pool[3059]: TexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[3137]: TexParameterIivEXT (will be remapped) */ "iip\0" "glTexParameterIivEXT\0" "glTexParameterIiv\0" "\0" - /* _mesa_function_pool[3103]: FramebufferTextureLayerEXT (will be remapped) */ + /* _mesa_function_pool[3181]: FramebufferTextureLayerEXT (will be remapped) */ "iiiii\0" "glFramebufferTextureLayer\0" "glFramebufferTextureLayerEXT\0" "\0" - /* _mesa_function_pool[3165]: GetListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[3243]: GetListParameterfvSGIX (dynamic) */ "iip\0" "glGetListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[3195]: Viewport (offset 305) */ + /* _mesa_function_pool[3273]: Viewport (offset 305) */ "iiii\0" "glViewport\0" "\0" - /* _mesa_function_pool[3212]: VertexAttrib4NusvARB (will be remapped) */ + /* _mesa_function_pool[3290]: VertexAttrib4NusvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nusv\0" "glVertexAttrib4NusvARB\0" "\0" - /* _mesa_function_pool[3259]: WindowPos4svMESA (will be remapped) */ + /* _mesa_function_pool[3337]: WindowPos4svMESA (will be remapped) */ "p\0" "glWindowPos4svMESA\0" "\0" - /* _mesa_function_pool[3281]: CreateProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[3359]: CreateProgramObjectARB (will be remapped) */ "\0" "glCreateProgramObjectARB\0" "\0" - /* _mesa_function_pool[3308]: DeleteTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[3386]: DeleteTransformFeedbacks (will be remapped) */ "ip\0" "glDeleteTransformFeedbacks\0" "\0" - /* _mesa_function_pool[3339]: UniformMatrix4x3fv (will be remapped) */ + /* _mesa_function_pool[3417]: UniformMatrix4x3fv (will be remapped) */ "iiip\0" "glUniformMatrix4x3fv\0" "\0" - /* _mesa_function_pool[3366]: PrioritizeTextures (offset 331) */ + /* _mesa_function_pool[3444]: PrioritizeTextures (offset 331) */ "ipp\0" "glPrioritizeTextures\0" "glPrioritizeTexturesEXT\0" "\0" - /* _mesa_function_pool[3416]: VertexAttribI3uiEXT (will be remapped) */ + /* _mesa_function_pool[3494]: VertexAttribI3uiEXT (will be remapped) */ "iiii\0" "glVertexAttribI3uiEXT\0" "glVertexAttribI3ui\0" "\0" - /* _mesa_function_pool[3463]: AsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[3541]: AsyncMarkerSGIX (dynamic) */ "i\0" "glAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[3484]: GlobalAlphaFactorubSUN (dynamic) */ + /* _mesa_function_pool[3562]: GlobalAlphaFactorubSUN (dynamic) */ "i\0" "glGlobalAlphaFactorubSUN\0" "\0" - /* _mesa_function_pool[3512]: ClearColorIuiEXT (will be remapped) */ + /* _mesa_function_pool[3590]: ClearColorIuiEXT (will be remapped) */ "iiii\0" "glClearColorIuiEXT\0" "\0" - /* _mesa_function_pool[3537]: ClearDebugLogMESA (dynamic) */ + /* _mesa_function_pool[3615]: ClearDebugLogMESA (dynamic) */ "iii\0" "glClearDebugLogMESA\0" "\0" - /* _mesa_function_pool[3562]: Uniform4uiEXT (will be remapped) */ + /* _mesa_function_pool[3640]: Uniform4uiEXT (will be remapped) */ "iiiii\0" "glUniform4uiEXT\0" "glUniform4ui\0" "\0" - /* _mesa_function_pool[3598]: ResetHistogram (offset 369) */ + /* _mesa_function_pool[3676]: ResetHistogram (offset 369) */ "i\0" "glResetHistogram\0" "glResetHistogramEXT\0" "\0" - /* _mesa_function_pool[3638]: GetProgramNamedParameterfvNV (will be remapped) */ + /* _mesa_function_pool[3716]: GetProgramNamedParameterfvNV (will be remapped) */ "iipp\0" "glGetProgramNamedParameterfvNV\0" "\0" - /* _mesa_function_pool[3675]: PointParameterfEXT (will be remapped) */ + /* _mesa_function_pool[3753]: PointParameterfEXT (will be remapped) */ "if\0" "glPointParameterf\0" "glPointParameterfARB\0" "glPointParameterfEXT\0" "glPointParameterfSGIS\0" "\0" - /* _mesa_function_pool[3761]: LoadIdentityDeformationMapSGIX (dynamic) */ + /* _mesa_function_pool[3839]: LoadIdentityDeformationMapSGIX (dynamic) */ "i\0" "glLoadIdentityDeformationMapSGIX\0" "\0" - /* _mesa_function_pool[3797]: GenFencesNV (will be remapped) */ + /* _mesa_function_pool[3875]: GenFencesNV (will be remapped) */ "ip\0" "glGenFencesNV\0" "\0" - /* _mesa_function_pool[3815]: ImageTransformParameterfHP (dynamic) */ + /* _mesa_function_pool[3893]: ImageTransformParameterfHP (dynamic) */ "iif\0" "glImageTransformParameterfHP\0" "\0" - /* _mesa_function_pool[3849]: MatrixIndexusvARB (dynamic) */ + /* _mesa_function_pool[3927]: MatrixIndexusvARB (dynamic) */ "ip\0" "glMatrixIndexusvARB\0" "\0" - /* _mesa_function_pool[3873]: DrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[3951]: DrawElementsBaseVertex (will be remapped) */ "iiipi\0" "glDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[3905]: DisableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[3983]: DisableVertexAttribArrayARB (will be remapped) */ "i\0" "glDisableVertexAttribArray\0" "glDisableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[3965]: GetnConvolutionFilterARB (will be remapped) */ + /* _mesa_function_pool[4043]: VertexAttribI4ubvEXT (will be remapped) */ + "ip\0" + "glVertexAttribI4ubvEXT\0" + "glVertexAttribI4ubv\0" + "\0" + /* _mesa_function_pool[4090]: GetnConvolutionFilterARB (will be remapped) */ "iiiip\0" "glGetnConvolutionFilterARB\0" "\0" - /* _mesa_function_pool[3999]: TexCoord2sv (offset 109) */ + /* _mesa_function_pool[4124]: TexCoord2sv (offset 109) */ "p\0" "glTexCoord2sv\0" "\0" - /* _mesa_function_pool[4016]: Vertex4dv (offset 143) */ + /* _mesa_function_pool[4141]: Vertex4dv (offset 143) */ "p\0" "glVertex4dv\0" "\0" - /* _mesa_function_pool[4031]: StencilMaskSeparate (will be remapped) */ + /* _mesa_function_pool[4156]: StencilMaskSeparate (will be remapped) */ "ii\0" "glStencilMaskSeparate\0" "\0" - /* _mesa_function_pool[4057]: ProgramLocalParameter4dARB (will be remapped) */ + /* _mesa_function_pool[4182]: ProgramLocalParameter4dARB (will be remapped) */ "iidddd\0" "glProgramLocalParameter4dARB\0" "\0" - /* _mesa_function_pool[4094]: CompressedTexImage3DARB (will be remapped) */ + /* _mesa_function_pool[4219]: CompressedTexImage3DARB (will be remapped) */ "iiiiiiiip\0" "glCompressedTexImage3D\0" "glCompressedTexImage3DARB\0" "\0" - /* _mesa_function_pool[4154]: Color3sv (offset 18) */ + /* _mesa_function_pool[4279]: Color3sv (offset 18) */ "p\0" "glColor3sv\0" "\0" - /* _mesa_function_pool[4168]: GetConvolutionParameteriv (offset 358) */ + /* _mesa_function_pool[4293]: GetConvolutionParameteriv (offset 358) */ "iip\0" "glGetConvolutionParameteriv\0" "glGetConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[4232]: DeleteSamplers (will be remapped) */ + /* _mesa_function_pool[4357]: DeleteSamplers (will be remapped) */ "ip\0" "glDeleteSamplers\0" "\0" - /* _mesa_function_pool[4253]: VertexAttrib1fARB (will be remapped) */ + /* _mesa_function_pool[4378]: VertexAttrib1fARB (will be remapped) */ "if\0" "glVertexAttrib1f\0" "glVertexAttrib1fARB\0" "\0" - /* _mesa_function_pool[4294]: Vertex2dv (offset 127) */ + /* _mesa_function_pool[4419]: Vertex2dv (offset 127) */ "p\0" "glVertex2dv\0" "\0" - /* _mesa_function_pool[4309]: TestFenceNV (will be remapped) */ + /* _mesa_function_pool[4434]: TestFenceNV (will be remapped) */ "i\0" "glTestFenceNV\0" "\0" - /* _mesa_function_pool[4326]: GetVertexAttribIuivEXT (will be remapped) */ - "iip\0" - "glGetVertexAttribIuivEXT\0" - "glGetVertexAttribIuiv\0" - "\0" - /* _mesa_function_pool[4378]: MultiTexCoord1fvARB (offset 379) */ + /* _mesa_function_pool[4451]: MultiTexCoord1fvARB (offset 379) */ "ip\0" "glMultiTexCoord1fv\0" "glMultiTexCoord1fvARB\0" "\0" - /* _mesa_function_pool[4423]: TexCoord3iv (offset 115) */ + /* _mesa_function_pool[4496]: TexCoord3iv (offset 115) */ "p\0" "glTexCoord3iv\0" "\0" - /* _mesa_function_pool[4440]: Uniform2uivEXT (will be remapped) */ + /* _mesa_function_pool[4513]: Uniform2uivEXT (will be remapped) */ "iip\0" "glUniform2uivEXT\0" "glUniform2uiv\0" "\0" - /* _mesa_function_pool[4476]: ColorFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[4549]: ColorFragmentOp2ATI (will be remapped) */ "iiiiiiiiii\0" "glColorFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[4510]: SecondaryColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[4583]: SecondaryColorPointerListIBM (dynamic) */ "iiipi\0" "glSecondaryColorPointerListIBM\0" "\0" - /* _mesa_function_pool[4548]: GetPixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[4621]: GetPixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[4584]: Color3fv (offset 14) */ + /* _mesa_function_pool[4657]: Color3fv (offset 14) */ "p\0" "glColor3fv\0" "\0" - /* _mesa_function_pool[4598]: GetnPixelMapfvARB (will be remapped) */ + /* _mesa_function_pool[4671]: GetnPixelMapfvARB (will be remapped) */ "iip\0" "glGetnPixelMapfvARB\0" "\0" - /* _mesa_function_pool[4623]: ReplacementCodeubSUN (dynamic) */ + /* _mesa_function_pool[4696]: ReplacementCodeubSUN (dynamic) */ "i\0" "glReplacementCodeubSUN\0" "\0" - /* _mesa_function_pool[4649]: FinishAsyncSGIX (dynamic) */ + /* _mesa_function_pool[4722]: FinishAsyncSGIX (dynamic) */ "p\0" "glFinishAsyncSGIX\0" "\0" - /* _mesa_function_pool[4670]: GetnUniformfvARB (will be remapped) */ + /* _mesa_function_pool[4743]: GetnUniformfvARB (will be remapped) */ "iiip\0" "glGetnUniformfvARB\0" "\0" - /* _mesa_function_pool[4695]: GetDebugLogMESA (dynamic) */ + /* _mesa_function_pool[4768]: GetDebugLogMESA (dynamic) */ "iiiipp\0" "glGetDebugLogMESA\0" "\0" - /* _mesa_function_pool[4721]: FogCoorddEXT (will be remapped) */ + /* _mesa_function_pool[4794]: FogCoorddEXT (will be remapped) */ "d\0" "glFogCoordd\0" "glFogCoorddEXT\0" "\0" - /* _mesa_function_pool[4751]: BeginConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[4824]: BeginConditionalRenderNV (will be remapped) */ "ii\0" "glBeginConditionalRenderNV\0" "glBeginConditionalRender\0" "\0" - /* _mesa_function_pool[4807]: Color4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[4880]: Color4ubVertex3fSUN (dynamic) */ "iiiifff\0" "glColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[4838]: FogCoordfEXT (will be remapped) */ + /* _mesa_function_pool[4911]: FogCoordfEXT (will be remapped) */ "f\0" "glFogCoordf\0" "glFogCoordfEXT\0" "\0" - /* _mesa_function_pool[4868]: PointSize (offset 173) */ + /* _mesa_function_pool[4941]: PointSize (offset 173) */ "f\0" "glPointSize\0" "\0" - /* _mesa_function_pool[4883]: VertexAttribI2uivEXT (will be remapped) */ + /* _mesa_function_pool[4956]: VertexAttribI2uivEXT (will be remapped) */ "ip\0" "glVertexAttribI2uivEXT\0" "glVertexAttribI2uiv\0" "\0" - /* _mesa_function_pool[4930]: TexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5003]: TexCoord2fVertex3fSUN (dynamic) */ "fffff\0" "glTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[4961]: PopName (offset 200) */ + /* _mesa_function_pool[5034]: PopName (offset 200) */ "\0" "glPopName\0" "\0" - /* _mesa_function_pool[4973]: GetSamplerParameterfv (will be remapped) */ + /* _mesa_function_pool[5046]: GetSamplerParameterfv (will be remapped) */ "iip\0" "glGetSamplerParameterfv\0" "\0" - /* _mesa_function_pool[5002]: GlobalAlphaFactoriSUN (dynamic) */ + /* _mesa_function_pool[5075]: GlobalAlphaFactoriSUN (dynamic) */ "i\0" "glGlobalAlphaFactoriSUN\0" "\0" - /* _mesa_function_pool[5029]: VertexAttrib2dNV (will be remapped) */ + /* _mesa_function_pool[5102]: VertexAttrib2dNV (will be remapped) */ "idd\0" "glVertexAttrib2dNV\0" "\0" - /* _mesa_function_pool[5053]: GetProgramInfoLog (will be remapped) */ + /* _mesa_function_pool[5126]: GetProgramInfoLog (will be remapped) */ "iipp\0" "glGetProgramInfoLog\0" "\0" - /* _mesa_function_pool[5079]: VertexAttrib4NbvARB (will be remapped) */ + /* _mesa_function_pool[5152]: VertexAttrib4NbvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nbv\0" "glVertexAttrib4NbvARB\0" "\0" - /* _mesa_function_pool[5124]: GetActiveAttribARB (will be remapped) */ + /* _mesa_function_pool[5197]: GetActiveAttribARB (will be remapped) */ "iiipppp\0" "glGetActiveAttrib\0" "glGetActiveAttribARB\0" "\0" - /* _mesa_function_pool[5172]: Vertex4sv (offset 149) */ + /* _mesa_function_pool[5245]: Vertex4sv (offset 149) */ "p\0" "glVertex4sv\0" "\0" - /* _mesa_function_pool[5187]: VertexAttrib4ubNV (will be remapped) */ + /* _mesa_function_pool[5260]: VertexAttrib4ubNV (will be remapped) */ "iiiii\0" "glVertexAttrib4ubNV\0" "\0" - /* _mesa_function_pool[5214]: VertexAttribI1ivEXT (will be remapped) */ + /* _mesa_function_pool[5287]: VertexAttribI1ivEXT (will be remapped) */ "ip\0" "glVertexAttribI1ivEXT\0" "glVertexAttribI1iv\0" "\0" - /* _mesa_function_pool[5259]: ClampColor (will be remapped) */ + /* _mesa_function_pool[5332]: ClampColor (will be remapped) */ "ii\0" "glClampColor\0" "\0" - /* _mesa_function_pool[5276]: TextureRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[5349]: TextureRangeAPPLE (will be remapped) */ "iip\0" "glTextureRangeAPPLE\0" "\0" - /* _mesa_function_pool[5301]: GetTexEnvfv (offset 276) */ + /* _mesa_function_pool[5374]: GetTexEnvfv (offset 276) */ "iip\0" "glGetTexEnvfv\0" "\0" - /* _mesa_function_pool[5320]: BindTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5393]: BindTransformFeedback (will be remapped) */ "ii\0" "glBindTransformFeedback\0" "\0" - /* _mesa_function_pool[5348]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[5421]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "ffffffffffff\0" "glTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[5401]: Indexub (offset 315) */ + /* _mesa_function_pool[5474]: Indexub (offset 315) */ "i\0" "glIndexub\0" "\0" - /* _mesa_function_pool[5414]: VertexAttrib4fNV (will be remapped) */ + /* _mesa_function_pool[5487]: VertexAttrib4fNV (will be remapped) */ "iffff\0" "glVertexAttrib4fNV\0" "\0" - /* _mesa_function_pool[5440]: TexEnvi (offset 186) */ + /* _mesa_function_pool[5513]: TexEnvi (offset 186) */ "iii\0" "glTexEnvi\0" "\0" - /* _mesa_function_pool[5455]: GetClipPlane (offset 259) */ + /* _mesa_function_pool[5528]: GetClipPlane (offset 259) */ "ip\0" "glGetClipPlane\0" "\0" - /* _mesa_function_pool[5474]: CombinerParameterfvNV (will be remapped) */ + /* _mesa_function_pool[5547]: CombinerParameterfvNV (will be remapped) */ "ip\0" "glCombinerParameterfvNV\0" "\0" - /* _mesa_function_pool[5502]: VertexAttribs3dvNV (will be remapped) */ + /* _mesa_function_pool[5575]: VertexAttribs3dvNV (will be remapped) */ "iip\0" "glVertexAttribs3dvNV\0" "\0" - /* _mesa_function_pool[5528]: VertexAttribI2uiEXT (will be remapped) */ + /* _mesa_function_pool[5601]: VertexAttribI2uiEXT (will be remapped) */ "iii\0" "glVertexAttribI2uiEXT\0" "glVertexAttribI2ui\0" "\0" - /* _mesa_function_pool[5574]: VertexAttribs4fvNV (will be remapped) */ + /* _mesa_function_pool[5647]: VertexAttribs4fvNV (will be remapped) */ "iip\0" "glVertexAttribs4fvNV\0" "\0" - /* _mesa_function_pool[5600]: VertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[5673]: VertexArrayRangeNV (will be remapped) */ "ip\0" "glVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[5625]: FragmentLightiSGIX (dynamic) */ + /* _mesa_function_pool[5698]: FragmentLightiSGIX (dynamic) */ "iii\0" "glFragmentLightiSGIX\0" "\0" - /* _mesa_function_pool[5651]: PolygonOffsetEXT (will be remapped) */ + /* _mesa_function_pool[5724]: PolygonOffsetEXT (will be remapped) */ "ff\0" "glPolygonOffsetEXT\0" "\0" - /* _mesa_function_pool[5674]: VertexAttribI4uivEXT (will be remapped) */ + /* _mesa_function_pool[5747]: VertexAttribI4uivEXT (will be remapped) */ "ip\0" "glVertexAttribI4uivEXT\0" "glVertexAttribI4uiv\0" "\0" - /* _mesa_function_pool[5721]: PollAsyncSGIX (dynamic) */ + /* _mesa_function_pool[5794]: PollAsyncSGIX (dynamic) */ "p\0" "glPollAsyncSGIX\0" "\0" - /* _mesa_function_pool[5740]: DeleteFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[5813]: DeleteFragmentShaderATI (will be remapped) */ "i\0" "glDeleteFragmentShaderATI\0" "\0" - /* _mesa_function_pool[5769]: Scaled (offset 301) */ + /* _mesa_function_pool[5842]: Scaled (offset 301) */ "ddd\0" "glScaled\0" "\0" - /* _mesa_function_pool[5783]: ResumeTransformFeedback (will be remapped) */ + /* _mesa_function_pool[5856]: ResumeTransformFeedback (will be remapped) */ "\0" "glResumeTransformFeedback\0" "\0" - /* _mesa_function_pool[5811]: Scalef (offset 302) */ + /* _mesa_function_pool[5884]: Scalef (offset 302) */ "fff\0" "glScalef\0" "\0" - /* _mesa_function_pool[5825]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[5898]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[5863]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[5936]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[5898]: MultTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[5971]: MultTransposeMatrixdARB (will be remapped) */ "p\0" "glMultTransposeMatrixd\0" "glMultTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[5950]: ColorMaskIndexedEXT (will be remapped) */ - "iiiii\0" - "glColorMaskIndexedEXT\0" - "glColorMaski\0" - "\0" - /* _mesa_function_pool[5992]: ObjectUnpurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[6023]: ObjectUnpurgeableAPPLE (will be remapped) */ "iii\0" "glObjectUnpurgeableAPPLE\0" "\0" - /* _mesa_function_pool[6022]: AlphaFunc (offset 240) */ + /* _mesa_function_pool[6053]: AlphaFunc (offset 240) */ "if\0" "glAlphaFunc\0" "\0" - /* _mesa_function_pool[6038]: WindowPos2svMESA (will be remapped) */ + /* _mesa_function_pool[6069]: WindowPos2svMESA (will be remapped) */ "p\0" "glWindowPos2sv\0" "glWindowPos2svARB\0" "glWindowPos2svMESA\0" "\0" - /* _mesa_function_pool[6093]: EdgeFlag (offset 41) */ + /* _mesa_function_pool[6124]: EdgeFlag (offset 41) */ "i\0" "glEdgeFlag\0" "\0" - /* _mesa_function_pool[6107]: TexCoord2iv (offset 107) */ + /* _mesa_function_pool[6138]: TexCoord2iv (offset 107) */ "p\0" "glTexCoord2iv\0" "\0" - /* _mesa_function_pool[6124]: CompressedTexImage1DARB (will be remapped) */ + /* _mesa_function_pool[6155]: CompressedTexImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexImage1D\0" "glCompressedTexImage1DARB\0" "\0" - /* _mesa_function_pool[6182]: Rotated (offset 299) */ + /* _mesa_function_pool[6213]: Rotated (offset 299) */ "dddd\0" "glRotated\0" "\0" - /* _mesa_function_pool[6198]: GetTexParameterIuivEXT (will be remapped) */ + /* _mesa_function_pool[6229]: GetTexParameterIuivEXT (will be remapped) */ "iip\0" "glGetTexParameterIuivEXT\0" "glGetTexParameterIuiv\0" "\0" - /* _mesa_function_pool[6250]: VertexAttrib2sNV (will be remapped) */ + /* _mesa_function_pool[6281]: VertexAttrib2sNV (will be remapped) */ "iii\0" "glVertexAttrib2sNV\0" "\0" - /* _mesa_function_pool[6274]: ReadPixels (offset 256) */ + /* _mesa_function_pool[6305]: ReadPixels (offset 256) */ "iiiiiip\0" "glReadPixels\0" "\0" - /* _mesa_function_pool[6296]: VertexAttribDivisorARB (will be remapped) */ + /* _mesa_function_pool[6327]: VertexAttribDivisorARB (will be remapped) */ "ii\0" "glVertexAttribDivisorARB\0" "\0" - /* _mesa_function_pool[6325]: EdgeFlagv (offset 42) */ + /* _mesa_function_pool[6356]: EdgeFlagv (offset 42) */ "p\0" "glEdgeFlagv\0" "\0" - /* _mesa_function_pool[6340]: NormalPointerListIBM (dynamic) */ + /* _mesa_function_pool[6371]: NormalPointerListIBM (dynamic) */ "iipi\0" "glNormalPointerListIBM\0" "\0" - /* _mesa_function_pool[6369]: IndexPointerEXT (will be remapped) */ + /* _mesa_function_pool[6400]: IndexPointerEXT (will be remapped) */ "iiip\0" "glIndexPointerEXT\0" "\0" - /* _mesa_function_pool[6393]: Color4iv (offset 32) */ + /* _mesa_function_pool[6424]: Color4iv (offset 32) */ "p\0" "glColor4iv\0" "\0" - /* _mesa_function_pool[6407]: TexParameterf (offset 178) */ + /* _mesa_function_pool[6438]: TexParameterf (offset 178) */ "iif\0" "glTexParameterf\0" "\0" - /* _mesa_function_pool[6428]: TexParameteri (offset 180) */ + /* _mesa_function_pool[6459]: TexParameteri (offset 180) */ "iii\0" "glTexParameteri\0" "\0" - /* _mesa_function_pool[6449]: NormalPointerEXT (will be remapped) */ + /* _mesa_function_pool[6480]: NormalPointerEXT (will be remapped) */ "iiip\0" "glNormalPointerEXT\0" "\0" - /* _mesa_function_pool[6474]: MultiTexCoord3dARB (offset 392) */ + /* _mesa_function_pool[6505]: MultiTexCoord3dARB (offset 392) */ "iddd\0" "glMultiTexCoord3d\0" "glMultiTexCoord3dARB\0" "\0" - /* _mesa_function_pool[6519]: MultiTexCoord2iARB (offset 388) */ + /* _mesa_function_pool[6550]: MultiTexCoord2iARB (offset 388) */ "iii\0" "glMultiTexCoord2i\0" "glMultiTexCoord2iARB\0" "\0" - /* _mesa_function_pool[6563]: DrawPixels (offset 257) */ + /* _mesa_function_pool[6594]: DrawPixels (offset 257) */ "iiiip\0" "glDrawPixels\0" "\0" - /* _mesa_function_pool[6583]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[6614]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */ "iffffffff\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[6643]: MultiTexCoord2svARB (offset 391) */ + /* _mesa_function_pool[6674]: MultiTexCoord2svARB (offset 391) */ "ip\0" "glMultiTexCoord2sv\0" "glMultiTexCoord2svARB\0" "\0" - /* _mesa_function_pool[6688]: ReplacementCodeubvSUN (dynamic) */ + /* _mesa_function_pool[6719]: ReplacementCodeubvSUN (dynamic) */ "p\0" "glReplacementCodeubvSUN\0" "\0" - /* _mesa_function_pool[6715]: Uniform3iARB (will be remapped) */ + /* _mesa_function_pool[6746]: Uniform3iARB (will be remapped) */ "iiii\0" "glUniform3i\0" "glUniform3iARB\0" "\0" - /* _mesa_function_pool[6748]: DrawTransformFeedback (will be remapped) */ + /* _mesa_function_pool[6779]: DrawTransformFeedback (will be remapped) */ "ii\0" "glDrawTransformFeedback\0" "\0" - /* _mesa_function_pool[6776]: DrawElementsInstancedARB (will be remapped) */ + /* _mesa_function_pool[6807]: DrawElementsInstancedARB (will be remapped) */ "iiipi\0" "glDrawElementsInstancedARB\0" "glDrawElementsInstancedEXT\0" "glDrawElementsInstanced\0" "\0" - /* _mesa_function_pool[6861]: GetShaderInfoLog (will be remapped) */ + /* _mesa_function_pool[6892]: GetShaderInfoLog (will be remapped) */ "iipp\0" "glGetShaderInfoLog\0" "\0" - /* _mesa_function_pool[6886]: WeightivARB (dynamic) */ + /* _mesa_function_pool[6917]: WeightivARB (dynamic) */ "ip\0" "glWeightivARB\0" "\0" - /* _mesa_function_pool[6904]: PollInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[6935]: PollInstrumentsSGIX (dynamic) */ "p\0" "glPollInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[6929]: GlobalAlphaFactordSUN (dynamic) */ + /* _mesa_function_pool[6960]: GlobalAlphaFactordSUN (dynamic) */ "d\0" "glGlobalAlphaFactordSUN\0" "\0" - /* _mesa_function_pool[6956]: GetFinalCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[6987]: GetFinalCombinerInputParameterfvNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[6998]: GenerateMipmapEXT (will be remapped) */ + /* _mesa_function_pool[7029]: GenerateMipmapEXT (will be remapped) */ "i\0" "glGenerateMipmap\0" "glGenerateMipmapEXT\0" "\0" - /* _mesa_function_pool[7038]: GenLists (offset 5) */ + /* _mesa_function_pool[7069]: GenLists (offset 5) */ "i\0" "glGenLists\0" "\0" - /* _mesa_function_pool[7052]: DepthRangef (will be remapped) */ + /* _mesa_function_pool[7083]: DepthRangef (will be remapped) */ "ff\0" "glDepthRangef\0" "\0" - /* _mesa_function_pool[7070]: GetMapAttribParameterivNV (dynamic) */ + /* _mesa_function_pool[7101]: GetMapAttribParameterivNV (dynamic) */ "iiip\0" "glGetMapAttribParameterivNV\0" "\0" - /* _mesa_function_pool[7104]: CreateShaderObjectARB (will be remapped) */ + /* _mesa_function_pool[7135]: CreateShaderObjectARB (will be remapped) */ "i\0" "glCreateShaderObjectARB\0" "\0" - /* _mesa_function_pool[7131]: GetSharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[7162]: GetSharpenTexFuncSGIS (dynamic) */ "ip\0" "glGetSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[7159]: BufferDataARB (will be remapped) */ + /* _mesa_function_pool[7190]: BufferDataARB (will be remapped) */ "iipi\0" "glBufferData\0" "glBufferDataARB\0" "\0" - /* _mesa_function_pool[7194]: FlushVertexArrayRangeNV (will be remapped) */ + /* _mesa_function_pool[7225]: FlushVertexArrayRangeNV (will be remapped) */ "\0" "glFlushVertexArrayRangeNV\0" "\0" - /* _mesa_function_pool[7222]: MapGrid2d (offset 226) */ + /* _mesa_function_pool[7253]: MapGrid2d (offset 226) */ "iddidd\0" "glMapGrid2d\0" "\0" - /* _mesa_function_pool[7242]: MapGrid2f (offset 227) */ + /* _mesa_function_pool[7273]: MapGrid2f (offset 227) */ "iffiff\0" "glMapGrid2f\0" "\0" - /* _mesa_function_pool[7262]: SampleMapATI (will be remapped) */ + /* _mesa_function_pool[7293]: SampleMapATI (will be remapped) */ "iii\0" "glSampleMapATI\0" "\0" - /* _mesa_function_pool[7282]: VertexPointerEXT (will be remapped) */ + /* _mesa_function_pool[7313]: VertexPointerEXT (will be remapped) */ "iiiip\0" "glVertexPointerEXT\0" "\0" - /* _mesa_function_pool[7308]: GetTexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[7339]: GetTexFilterFuncSGIS (dynamic) */ "iip\0" "glGetTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[7336]: Scissor (offset 176) */ + /* _mesa_function_pool[7367]: Scissor (offset 176) */ "iiii\0" "glScissor\0" "\0" - /* _mesa_function_pool[7352]: Fogf (offset 153) */ + /* _mesa_function_pool[7383]: Fogf (offset 153) */ "if\0" "glFogf\0" "\0" - /* _mesa_function_pool[7363]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[7394]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[7408]: TexSubImage1D (offset 332) */ + /* _mesa_function_pool[7439]: TexSubImage1D (offset 332) */ "iiiiiip\0" "glTexSubImage1D\0" "glTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[7452]: VertexAttrib1sARB (will be remapped) */ + /* _mesa_function_pool[7483]: VertexAttrib1sARB (will be remapped) */ "ii\0" "glVertexAttrib1s\0" "glVertexAttrib1sARB\0" "\0" - /* _mesa_function_pool[7493]: FenceSync (will be remapped) */ + /* _mesa_function_pool[7524]: FenceSync (will be remapped) */ "ii\0" "glFenceSync\0" "\0" - /* _mesa_function_pool[7509]: Color4usv (offset 40) */ + /* _mesa_function_pool[7540]: Color4usv (offset 40) */ "p\0" "glColor4usv\0" "\0" - /* _mesa_function_pool[7524]: Fogi (offset 155) */ + /* _mesa_function_pool[7555]: Fogi (offset 155) */ "ii\0" "glFogi\0" "\0" - /* _mesa_function_pool[7535]: DepthRange (offset 288) */ + /* _mesa_function_pool[7566]: DepthRange (offset 288) */ "dd\0" "glDepthRange\0" "\0" - /* _mesa_function_pool[7552]: RasterPos3iv (offset 75) */ + /* _mesa_function_pool[7583]: RasterPos3iv (offset 75) */ "p\0" "glRasterPos3iv\0" "\0" - /* _mesa_function_pool[7570]: FinalCombinerInputNV (will be remapped) */ + /* _mesa_function_pool[7601]: FinalCombinerInputNV (will be remapped) */ "iiii\0" "glFinalCombinerInputNV\0" "\0" - /* _mesa_function_pool[7599]: TexCoord2i (offset 106) */ + /* _mesa_function_pool[7630]: TexCoord2i (offset 106) */ "ii\0" "glTexCoord2i\0" "\0" - /* _mesa_function_pool[7616]: PixelMapfv (offset 251) */ + /* _mesa_function_pool[7647]: PixelMapfv (offset 251) */ "iip\0" "glPixelMapfv\0" "\0" - /* _mesa_function_pool[7634]: Color4ui (offset 37) */ + /* _mesa_function_pool[7665]: Color4ui (offset 37) */ "iiii\0" "glColor4ui\0" "\0" - /* _mesa_function_pool[7651]: RasterPos3s (offset 76) */ + /* _mesa_function_pool[7682]: RasterPos3s (offset 76) */ "iii\0" "glRasterPos3s\0" "\0" - /* _mesa_function_pool[7670]: Color3usv (offset 24) */ + /* _mesa_function_pool[7701]: Color3usv (offset 24) */ "p\0" "glColor3usv\0" "\0" - /* _mesa_function_pool[7685]: FlushRasterSGIX (dynamic) */ + /* _mesa_function_pool[7716]: FlushRasterSGIX (dynamic) */ "\0" "glFlushRasterSGIX\0" "\0" - /* _mesa_function_pool[7705]: TexCoord2f (offset 104) */ + /* _mesa_function_pool[7736]: TexCoord2f (offset 104) */ "ff\0" "glTexCoord2f\0" "\0" - /* _mesa_function_pool[7722]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[7753]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */ "ifffff\0" "glReplacementCodeuiTexCoord2fVertex3fSUN\0" "\0" - /* _mesa_function_pool[7771]: TexCoord2d (offset 102) */ + /* _mesa_function_pool[7802]: TexCoord2d (offset 102) */ "dd\0" "glTexCoord2d\0" "\0" - /* _mesa_function_pool[7788]: RasterPos3d (offset 70) */ + /* _mesa_function_pool[7819]: RasterPos3d (offset 70) */ "ddd\0" "glRasterPos3d\0" "\0" - /* _mesa_function_pool[7807]: RasterPos3f (offset 72) */ + /* _mesa_function_pool[7838]: RasterPos3f (offset 72) */ "fff\0" "glRasterPos3f\0" "\0" - /* _mesa_function_pool[7826]: Uniform1fARB (will be remapped) */ + /* _mesa_function_pool[7857]: Uniform1fARB (will be remapped) */ "if\0" "glUniform1f\0" "glUniform1fARB\0" "\0" - /* _mesa_function_pool[7857]: AreTexturesResident (offset 322) */ + /* _mesa_function_pool[7888]: AreTexturesResident (offset 322) */ "ipp\0" "glAreTexturesResident\0" "glAreTexturesResidentEXT\0" "\0" - /* _mesa_function_pool[7909]: TexCoord2s (offset 108) */ + /* _mesa_function_pool[7940]: TexCoord2s (offset 108) */ "ii\0" "glTexCoord2s\0" "\0" - /* _mesa_function_pool[7926]: StencilOpSeparate (will be remapped) */ + /* _mesa_function_pool[7957]: StencilOpSeparate (will be remapped) */ "iiii\0" "glStencilOpSeparate\0" "glStencilOpSeparateATI\0" "\0" - /* _mesa_function_pool[7975]: ColorTableParameteriv (offset 341) */ + /* _mesa_function_pool[8006]: ColorTableParameteriv (offset 341) */ "iip\0" "glColorTableParameteriv\0" "glColorTableParameterivSGI\0" "\0" - /* _mesa_function_pool[8031]: FogCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[8062]: FogCoordPointerListIBM (dynamic) */ "iipi\0" "glFogCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[8062]: WindowPos3dMESA (will be remapped) */ + /* _mesa_function_pool[8093]: WindowPos3dMESA (will be remapped) */ "ddd\0" "glWindowPos3d\0" "glWindowPos3dARB\0" "glWindowPos3dMESA\0" "\0" - /* _mesa_function_pool[8116]: Color4us (offset 39) */ + /* _mesa_function_pool[8147]: Color4us (offset 39) */ "iiii\0" "glColor4us\0" "\0" - /* _mesa_function_pool[8133]: PointParameterfvEXT (will be remapped) */ + /* _mesa_function_pool[8164]: PointParameterfvEXT (will be remapped) */ "ip\0" "glPointParameterfv\0" "glPointParameterfvARB\0" "glPointParameterfvEXT\0" "glPointParameterfvSGIS\0" "\0" - /* _mesa_function_pool[8223]: Color3bv (offset 10) */ + /* _mesa_function_pool[8254]: Color3bv (offset 10) */ "p\0" "glColor3bv\0" "\0" - /* _mesa_function_pool[8237]: GetnCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[8268]: GetnCompressedTexImageARB (will be remapped) */ "iiip\0" "glGetnCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[8271]: WindowPos2fvMESA (will be remapped) */ + /* _mesa_function_pool[8302]: WindowPos2fvMESA (will be remapped) */ "p\0" "glWindowPos2fv\0" "glWindowPos2fvARB\0" "glWindowPos2fvMESA\0" "\0" - /* _mesa_function_pool[8326]: SecondaryColor3bvEXT (will be remapped) */ + /* _mesa_function_pool[8357]: SecondaryColor3bvEXT (will be remapped) */ "p\0" "glSecondaryColor3bv\0" "glSecondaryColor3bvEXT\0" "\0" - /* _mesa_function_pool[8372]: VertexPointerListIBM (dynamic) */ + /* _mesa_function_pool[8403]: VertexPointerListIBM (dynamic) */ "iiipi\0" "glVertexPointerListIBM\0" "\0" - /* _mesa_function_pool[8402]: GetProgramLocalParameterfvARB (will be remapped) */ + /* _mesa_function_pool[8433]: GetProgramLocalParameterfvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterfvARB\0" "\0" - /* _mesa_function_pool[8439]: FragmentMaterialfSGIX (dynamic) */ + /* _mesa_function_pool[8470]: FragmentMaterialfSGIX (dynamic) */ "iif\0" "glFragmentMaterialfSGIX\0" "\0" - /* _mesa_function_pool[8468]: BindSampler (will be remapped) */ + /* _mesa_function_pool[8499]: BindSampler (will be remapped) */ "ii\0" "glBindSampler\0" "\0" - /* _mesa_function_pool[8486]: RenderbufferStorageEXT (will be remapped) */ + /* _mesa_function_pool[8517]: RenderbufferStorageEXT (will be remapped) */ "iiii\0" "glRenderbufferStorage\0" "glRenderbufferStorageEXT\0" "\0" - /* _mesa_function_pool[8539]: IsFenceNV (will be remapped) */ + /* _mesa_function_pool[8570]: IsFenceNV (will be remapped) */ "i\0" "glIsFenceNV\0" "\0" - /* _mesa_function_pool[8554]: AttachObjectARB (will be remapped) */ + /* _mesa_function_pool[8585]: AttachObjectARB (will be remapped) */ "ii\0" "glAttachObjectARB\0" "\0" - /* _mesa_function_pool[8576]: GetFragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[8607]: GetFragmentLightivSGIX (dynamic) */ "iip\0" "glGetFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[8606]: UniformMatrix2fvARB (will be remapped) */ + /* _mesa_function_pool[8637]: UniformMatrix2fvARB (will be remapped) */ "iiip\0" "glUniformMatrix2fv\0" "glUniformMatrix2fvARB\0" "\0" - /* _mesa_function_pool[8653]: MultiTexCoord2fARB (offset 386) */ + /* _mesa_function_pool[8684]: MultiTexCoord2fARB (offset 386) */ "iff\0" "glMultiTexCoord2f\0" "glMultiTexCoord2fARB\0" "\0" - /* _mesa_function_pool[8697]: ColorTable (offset 339) */ + /* _mesa_function_pool[8728]: ColorTable (offset 339) */ "iiiiip\0" "glColorTable\0" "glColorTableSGI\0" "glColorTableEXT\0" "\0" - /* _mesa_function_pool[8750]: IndexPointer (offset 314) */ + /* _mesa_function_pool[8781]: IndexPointer (offset 314) */ "iip\0" "glIndexPointer\0" "\0" - /* _mesa_function_pool[8770]: Accum (offset 213) */ + /* _mesa_function_pool[8801]: Accum (offset 213) */ "if\0" "glAccum\0" "\0" - /* _mesa_function_pool[8782]: GetTexImage (offset 281) */ + /* _mesa_function_pool[8813]: GetTexImage (offset 281) */ "iiiip\0" "glGetTexImage\0" "\0" - /* _mesa_function_pool[8803]: MapControlPointsNV (dynamic) */ + /* _mesa_function_pool[8834]: MapControlPointsNV (dynamic) */ "iiiiiiiip\0" "glMapControlPointsNV\0" "\0" - /* _mesa_function_pool[8835]: ConvolutionFilter2D (offset 349) */ + /* _mesa_function_pool[8866]: ConvolutionFilter2D (offset 349) */ "iiiiiip\0" "glConvolutionFilter2D\0" "glConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[8891]: Finish (offset 216) */ + /* _mesa_function_pool[8922]: Finish (offset 216) */ "\0" "glFinish\0" "\0" - /* _mesa_function_pool[8902]: MapParameterfvNV (dynamic) */ + /* _mesa_function_pool[8933]: MapParameterfvNV (dynamic) */ "iip\0" "glMapParameterfvNV\0" "\0" - /* _mesa_function_pool[8926]: ClearStencil (offset 207) */ + /* _mesa_function_pool[8957]: ClearStencil (offset 207) */ "i\0" "glClearStencil\0" "\0" - /* _mesa_function_pool[8944]: VertexAttrib3dvARB (will be remapped) */ + /* _mesa_function_pool[8975]: VertexAttrib3dvARB (will be remapped) */ "ip\0" "glVertexAttrib3dv\0" "glVertexAttrib3dvARB\0" "\0" - /* _mesa_function_pool[8987]: Uniform4uivEXT (will be remapped) */ + /* _mesa_function_pool[9018]: Uniform4uivEXT (will be remapped) */ "iip\0" "glUniform4uivEXT\0" "glUniform4uiv\0" "\0" - /* _mesa_function_pool[9023]: HintPGI (dynamic) */ + /* _mesa_function_pool[9054]: HintPGI (dynamic) */ "ii\0" "glHintPGI\0" "\0" - /* _mesa_function_pool[9037]: ConvolutionParameteriv (offset 353) */ + /* _mesa_function_pool[9068]: ConvolutionParameteriv (offset 353) */ "iip\0" "glConvolutionParameteriv\0" "glConvolutionParameterivEXT\0" "\0" - /* _mesa_function_pool[9095]: Color4s (offset 33) */ + /* _mesa_function_pool[9126]: Color4s (offset 33) */ "iiii\0" "glColor4s\0" "\0" - /* _mesa_function_pool[9111]: InterleavedArrays (offset 317) */ + /* _mesa_function_pool[9142]: InterleavedArrays (offset 317) */ "iip\0" "glInterleavedArrays\0" "\0" - /* _mesa_function_pool[9136]: RasterPos2fv (offset 65) */ + /* _mesa_function_pool[9167]: RasterPos2fv (offset 65) */ "p\0" "glRasterPos2fv\0" "\0" - /* _mesa_function_pool[9154]: TexCoord1fv (offset 97) */ + /* _mesa_function_pool[9185]: TexCoord1fv (offset 97) */ "p\0" "glTexCoord1fv\0" "\0" - /* _mesa_function_pool[9171]: Vertex2d (offset 126) */ + /* _mesa_function_pool[9202]: Vertex2d (offset 126) */ "dd\0" "glVertex2d\0" "\0" - /* _mesa_function_pool[9186]: CullParameterdvEXT (dynamic) */ + /* _mesa_function_pool[9217]: CullParameterdvEXT (dynamic) */ "ip\0" "glCullParameterdvEXT\0" "\0" - /* _mesa_function_pool[9211]: ProgramNamedParameter4fNV (will be remapped) */ + /* _mesa_function_pool[9242]: ProgramNamedParameter4fNV (will be remapped) */ "iipffff\0" "glProgramNamedParameter4fNV\0" "\0" - /* _mesa_function_pool[9248]: Color3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[9279]: Color3fVertex3fSUN (dynamic) */ "ffffff\0" "glColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[9277]: ProgramEnvParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[9308]: ProgramEnvParameter4fvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4fvARB\0" "glProgramParameter4fvNV\0" "\0" - /* _mesa_function_pool[9334]: Color4i (offset 31) */ + /* _mesa_function_pool[9365]: Color4i (offset 31) */ "iiii\0" "glColor4i\0" "\0" - /* _mesa_function_pool[9350]: Color4f (offset 29) */ + /* _mesa_function_pool[9381]: Color4f (offset 29) */ "ffff\0" "glColor4f\0" "\0" - /* _mesa_function_pool[9366]: RasterPos4fv (offset 81) */ + /* _mesa_function_pool[9397]: RasterPos4fv (offset 81) */ "p\0" "glRasterPos4fv\0" "\0" - /* _mesa_function_pool[9384]: Color4d (offset 27) */ + /* _mesa_function_pool[9415]: Color4d (offset 27) */ "dddd\0" "glColor4d\0" "\0" - /* _mesa_function_pool[9400]: ClearIndex (offset 205) */ + /* _mesa_function_pool[9431]: ClearIndex (offset 205) */ "f\0" "glClearIndex\0" "\0" - /* _mesa_function_pool[9416]: Color4b (offset 25) */ + /* _mesa_function_pool[9447]: Color4b (offset 25) */ "iiii\0" "glColor4b\0" "\0" - /* _mesa_function_pool[9432]: LoadMatrixd (offset 292) */ + /* _mesa_function_pool[9463]: LoadMatrixd (offset 292) */ "p\0" "glLoadMatrixd\0" "\0" - /* _mesa_function_pool[9449]: FragmentLightModeliSGIX (dynamic) */ + /* _mesa_function_pool[9480]: FragmentLightModeliSGIX (dynamic) */ "ii\0" "glFragmentLightModeliSGIX\0" "\0" - /* _mesa_function_pool[9479]: RasterPos2dv (offset 63) */ + /* _mesa_function_pool[9510]: RasterPos2dv (offset 63) */ "p\0" "glRasterPos2dv\0" "\0" - /* _mesa_function_pool[9497]: ConvolutionParameterfv (offset 351) */ + /* _mesa_function_pool[9528]: ConvolutionParameterfv (offset 351) */ "iip\0" "glConvolutionParameterfv\0" "glConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[9555]: TbufferMask3DFX (dynamic) */ + /* _mesa_function_pool[9586]: TbufferMask3DFX (dynamic) */ "i\0" "glTbufferMask3DFX\0" "\0" - /* _mesa_function_pool[9576]: GetTexGendv (offset 278) */ + /* _mesa_function_pool[9607]: GetTexGendv (offset 278) */ "iip\0" "glGetTexGendv\0" "\0" - /* _mesa_function_pool[9595]: GetVertexAttribfvNV (will be remapped) */ + /* _mesa_function_pool[9626]: GetVertexAttribfvNV (will be remapped) */ "iip\0" "glGetVertexAttribfvNV\0" "\0" - /* _mesa_function_pool[9622]: BeginTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[9653]: BeginTransformFeedbackEXT (will be remapped) */ "i\0" "glBeginTransformFeedbackEXT\0" "glBeginTransformFeedback\0" "\0" - /* _mesa_function_pool[9678]: LoadProgramNV (will be remapped) */ + /* _mesa_function_pool[9709]: LoadProgramNV (will be remapped) */ "iiip\0" "glLoadProgramNV\0" "\0" - /* _mesa_function_pool[9700]: WaitSync (will be remapped) */ + /* _mesa_function_pool[9731]: WaitSync (will be remapped) */ "iii\0" "glWaitSync\0" "\0" - /* _mesa_function_pool[9716]: EndList (offset 1) */ + /* _mesa_function_pool[9747]: EndList (offset 1) */ "\0" "glEndList\0" "\0" - /* _mesa_function_pool[9728]: VertexAttrib4fvNV (will be remapped) */ + /* _mesa_function_pool[9759]: VertexAttrib4fvNV (will be remapped) */ "ip\0" "glVertexAttrib4fvNV\0" "\0" - /* _mesa_function_pool[9752]: GetAttachedObjectsARB (will be remapped) */ + /* _mesa_function_pool[9783]: GetAttachedObjectsARB (will be remapped) */ "iipp\0" "glGetAttachedObjectsARB\0" "\0" - /* _mesa_function_pool[9782]: Uniform3fvARB (will be remapped) */ + /* _mesa_function_pool[9813]: Uniform3fvARB (will be remapped) */ "iip\0" "glUniform3fv\0" "glUniform3fvARB\0" "\0" - /* _mesa_function_pool[9816]: EvalCoord1fv (offset 231) */ + /* _mesa_function_pool[9847]: EvalCoord1fv (offset 231) */ "p\0" "glEvalCoord1fv\0" "\0" - /* _mesa_function_pool[9834]: DrawRangeElements (offset 338) */ + /* _mesa_function_pool[9865]: DrawRangeElements (offset 338) */ "iiiiip\0" "glDrawRangeElements\0" "glDrawRangeElementsEXT\0" "\0" - /* _mesa_function_pool[9885]: EvalMesh2 (offset 238) */ + /* _mesa_function_pool[9916]: EvalMesh2 (offset 238) */ "iiiii\0" "glEvalMesh2\0" "\0" - /* _mesa_function_pool[9904]: Vertex4fv (offset 145) */ + /* _mesa_function_pool[9935]: Vertex4fv (offset 145) */ "p\0" "glVertex4fv\0" "\0" - /* _mesa_function_pool[9919]: GenTransformFeedbacks (will be remapped) */ + /* _mesa_function_pool[9950]: GenTransformFeedbacks (will be remapped) */ "ip\0" "glGenTransformFeedbacks\0" "\0" - /* _mesa_function_pool[9947]: SpriteParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[9978]: SpriteParameterfvSGIX (dynamic) */ "ip\0" "glSpriteParameterfvSGIX\0" "\0" - /* _mesa_function_pool[9975]: CheckFramebufferStatusEXT (will be remapped) */ + /* _mesa_function_pool[10006]: CheckFramebufferStatusEXT (will be remapped) */ "i\0" "glCheckFramebufferStatus\0" "glCheckFramebufferStatusEXT\0" "\0" - /* _mesa_function_pool[10031]: GlobalAlphaFactoruiSUN (dynamic) */ + /* _mesa_function_pool[10062]: GlobalAlphaFactoruiSUN (dynamic) */ "i\0" "glGlobalAlphaFactoruiSUN\0" "\0" - /* _mesa_function_pool[10059]: GetHandleARB (will be remapped) */ + /* _mesa_function_pool[10090]: GetHandleARB (will be remapped) */ "i\0" "glGetHandleARB\0" "\0" - /* _mesa_function_pool[10077]: GetVertexAttribivARB (will be remapped) */ + /* _mesa_function_pool[10108]: GetVertexAttribivARB (will be remapped) */ "iip\0" "glGetVertexAttribiv\0" "glGetVertexAttribivARB\0" "\0" - /* _mesa_function_pool[10125]: BlendFunciARB (will be remapped) */ + /* _mesa_function_pool[10156]: BlendFunciARB (will be remapped) */ "iii\0" "glBlendFunciARB\0" + "glBlendFuncIndexedAMD\0" "\0" - /* _mesa_function_pool[10146]: GetnUniformivARB (will be remapped) */ + /* _mesa_function_pool[10199]: GetnUniformivARB (will be remapped) */ "iiip\0" "glGetnUniformivARB\0" "\0" - /* _mesa_function_pool[10171]: GetTexParameterIivEXT (will be remapped) */ + /* _mesa_function_pool[10224]: GetTexParameterIivEXT (will be remapped) */ "iip\0" "glGetTexParameterIivEXT\0" "glGetTexParameterIiv\0" "\0" - /* _mesa_function_pool[10221]: CreateProgram (will be remapped) */ + /* _mesa_function_pool[10274]: CreateProgram (will be remapped) */ "\0" "glCreateProgram\0" "\0" - /* _mesa_function_pool[10239]: LoadTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[10292]: LoadTransposeMatrixdARB (will be remapped) */ "p\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[10291]: ReleaseShaderCompiler (will be remapped) */ + /* _mesa_function_pool[10344]: ReleaseShaderCompiler (will be remapped) */ "\0" "glReleaseShaderCompiler\0" "\0" - /* _mesa_function_pool[10317]: GetMinmax (offset 364) */ + /* _mesa_function_pool[10370]: GetMinmax (offset 364) */ "iiiip\0" "glGetMinmax\0" "glGetMinmaxEXT\0" "\0" - /* _mesa_function_pool[10351]: StencilFuncSeparate (will be remapped) */ + /* _mesa_function_pool[10404]: StencilFuncSeparate (will be remapped) */ "iiii\0" "glStencilFuncSeparate\0" "\0" - /* _mesa_function_pool[10379]: SecondaryColor3sEXT (will be remapped) */ + /* _mesa_function_pool[10432]: SecondaryColor3sEXT (will be remapped) */ "iii\0" "glSecondaryColor3s\0" "glSecondaryColor3sEXT\0" "\0" - /* _mesa_function_pool[10425]: Color3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10478]: Color3fVertex3fvSUN (dynamic) */ "pp\0" "glColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10451]: GetInteger64i_v (will be remapped) */ + /* _mesa_function_pool[10504]: GetInteger64i_v (will be remapped) */ "iip\0" "glGetInteger64i_v\0" "\0" - /* _mesa_function_pool[10474]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[10527]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[10501]: Normal3fv (offset 57) */ + /* _mesa_function_pool[10554]: Normal3fv (offset 57) */ "p\0" "glNormal3fv\0" "\0" - /* _mesa_function_pool[10516]: GlobalAlphaFactorbSUN (dynamic) */ + /* _mesa_function_pool[10569]: GlobalAlphaFactorbSUN (dynamic) */ "i\0" "glGlobalAlphaFactorbSUN\0" "\0" - /* _mesa_function_pool[10543]: Color3us (offset 23) */ + /* _mesa_function_pool[10596]: Color3us (offset 23) */ "iii\0" "glColor3us\0" "\0" - /* _mesa_function_pool[10559]: ImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[10612]: ImageTransformParameterfvHP (dynamic) */ "iip\0" "glImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[10594]: VertexAttrib4ivARB (will be remapped) */ + /* _mesa_function_pool[10647]: VertexAttrib4ivARB (will be remapped) */ "ip\0" "glVertexAttrib4iv\0" "glVertexAttrib4ivARB\0" "\0" - /* _mesa_function_pool[10637]: End (offset 43) */ + /* _mesa_function_pool[10690]: End (offset 43) */ "\0" "glEnd\0" "\0" - /* _mesa_function_pool[10645]: VertexAttrib3fNV (will be remapped) */ + /* _mesa_function_pool[10698]: VertexAttrib3fNV (will be remapped) */ "ifff\0" "glVertexAttrib3fNV\0" "\0" - /* _mesa_function_pool[10670]: VertexAttribs2dvNV (will be remapped) */ + /* _mesa_function_pool[10723]: VertexAttribs2dvNV (will be remapped) */ "iip\0" "glVertexAttribs2dvNV\0" "\0" - /* _mesa_function_pool[10696]: GetQueryObjectui64vEXT (will be remapped) */ + /* _mesa_function_pool[10749]: GetQueryObjectui64vEXT (will be remapped) */ "iip\0" "glGetQueryObjectui64vEXT\0" "\0" - /* _mesa_function_pool[10726]: MultiTexCoord3fvARB (offset 395) */ + /* _mesa_function_pool[10779]: MultiTexCoord3fvARB (offset 395) */ "ip\0" "glMultiTexCoord3fv\0" "glMultiTexCoord3fvARB\0" "\0" - /* _mesa_function_pool[10771]: SecondaryColor3dEXT (will be remapped) */ + /* _mesa_function_pool[10824]: SecondaryColor3dEXT (will be remapped) */ "ddd\0" "glSecondaryColor3d\0" "glSecondaryColor3dEXT\0" "\0" - /* _mesa_function_pool[10817]: Color3ub (offset 19) */ + /* _mesa_function_pool[10870]: Color3ub (offset 19) */ "iii\0" "glColor3ub\0" "\0" - /* _mesa_function_pool[10833]: GetProgramParameterfvNV (will be remapped) */ + /* _mesa_function_pool[10886]: GetProgramParameterfvNV (will be remapped) */ "iiip\0" "glGetProgramParameterfvNV\0" "\0" - /* _mesa_function_pool[10865]: TangentPointerEXT (dynamic) */ + /* _mesa_function_pool[10918]: TangentPointerEXT (dynamic) */ "iip\0" "glTangentPointerEXT\0" "\0" - /* _mesa_function_pool[10890]: Color4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10943]: Color4fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10925]: GetInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[10978]: GetInstrumentsSGIX (dynamic) */ "\0" "glGetInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[10948]: GetUniformuivEXT (will be remapped) */ + /* _mesa_function_pool[11001]: GetUniformuivEXT (will be remapped) */ "iip\0" "glGetUniformuivEXT\0" "glGetUniformuiv\0" "\0" - /* _mesa_function_pool[10988]: Color3ui (offset 21) */ + /* _mesa_function_pool[11041]: Color3ui (offset 21) */ "iii\0" "glColor3ui\0" "\0" - /* _mesa_function_pool[11004]: EvalMapsNV (dynamic) */ + /* _mesa_function_pool[11057]: EvalMapsNV (dynamic) */ "ii\0" "glEvalMapsNV\0" "\0" - /* _mesa_function_pool[11021]: TexSubImage2D (offset 333) */ + /* _mesa_function_pool[11074]: TexSubImage2D (offset 333) */ "iiiiiiiip\0" "glTexSubImage2D\0" "glTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[11067]: FragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[11120]: FragmentLightivSGIX (dynamic) */ "iip\0" "glFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[11094]: GetTexParameterPointervAPPLE (will be remapped) */ + /* _mesa_function_pool[11147]: GetTexParameterPointervAPPLE (will be remapped) */ "iip\0" "glGetTexParameterPointervAPPLE\0" "\0" - /* _mesa_function_pool[11130]: TexGenfv (offset 191) */ + /* _mesa_function_pool[11183]: TexGenfv (offset 191) */ "iip\0" "glTexGenfv\0" "\0" - /* _mesa_function_pool[11146]: GetTransformFeedbackVaryingEXT (will be remapped) */ + /* _mesa_function_pool[11199]: GetTransformFeedbackVaryingEXT (will be remapped) */ "iiipppp\0" "glGetTransformFeedbackVaryingEXT\0" "glGetTransformFeedbackVarying\0" "\0" - /* _mesa_function_pool[11218]: VertexAttrib4bvARB (will be remapped) */ + /* _mesa_function_pool[11271]: VertexAttrib4bvARB (will be remapped) */ "ip\0" "glVertexAttrib4bv\0" "glVertexAttrib4bvARB\0" "\0" - /* _mesa_function_pool[11261]: ShaderBinary (will be remapped) */ + /* _mesa_function_pool[11314]: ShaderBinary (will be remapped) */ "ipipi\0" "glShaderBinary\0" "\0" - /* _mesa_function_pool[11283]: GetIntegerIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[11336]: GetIntegerIndexedvEXT (will be remapped) */ "iip\0" "glGetIntegerIndexedvEXT\0" "glGetIntegeri_v\0" "\0" - /* _mesa_function_pool[11328]: MultiTexCoord4sARB (offset 406) */ + /* _mesa_function_pool[11381]: MultiTexCoord4sARB (offset 406) */ "iiiii\0" "glMultiTexCoord4s\0" "glMultiTexCoord4sARB\0" "\0" - /* _mesa_function_pool[11374]: GetFragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[11427]: GetFragmentMaterialivSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[11407]: WindowPos4dMESA (will be remapped) */ + /* _mesa_function_pool[11460]: WindowPos4dMESA (will be remapped) */ "dddd\0" "glWindowPos4dMESA\0" "\0" - /* _mesa_function_pool[11431]: WeightPointerARB (dynamic) */ + /* _mesa_function_pool[11484]: WeightPointerARB (dynamic) */ "iiip\0" "glWeightPointerARB\0" "\0" - /* _mesa_function_pool[11456]: WindowPos2dMESA (will be remapped) */ + /* _mesa_function_pool[11509]: WindowPos2dMESA (will be remapped) */ "dd\0" "glWindowPos2d\0" "glWindowPos2dARB\0" "glWindowPos2dMESA\0" "\0" - /* _mesa_function_pool[11509]: FramebufferTexture3DEXT (will be remapped) */ + /* _mesa_function_pool[11562]: FramebufferTexture3DEXT (will be remapped) */ "iiiiii\0" "glFramebufferTexture3D\0" "glFramebufferTexture3DEXT\0" "\0" - /* _mesa_function_pool[11566]: BlendEquation (offset 337) */ + /* _mesa_function_pool[11619]: BlendEquation (offset 337) */ "i\0" "glBlendEquation\0" "glBlendEquationEXT\0" "\0" - /* _mesa_function_pool[11604]: VertexAttrib3dNV (will be remapped) */ + /* _mesa_function_pool[11657]: VertexAttrib3dNV (will be remapped) */ "iddd\0" "glVertexAttrib3dNV\0" "\0" - /* _mesa_function_pool[11629]: VertexAttrib3dARB (will be remapped) */ + /* _mesa_function_pool[11682]: VertexAttrib3dARB (will be remapped) */ "iddd\0" "glVertexAttrib3d\0" "glVertexAttrib3dARB\0" "\0" - /* _mesa_function_pool[11672]: VertexAttribI4usvEXT (will be remapped) */ + /* _mesa_function_pool[11725]: VertexAttribI4usvEXT (will be remapped) */ "ip\0" "glVertexAttribI4usvEXT\0" "glVertexAttribI4usv\0" "\0" - /* _mesa_function_pool[11719]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[11772]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "ppppp\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[11783]: VertexAttrib4fARB (will be remapped) */ + /* _mesa_function_pool[11836]: VertexAttrib4fARB (will be remapped) */ "iffff\0" "glVertexAttrib4f\0" "glVertexAttrib4fARB\0" "\0" - /* _mesa_function_pool[11827]: GetError (offset 261) */ + /* _mesa_function_pool[11880]: GetError (offset 261) */ "\0" "glGetError\0" "\0" - /* _mesa_function_pool[11840]: IndexFuncEXT (dynamic) */ + /* _mesa_function_pool[11893]: IndexFuncEXT (dynamic) */ "if\0" "glIndexFuncEXT\0" "\0" - /* _mesa_function_pool[11859]: TexCoord3dv (offset 111) */ + /* _mesa_function_pool[11912]: TexCoord3dv (offset 111) */ "p\0" "glTexCoord3dv\0" "\0" - /* _mesa_function_pool[11876]: Indexdv (offset 45) */ + /* _mesa_function_pool[11929]: Indexdv (offset 45) */ "p\0" "glIndexdv\0" "\0" - /* _mesa_function_pool[11889]: FramebufferTexture2DEXT (will be remapped) */ + /* _mesa_function_pool[11942]: FramebufferTexture2DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture2D\0" "glFramebufferTexture2DEXT\0" "\0" - /* _mesa_function_pool[11945]: Normal3s (offset 60) */ + /* _mesa_function_pool[11998]: Normal3s (offset 60) */ "iii\0" "glNormal3s\0" "\0" - /* _mesa_function_pool[11961]: GetObjectParameterivAPPLE (will be remapped) */ + /* _mesa_function_pool[12014]: GetObjectParameterivAPPLE (will be remapped) */ "iiip\0" "glGetObjectParameterivAPPLE\0" "\0" - /* _mesa_function_pool[11995]: PushName (offset 201) */ + /* _mesa_function_pool[12048]: PushName (offset 201) */ "i\0" "glPushName\0" "\0" - /* _mesa_function_pool[12009]: MultiTexCoord2dvARB (offset 385) */ + /* _mesa_function_pool[12062]: MultiTexCoord2dvARB (offset 385) */ "ip\0" "glMultiTexCoord2dv\0" "glMultiTexCoord2dvARB\0" "\0" - /* _mesa_function_pool[12054]: CullParameterfvEXT (dynamic) */ + /* _mesa_function_pool[12107]: CullParameterfvEXT (dynamic) */ "ip\0" "glCullParameterfvEXT\0" "\0" - /* _mesa_function_pool[12079]: Normal3i (offset 58) */ + /* _mesa_function_pool[12132]: Normal3i (offset 58) */ "iii\0" "glNormal3i\0" "\0" - /* _mesa_function_pool[12095]: ProgramNamedParameter4fvNV (will be remapped) */ + /* _mesa_function_pool[12148]: ProgramNamedParameter4fvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4fvNV\0" "\0" - /* _mesa_function_pool[12130]: SecondaryColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[12183]: SecondaryColorPointerEXT (will be remapped) */ "iiip\0" "glSecondaryColorPointer\0" "glSecondaryColorPointerEXT\0" "\0" - /* _mesa_function_pool[12187]: VertexAttrib4fvARB (will be remapped) */ + /* _mesa_function_pool[12240]: VertexAttrib4fvARB (will be remapped) */ "ip\0" "glVertexAttrib4fv\0" "glVertexAttrib4fvARB\0" "\0" - /* _mesa_function_pool[12230]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[12283]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[12251]: GetActiveUniformARB (will be remapped) */ + /* _mesa_function_pool[12304]: GetActiveUniformARB (will be remapped) */ "iiipppp\0" "glGetActiveUniform\0" "glGetActiveUniformARB\0" "\0" - /* _mesa_function_pool[12301]: ImageTransformParameteriHP (dynamic) */ + /* _mesa_function_pool[12354]: ImageTransformParameteriHP (dynamic) */ "iii\0" "glImageTransformParameteriHP\0" "\0" - /* _mesa_function_pool[12335]: Normal3b (offset 52) */ + /* _mesa_function_pool[12388]: Normal3b (offset 52) */ "iii\0" "glNormal3b\0" "\0" - /* _mesa_function_pool[12351]: Normal3d (offset 54) */ + /* _mesa_function_pool[12404]: Normal3d (offset 54) */ "ddd\0" "glNormal3d\0" "\0" - /* _mesa_function_pool[12367]: Uniform1uiEXT (will be remapped) */ + /* _mesa_function_pool[12420]: Uniform1uiEXT (will be remapped) */ "ii\0" "glUniform1uiEXT\0" "glUniform1ui\0" "\0" - /* _mesa_function_pool[12400]: Normal3f (offset 56) */ + /* _mesa_function_pool[12453]: Normal3f (offset 56) */ "fff\0" "glNormal3f\0" "\0" - /* _mesa_function_pool[12416]: MultiTexCoord1svARB (offset 383) */ + /* _mesa_function_pool[12469]: MultiTexCoord1svARB (offset 383) */ "ip\0" "glMultiTexCoord1sv\0" "glMultiTexCoord1svARB\0" "\0" - /* _mesa_function_pool[12461]: Indexi (offset 48) */ + /* _mesa_function_pool[12514]: Indexi (offset 48) */ "i\0" "glIndexi\0" "\0" - /* _mesa_function_pool[12473]: EGLImageTargetTexture2DOES (will be remapped) */ + /* _mesa_function_pool[12526]: EGLImageTargetTexture2DOES (will be remapped) */ "ip\0" "glEGLImageTargetTexture2DOES\0" "\0" - /* _mesa_function_pool[12506]: EndQueryARB (will be remapped) */ + /* _mesa_function_pool[12559]: EndQueryARB (will be remapped) */ "i\0" "glEndQuery\0" "glEndQueryARB\0" "\0" - /* _mesa_function_pool[12534]: DeleteFencesNV (will be remapped) */ + /* _mesa_function_pool[12587]: DeleteFencesNV (will be remapped) */ "ip\0" "glDeleteFencesNV\0" "\0" - /* _mesa_function_pool[12555]: ColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[12608]: ColorPointerListIBM (dynamic) */ "iiipi\0" "glColorPointerListIBM\0" "\0" - /* _mesa_function_pool[12584]: BindBufferRangeEXT (will be remapped) */ + /* _mesa_function_pool[12637]: BindBufferRangeEXT (will be remapped) */ "iiiii\0" "glBindBufferRangeEXT\0" "glBindBufferRange\0" "\0" - /* _mesa_function_pool[12630]: DepthMask (offset 211) */ + /* _mesa_function_pool[12683]: DepthMask (offset 211) */ "i\0" "glDepthMask\0" "\0" - /* _mesa_function_pool[12645]: IsShader (will be remapped) */ + /* _mesa_function_pool[12698]: IsShader (will be remapped) */ "i\0" "glIsShader\0" "\0" - /* _mesa_function_pool[12659]: Indexf (offset 46) */ + /* _mesa_function_pool[12712]: Indexf (offset 46) */ "f\0" "glIndexf\0" "\0" - /* _mesa_function_pool[12671]: GetImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[12724]: GetImageTransformParameterivHP (dynamic) */ "iip\0" "glGetImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[12709]: Indexd (offset 44) */ + /* _mesa_function_pool[12762]: Indexd (offset 44) */ "d\0" "glIndexd\0" "\0" - /* _mesa_function_pool[12721]: GetMaterialiv (offset 270) */ + /* _mesa_function_pool[12774]: GetMaterialiv (offset 270) */ "iip\0" "glGetMaterialiv\0" "\0" - /* _mesa_function_pool[12742]: StencilOp (offset 244) */ + /* _mesa_function_pool[12795]: StencilOp (offset 244) */ "iii\0" "glStencilOp\0" "\0" - /* _mesa_function_pool[12759]: WindowPos4ivMESA (will be remapped) */ + /* _mesa_function_pool[12812]: WindowPos4ivMESA (will be remapped) */ "p\0" "glWindowPos4ivMESA\0" "\0" - /* _mesa_function_pool[12781]: FramebufferTextureLayer (dynamic) */ + /* _mesa_function_pool[12834]: FramebufferTextureLayer (dynamic) */ "iiiii\0" "glFramebufferTextureLayerARB\0" "\0" - /* _mesa_function_pool[12817]: MultiTexCoord3svARB (offset 399) */ + /* _mesa_function_pool[12870]: MultiTexCoord3svARB (offset 399) */ "ip\0" "glMultiTexCoord3sv\0" "glMultiTexCoord3svARB\0" "\0" - /* _mesa_function_pool[12862]: TexEnvfv (offset 185) */ + /* _mesa_function_pool[12915]: TexEnvfv (offset 185) */ "iip\0" "glTexEnvfv\0" "\0" - /* _mesa_function_pool[12878]: MultiTexCoord4iARB (offset 404) */ + /* _mesa_function_pool[12931]: MultiTexCoord4iARB (offset 404) */ "iiiii\0" "glMultiTexCoord4i\0" "glMultiTexCoord4iARB\0" "\0" - /* _mesa_function_pool[12924]: Indexs (offset 50) */ + /* _mesa_function_pool[12977]: Indexs (offset 50) */ "i\0" "glIndexs\0" "\0" - /* _mesa_function_pool[12936]: Binormal3ivEXT (dynamic) */ + /* _mesa_function_pool[12989]: Binormal3ivEXT (dynamic) */ "p\0" "glBinormal3ivEXT\0" "\0" - /* _mesa_function_pool[12956]: ResizeBuffersMESA (will be remapped) */ + /* _mesa_function_pool[13009]: ResizeBuffersMESA (will be remapped) */ "\0" "glResizeBuffersMESA\0" "\0" - /* _mesa_function_pool[12978]: BlendFuncSeparateiARB (will be remapped) */ + /* _mesa_function_pool[13031]: BlendFuncSeparateiARB (will be remapped) */ "iiiii\0" "glBlendFuncSeparateiARB\0" + "glBlendFuncSeparateIndexedAMD\0" "\0" - /* _mesa_function_pool[13009]: GetUniformivARB (will be remapped) */ + /* _mesa_function_pool[13092]: GetUniformivARB (will be remapped) */ "iip\0" "glGetUniformiv\0" "glGetUniformivARB\0" "\0" - /* _mesa_function_pool[13047]: PixelTexGenParameteriSGIS (will be remapped) */ + /* _mesa_function_pool[13130]: PixelTexGenParameteriSGIS (will be remapped) */ "ii\0" "glPixelTexGenParameteriSGIS\0" "\0" - /* _mesa_function_pool[13079]: VertexPointervINTEL (dynamic) */ + /* _mesa_function_pool[13162]: VertexPointervINTEL (dynamic) */ "iip\0" "glVertexPointervINTEL\0" "\0" - /* _mesa_function_pool[13106]: Vertex2i (offset 130) */ + /* _mesa_function_pool[13189]: Vertex2i (offset 130) */ "ii\0" "glVertex2i\0" "\0" - /* _mesa_function_pool[13121]: LoadMatrixf (offset 291) */ + /* _mesa_function_pool[13204]: LoadMatrixf (offset 291) */ "p\0" "glLoadMatrixf\0" "\0" - /* _mesa_function_pool[13138]: VertexAttribI1uivEXT (will be remapped) */ + /* _mesa_function_pool[13221]: VertexAttribI1uivEXT (will be remapped) */ "ip\0" "glVertexAttribI1uivEXT\0" "glVertexAttribI1uiv\0" "\0" - /* _mesa_function_pool[13185]: Vertex2f (offset 128) */ + /* _mesa_function_pool[13268]: Vertex2f (offset 128) */ "ff\0" "glVertex2f\0" "\0" - /* _mesa_function_pool[13200]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[13283]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[13253]: Color4bv (offset 26) */ + /* _mesa_function_pool[13336]: Color4bv (offset 26) */ "p\0" "glColor4bv\0" "\0" - /* _mesa_function_pool[13267]: VertexPointer (offset 321) */ + /* _mesa_function_pool[13350]: VertexPointer (offset 321) */ "iiip\0" "glVertexPointer\0" "\0" - /* _mesa_function_pool[13289]: SecondaryColor3uiEXT (will be remapped) */ + /* _mesa_function_pool[13372]: SecondaryColor3uiEXT (will be remapped) */ "iii\0" "glSecondaryColor3ui\0" "glSecondaryColor3uiEXT\0" "\0" - /* _mesa_function_pool[13337]: StartInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[13420]: StartInstrumentsSGIX (dynamic) */ "\0" "glStartInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[13362]: SecondaryColor3usvEXT (will be remapped) */ + /* _mesa_function_pool[13445]: SecondaryColor3usvEXT (will be remapped) */ "p\0" "glSecondaryColor3usv\0" "glSecondaryColor3usvEXT\0" "\0" - /* _mesa_function_pool[13410]: VertexAttrib2fvNV (will be remapped) */ + /* _mesa_function_pool[13493]: VertexAttrib2fvNV (will be remapped) */ "ip\0" "glVertexAttrib2fvNV\0" "\0" - /* _mesa_function_pool[13434]: ProgramLocalParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[13517]: ProgramLocalParameter4dvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4dvARB\0" "\0" - /* _mesa_function_pool[13469]: DeleteLists (offset 4) */ + /* _mesa_function_pool[13552]: DeleteLists (offset 4) */ "ii\0" "glDeleteLists\0" "\0" - /* _mesa_function_pool[13487]: LogicOp (offset 242) */ + /* _mesa_function_pool[13570]: LogicOp (offset 242) */ "i\0" "glLogicOp\0" "\0" - /* _mesa_function_pool[13500]: MatrixIndexuivARB (dynamic) */ + /* _mesa_function_pool[13583]: MatrixIndexuivARB (dynamic) */ "ip\0" "glMatrixIndexuivARB\0" "\0" - /* _mesa_function_pool[13524]: Vertex2s (offset 132) */ + /* _mesa_function_pool[13607]: Vertex2s (offset 132) */ "ii\0" "glVertex2s\0" "\0" - /* _mesa_function_pool[13539]: RenderbufferStorageMultisample (will be remapped) */ + /* _mesa_function_pool[13622]: RenderbufferStorageMultisample (will be remapped) */ "iiiii\0" "glRenderbufferStorageMultisample\0" "glRenderbufferStorageMultisampleEXT\0" "\0" - /* _mesa_function_pool[13615]: TexCoord4fv (offset 121) */ + /* _mesa_function_pool[13698]: TexCoord4fv (offset 121) */ "p\0" "glTexCoord4fv\0" "\0" - /* _mesa_function_pool[13632]: Tangent3sEXT (dynamic) */ + /* _mesa_function_pool[13715]: Tangent3sEXT (dynamic) */ "iii\0" "glTangent3sEXT\0" "\0" - /* _mesa_function_pool[13652]: GlobalAlphaFactorfSUN (dynamic) */ + /* _mesa_function_pool[13735]: GlobalAlphaFactorfSUN (dynamic) */ "f\0" "glGlobalAlphaFactorfSUN\0" "\0" - /* _mesa_function_pool[13679]: MultiTexCoord3iARB (offset 396) */ + /* _mesa_function_pool[13762]: MultiTexCoord3iARB (offset 396) */ "iiii\0" "glMultiTexCoord3i\0" "glMultiTexCoord3iARB\0" "\0" - /* _mesa_function_pool[13724]: IsProgram (will be remapped) */ + /* _mesa_function_pool[13807]: IsProgram (will be remapped) */ "i\0" "glIsProgram\0" "\0" - /* _mesa_function_pool[13739]: TexCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[13822]: TexCoordPointerListIBM (dynamic) */ "iiipi\0" "glTexCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[13771]: VertexAttribI4svEXT (will be remapped) */ + /* _mesa_function_pool[13854]: VertexAttribI4svEXT (will be remapped) */ "ip\0" "glVertexAttribI4svEXT\0" "glVertexAttribI4sv\0" "\0" - /* _mesa_function_pool[13816]: GlobalAlphaFactorusSUN (dynamic) */ + /* _mesa_function_pool[13899]: GlobalAlphaFactorusSUN (dynamic) */ "i\0" "glGlobalAlphaFactorusSUN\0" "\0" - /* _mesa_function_pool[13844]: VertexAttrib2dvNV (will be remapped) */ + /* _mesa_function_pool[13927]: VertexAttrib2dvNV (will be remapped) */ "ip\0" "glVertexAttrib2dvNV\0" "\0" - /* _mesa_function_pool[13868]: FramebufferRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[13951]: FramebufferRenderbufferEXT (will be remapped) */ "iiii\0" "glFramebufferRenderbuffer\0" "glFramebufferRenderbufferEXT\0" "\0" - /* _mesa_function_pool[13929]: ClearBufferuiv (will be remapped) */ + /* _mesa_function_pool[14012]: ClearBufferuiv (will be remapped) */ "iip\0" "glClearBufferuiv\0" "\0" - /* _mesa_function_pool[13951]: VertexAttrib1dvNV (will be remapped) */ + /* _mesa_function_pool[14034]: VertexAttrib1dvNV (will be remapped) */ "ip\0" "glVertexAttrib1dvNV\0" "\0" - /* _mesa_function_pool[13975]: GenTextures (offset 328) */ + /* _mesa_function_pool[14058]: GenTextures (offset 328) */ "ip\0" "glGenTextures\0" "glGenTexturesEXT\0" "\0" - /* _mesa_function_pool[14010]: FramebufferTextureARB (will be remapped) */ + /* _mesa_function_pool[14093]: FramebufferTextureARB (will be remapped) */ "iiii\0" "glFramebufferTextureARB\0" "\0" - /* _mesa_function_pool[14040]: SetFenceNV (will be remapped) */ + /* _mesa_function_pool[14123]: SetFenceNV (will be remapped) */ "ii\0" "glSetFenceNV\0" "\0" - /* _mesa_function_pool[14057]: FramebufferTexture1DEXT (will be remapped) */ + /* _mesa_function_pool[14140]: FramebufferTexture1DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture1D\0" "glFramebufferTexture1DEXT\0" "\0" - /* _mesa_function_pool[14113]: GetCombinerOutputParameterivNV (will be remapped) */ + /* _mesa_function_pool[14196]: GetCombinerOutputParameterivNV (will be remapped) */ "iiip\0" "glGetCombinerOutputParameterivNV\0" "\0" - /* _mesa_function_pool[14152]: MultiModeDrawArraysIBM (will be remapped) */ - "pppii\0" - "glMultiModeDrawArraysIBM\0" - "\0" - /* _mesa_function_pool[14184]: PixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[14235]: PixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[14217]: TextureNormalEXT (dynamic) */ + /* _mesa_function_pool[14268]: TextureNormalEXT (dynamic) */ "i\0" "glTextureNormalEXT\0" "\0" - /* _mesa_function_pool[14239]: IndexPointerListIBM (dynamic) */ + /* _mesa_function_pool[14290]: IndexPointerListIBM (dynamic) */ "iipi\0" "glIndexPointerListIBM\0" "\0" - /* _mesa_function_pool[14267]: WeightfvARB (dynamic) */ + /* _mesa_function_pool[14318]: WeightfvARB (dynamic) */ "ip\0" "glWeightfvARB\0" "\0" - /* _mesa_function_pool[14285]: GetCombinerOutputParameterfvNV (will be remapped) */ - "iiip\0" - "glGetCombinerOutputParameterfvNV\0" - "\0" - /* _mesa_function_pool[14324]: RasterPos2sv (offset 69) */ + /* _mesa_function_pool[14336]: RasterPos2sv (offset 69) */ "p\0" "glRasterPos2sv\0" "\0" - /* _mesa_function_pool[14342]: Color4ubv (offset 36) */ + /* _mesa_function_pool[14354]: Color4ubv (offset 36) */ "p\0" "glColor4ubv\0" "\0" - /* _mesa_function_pool[14357]: DrawBuffer (offset 202) */ + /* _mesa_function_pool[14369]: DrawBuffer (offset 202) */ "i\0" "glDrawBuffer\0" "\0" - /* _mesa_function_pool[14373]: TexCoord2fv (offset 105) */ + /* _mesa_function_pool[14385]: TexCoord2fv (offset 105) */ "p\0" "glTexCoord2fv\0" "\0" - /* _mesa_function_pool[14390]: WindowPos4fMESA (will be remapped) */ + /* _mesa_function_pool[14402]: WindowPos4fMESA (will be remapped) */ "ffff\0" "glWindowPos4fMESA\0" "\0" - /* _mesa_function_pool[14414]: TexCoord1sv (offset 101) */ + /* _mesa_function_pool[14426]: TexCoord1sv (offset 101) */ "p\0" "glTexCoord1sv\0" "\0" - /* _mesa_function_pool[14431]: WindowPos3dvMESA (will be remapped) */ + /* _mesa_function_pool[14443]: WindowPos3dvMESA (will be remapped) */ "p\0" "glWindowPos3dv\0" "glWindowPos3dvARB\0" "glWindowPos3dvMESA\0" "\0" - /* _mesa_function_pool[14486]: DepthFunc (offset 245) */ + /* _mesa_function_pool[14498]: DepthFunc (offset 245) */ "i\0" "glDepthFunc\0" "\0" - /* _mesa_function_pool[14501]: PixelMapusv (offset 253) */ + /* _mesa_function_pool[14513]: PixelMapusv (offset 253) */ "iip\0" "glPixelMapusv\0" "\0" - /* _mesa_function_pool[14520]: GetQueryObjecti64vEXT (will be remapped) */ + /* _mesa_function_pool[14532]: GetQueryObjecti64vEXT (will be remapped) */ "iip\0" "glGetQueryObjecti64vEXT\0" "\0" - /* _mesa_function_pool[14549]: MultiTexCoord1dARB (offset 376) */ + /* _mesa_function_pool[14561]: MultiTexCoord1dARB (offset 376) */ "id\0" "glMultiTexCoord1d\0" "glMultiTexCoord1dARB\0" "\0" - /* _mesa_function_pool[14592]: PointParameterivNV (will be remapped) */ + /* _mesa_function_pool[14604]: PointParameterivNV (will be remapped) */ "ip\0" "glPointParameteriv\0" "glPointParameterivNV\0" "\0" - /* _mesa_function_pool[14636]: IsSampler (will be remapped) */ + /* _mesa_function_pool[14648]: IsSampler (will be remapped) */ "i\0" "glIsSampler\0" "\0" - /* _mesa_function_pool[14651]: BlendFunc (offset 241) */ + /* _mesa_function_pool[14663]: BlendFunc (offset 241) */ "ii\0" "glBlendFunc\0" "\0" - /* _mesa_function_pool[14667]: EndTransformFeedbackEXT (will be remapped) */ + /* _mesa_function_pool[14679]: EndTransformFeedbackEXT (will be remapped) */ "\0" "glEndTransformFeedbackEXT\0" "glEndTransformFeedback\0" "\0" - /* _mesa_function_pool[14718]: Uniform2fvARB (will be remapped) */ + /* _mesa_function_pool[14730]: Uniform2fvARB (will be remapped) */ "iip\0" "glUniform2fv\0" "glUniform2fvARB\0" "\0" - /* _mesa_function_pool[14752]: BufferParameteriAPPLE (will be remapped) */ + /* _mesa_function_pool[14764]: BufferParameteriAPPLE (will be remapped) */ "iii\0" "glBufferParameteriAPPLE\0" "\0" - /* _mesa_function_pool[14781]: MultiTexCoord3dvARB (offset 393) */ + /* _mesa_function_pool[14793]: MultiTexCoord3dvARB (offset 393) */ "ip\0" "glMultiTexCoord3dv\0" "glMultiTexCoord3dvARB\0" "\0" - /* _mesa_function_pool[14826]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[14838]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[14882]: DeleteObjectARB (will be remapped) */ + /* _mesa_function_pool[14894]: DeleteObjectARB (will be remapped) */ "i\0" "glDeleteObjectARB\0" "\0" - /* _mesa_function_pool[14903]: GetShaderPrecisionFormat (will be remapped) */ + /* _mesa_function_pool[14915]: GetShaderPrecisionFormat (will be remapped) */ "iipp\0" "glGetShaderPrecisionFormat\0" "\0" - /* _mesa_function_pool[14936]: MatrixIndexPointerARB (dynamic) */ + /* _mesa_function_pool[14948]: MatrixIndexPointerARB (dynamic) */ "iiip\0" "glMatrixIndexPointerARB\0" "\0" - /* _mesa_function_pool[14966]: ProgramNamedParameter4dvNV (will be remapped) */ + /* _mesa_function_pool[14978]: ProgramNamedParameter4dvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4dvNV\0" "\0" - /* _mesa_function_pool[15001]: Tangent3fvEXT (dynamic) */ + /* _mesa_function_pool[15013]: Tangent3fvEXT (dynamic) */ "p\0" "glTangent3fvEXT\0" "\0" - /* _mesa_function_pool[15020]: Flush (offset 217) */ + /* _mesa_function_pool[15032]: Flush (offset 217) */ "\0" "glFlush\0" "\0" - /* _mesa_function_pool[15030]: Color4uiv (offset 38) */ + /* _mesa_function_pool[15042]: Color4uiv (offset 38) */ "p\0" "glColor4uiv\0" "\0" - /* _mesa_function_pool[15045]: VertexAttribI4iEXT (will be remapped) */ + /* _mesa_function_pool[15057]: VertexAttribI4iEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4iEXT\0" "glVertexAttribI4i\0" "\0" - /* _mesa_function_pool[15091]: GenVertexArrays (will be remapped) */ + /* _mesa_function_pool[15103]: GenVertexArrays (will be remapped) */ "ip\0" "glGenVertexArrays\0" "\0" - /* _mesa_function_pool[15113]: Uniform3uivEXT (will be remapped) */ + /* _mesa_function_pool[15125]: Uniform3uivEXT (will be remapped) */ "iip\0" "glUniform3uivEXT\0" "glUniform3uiv\0" "\0" - /* _mesa_function_pool[15149]: RasterPos3sv (offset 77) */ + /* _mesa_function_pool[15161]: RasterPos3sv (offset 77) */ "p\0" "glRasterPos3sv\0" "\0" - /* _mesa_function_pool[15167]: BindFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[15179]: BindFramebufferEXT (will be remapped) */ "ii\0" "glBindFramebuffer\0" "glBindFramebufferEXT\0" "\0" - /* _mesa_function_pool[15210]: ReferencePlaneSGIX (dynamic) */ + /* _mesa_function_pool[15222]: ReferencePlaneSGIX (dynamic) */ "p\0" "glReferencePlaneSGIX\0" "\0" - /* _mesa_function_pool[15234]: PushAttrib (offset 219) */ + /* _mesa_function_pool[15246]: PushAttrib (offset 219) */ "i\0" "glPushAttrib\0" "\0" - /* _mesa_function_pool[15250]: RasterPos2i (offset 66) */ + /* _mesa_function_pool[15262]: RasterPos2i (offset 66) */ "ii\0" "glRasterPos2i\0" "\0" - /* _mesa_function_pool[15268]: ValidateProgramARB (will be remapped) */ + /* _mesa_function_pool[15280]: ValidateProgramARB (will be remapped) */ "i\0" "glValidateProgram\0" "glValidateProgramARB\0" "\0" - /* _mesa_function_pool[15310]: TexParameteriv (offset 181) */ + /* _mesa_function_pool[15322]: TexParameteriv (offset 181) */ "iip\0" "glTexParameteriv\0" "\0" - /* _mesa_function_pool[15332]: UnlockArraysEXT (will be remapped) */ + /* _mesa_function_pool[15344]: UnlockArraysEXT (will be remapped) */ "\0" "glUnlockArraysEXT\0" "\0" - /* _mesa_function_pool[15352]: TexCoord2fColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15364]: TexCoord2fColor3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[15393]: WindowPos3fvMESA (will be remapped) */ + /* _mesa_function_pool[15405]: WindowPos3fvMESA (will be remapped) */ "p\0" "glWindowPos3fv\0" "glWindowPos3fvARB\0" "glWindowPos3fvMESA\0" "\0" - /* _mesa_function_pool[15448]: RasterPos2f (offset 64) */ + /* _mesa_function_pool[15460]: RasterPos2f (offset 64) */ "ff\0" "glRasterPos2f\0" "\0" - /* _mesa_function_pool[15466]: VertexAttrib1svNV (will be remapped) */ + /* _mesa_function_pool[15478]: VertexAttrib1svNV (will be remapped) */ "ip\0" "glVertexAttrib1svNV\0" "\0" - /* _mesa_function_pool[15490]: RasterPos2d (offset 62) */ + /* _mesa_function_pool[15502]: RasterPos2d (offset 62) */ "dd\0" "glRasterPos2d\0" "\0" - /* _mesa_function_pool[15508]: RasterPos3fv (offset 73) */ + /* _mesa_function_pool[15520]: RasterPos3fv (offset 73) */ "p\0" "glRasterPos3fv\0" "\0" - /* _mesa_function_pool[15526]: CopyTexSubImage3D (offset 373) */ + /* _mesa_function_pool[15538]: CopyTexSubImage3D (offset 373) */ "iiiiiiiii\0" "glCopyTexSubImage3D\0" "glCopyTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[15580]: VertexAttrib2dARB (will be remapped) */ + /* _mesa_function_pool[15592]: VertexAttrib2dARB (will be remapped) */ "idd\0" "glVertexAttrib2d\0" "glVertexAttrib2dARB\0" "\0" - /* _mesa_function_pool[15622]: Color4ub (offset 35) */ + /* _mesa_function_pool[15634]: Color4ub (offset 35) */ "iiii\0" "glColor4ub\0" "\0" - /* _mesa_function_pool[15639]: GetInteger64v (will be remapped) */ + /* _mesa_function_pool[15651]: GetInteger64v (will be remapped) */ "ip\0" "glGetInteger64v\0" "\0" - /* _mesa_function_pool[15659]: TextureColorMaskSGIS (dynamic) */ + /* _mesa_function_pool[15671]: TextureColorMaskSGIS (dynamic) */ "iiii\0" "glTextureColorMaskSGIS\0" "\0" - /* _mesa_function_pool[15688]: RasterPos2s (offset 68) */ + /* _mesa_function_pool[15700]: RasterPos2s (offset 68) */ "ii\0" "glRasterPos2s\0" "\0" - /* _mesa_function_pool[15706]: GetColorTable (offset 343) */ + /* _mesa_function_pool[15718]: GetColorTable (offset 343) */ "iiip\0" "glGetColorTable\0" "glGetColorTableSGI\0" "glGetColorTableEXT\0" "\0" - /* _mesa_function_pool[15766]: SelectBuffer (offset 195) */ + /* _mesa_function_pool[15778]: SelectBuffer (offset 195) */ "ip\0" "glSelectBuffer\0" "\0" - /* _mesa_function_pool[15785]: Indexiv (offset 49) */ + /* _mesa_function_pool[15797]: Indexiv (offset 49) */ "p\0" "glIndexiv\0" "\0" - /* _mesa_function_pool[15798]: TexCoord3i (offset 114) */ + /* _mesa_function_pool[15810]: TexCoord3i (offset 114) */ "iii\0" "glTexCoord3i\0" "\0" - /* _mesa_function_pool[15816]: CopyColorTable (offset 342) */ + /* _mesa_function_pool[15828]: CopyColorTable (offset 342) */ "iiiii\0" "glCopyColorTable\0" "glCopyColorTableSGI\0" "\0" - /* _mesa_function_pool[15860]: GetHistogramParameterfv (offset 362) */ + /* _mesa_function_pool[15872]: GetHistogramParameterfv (offset 362) */ "iip\0" "glGetHistogramParameterfv\0" "glGetHistogramParameterfvEXT\0" "\0" - /* _mesa_function_pool[15920]: Frustum (offset 289) */ + /* _mesa_function_pool[15932]: Frustum (offset 289) */ "dddddd\0" "glFrustum\0" "\0" - /* _mesa_function_pool[15938]: GetString (offset 275) */ + /* _mesa_function_pool[15950]: GetString (offset 275) */ "i\0" "glGetString\0" "\0" - /* _mesa_function_pool[15953]: ColorPointervINTEL (dynamic) */ + /* _mesa_function_pool[15965]: ColorPointervINTEL (dynamic) */ "iip\0" "glColorPointervINTEL\0" "\0" - /* _mesa_function_pool[15979]: TexEnvf (offset 184) */ + /* _mesa_function_pool[15991]: TexEnvf (offset 184) */ "iif\0" "glTexEnvf\0" "\0" - /* _mesa_function_pool[15994]: TexCoord3d (offset 110) */ + /* _mesa_function_pool[16006]: TexCoord3d (offset 110) */ "ddd\0" "glTexCoord3d\0" "\0" - /* _mesa_function_pool[16012]: AlphaFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[16024]: AlphaFragmentOp1ATI (will be remapped) */ "iiiiii\0" "glAlphaFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[16042]: TexCoord3f (offset 112) */ + /* _mesa_function_pool[16054]: TexCoord3f (offset 112) */ "fff\0" "glTexCoord3f\0" "\0" - /* _mesa_function_pool[16060]: MultiTexCoord3ivARB (offset 397) */ + /* _mesa_function_pool[16072]: MultiTexCoord3ivARB (offset 397) */ "ip\0" "glMultiTexCoord3iv\0" "glMultiTexCoord3ivARB\0" "\0" - /* _mesa_function_pool[16105]: MultiTexCoord2sARB (offset 390) */ + /* _mesa_function_pool[16117]: MultiTexCoord2sARB (offset 390) */ "iii\0" "glMultiTexCoord2s\0" "glMultiTexCoord2sARB\0" "\0" - /* _mesa_function_pool[16149]: VertexAttrib1dvARB (will be remapped) */ + /* _mesa_function_pool[16161]: VertexAttrib1dvARB (will be remapped) */ "ip\0" "glVertexAttrib1dv\0" "glVertexAttrib1dvARB\0" "\0" - /* _mesa_function_pool[16192]: GetnHistogramARB (will be remapped) */ + /* _mesa_function_pool[16204]: GetnHistogramARB (will be remapped) */ "iiiiip\0" "glGetnHistogramARB\0" "\0" - /* _mesa_function_pool[16219]: DeleteTextures (offset 327) */ + /* _mesa_function_pool[16231]: DeleteTextures (offset 327) */ "ip\0" "glDeleteTextures\0" "glDeleteTexturesEXT\0" "\0" - /* _mesa_function_pool[16260]: TexCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[16272]: TexCoordPointerEXT (will be remapped) */ "iiiip\0" "glTexCoordPointerEXT\0" "\0" - /* _mesa_function_pool[16288]: TexSubImage4DSGIS (dynamic) */ + /* _mesa_function_pool[16300]: TexSubImage4DSGIS (dynamic) */ "iiiiiiiiiiiip\0" "glTexSubImage4DSGIS\0" "\0" - /* _mesa_function_pool[16323]: TexCoord3s (offset 116) */ + /* _mesa_function_pool[16335]: TexCoord3s (offset 116) */ "iii\0" "glTexCoord3s\0" "\0" - /* _mesa_function_pool[16341]: GetTexLevelParameteriv (offset 285) */ + /* _mesa_function_pool[16353]: GetTexLevelParameteriv (offset 285) */ "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[16372]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[16384]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[16406]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[16418]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[16431]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[16443]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[16487]: ClearAccum (offset 204) */ + /* _mesa_function_pool[16499]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[16506]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[16518]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[16522]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[16534]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[16570]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[16582]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[16616]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[16628]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[16633]: VertexAttribI4uiEXT (will be remapped) */ + /* _mesa_function_pool[16645]: VertexAttribI4uiEXT (will be remapped) */ "iiiii\0" "glVertexAttribI4uiEXT\0" "glVertexAttribI4ui\0" "\0" - /* _mesa_function_pool[16681]: GetFragmentMaterialfvSGIX (dynamic) */ + /* _mesa_function_pool[16693]: GetFragmentMaterialfvSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialfvSGIX\0" "\0" - /* _mesa_function_pool[16714]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[16726]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[16741]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[16753]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[16768]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[16780]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[16805]: SamplerParameterIiv (will be remapped) */ + /* _mesa_function_pool[16817]: SamplerParameterIiv (will be remapped) */ "iip\0" "glSamplerParameterIiv\0" "\0" - /* _mesa_function_pool[16832]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[16844]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[16852]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[16864]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[16873]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[16885]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[16900]: Rectd (offset 86) */ + /* _mesa_function_pool[16912]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[16914]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[16926]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[16940]: TextureBarrierNV (will be remapped) */ + /* _mesa_function_pool[16952]: TextureBarrierNV (will be remapped) */ "\0" "glTextureBarrierNV\0" "\0" - /* _mesa_function_pool[16961]: SamplerParameterfv (will be remapped) */ + /* _mesa_function_pool[16973]: SamplerParameterfv (will be remapped) */ "iip\0" "glSamplerParameterfv\0" "\0" - /* _mesa_function_pool[16987]: VertexAttribI4ubvEXT (will be remapped) */ - "ip\0" - "glVertexAttribI4ubvEXT\0" - "glVertexAttribI4ubv\0" + /* _mesa_function_pool[16999]: ColorMaskIndexedEXT (will be remapped) */ + "iiiii\0" + "glColorMaskIndexedEXT\0" + "glColorMaski\0" "\0" - /* _mesa_function_pool[17034]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[17041]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[17081]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[17088]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[17100]: BlendEquationSeparateiARB (will be remapped) */ - "iii\0" - "glBlendEquationSeparateiARB\0" - "\0" - /* _mesa_function_pool[17133]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[17107]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[17178]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[17152]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[17203]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[17177]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[17233]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[17207]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[17280]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[17254]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[17328]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[17302]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[17386]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[17360]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[17420]: Lightfv (offset 160) */ + /* _mesa_function_pool[17394]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[17435]: PrimitiveRestartIndexNV (will be remapped) */ + /* _mesa_function_pool[17409]: PrimitiveRestartIndexNV (will be remapped) */ "i\0" "glPrimitiveRestartIndexNV\0" "glPrimitiveRestartIndex\0" "\0" - /* _mesa_function_pool[17488]: ClearDepth (offset 208) */ + /* _mesa_function_pool[17462]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[17504]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[17478]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[17524]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[17498]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[17546]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[17520]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[17589]: Color4fv (offset 30) */ + /* _mesa_function_pool[17563]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[17603]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[17577]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[17648]: GetnMinmaxARB (will be remapped) */ + /* _mesa_function_pool[17622]: GetnMinmaxARB (will be remapped) */ "iiiiip\0" "glGetnMinmaxARB\0" "\0" - /* _mesa_function_pool[17672]: ProgramLocalParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[17646]: ProgramLocalParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramLocalParameters4fvEXT\0" "\0" - /* _mesa_function_pool[17709]: ColorPointer (offset 308) */ + /* _mesa_function_pool[17683]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[17730]: Rects (offset 92) */ + /* _mesa_function_pool[17704]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[17744]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[17718]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[17778]: CreateShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[17752]: CreateShaderProgramEXT (will be remapped) */ "ip\0" "glCreateShaderProgramEXT\0" "\0" - /* _mesa_function_pool[17807]: ActiveProgramEXT (will be remapped) */ + /* _mesa_function_pool[17781]: ActiveProgramEXT (will be remapped) */ "i\0" "glActiveProgramEXT\0" "\0" - /* _mesa_function_pool[17829]: Lightiv (offset 162) */ + /* _mesa_function_pool[17803]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[17844]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[17818]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[17888]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[17862]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[17936]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[17910]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[17961]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[17935]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[17985]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[17959]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[18030]: ClearBufferfv (will be remapped) */ + /* _mesa_function_pool[18004]: ClearBufferfv (will be remapped) */ "iip\0" "glClearBufferfv\0" "\0" - /* _mesa_function_pool[18051]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[18025]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[18094]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[18068]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[18120]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[18094]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[18146]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[18120]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[18164]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[18138]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[18207]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[18181]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[18261]: Rectdv (offset 87) */ + /* _mesa_function_pool[18235]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[18274]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[18248]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[18300]: BlendEquationiARB (will be remapped) */ + /* _mesa_function_pool[18274]: BlendEquationiARB (will be remapped) */ "ii\0" "glBlendEquationiARB\0" + "glBlendEquationIndexedAMD\0" "\0" /* _mesa_function_pool[18324]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" @@ -3938,986 +3932,996 @@ static const char _mesa_function_pool[] = "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[27695]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[27695]: MultiModeDrawArraysIBM (will be remapped) */ + "pppii\0" + "glMultiModeDrawArraysIBM\0" + "\0" + /* _mesa_function_pool[27727]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[27739]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[27771]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[27770]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[27802]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[27807]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[27839]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[27828]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[27860]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[27850]: SetFragmentShaderConstantATI (will be remapped) */ + /* _mesa_function_pool[27882]: SetFragmentShaderConstantATI (will be remapped) */ "ip\0" "glSetFragmentShaderConstantATI\0" "\0" - /* _mesa_function_pool[27885]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[27917]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[27906]: CallList (offset 2) */ + /* _mesa_function_pool[27938]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[27920]: Materialfv (offset 170) */ + /* _mesa_function_pool[27952]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[27938]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[27970]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[27955]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[27987]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[27987]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[28019]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[28032]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[28064]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[28080]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[28112]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[28125]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[28157]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[28143]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[28175]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[28196]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[28228]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[28227]: Color3iv (offset 16) */ + /* _mesa_function_pool[28259]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[28241]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[28273]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[28275]: DrawElements (offset 311) */ + /* _mesa_function_pool[28307]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[28296]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[28328]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[28322]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[28354]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[28359]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[28391]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[28419]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[28451]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[28462]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[28494]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[28517]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[28549]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[28540]: TexBufferARB (will be remapped) */ + /* _mesa_function_pool[28572]: TexBufferARB (will be remapped) */ "iii\0" "glTexBufferARB\0" "\0" - /* _mesa_function_pool[28560]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[28592]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[28633]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[28665]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[28656]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[28688]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[28687]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[28719]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[28724]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[28756]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[28741]: Uniform1uivEXT (will be remapped) */ + /* _mesa_function_pool[28773]: Uniform1uivEXT (will be remapped) */ "iip\0" "glUniform1uivEXT\0" "glUniform1uiv\0" "\0" - /* _mesa_function_pool[28777]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[28809]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[28793]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[28825]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[28813]: PopMatrix (offset 297) */ + /* _mesa_function_pool[28845]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[28827]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[28859]: GetVertexAttribIuivEXT (will be remapped) */ + "iip\0" + "glGetVertexAttribIuivEXT\0" + "glGetVertexAttribIuiv\0" + "\0" + /* _mesa_function_pool[28911]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[28846]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[28930]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[28866]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[28950]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[28915]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[28999]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[28961]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[29045]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[28980]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[29064]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[29006]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[29090]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[29049]: IsTransformFeedback (will be remapped) */ + /* _mesa_function_pool[29133]: IsTransformFeedback (will be remapped) */ "i\0" "glIsTransformFeedback\0" "\0" - /* _mesa_function_pool[29074]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[29158]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[29119]: Map2d (offset 222) */ + /* _mesa_function_pool[29203]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[29139]: Map2f (offset 223) */ + /* _mesa_function_pool[29223]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[29159]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[29243]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[29184]: Vertex4s (offset 148) */ + /* _mesa_function_pool[29268]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[29201]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[29285]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[29230]: FragmentLightModelivSGIX (dynamic) */ + /* _mesa_function_pool[29314]: FragmentLightModelivSGIX (dynamic) */ "ip\0" "glFragmentLightModelivSGIX\0" "\0" - /* _mesa_function_pool[29261]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[29345]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[29284]: Vertex4f (offset 144) */ + /* _mesa_function_pool[29368]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[29301]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[29385]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[29318]: Vertex4d (offset 142) */ + /* _mesa_function_pool[29402]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[29335]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[29419]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[29353]: UseShaderProgramEXT (will be remapped) */ + /* _mesa_function_pool[29437]: UseShaderProgramEXT (will be remapped) */ "ii\0" "glUseShaderProgramEXT\0" "\0" - /* _mesa_function_pool[29379]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[29463]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[29405]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[29489]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[29461]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[29545]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[29480]: Vertex4i (offset 146) */ + /* _mesa_function_pool[29564]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[29497]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[29581]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[29528]: GetHistogram (offset 361) */ + /* _mesa_function_pool[29612]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[29568]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[29652]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[29594]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[29678]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[29625]: Materialf (offset 169) */ + /* _mesa_function_pool[29709]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[29642]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[29726]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[29687]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[29771]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[29712]: Materiali (offset 171) */ + /* _mesa_function_pool[29796]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[29729]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[29813]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[29755]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[29839]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[29790]: Indexsv (offset 51) */ + /* _mesa_function_pool[29874]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[29803]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[29887]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[29848]: LightModelfv (offset 164) */ + /* _mesa_function_pool[29932]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[29867]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[29951]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[29884]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[29968]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[29917]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[30001]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[29935]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[30019]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[29972]: Translated (offset 303) */ + /* _mesa_function_pool[30056]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[29990]: Translatef (offset 304) */ + /* _mesa_function_pool[30074]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[30008]: Uniform3uiEXT (will be remapped) */ + /* _mesa_function_pool[30092]: Uniform3uiEXT (will be remapped) */ "iiii\0" "glUniform3uiEXT\0" "glUniform3ui\0" "\0" - /* _mesa_function_pool[30043]: StencilMask (offset 209) */ + /* _mesa_function_pool[30127]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[30060]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[30144]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[30080]: ClampColorARB (will be remapped) */ + /* _mesa_function_pool[30164]: ClampColorARB (will be remapped) */ "ii\0" "glClampColorARB\0" "\0" - /* _mesa_function_pool[30100]: GetLightiv (offset 265) */ + /* _mesa_function_pool[30184]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[30118]: GetSamplerParameterIiv (will be remapped) */ + /* _mesa_function_pool[30202]: GetSamplerParameterIiv (will be remapped) */ "iip\0" "glGetSamplerParameterIiv\0" "\0" - /* _mesa_function_pool[30148]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[30232]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[30174]: IsList (offset 287) */ + /* _mesa_function_pool[30258]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[30186]: IsSync (will be remapped) */ + /* _mesa_function_pool[30270]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[30198]: RenderMode (offset 196) */ + /* _mesa_function_pool[30282]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[30214]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[30298]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[30247]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[30331]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[30299]: ClearBufferiv (will be remapped) */ + /* _mesa_function_pool[30383]: ClearBufferiv (will be remapped) */ "iip\0" "glClearBufferiv\0" "\0" - /* _mesa_function_pool[30320]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[30404]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[30357]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[30441]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[30385]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[30469]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[30427]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[30511]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[30470]: LoadName (offset 198) */ + /* _mesa_function_pool[30554]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[30484]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[30568]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[30511]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[30595]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[30529]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[30613]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[30563]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[30647]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[30614]: CullFace (offset 152) */ + /* _mesa_function_pool[30698]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[30628]: BindTexture (offset 307) */ + /* _mesa_function_pool[30712]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[30663]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[30747]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[30690]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[30774]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[30736]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[30820]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[30762]: StencilFunc (offset 243) */ + /* _mesa_function_pool[30846]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[30781]: CopyPixels (offset 255) */ + /* _mesa_function_pool[30865]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[30801]: Rectsv (offset 93) */ + /* _mesa_function_pool[30885]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[30814]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[30898]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[30841]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[30925]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[30899]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[30983]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[30925]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[31009]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[30988]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[31072]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[31043]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[31127]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[31070]: NormalPointer (offset 318) */ + /* _mesa_function_pool[31154]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[31091]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[31175]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[31113]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[31197]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[31141]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[31225]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[31165]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[31249]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[31210]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[31294]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[31229]: VertexAttribI3uivEXT (will be remapped) */ + /* _mesa_function_pool[31313]: VertexAttribI3uivEXT (will be remapped) */ "ip\0" "glVertexAttribI3uivEXT\0" "glVertexAttribI3uiv\0" "\0" - /* _mesa_function_pool[31276]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[31360]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[31303]: ClipPlane (offset 150) */ + /* _mesa_function_pool[31387]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[31319]: Recti (offset 90) */ + /* _mesa_function_pool[31403]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[31333]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[31417]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[31355]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[31439]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[31394]: SamplerParameterIuiv (will be remapped) */ + /* _mesa_function_pool[31478]: SamplerParameterIuiv (will be remapped) */ "iip\0" "glSamplerParameterIuiv\0" "\0" - /* _mesa_function_pool[31422]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[31506]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[31451]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[31535]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[31490]: PixelTransformParameterfvEXT (dynamic) */ + /* _mesa_function_pool[31574]: PixelTransformParameterfvEXT (dynamic) */ "iip\0" "glPixelTransformParameterfvEXT\0" "\0" - /* _mesa_function_pool[31526]: PrimitiveRestartNV (will be remapped) */ + /* _mesa_function_pool[31610]: PrimitiveRestartNV (will be remapped) */ "\0" "glPrimitiveRestartNV\0" "\0" - /* _mesa_function_pool[31549]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[31633]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[31571]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[31655]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[31592]: Rectf (offset 88) */ + /* _mesa_function_pool[31676]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[31606]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[31690]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[31629]: Indexfv (offset 47) */ + /* _mesa_function_pool[31713]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[31642]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[31726]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[31688]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[31772]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[31740]: GetPointerv (offset 329) */ + /* _mesa_function_pool[31824]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[31775]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[31859]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[31795]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[31879]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[31822]: IndexMask (offset 212) */ + /* _mesa_function_pool[31906]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[31837]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[31921]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[31874]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[31958]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[31917]: GetFloatv (offset 262) */ + /* _mesa_function_pool[32001]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[31933]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[32017]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[31959]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[32043]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[31978]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[32062]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[32000]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[32084]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[32019]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[32103]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[32036]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[32120]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[32063]: PopAttrib (offset 218) */ + /* _mesa_function_pool[32147]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[32077]: Fogfv (offset 154) */ + /* _mesa_function_pool[32161]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[32089]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[32173]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[32123]: InitNames (offset 197) */ + /* _mesa_function_pool[32207]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[32137]: Normal3sv (offset 61) */ + /* _mesa_function_pool[32221]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[32152]: Minmax (offset 368) */ + /* _mesa_function_pool[32236]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[32178]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[32262]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[32197]: DeformationMap3dSGIX (dynamic) */ - "iddiiddiiddiip\0" - "glDeformationMap3dSGIX\0" - "\0" - /* _mesa_function_pool[32236]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[32281]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[32255]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[32300]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[32287]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[32332]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[32309]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[32354]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[32339]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[32384]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[32359]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[32404]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[32377]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[32422]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[32414]: Hint (offset 158) */ + /* _mesa_function_pool[32459]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[32425]: Color4dv (offset 28) */ + /* _mesa_function_pool[32470]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[32439]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[32484]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[32482]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[32527]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[32511]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[32556]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[32566]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[32611]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[32616]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[32661]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[32634]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[32679]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[32685]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[32730]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[32732]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[32777]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[32756]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[32801]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[32787]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[32832]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[32802]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[32847]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[32837]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[32882]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[32854]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[32899]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[32874]: Begin (offset 7) */ + /* _mesa_function_pool[32919]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[32885]: LightModeli (offset 165) */ + /* _mesa_function_pool[32930]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[32903]: VertexAttribI4ivEXT (will be remapped) */ + /* _mesa_function_pool[32948]: VertexAttribI4ivEXT (will be remapped) */ "ip\0" "glVertexAttribI4ivEXT\0" "glVertexAttribI4iv\0" "\0" - /* _mesa_function_pool[32948]: Rectfv (offset 89) */ + /* _mesa_function_pool[32993]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[32961]: LightModelf (offset 163) */ + /* _mesa_function_pool[33006]: BlendEquationSeparateiARB (will be remapped) */ + "iii\0" + "glBlendEquationSeparateiARB\0" + "glBlendEquationSeparateIndexedAMD\0" + "\0" + /* _mesa_function_pool[33073]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[32979]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[33091]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[33004]: GetLightfv (offset 264) */ + /* _mesa_function_pool[33116]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[33022]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[33134]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[33058]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[33170]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[33084]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[33196]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[33107]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[33219]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[33146]: Disable (offset 214) */ + /* _mesa_function_pool[33258]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[33159]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[33271]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[33204]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[33316]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[33270]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[33382]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[33298]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[33410]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[33325]: DrawArrays (offset 310) */ + /* _mesa_function_pool[33437]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[33359]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[33471]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[33378]: GetVertexAttribIivEXT (will be remapped) */ + /* _mesa_function_pool[33490]: GetVertexAttribIivEXT (will be remapped) */ "iip\0" "glGetVertexAttribIivEXT\0" "glGetVertexAttribIiv\0" "\0" - /* _mesa_function_pool[33428]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[33540]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[33470]: GetnTexImageARB (will be remapped) */ + /* _mesa_function_pool[33582]: GetnTexImageARB (will be remapped) */ "iiiiip\0" "glGetnTexImageARB\0" "\0" - /* _mesa_function_pool[33496]: ColorMask (offset 210) */ + /* _mesa_function_pool[33608]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[33514]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[33626]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[33539]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[33651]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[33558]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[33670]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[33588]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[33700]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[33621]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[33733]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[33643]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[33755]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[33661]: Enable (offset 215) */ + /* _mesa_function_pool[33773]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[33673]: LineStipple (offset 167) */ + /* _mesa_function_pool[33785]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[33691]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[33803]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[33717]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[33829]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[33747]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[33859]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[33774]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[33886]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[33828]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[33940]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[33871]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[33983]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[33904]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[34016]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[33930]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[34042]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[33945]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[34057]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[33976]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[34088]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[33997]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[34109]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[34027]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[34139]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[34067]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[34179]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[34104]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[34216]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[34128]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[34240]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[34153]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[34265]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[34174]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[34286]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4927,621 +4931,621 @@ static const char _mesa_function_pool[] = /* these functions need to be remapped */ static const struct gl_function_pool_remap MESA_remap_table_functions[] = { - { 1590, AttachShader_remap_index }, - { 10221, CreateProgram_remap_index }, + { 1629, AttachShader_remap_index }, + { 10274, CreateProgram_remap_index }, { 23765, CreateShader_remap_index }, { 26289, DeleteProgram_remap_index }, { 19245, DeleteShader_remap_index }, { 24258, DetachShader_remap_index }, { 18534, GetAttachedShaders_remap_index }, - { 5053, GetProgramInfoLog_remap_index }, - { 405, GetProgramiv_remap_index }, - { 6861, GetShaderInfoLog_remap_index }, - { 31959, GetShaderiv_remap_index }, - { 13724, IsProgram_remap_index }, - { 12645, IsShader_remap_index }, - { 10351, StencilFuncSeparate_remap_index }, - { 4031, StencilMaskSeparate_remap_index }, - { 7926, StencilOpSeparate_remap_index }, + { 5126, GetProgramInfoLog_remap_index }, + { 444, GetProgramiv_remap_index }, + { 6892, GetShaderInfoLog_remap_index }, + { 32043, GetShaderiv_remap_index }, + { 13807, IsProgram_remap_index }, + { 12698, IsShader_remap_index }, + { 10404, StencilFuncSeparate_remap_index }, + { 4156, StencilMaskSeparate_remap_index }, + { 7957, StencilOpSeparate_remap_index }, { 22999, UniformMatrix2x3fv_remap_index }, - { 2920, UniformMatrix2x4fv_remap_index }, - { 33747, UniformMatrix3x2fv_remap_index }, - { 31276, UniformMatrix3x4fv_remap_index }, - { 16714, UniformMatrix4x2fv_remap_index }, - { 3339, UniformMatrix4x3fv_remap_index }, - { 5259, ClampColor_remap_index }, + { 2998, UniformMatrix2x4fv_remap_index }, + { 33859, UniformMatrix3x2fv_remap_index }, + { 31360, UniformMatrix3x4fv_remap_index }, + { 16726, UniformMatrix4x2fv_remap_index }, + { 3417, UniformMatrix4x3fv_remap_index }, + { 5332, ClampColor_remap_index }, { 18588, ClearBufferfi_remap_index }, - { 18030, ClearBufferfv_remap_index }, - { 30299, ClearBufferiv_remap_index }, - { 13929, ClearBufferuiv_remap_index }, + { 18004, ClearBufferfv_remap_index }, + { 30383, ClearBufferiv_remap_index }, + { 14012, ClearBufferuiv_remap_index }, { 20582, GetStringi_remap_index }, - { 2861, TexBuffer_remap_index }, - { 938, FramebufferTexture_remap_index }, + { 2900, TexBuffer_remap_index }, + { 977, FramebufferTexture_remap_index }, { 27325, GetBufferParameteri64v_remap_index }, - { 10451, GetInteger64i_v_remap_index }, + { 10504, GetInteger64i_v_remap_index }, { 24079, VertexAttribDivisor_remap_index }, - { 10239, LoadTransposeMatrixdARB_remap_index }, - { 31688, LoadTransposeMatrixfARB_remap_index }, - { 5898, MultTransposeMatrixdARB_remap_index }, + { 10292, LoadTransposeMatrixdARB_remap_index }, + { 31772, LoadTransposeMatrixfARB_remap_index }, + { 5971, MultTransposeMatrixdARB_remap_index }, { 24445, MultTransposeMatrixfARB_remap_index }, - { 216, SampleCoverageARB_remap_index }, - { 6124, CompressedTexImage1DARB_remap_index }, + { 255, SampleCoverageARB_remap_index }, + { 6155, CompressedTexImage1DARB_remap_index }, { 24973, CompressedTexImage2DARB_remap_index }, - { 4094, CompressedTexImage3DARB_remap_index }, + { 4219, CompressedTexImage3DARB_remap_index }, { 18876, CompressedTexSubImage1DARB_remap_index }, - { 2102, CompressedTexSubImage2DARB_remap_index }, + { 2141, CompressedTexSubImage2DARB_remap_index }, { 21004, CompressedTexSubImage3DARB_remap_index }, - { 29405, GetCompressedTexImageARB_remap_index }, - { 3905, DisableVertexAttribArrayARB_remap_index }, - { 30841, EnableVertexAttribArrayARB_remap_index }, - { 32802, GetProgramEnvParameterdvARB_remap_index }, + { 29489, GetCompressedTexImageARB_remap_index }, + { 3983, DisableVertexAttribArrayARB_remap_index }, + { 30925, EnableVertexAttribArrayARB_remap_index }, + { 32847, GetProgramEnvParameterdvARB_remap_index }, { 24325, GetProgramEnvParameterfvARB_remap_index }, - { 28322, GetProgramLocalParameterdvARB_remap_index }, - { 8402, GetProgramLocalParameterfvARB_remap_index }, + { 28354, GetProgramLocalParameterdvARB_remap_index }, + { 8433, GetProgramLocalParameterfvARB_remap_index }, { 19052, GetProgramStringARB_remap_index }, - { 28517, GetProgramivARB_remap_index }, + { 28549, GetProgramivARB_remap_index }, { 21199, GetVertexAttribdvARB_remap_index }, - { 16522, GetVertexAttribfvARB_remap_index }, - { 10077, GetVertexAttribivARB_remap_index }, + { 16534, GetVertexAttribfvARB_remap_index }, + { 10108, GetVertexAttribivARB_remap_index }, { 20045, ProgramEnvParameter4dARB_remap_index }, { 26039, ProgramEnvParameter4dvARB_remap_index }, - { 17328, ProgramEnvParameter4fARB_remap_index }, - { 9277, ProgramEnvParameter4fvARB_remap_index }, - { 4057, ProgramLocalParameter4dARB_remap_index }, - { 13434, ProgramLocalParameter4dvARB_remap_index }, - { 30320, ProgramLocalParameter4fARB_remap_index }, + { 17302, ProgramEnvParameter4fARB_remap_index }, + { 9308, ProgramEnvParameter4fvARB_remap_index }, + { 4182, ProgramLocalParameter4dARB_remap_index }, + { 13517, ProgramLocalParameter4dvARB_remap_index }, + { 30404, ProgramLocalParameter4fARB_remap_index }, { 26685, ProgramLocalParameter4fvARB_remap_index }, - { 29159, ProgramStringARB_remap_index }, + { 29243, ProgramStringARB_remap_index }, { 20313, VertexAttrib1dARB_remap_index }, - { 16149, VertexAttrib1dvARB_remap_index }, - { 4253, VertexAttrib1fARB_remap_index }, - { 33828, VertexAttrib1fvARB_remap_index }, - { 7452, VertexAttrib1sARB_remap_index }, - { 2297, VertexAttrib1svARB_remap_index }, - { 15580, VertexAttrib2dARB_remap_index }, - { 18051, VertexAttrib2dvARB_remap_index }, - { 1648, VertexAttrib2fARB_remap_index }, - { 18164, VertexAttrib2fvARB_remap_index }, - { 33428, VertexAttrib2sARB_remap_index }, - { 32439, VertexAttrib2svARB_remap_index }, - { 11629, VertexAttrib3dARB_remap_index }, - { 8944, VertexAttrib3dvARB_remap_index }, - { 1735, VertexAttrib3fARB_remap_index }, + { 16161, VertexAttrib1dvARB_remap_index }, + { 4378, VertexAttrib1fARB_remap_index }, + { 33940, VertexAttrib1fvARB_remap_index }, + { 7483, VertexAttrib1sARB_remap_index }, + { 2336, VertexAttrib1svARB_remap_index }, + { 15592, VertexAttrib2dARB_remap_index }, + { 18025, VertexAttrib2dvARB_remap_index }, + { 1687, VertexAttrib2fARB_remap_index }, + { 18138, VertexAttrib2fvARB_remap_index }, + { 33540, VertexAttrib2sARB_remap_index }, + { 32484, VertexAttrib2svARB_remap_index }, + { 11682, VertexAttrib3dARB_remap_index }, + { 8975, VertexAttrib3dvARB_remap_index }, + { 1774, VertexAttrib3fARB_remap_index }, { 23316, VertexAttrib3fvARB_remap_index }, - { 29006, VertexAttrib3sARB_remap_index }, + { 29090, VertexAttrib3sARB_remap_index }, { 20941, VertexAttrib3svARB_remap_index }, - { 5079, VertexAttrib4NbvARB_remap_index }, + { 5152, VertexAttrib4NbvARB_remap_index }, { 18411, VertexAttrib4NivARB_remap_index }, { 23271, VertexAttrib4NsvARB_remap_index }, { 24277, VertexAttrib4NubARB_remap_index }, - { 32685, VertexAttrib4NubvARB_remap_index }, + { 32730, VertexAttrib4NubvARB_remap_index }, { 19696, VertexAttrib4NuivARB_remap_index }, - { 3212, VertexAttrib4NusvARB_remap_index }, - { 11218, VertexAttrib4bvARB_remap_index }, - { 27695, VertexAttrib4dARB_remap_index }, + { 3290, VertexAttrib4NusvARB_remap_index }, + { 11271, VertexAttrib4bvARB_remap_index }, + { 27727, VertexAttrib4dARB_remap_index }, { 21998, VertexAttrib4dvARB_remap_index }, - { 11783, VertexAttrib4fARB_remap_index }, - { 12187, VertexAttrib4fvARB_remap_index }, - { 10594, VertexAttrib4ivARB_remap_index }, - { 17844, VertexAttrib4sARB_remap_index }, - { 31874, VertexAttrib4svARB_remap_index }, - { 17133, VertexAttrib4ubvARB_remap_index }, - { 31165, VertexAttrib4uivARB_remap_index }, + { 11836, VertexAttrib4fARB_remap_index }, + { 12240, VertexAttrib4fvARB_remap_index }, + { 10647, VertexAttrib4ivARB_remap_index }, + { 17818, VertexAttrib4sARB_remap_index }, + { 31958, VertexAttrib4svARB_remap_index }, + { 17107, VertexAttrib4ubvARB_remap_index }, + { 31249, VertexAttrib4uivARB_remap_index }, { 20752, VertexAttrib4usvARB_remap_index }, { 22814, VertexAttribPointerARB_remap_index }, - { 33588, BindBufferARB_remap_index }, - { 7159, BufferDataARB_remap_index }, - { 1511, BufferSubDataARB_remap_index }, - { 31451, DeleteBuffersARB_remap_index }, - { 33871, GenBuffersARB_remap_index }, - { 18207, GetBufferParameterivARB_remap_index }, - { 17280, GetBufferPointervARB_remap_index }, - { 1464, GetBufferSubDataARB_remap_index }, - { 31113, IsBufferARB_remap_index }, + { 33700, BindBufferARB_remap_index }, + { 7190, BufferDataARB_remap_index }, + { 1550, BufferSubDataARB_remap_index }, + { 31535, DeleteBuffersARB_remap_index }, + { 33983, GenBuffersARB_remap_index }, + { 18181, GetBufferParameterivARB_remap_index }, + { 17254, GetBufferPointervARB_remap_index }, + { 1503, GetBufferSubDataARB_remap_index }, + { 31197, IsBufferARB_remap_index }, { 27169, MapBufferARB_remap_index }, - { 32089, UnmapBufferARB_remap_index }, - { 312, BeginQueryARB_remap_index }, + { 32173, UnmapBufferARB_remap_index }, + { 351, BeginQueryARB_remap_index }, { 20408, DeleteQueriesARB_remap_index }, - { 12506, EndQueryARB_remap_index }, - { 29884, GenQueriesARB_remap_index }, - { 1994, GetQueryObjectivARB_remap_index }, - { 17888, GetQueryObjectuivARB_remap_index }, - { 1792, GetQueryivARB_remap_index }, + { 12559, EndQueryARB_remap_index }, + { 29968, GenQueriesARB_remap_index }, + { 2033, GetQueryObjectivARB_remap_index }, + { 17862, GetQueryObjectuivARB_remap_index }, + { 1831, GetQueryivARB_remap_index }, { 20659, IsQueryARB_remap_index }, - { 8554, AttachObjectARB_remap_index }, + { 8585, AttachObjectARB_remap_index }, { 19207, CompileShaderARB_remap_index }, - { 3281, CreateProgramObjectARB_remap_index }, - { 7104, CreateShaderObjectARB_remap_index }, - { 14882, DeleteObjectARB_remap_index }, + { 3359, CreateProgramObjectARB_remap_index }, + { 7135, CreateShaderObjectARB_remap_index }, + { 14894, DeleteObjectARB_remap_index }, { 24764, DetachObjectARB_remap_index }, - { 12251, GetActiveUniformARB_remap_index }, - { 9752, GetAttachedObjectsARB_remap_index }, - { 10059, GetHandleARB_remap_index }, - { 33621, GetInfoLogARB_remap_index }, - { 32756, GetObjectParameterfvARB_remap_index }, - { 28196, GetObjectParameterivARB_remap_index }, - { 29642, GetShaderSourceARB_remap_index }, - { 28866, GetUniformLocationARB_remap_index }, + { 12304, GetActiveUniformARB_remap_index }, + { 9783, GetAttachedObjectsARB_remap_index }, + { 10090, GetHandleARB_remap_index }, + { 33733, GetInfoLogARB_remap_index }, + { 32801, GetObjectParameterfvARB_remap_index }, + { 28228, GetObjectParameterivARB_remap_index }, + { 29726, GetShaderSourceARB_remap_index }, + { 28950, GetUniformLocationARB_remap_index }, { 24547, GetUniformfvARB_remap_index }, - { 13009, GetUniformivARB_remap_index }, + { 13092, GetUniformivARB_remap_index }, { 20797, LinkProgramARB_remap_index }, { 20855, ShaderSourceARB_remap_index }, - { 7826, Uniform1fARB_remap_index }, - { 30529, Uniform1fvARB_remap_index }, + { 7857, Uniform1fARB_remap_index }, + { 30613, Uniform1fvARB_remap_index }, { 22762, Uniform1iARB_remap_index }, { 21652, Uniform1ivARB_remap_index }, - { 2246, Uniform2fARB_remap_index }, - { 14718, Uniform2fvARB_remap_index }, + { 2285, Uniform2fARB_remap_index }, + { 14730, Uniform2fvARB_remap_index }, { 27056, Uniform2iARB_remap_index }, - { 2366, Uniform2ivARB_remap_index }, + { 2405, Uniform2ivARB_remap_index }, { 19317, Uniform3fARB_remap_index }, - { 9782, Uniform3fvARB_remap_index }, - { 6715, Uniform3iARB_remap_index }, - { 17386, Uniform3ivARB_remap_index }, + { 9813, Uniform3fvARB_remap_index }, + { 6746, Uniform3iARB_remap_index }, + { 17360, Uniform3ivARB_remap_index }, { 19851, Uniform4fARB_remap_index }, { 24411, Uniform4fvARB_remap_index }, { 25673, Uniform4iARB_remap_index }, { 21165, Uniform4ivARB_remap_index }, - { 8606, UniformMatrix2fvARB_remap_index }, + { 8637, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, - { 2763, UniformMatrix4fvARB_remap_index }, + { 2802, UniformMatrix4fvARB_remap_index }, { 26151, UseProgramObjectARB_remap_index }, - { 15268, ValidateProgramARB_remap_index }, + { 15280, ValidateProgramARB_remap_index }, { 22041, BindAttribLocationARB_remap_index }, - { 5124, GetActiveAttribARB_remap_index }, - { 17034, GetAttribLocationARB_remap_index }, - { 30247, DrawBuffersARB_remap_index }, - { 30080, ClampColorARB_remap_index }, + { 5197, GetActiveAttribARB_remap_index }, + { 17041, GetAttribLocationARB_remap_index }, + { 30331, DrawBuffersARB_remap_index }, + { 30164, ClampColorARB_remap_index }, { 18456, DrawArraysInstancedARB_remap_index }, - { 6776, DrawElementsInstancedARB_remap_index }, - { 13539, RenderbufferStorageMultisample_remap_index }, - { 14010, FramebufferTextureARB_remap_index }, + { 6807, DrawElementsInstancedARB_remap_index }, + { 13622, RenderbufferStorageMultisample_remap_index }, + { 14093, FramebufferTextureARB_remap_index }, { 26587, FramebufferTextureFaceARB_remap_index }, { 24913, ProgramParameteriARB_remap_index }, - { 6296, VertexAttribDivisorARB_remap_index }, + { 6327, VertexAttribDivisorARB_remap_index }, { 19899, FlushMappedBufferRange_remap_index }, - { 28633, MapBufferRange_remap_index }, - { 28540, TexBufferARB_remap_index }, - { 16852, BindVertexArray_remap_index }, - { 15091, GenVertexArrays_remap_index }, - { 31043, CopyBufferSubData_remap_index }, - { 31978, ClientWaitSync_remap_index }, - { 2682, DeleteSync_remap_index }, - { 7493, FenceSync_remap_index }, - { 15639, GetInteger64v_remap_index }, + { 28665, MapBufferRange_remap_index }, + { 28572, TexBufferARB_remap_index }, + { 16864, BindVertexArray_remap_index }, + { 15103, GenVertexArrays_remap_index }, + { 31127, CopyBufferSubData_remap_index }, + { 32062, ClientWaitSync_remap_index }, + { 2721, DeleteSync_remap_index }, + { 7524, FenceSync_remap_index }, + { 15651, GetInteger64v_remap_index }, { 23378, GetSynciv_remap_index }, - { 30186, IsSync_remap_index }, - { 9700, WaitSync_remap_index }, - { 3873, DrawElementsBaseVertex_remap_index }, - { 31355, DrawRangeElementsBaseVertex_remap_index }, + { 30270, IsSync_remap_index }, + { 9731, WaitSync_remap_index }, + { 3951, DrawElementsBaseVertex_remap_index }, + { 31439, DrawRangeElementsBaseVertex_remap_index }, { 27200, MultiDrawElementsBaseVertex_remap_index }, - { 17100, BlendEquationSeparateiARB_remap_index }, - { 18300, BlendEquationiARB_remap_index }, - { 12978, BlendFuncSeparateiARB_remap_index }, - { 10125, BlendFunciARB_remap_index }, - { 8468, BindSampler_remap_index }, - { 4232, DeleteSamplers_remap_index }, + { 33006, BlendEquationSeparateiARB_remap_index }, + { 18274, BlendEquationiARB_remap_index }, + { 13031, BlendFuncSeparateiARB_remap_index }, + { 10156, BlendFunciARB_remap_index }, + { 8499, BindSampler_remap_index }, + { 4357, DeleteSamplers_remap_index }, { 20272, GenSamplers_remap_index }, - { 30118, GetSamplerParameterIiv_remap_index }, + { 30202, GetSamplerParameterIiv_remap_index }, { 19793, GetSamplerParameterIuiv_remap_index }, - { 4973, GetSamplerParameterfv_remap_index }, + { 5046, GetSamplerParameterfv_remap_index }, { 26308, GetSamplerParameteriv_remap_index }, - { 14636, IsSampler_remap_index }, - { 16805, SamplerParameterIiv_remap_index }, - { 31394, SamplerParameterIuiv_remap_index }, + { 14648, IsSampler_remap_index }, + { 16817, SamplerParameterIiv_remap_index }, + { 31478, SamplerParameterIuiv_remap_index }, { 23051, SamplerParameterf_remap_index }, - { 16961, SamplerParameterfv_remap_index }, + { 16973, SamplerParameterfv_remap_index }, { 23026, SamplerParameteri_remap_index }, { 18650, SamplerParameteriv_remap_index }, - { 5320, BindTransformFeedback_remap_index }, - { 3308, DeleteTransformFeedbacks_remap_index }, - { 6748, DrawTransformFeedback_remap_index }, - { 9919, GenTransformFeedbacks_remap_index }, - { 29049, IsTransformFeedback_remap_index }, + { 5393, BindTransformFeedback_remap_index }, + { 3386, DeleteTransformFeedbacks_remap_index }, + { 6779, DrawTransformFeedback_remap_index }, + { 9950, GenTransformFeedbacks_remap_index }, + { 29133, IsTransformFeedback_remap_index }, { 26780, PauseTransformFeedback_remap_index }, - { 5783, ResumeTransformFeedback_remap_index }, + { 5856, ResumeTransformFeedback_remap_index }, { 22361, ClearDepthf_remap_index }, - { 7052, DepthRangef_remap_index }, - { 14903, GetShaderPrecisionFormat_remap_index }, - { 10291, ReleaseShaderCompiler_remap_index }, - { 11261, ShaderBinary_remap_index }, - { 965, GetGraphicsResetStatusARB_remap_index }, + { 7083, DepthRangef_remap_index }, + { 14915, GetShaderPrecisionFormat_remap_index }, + { 10344, ReleaseShaderCompiler_remap_index }, + { 11314, ShaderBinary_remap_index }, + { 1004, GetGraphicsResetStatusARB_remap_index }, { 25478, GetnColorTableARB_remap_index }, - { 8237, GetnCompressedTexImageARB_remap_index }, - { 3965, GetnConvolutionFilterARB_remap_index }, - { 16192, GetnHistogramARB_remap_index }, + { 8268, GetnCompressedTexImageARB_remap_index }, + { 4090, GetnConvolutionFilterARB_remap_index }, + { 16204, GetnHistogramARB_remap_index }, { 24237, GetnMapdvARB_remap_index }, { 22793, GetnMapfvARB_remap_index }, - { 2225, GetnMapivARB_remap_index }, - { 17648, GetnMinmaxARB_remap_index }, - { 4598, GetnPixelMapfvARB_remap_index }, + { 2264, GetnMapivARB_remap_index }, + { 17622, GetnMinmaxARB_remap_index }, + { 4671, GetnPixelMapfvARB_remap_index }, { 19670, GetnPixelMapuivARB_remap_index }, - { 3033, GetnPixelMapusvARB_remap_index }, - { 1344, GetnPolygonStippleARB_remap_index }, + { 3111, GetnPixelMapusvARB_remap_index }, + { 1383, GetnPolygonStippleARB_remap_index }, { 21826, GetnSeparableFilterARB_remap_index }, - { 33470, GetnTexImageARB_remap_index }, + { 33582, GetnTexImageARB_remap_index }, { 19079, GetnUniformdvARB_remap_index }, - { 4670, GetnUniformfvARB_remap_index }, - { 10146, GetnUniformivARB_remap_index }, + { 4743, GetnUniformfvARB_remap_index }, + { 10199, GetnUniformivARB_remap_index }, { 23227, GetnUniformuivARB_remap_index }, - { 2947, ReadnPixelsARB_remap_index }, - { 5651, PolygonOffsetEXT_remap_index }, + { 3025, ReadnPixelsARB_remap_index }, + { 5724, PolygonOffsetEXT_remap_index }, { 24000, GetPixelTexGenParameterfvSGIS_remap_index }, - { 4548, GetPixelTexGenParameterivSGIS_remap_index }, + { 4621, GetPixelTexGenParameterivSGIS_remap_index }, { 23733, PixelTexGenParameterfSGIS_remap_index }, - { 624, PixelTexGenParameterfvSGIS_remap_index }, - { 13047, PixelTexGenParameteriSGIS_remap_index }, - { 14184, PixelTexGenParameterivSGIS_remap_index }, + { 663, PixelTexGenParameterfvSGIS_remap_index }, + { 13130, PixelTexGenParameteriSGIS_remap_index }, + { 14235, PixelTexGenParameterivSGIS_remap_index }, { 18775, SampleMaskSGIS_remap_index }, { 20599, SamplePatternSGIS_remap_index }, { 27129, ColorPointerEXT_remap_index }, - { 18094, EdgeFlagPointerEXT_remap_index }, - { 6369, IndexPointerEXT_remap_index }, - { 6449, NormalPointerEXT_remap_index }, - { 16260, TexCoordPointerEXT_remap_index }, - { 7282, VertexPointerEXT_remap_index }, - { 3675, PointParameterfEXT_remap_index }, - { 8133, PointParameterfvEXT_remap_index }, - { 32854, LockArraysEXT_remap_index }, - { 15332, UnlockArraysEXT_remap_index }, - { 1252, SecondaryColor3bEXT_remap_index }, - { 8326, SecondaryColor3bvEXT_remap_index }, - { 10771, SecondaryColor3dEXT_remap_index }, + { 18068, EdgeFlagPointerEXT_remap_index }, + { 6400, IndexPointerEXT_remap_index }, + { 6480, NormalPointerEXT_remap_index }, + { 16272, TexCoordPointerEXT_remap_index }, + { 7313, VertexPointerEXT_remap_index }, + { 3753, PointParameterfEXT_remap_index }, + { 8164, PointParameterfvEXT_remap_index }, + { 32899, LockArraysEXT_remap_index }, + { 15344, UnlockArraysEXT_remap_index }, + { 1291, SecondaryColor3bEXT_remap_index }, + { 8357, SecondaryColor3bvEXT_remap_index }, + { 10824, SecondaryColor3dEXT_remap_index }, { 26357, SecondaryColor3dvEXT_remap_index }, - { 28915, SecondaryColor3fEXT_remap_index }, + { 28999, SecondaryColor3fEXT_remap_index }, { 18812, SecondaryColor3fvEXT_remap_index }, - { 470, SecondaryColor3iEXT_remap_index }, - { 16570, SecondaryColor3ivEXT_remap_index }, - { 10379, SecondaryColor3sEXT_remap_index }, - { 31642, SecondaryColor3svEXT_remap_index }, - { 28032, SecondaryColor3ubEXT_remap_index }, + { 509, SecondaryColor3iEXT_remap_index }, + { 16582, SecondaryColor3ivEXT_remap_index }, + { 10432, SecondaryColor3sEXT_remap_index }, + { 31726, SecondaryColor3svEXT_remap_index }, + { 28064, SecondaryColor3ubEXT_remap_index }, { 21932, SecondaryColor3ubvEXT_remap_index }, - { 13289, SecondaryColor3uiEXT_remap_index }, + { 13372, SecondaryColor3uiEXT_remap_index }, { 23620, SecondaryColor3uivEXT_remap_index }, { 26637, SecondaryColor3usEXT_remap_index }, - { 13362, SecondaryColor3usvEXT_remap_index }, - { 12130, SecondaryColorPointerEXT_remap_index }, + { 13445, SecondaryColor3usvEXT_remap_index }, + { 12183, SecondaryColorPointerEXT_remap_index }, { 26451, MultiDrawArraysEXT_remap_index }, { 21587, MultiDrawElementsEXT_remap_index }, { 21782, FogCoordPointerEXT_remap_index }, - { 4721, FogCoorddEXT_remap_index }, - { 32255, FogCoorddvEXT_remap_index }, - { 4838, FogCoordfEXT_remap_index }, - { 27955, FogCoordfvEXT_remap_index }, - { 12230, PixelTexGenSGIX_remap_index }, - { 28560, BlendFuncSeparateEXT_remap_index }, - { 7194, FlushVertexArrayRangeNV_remap_index }, - { 5600, VertexArrayRangeNV_remap_index }, - { 28980, CombinerInputNV_remap_index }, - { 2168, CombinerOutputNV_remap_index }, - { 31795, CombinerParameterfNV_remap_index }, - { 5474, CombinerParameterfvNV_remap_index }, + { 4794, FogCoorddEXT_remap_index }, + { 32300, FogCoorddvEXT_remap_index }, + { 4911, FogCoordfEXT_remap_index }, + { 27987, FogCoordfvEXT_remap_index }, + { 12283, PixelTexGenSGIX_remap_index }, + { 28592, BlendFuncSeparateEXT_remap_index }, + { 7225, FlushVertexArrayRangeNV_remap_index }, + { 5673, VertexArrayRangeNV_remap_index }, + { 29064, CombinerInputNV_remap_index }, + { 2207, CombinerOutputNV_remap_index }, + { 31879, CombinerParameterfNV_remap_index }, + { 5547, CombinerParameterfvNV_remap_index }, { 23076, CombinerParameteriNV_remap_index }, - { 33270, CombinerParameterivNV_remap_index }, - { 7570, FinalCombinerInputNV_remap_index }, - { 1609, GetCombinerInputParameterfvNV_remap_index }, - { 33107, GetCombinerInputParameterivNV_remap_index }, - { 14285, GetCombinerOutputParameterfvNV_remap_index }, - { 14113, GetCombinerOutputParameterivNV_remap_index }, - { 6956, GetFinalCombinerInputParameterfvNV_remap_index }, + { 33382, CombinerParameterivNV_remap_index }, + { 7601, FinalCombinerInputNV_remap_index }, + { 1648, GetCombinerInputParameterfvNV_remap_index }, + { 33219, GetCombinerInputParameterivNV_remap_index }, + { 216, GetCombinerOutputParameterfvNV_remap_index }, + { 14196, GetCombinerOutputParameterivNV_remap_index }, + { 6987, GetFinalCombinerInputParameterfvNV_remap_index }, { 25545, GetFinalCombinerInputParameterivNV_remap_index }, - { 12956, ResizeBuffersMESA_remap_index }, - { 11456, WindowPos2dMESA_remap_index }, - { 1045, WindowPos2dvMESA_remap_index }, - { 34174, WindowPos2fMESA_remap_index }, - { 8271, WindowPos2fvMESA_remap_index }, + { 13009, ResizeBuffersMESA_remap_index }, + { 11509, WindowPos2dMESA_remap_index }, + { 1084, WindowPos2dvMESA_remap_index }, + { 34286, WindowPos2fMESA_remap_index }, + { 8302, WindowPos2fvMESA_remap_index }, { 18722, WindowPos2iMESA_remap_index }, { 21072, WindowPos2ivMESA_remap_index }, { 21686, WindowPos2sMESA_remap_index }, - { 6038, WindowPos2svMESA_remap_index }, - { 8062, WindowPos3dMESA_remap_index }, - { 14431, WindowPos3dvMESA_remap_index }, - { 516, WindowPos3fMESA_remap_index }, - { 15393, WindowPos3fvMESA_remap_index }, + { 6069, WindowPos2svMESA_remap_index }, + { 8093, WindowPos3dMESA_remap_index }, + { 14443, WindowPos3dvMESA_remap_index }, + { 555, WindowPos3fMESA_remap_index }, + { 15405, WindowPos3fvMESA_remap_index }, { 24806, WindowPos3iMESA_remap_index }, - { 30988, WindowPos3ivMESA_remap_index }, + { 31072, WindowPos3ivMESA_remap_index }, { 19462, WindowPos3sMESA_remap_index }, - { 32511, WindowPos3svMESA_remap_index }, - { 11407, WindowPos4dMESA_remap_index }, - { 17524, WindowPos4dvMESA_remap_index }, - { 14390, WindowPos4fMESA_remap_index }, - { 31549, WindowPos4fvMESA_remap_index }, - { 31141, WindowPos4iMESA_remap_index }, - { 12759, WindowPos4ivMESA_remap_index }, + { 32556, WindowPos3svMESA_remap_index }, + { 11460, WindowPos4dMESA_remap_index }, + { 17498, WindowPos4dvMESA_remap_index }, + { 14402, WindowPos4fMESA_remap_index }, + { 31633, WindowPos4fvMESA_remap_index }, + { 31225, WindowPos4iMESA_remap_index }, + { 12812, WindowPos4ivMESA_remap_index }, { 19646, WindowPos4sMESA_remap_index }, - { 3259, WindowPos4svMESA_remap_index }, - { 14152, MultiModeDrawArraysIBM_remap_index }, - { 29755, MultiModeDrawElementsIBM_remap_index }, - { 12534, DeleteFencesNV_remap_index }, - { 28827, FinishFenceNV_remap_index }, - { 3797, GenFencesNV_remap_index }, - { 17504, GetFenceivNV_remap_index }, - { 8539, IsFenceNV_remap_index }, - { 14040, SetFenceNV_remap_index }, - { 4309, TestFenceNV_remap_index }, - { 32482, AreProgramsResidentNV_remap_index }, - { 31837, BindProgramNV_remap_index }, + { 3337, WindowPos4svMESA_remap_index }, + { 27695, MultiModeDrawArraysIBM_remap_index }, + { 29839, MultiModeDrawElementsIBM_remap_index }, + { 12587, DeleteFencesNV_remap_index }, + { 28911, FinishFenceNV_remap_index }, + { 3875, GenFencesNV_remap_index }, + { 17478, GetFenceivNV_remap_index }, + { 8570, IsFenceNV_remap_index }, + { 14123, SetFenceNV_remap_index }, + { 4434, TestFenceNV_remap_index }, + { 32527, AreProgramsResidentNV_remap_index }, + { 31921, BindProgramNV_remap_index }, { 26720, DeleteProgramsNV_remap_index }, { 22150, ExecuteProgramNV_remap_index }, - { 34067, GenProgramsNV_remap_index }, + { 34179, GenProgramsNV_remap_index }, { 24105, GetProgramParameterdvNV_remap_index }, - { 10833, GetProgramParameterfvNV_remap_index }, + { 10886, GetProgramParameterfvNV_remap_index }, { 27103, GetProgramStringNV_remap_index }, { 25183, GetProgramivNV_remap_index }, { 24360, GetTrackMatrixivNV_remap_index }, { 26897, GetVertexAttribPointervNV_remap_index }, - { 10474, GetVertexAttribdvNV_remap_index }, - { 9595, GetVertexAttribfvNV_remap_index }, + { 10527, GetVertexAttribdvNV_remap_index }, + { 9626, GetVertexAttribfvNV_remap_index }, { 19025, GetVertexAttribivNV_remap_index }, { 19929, IsProgramNV_remap_index }, - { 9678, LoadProgramNV_remap_index }, - { 28656, ProgramParameters4dvNV_remap_index }, + { 9709, LoadProgramNV_remap_index }, + { 28688, ProgramParameters4dvNV_remap_index }, { 25113, ProgramParameters4fvNV_remap_index }, { 21376, RequestResidentProgramsNV_remap_index }, - { 31333, TrackMatrixNV_remap_index }, - { 33084, VertexAttrib1dNV_remap_index }, - { 13951, VertexAttrib1dvNV_remap_index }, - { 29261, VertexAttrib1fNV_remap_index }, - { 2488, VertexAttrib1fvNV_remap_index }, - { 31606, VertexAttrib1sNV_remap_index }, - { 15466, VertexAttrib1svNV_remap_index }, - { 5029, VertexAttrib2dNV_remap_index }, - { 13844, VertexAttrib2dvNV_remap_index }, + { 31417, TrackMatrixNV_remap_index }, + { 33196, VertexAttrib1dNV_remap_index }, + { 14034, VertexAttrib1dvNV_remap_index }, + { 29345, VertexAttrib1fNV_remap_index }, + { 2527, VertexAttrib1fvNV_remap_index }, + { 31690, VertexAttrib1sNV_remap_index }, + { 15478, VertexAttrib1svNV_remap_index }, + { 5102, VertexAttrib2dNV_remap_index }, + { 13927, VertexAttrib2dvNV_remap_index }, { 20831, VertexAttrib2fNV_remap_index }, - { 13410, VertexAttrib2fvNV_remap_index }, - { 6250, VertexAttrib2sNV_remap_index }, + { 13493, VertexAttrib2fvNV_remap_index }, + { 6281, VertexAttrib2sNV_remap_index }, { 19516, VertexAttrib2svNV_remap_index }, - { 11604, VertexAttrib3dNV_remap_index }, - { 32732, VertexAttrib3dvNV_remap_index }, - { 10645, VertexAttrib3fNV_remap_index }, + { 11657, VertexAttrib3dNV_remap_index }, + { 32777, VertexAttrib3dvNV_remap_index }, + { 10698, VertexAttrib3fNV_remap_index }, { 25505, VertexAttrib3fvNV_remap_index }, { 22869, VertexAttrib3sNV_remap_index }, { 24387, VertexAttrib3svNV_remap_index }, - { 29729, VertexAttrib4dNV_remap_index }, - { 34104, VertexAttrib4dvNV_remap_index }, - { 5414, VertexAttrib4fNV_remap_index }, - { 9728, VertexAttrib4fvNV_remap_index }, + { 29813, VertexAttrib4dNV_remap_index }, + { 34216, VertexAttrib4dvNV_remap_index }, + { 5487, VertexAttrib4fNV_remap_index }, + { 9759, VertexAttrib4fvNV_remap_index }, { 27579, VertexAttrib4sNV_remap_index }, - { 1422, VertexAttrib4svNV_remap_index }, - { 5187, VertexAttrib4ubNV_remap_index }, - { 778, VertexAttrib4ubvNV_remap_index }, + { 1461, VertexAttrib4svNV_remap_index }, + { 5260, VertexAttrib4ubNV_remap_index }, + { 817, VertexAttrib4ubvNV_remap_index }, { 22330, VertexAttribPointerNV_remap_index }, - { 2340, VertexAttribs1dvNV_remap_index }, + { 2379, VertexAttribs1dvNV_remap_index }, { 26985, VertexAttribs1fvNV_remap_index }, - { 33904, VertexAttribs1svNV_remap_index }, - { 10670, VertexAttribs2dvNV_remap_index }, + { 34016, VertexAttribs1svNV_remap_index }, + { 10723, VertexAttribs2dvNV_remap_index }, { 26112, VertexAttribs2fvNV_remap_index }, - { 18120, VertexAttribs2svNV_remap_index }, - { 5502, VertexAttribs3dvNV_remap_index }, - { 2199, VertexAttribs3fvNV_remap_index }, - { 30736, VertexAttribs3svNV_remap_index }, + { 18094, VertexAttribs2svNV_remap_index }, + { 5575, VertexAttribs3dvNV_remap_index }, + { 2238, VertexAttribs3fvNV_remap_index }, + { 30820, VertexAttribs3svNV_remap_index }, { 27669, VertexAttribs4dvNV_remap_index }, - { 5574, VertexAttribs4fvNV_remap_index }, - { 33691, VertexAttribs4svNV_remap_index }, - { 30484, VertexAttribs4ubvNV_remap_index }, - { 27739, GetTexBumpParameterfvATI_remap_index }, - { 33945, GetTexBumpParameterivATI_remap_index }, + { 5647, VertexAttribs4fvNV_remap_index }, + { 33803, VertexAttribs4svNV_remap_index }, + { 30568, VertexAttribs4ubvNV_remap_index }, + { 27771, GetTexBumpParameterfvATI_remap_index }, + { 34057, GetTexBumpParameterivATI_remap_index }, { 19160, TexBumpParameterfvATI_remap_index }, { 21247, TexBumpParameterivATI_remap_index }, - { 16012, AlphaFragmentOp1ATI_remap_index }, + { 16024, AlphaFragmentOp1ATI_remap_index }, { 26403, AlphaFragmentOp2ATI_remap_index }, { 25421, AlphaFragmentOp3ATI_remap_index }, - { 30663, BeginFragmentShaderATI_remap_index }, - { 32036, BindFragmentShaderATI_remap_index }, + { 30747, BeginFragmentShaderATI_remap_index }, + { 32120, BindFragmentShaderATI_remap_index }, { 24516, ColorFragmentOp1ATI_remap_index }, - { 4476, ColorFragmentOp2ATI_remap_index }, - { 32377, ColorFragmentOp3ATI_remap_index }, - { 5740, DeleteFragmentShaderATI_remap_index }, - { 34128, EndFragmentShaderATI_remap_index }, - { 33298, GenFragmentShadersATI_remap_index }, + { 4549, ColorFragmentOp2ATI_remap_index }, + { 32422, ColorFragmentOp3ATI_remap_index }, + { 5813, DeleteFragmentShaderATI_remap_index }, + { 34240, EndFragmentShaderATI_remap_index }, + { 33410, GenFragmentShadersATI_remap_index }, { 26266, PassTexCoordATI_remap_index }, - { 7262, SampleMapATI_remap_index }, - { 27850, SetFragmentShaderConstantATI_remap_index }, - { 363, PointParameteriNV_remap_index }, - { 14592, PointParameterivNV_remap_index }, - { 29568, ActiveStencilFaceEXT_remap_index }, - { 28296, BindVertexArrayAPPLE_remap_index }, - { 2810, DeleteVertexArraysAPPLE_remap_index }, + { 7293, SampleMapATI_remap_index }, + { 27882, SetFragmentShaderConstantATI_remap_index }, + { 402, PointParameteriNV_remap_index }, + { 14604, PointParameterivNV_remap_index }, + { 29652, ActiveStencilFaceEXT_remap_index }, + { 28328, BindVertexArrayAPPLE_remap_index }, + { 2849, DeleteVertexArraysAPPLE_remap_index }, { 18561, GenVertexArraysAPPLE_remap_index }, { 24170, IsVertexArrayAPPLE_remap_index }, - { 819, GetProgramNamedParameterdvNV_remap_index }, - { 3638, GetProgramNamedParameterfvNV_remap_index }, - { 27770, ProgramNamedParameter4dNV_remap_index }, - { 14966, ProgramNamedParameter4dvNV_remap_index }, - { 9211, ProgramNamedParameter4fNV_remap_index }, - { 12095, ProgramNamedParameter4fvNV_remap_index }, - { 17435, PrimitiveRestartIndexNV_remap_index }, - { 31526, PrimitiveRestartNV_remap_index }, + { 858, GetProgramNamedParameterdvNV_remap_index }, + { 3716, GetProgramNamedParameterfvNV_remap_index }, + { 27802, ProgramNamedParameter4dNV_remap_index }, + { 14978, ProgramNamedParameter4dvNV_remap_index }, + { 9242, ProgramNamedParameter4fNV_remap_index }, + { 12148, ProgramNamedParameter4fvNV_remap_index }, + { 17409, PrimitiveRestartIndexNV_remap_index }, + { 31610, PrimitiveRestartNV_remap_index }, { 25092, DepthBoundsEXT_remap_index }, - { 1144, BlendEquationSeparateEXT_remap_index }, - { 15167, BindFramebufferEXT_remap_index }, + { 1183, BlendEquationSeparateEXT_remap_index }, + { 15179, BindFramebufferEXT_remap_index }, { 26496, BindRenderbufferEXT_remap_index }, - { 9975, CheckFramebufferStatusEXT_remap_index }, + { 10006, CheckFramebufferStatusEXT_remap_index }, { 23421, DeleteFramebuffersEXT_remap_index }, - { 32634, DeleteRenderbuffersEXT_remap_index }, - { 13868, FramebufferRenderbufferEXT_remap_index }, - { 14057, FramebufferTexture1DEXT_remap_index }, - { 11889, FramebufferTexture2DEXT_remap_index }, - { 11509, FramebufferTexture3DEXT_remap_index }, + { 32679, DeleteRenderbuffersEXT_remap_index }, + { 13951, FramebufferRenderbufferEXT_remap_index }, + { 14140, FramebufferTexture1DEXT_remap_index }, + { 11942, FramebufferTexture2DEXT_remap_index }, + { 11562, FramebufferTexture3DEXT_remap_index }, { 24036, GenFramebuffersEXT_remap_index }, - { 17985, GenRenderbuffersEXT_remap_index }, - { 6998, GenerateMipmapEXT_remap_index }, + { 17959, GenRenderbuffersEXT_remap_index }, + { 7029, GenerateMipmapEXT_remap_index }, { 22423, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 33204, GetRenderbufferParameterivEXT_remap_index }, + { 33316, GetRenderbufferParameterivEXT_remap_index }, { 21127, IsFramebufferEXT_remap_index }, - { 34027, IsRenderbufferEXT_remap_index }, - { 8486, RenderbufferStorageEXT_remap_index }, - { 695, BlitFramebufferEXT_remap_index }, - { 14752, BufferParameteriAPPLE_remap_index }, + { 34139, IsRenderbufferEXT_remap_index }, + { 8517, RenderbufferStorageEXT_remap_index }, + { 734, BlitFramebufferEXT_remap_index }, + { 14764, BufferParameteriAPPLE_remap_index }, { 19961, FlushMappedBufferRangeAPPLE_remap_index }, - { 1867, BindFragDataLocationEXT_remap_index }, + { 1906, BindFragDataLocationEXT_remap_index }, { 25205, GetFragDataLocationEXT_remap_index }, - { 10948, GetUniformuivEXT_remap_index }, - { 33378, GetVertexAttribIivEXT_remap_index }, - { 4326, GetVertexAttribIuivEXT_remap_index }, - { 12367, Uniform1uiEXT_remap_index }, - { 28741, Uniform1uivEXT_remap_index }, + { 11001, GetUniformuivEXT_remap_index }, + { 33490, GetVertexAttribIivEXT_remap_index }, + { 28859, GetVertexAttribIuivEXT_remap_index }, + { 12420, Uniform1uiEXT_remap_index }, + { 28773, Uniform1uivEXT_remap_index }, { 22965, Uniform2uiEXT_remap_index }, - { 4440, Uniform2uivEXT_remap_index }, - { 30008, Uniform3uiEXT_remap_index }, - { 15113, Uniform3uivEXT_remap_index }, - { 3562, Uniform4uiEXT_remap_index }, - { 8987, Uniform4uivEXT_remap_index }, + { 4513, Uniform2uivEXT_remap_index }, + { 30092, Uniform3uiEXT_remap_index }, + { 15125, Uniform3uivEXT_remap_index }, + { 3640, Uniform4uiEXT_remap_index }, + { 9018, Uniform4uivEXT_remap_index }, { 18940, VertexAttribI1iEXT_remap_index }, - { 5214, VertexAttribI1ivEXT_remap_index }, - { 2589, VertexAttribI1uiEXT_remap_index }, - { 13138, VertexAttribI1uivEXT_remap_index }, + { 5287, VertexAttribI1ivEXT_remap_index }, + { 2628, VertexAttribI1uiEXT_remap_index }, + { 13221, VertexAttribI1uivEXT_remap_index }, { 81, VertexAttribI2iEXT_remap_index }, { 24628, VertexAttribI2ivEXT_remap_index }, - { 5528, VertexAttribI2uiEXT_remap_index }, - { 4883, VertexAttribI2uivEXT_remap_index }, + { 5601, VertexAttribI2uiEXT_remap_index }, + { 4956, VertexAttribI2uivEXT_remap_index }, { 27371, VertexAttribI3iEXT_remap_index }, { 25830, VertexAttribI3ivEXT_remap_index }, - { 3416, VertexAttribI3uiEXT_remap_index }, - { 31229, VertexAttribI3uivEXT_remap_index }, + { 3494, VertexAttribI3uiEXT_remap_index }, + { 31313, VertexAttribI3uivEXT_remap_index }, { 22674, VertexAttribI4bvEXT_remap_index }, - { 15045, VertexAttribI4iEXT_remap_index }, - { 32903, VertexAttribI4ivEXT_remap_index }, - { 13771, VertexAttribI4svEXT_remap_index }, - { 16987, VertexAttribI4ubvEXT_remap_index }, - { 16633, VertexAttribI4uiEXT_remap_index }, - { 5674, VertexAttribI4uivEXT_remap_index }, - { 11672, VertexAttribI4usvEXT_remap_index }, + { 15057, VertexAttribI4iEXT_remap_index }, + { 32948, VertexAttribI4ivEXT_remap_index }, + { 13854, VertexAttribI4svEXT_remap_index }, + { 4043, VertexAttribI4ubvEXT_remap_index }, + { 16645, VertexAttribI4uiEXT_remap_index }, + { 5747, VertexAttribI4uivEXT_remap_index }, + { 11725, VertexAttribI4usvEXT_remap_index }, { 19104, VertexAttribIPointerEXT_remap_index }, - { 3103, FramebufferTextureLayerEXT_remap_index }, - { 5950, ColorMaskIndexedEXT_remap_index }, + { 3181, FramebufferTextureLayerEXT_remap_index }, + { 16999, ColorMaskIndexedEXT_remap_index }, { 19540, DisableIndexedEXT_remap_index }, { 27416, EnableIndexedEXT_remap_index }, { 22378, GetBooleanIndexedvEXT_remap_index }, - { 11283, GetIntegerIndexedvEXT_remap_index }, + { 11336, GetIntegerIndexedvEXT_remap_index }, { 23497, IsEnabledIndexedEXT_remap_index }, { 23397, ClearColorIiEXT_remap_index }, - { 3512, ClearColorIuiEXT_remap_index }, - { 10171, GetTexParameterIivEXT_remap_index }, - { 6198, GetTexParameterIuivEXT_remap_index }, - { 3059, TexParameterIivEXT_remap_index }, + { 3590, ClearColorIuiEXT_remap_index }, + { 10224, GetTexParameterIivEXT_remap_index }, + { 6229, GetTexParameterIuivEXT_remap_index }, + { 3137, TexParameterIivEXT_remap_index }, { 27238, TexParameterIuivEXT_remap_index }, - { 4751, BeginConditionalRenderNV_remap_index }, + { 4824, BeginConditionalRenderNV_remap_index }, { 26216, EndConditionalRenderNV_remap_index }, - { 9622, BeginTransformFeedbackEXT_remap_index }, + { 9653, BeginTransformFeedbackEXT_remap_index }, { 19575, BindBufferBaseEXT_remap_index }, { 19434, BindBufferOffsetEXT_remap_index }, - { 12584, BindBufferRangeEXT_remap_index }, - { 14667, EndTransformFeedbackEXT_remap_index }, - { 11146, GetTransformFeedbackVaryingEXT_remap_index }, + { 12637, BindBufferRangeEXT_remap_index }, + { 14679, EndTransformFeedbackEXT_remap_index }, + { 11199, GetTransformFeedbackVaryingEXT_remap_index }, { 21432, TransformFeedbackVaryingsEXT_remap_index }, - { 30385, ProvokingVertexEXT_remap_index }, - { 11094, GetTexParameterPointervAPPLE_remap_index }, - { 5276, TextureRangeAPPLE_remap_index }, - { 11961, GetObjectParameterivAPPLE_remap_index }, + { 30469, ProvokingVertexEXT_remap_index }, + { 11147, GetTexParameterPointervAPPLE_remap_index }, + { 5349, TextureRangeAPPLE_remap_index }, + { 12014, GetObjectParameterivAPPLE_remap_index }, { 20554, ObjectPurgeableAPPLE_remap_index }, - { 5992, ObjectUnpurgeableAPPLE_remap_index }, - { 17807, ActiveProgramEXT_remap_index }, - { 17778, CreateShaderProgramEXT_remap_index }, - { 29353, UseShaderProgramEXT_remap_index }, - { 16940, TextureBarrierNV_remap_index }, - { 29594, StencilFuncSeparateATI_remap_index }, - { 5863, ProgramEnvParameters4fvEXT_remap_index }, - { 17672, ProgramLocalParameters4fvEXT_remap_index }, - { 14520, GetQueryObjecti64vEXT_remap_index }, - { 10696, GetQueryObjectui64vEXT_remap_index }, + { 6023, ObjectUnpurgeableAPPLE_remap_index }, + { 17781, ActiveProgramEXT_remap_index }, + { 17752, CreateShaderProgramEXT_remap_index }, + { 29437, UseShaderProgramEXT_remap_index }, + { 16952, TextureBarrierNV_remap_index }, + { 29678, StencilFuncSeparateATI_remap_index }, + { 5936, ProgramEnvParameters4fvEXT_remap_index }, + { 17646, ProgramLocalParameters4fvEXT_remap_index }, + { 14532, GetQueryObjecti64vEXT_remap_index }, + { 10749, GetQueryObjectui64vEXT_remap_index }, { 24585, EGLImageTargetRenderbufferStorageOES_remap_index }, - { 12473, EGLImageTargetTexture2DOES_remap_index }, + { 12526, EGLImageTargetTexture2DOES_remap_index }, { -1, -1 } }; /* these functions are in the ABI, but have alternative names */ static const struct gl_function_remap MESA_alt_functions[] = { /* from GL_EXT_blend_color */ - { 2728, _gloffset_BlendColor }, + { 2767, _gloffset_BlendColor }, /* from GL_EXT_blend_minmax */ - { 11566, _gloffset_BlendEquation }, + { 11619, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 17546, _gloffset_ColorSubTable }, - { 32566, _gloffset_CopyColorSubTable }, + { 17520, _gloffset_ColorSubTable }, + { 32611, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ - { 257, _gloffset_ConvolutionFilter1D }, - { 2527, _gloffset_CopyConvolutionFilter1D }, - { 4168, _gloffset_GetConvolutionParameteriv }, - { 8835, _gloffset_ConvolutionFilter2D }, - { 9037, _gloffset_ConvolutionParameteriv }, - { 9497, _gloffset_ConvolutionParameterfv }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2566, _gloffset_CopyConvolutionFilter1D }, + { 4293, _gloffset_GetConvolutionParameteriv }, + { 8866, _gloffset_ConvolutionFilter2D }, + { 9068, _gloffset_ConvolutionParameteriv }, + { 9528, _gloffset_ConvolutionParameterfv }, { 21275, _gloffset_GetSeparableFilter }, { 24860, _gloffset_SeparableFilter2D }, { 25723, _gloffset_ConvolutionParameteri }, { 25891, _gloffset_ConvolutionParameterf }, { 27605, _gloffset_GetConvolutionParameterfv }, - { 28462, _gloffset_GetConvolutionFilter }, - { 30925, _gloffset_CopyConvolutionFilter2D }, + { 28494, _gloffset_GetConvolutionFilter }, + { 31009, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ - { 15526, _gloffset_CopyTexSubImage3D }, - { 17233, _gloffset_CopyTexImage2D }, + { 15538, _gloffset_CopyTexSubImage3D }, + { 17207, _gloffset_CopyTexImage2D }, { 25331, _gloffset_CopyTexImage1D }, - { 28143, _gloffset_CopyTexSubImage2D }, - { 30563, _gloffset_CopyTexSubImage1D }, + { 28175, _gloffset_CopyTexSubImage2D }, + { 30647, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ - { 9834, _gloffset_DrawRangeElements }, + { 9865, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ - { 856, _gloffset_Histogram }, - { 3598, _gloffset_ResetHistogram }, - { 10317, _gloffset_GetMinmax }, - { 15860, _gloffset_GetHistogramParameterfv }, + { 895, _gloffset_Histogram }, + { 3676, _gloffset_ResetHistogram }, + { 10370, _gloffset_GetMinmax }, + { 15872, _gloffset_GetHistogramParameterfv }, { 25256, _gloffset_GetMinmaxParameteriv }, { 27495, _gloffset_ResetMinmax }, - { 28359, _gloffset_GetHistogramParameteriv }, - { 29528, _gloffset_GetHistogram }, - { 32152, _gloffset_Minmax }, - { 33774, _gloffset_GetMinmaxParameterfv }, + { 28391, _gloffset_GetHistogramParameteriv }, + { 29612, _gloffset_GetHistogram }, + { 32236, _gloffset_Minmax }, + { 33886, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ - { 7408, _gloffset_TexSubImage1D }, - { 11021, _gloffset_TexSubImage2D }, + { 7439, _gloffset_TexSubImage1D }, + { 11074, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ - { 1826, _gloffset_TexImage3D }, + { 1865, _gloffset_TexImage3D }, { 23552, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ - { 3366, _gloffset_PrioritizeTextures }, - { 7857, _gloffset_AreTexturesResident }, - { 13975, _gloffset_GenTextures }, - { 16219, _gloffset_DeleteTextures }, + { 3444, _gloffset_PrioritizeTextures }, + { 7888, _gloffset_AreTexturesResident }, + { 14058, _gloffset_GenTextures }, + { 16231, _gloffset_DeleteTextures }, { 20242, _gloffset_IsTexture }, - { 30628, _gloffset_BindTexture }, + { 30712, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ { 25032, _gloffset_ArrayElement }, - { 31740, _gloffset_GetPointerv }, - { 33325, _gloffset_DrawArrays }, + { 31824, _gloffset_GetPointerv }, + { 33437, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ - { 7975, _gloffset_ColorTableParameteriv }, - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, - { 15816, _gloffset_CopyColorTable }, + { 8006, _gloffset_ColorTableParameteriv }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, + { 15828, _gloffset_CopyColorTable }, { 20103, _gloffset_ColorTableParameterfv }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ - { 425, _gloffset_MultiTexCoord3sARB }, - { 657, _gloffset_ActiveTextureARB }, - { 4378, _gloffset_MultiTexCoord1fvARB }, - { 6474, _gloffset_MultiTexCoord3dARB }, - { 6519, _gloffset_MultiTexCoord2iARB }, - { 6643, _gloffset_MultiTexCoord2svARB }, - { 8653, _gloffset_MultiTexCoord2fARB }, - { 10726, _gloffset_MultiTexCoord3fvARB }, - { 11328, _gloffset_MultiTexCoord4sARB }, - { 12009, _gloffset_MultiTexCoord2dvARB }, - { 12416, _gloffset_MultiTexCoord1svARB }, - { 12817, _gloffset_MultiTexCoord3svARB }, - { 12878, _gloffset_MultiTexCoord4iARB }, - { 13679, _gloffset_MultiTexCoord3iARB }, - { 14549, _gloffset_MultiTexCoord1dARB }, - { 14781, _gloffset_MultiTexCoord3dvARB }, - { 16060, _gloffset_MultiTexCoord3ivARB }, - { 16105, _gloffset_MultiTexCoord2sARB }, - { 17603, _gloffset_MultiTexCoord4ivARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4451, _gloffset_MultiTexCoord1fvARB }, + { 6505, _gloffset_MultiTexCoord3dARB }, + { 6550, _gloffset_MultiTexCoord2iARB }, + { 6674, _gloffset_MultiTexCoord2svARB }, + { 8684, _gloffset_MultiTexCoord2fARB }, + { 10779, _gloffset_MultiTexCoord3fvARB }, + { 11381, _gloffset_MultiTexCoord4sARB }, + { 12062, _gloffset_MultiTexCoord2dvARB }, + { 12469, _gloffset_MultiTexCoord1svARB }, + { 12870, _gloffset_MultiTexCoord3svARB }, + { 12931, _gloffset_MultiTexCoord4iARB }, + { 13762, _gloffset_MultiTexCoord3iARB }, + { 14561, _gloffset_MultiTexCoord1dARB }, + { 14793, _gloffset_MultiTexCoord3dvARB }, + { 16072, _gloffset_MultiTexCoord3ivARB }, + { 16117, _gloffset_MultiTexCoord2sARB }, + { 17577, _gloffset_MultiTexCoord4ivARB }, { 19743, _gloffset_ClientActiveTextureARB }, { 22106, _gloffset_MultiTexCoord2dARB }, { 22543, _gloffset_MultiTexCoord4dvARB }, @@ -5550,13 +5554,13 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 26541, _gloffset_MultiTexCoord4dARB }, { 26807, _gloffset_MultiTexCoord1sARB }, { 27011, _gloffset_MultiTexCoord1dvARB }, - { 27987, _gloffset_MultiTexCoord1ivARB }, - { 28080, _gloffset_MultiTexCoord2ivARB }, - { 28419, _gloffset_MultiTexCoord1iARB }, - { 29803, _gloffset_MultiTexCoord4svARB }, - { 30427, _gloffset_MultiTexCoord1fARB }, - { 30690, _gloffset_MultiTexCoord4fARB }, - { 33159, _gloffset_MultiTexCoord2fvARB }, + { 28019, _gloffset_MultiTexCoord1ivARB }, + { 28112, _gloffset_MultiTexCoord2ivARB }, + { 28451, _gloffset_MultiTexCoord1iARB }, + { 29887, _gloffset_MultiTexCoord4svARB }, + { 30511, _gloffset_MultiTexCoord1fARB }, + { 30774, _gloffset_MultiTexCoord4fARB }, + { 33271, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -5564,7 +5568,14 @@ static const struct gl_function_remap MESA_alt_functions[] = { #if defined(need_GL_3DFX_tbuffer) static const struct gl_function_remap GL_3DFX_tbuffer_functions[] = { - { 9555, -1 }, /* TbufferMask3DFX */ + { 9586, -1 }, /* TbufferMask3DFX */ + { -1, -1 } +}; +#endif + +#if defined(need_GL_AMD_draw_buffers_blend) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_AMD_draw_buffers_blend_functions[] = { { -1, -1 } }; #endif @@ -5656,7 +5667,7 @@ static const struct gl_function_remap GL_ARB_framebuffer_object_functions[] = { #if defined(need_GL_ARB_geometry_shader4) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_ARB_geometry_shader4_functions[] = { - { 12781, -1 }, /* FramebufferTextureLayer */ + { 12834, -1 }, /* FramebufferTextureLayer */ { -1, -1 } }; #endif @@ -5677,9 +5688,9 @@ static const struct gl_function_remap GL_ARB_map_buffer_range_functions[] = { #if defined(need_GL_ARB_matrix_palette) static const struct gl_function_remap GL_ARB_matrix_palette_functions[] = { - { 3849, -1 }, /* MatrixIndexusvARB */ - { 13500, -1 }, /* MatrixIndexuivARB */ - { 14936, -1 }, /* MatrixIndexPointerARB */ + { 3927, -1 }, /* MatrixIndexusvARB */ + { 13583, -1 }, /* MatrixIndexuivARB */ + { 14948, -1 }, /* MatrixIndexPointerARB */ { 20509, -1 }, /* CurrentPaletteMatrixARB */ { 23668, -1 }, /* MatrixIndexubvARB */ { -1, -1 } @@ -5779,16 +5790,16 @@ static const struct gl_function_remap GL_ARB_vertex_array_object_functions[] = { #if defined(need_GL_ARB_vertex_blend) static const struct gl_function_remap GL_ARB_vertex_blend_functions[] = { - { 2469, -1 }, /* WeightubvARB */ - { 6886, -1 }, /* WeightivARB */ - { 11431, -1 }, /* WeightPointerARB */ - { 14267, -1 }, /* WeightfvARB */ - { 18146, -1 }, /* WeightbvARB */ + { 2508, -1 }, /* WeightubvARB */ + { 6917, -1 }, /* WeightivARB */ + { 11484, -1 }, /* WeightPointerARB */ + { 14318, -1 }, /* WeightfvARB */ + { 18120, -1 }, /* WeightbvARB */ { 21739, -1 }, /* WeightusvARB */ { 24786, -1 }, /* VertexBlendARB */ - { 30511, -1 }, /* WeightsvARB */ - { 32616, -1 }, /* WeightdvARB */ - { 33359, -1 }, /* WeightuivARB */ + { 30595, -1 }, /* WeightsvARB */ + { 32661, -1 }, /* WeightdvARB */ + { 33471, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5858,7 +5869,7 @@ static const struct gl_function_remap GL_ATI_separate_stencil_functions[] = { #if defined(need_GL_EXT_blend_color) static const struct gl_function_remap GL_EXT_blend_color_functions[] = { - { 2728, _gloffset_BlendColor }, + { 2767, _gloffset_BlendColor }, { -1, -1 } }; #endif @@ -5879,15 +5890,15 @@ static const struct gl_function_remap GL_EXT_blend_func_separate_functions[] = { #if defined(need_GL_EXT_blend_minmax) static const struct gl_function_remap GL_EXT_blend_minmax_functions[] = { - { 11566, _gloffset_BlendEquation }, + { 11619, _gloffset_BlendEquation }, { -1, -1 } }; #endif #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 17546, _gloffset_ColorSubTable }, - { 32566, _gloffset_CopyColorSubTable }, + { 17520, _gloffset_ColorSubTable }, + { 32611, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5901,29 +5912,29 @@ static const struct gl_function_remap GL_EXT_compiled_vertex_array_functions[] = #if defined(need_GL_EXT_convolution) static const struct gl_function_remap GL_EXT_convolution_functions[] = { - { 257, _gloffset_ConvolutionFilter1D }, - { 2527, _gloffset_CopyConvolutionFilter1D }, - { 4168, _gloffset_GetConvolutionParameteriv }, - { 8835, _gloffset_ConvolutionFilter2D }, - { 9037, _gloffset_ConvolutionParameteriv }, - { 9497, _gloffset_ConvolutionParameterfv }, + { 296, _gloffset_ConvolutionFilter1D }, + { 2566, _gloffset_CopyConvolutionFilter1D }, + { 4293, _gloffset_GetConvolutionParameteriv }, + { 8866, _gloffset_ConvolutionFilter2D }, + { 9068, _gloffset_ConvolutionParameteriv }, + { 9528, _gloffset_ConvolutionParameterfv }, { 21275, _gloffset_GetSeparableFilter }, { 24860, _gloffset_SeparableFilter2D }, { 25723, _gloffset_ConvolutionParameteri }, { 25891, _gloffset_ConvolutionParameterf }, { 27605, _gloffset_GetConvolutionParameterfv }, - { 28462, _gloffset_GetConvolutionFilter }, - { 30925, _gloffset_CopyConvolutionFilter2D }, + { 28494, _gloffset_GetConvolutionFilter }, + { 31009, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_coordinate_frame) static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { - { 10865, -1 }, /* TangentPointerEXT */ - { 12936, -1 }, /* Binormal3ivEXT */ - { 13632, -1 }, /* Tangent3sEXT */ - { 15001, -1 }, /* Tangent3fvEXT */ + { 10918, -1 }, /* TangentPointerEXT */ + { 12989, -1 }, /* Binormal3ivEXT */ + { 13715, -1 }, /* Tangent3sEXT */ + { 15013, -1 }, /* Tangent3fvEXT */ { 19188, -1 }, /* Tangent3ivEXT */ { 19415, -1 }, /* Tangent3dvEXT */ { 20189, -1 }, /* Binormal3bvEXT */ @@ -5932,35 +5943,35 @@ static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { { 25795, -1 }, /* Binormal3sEXT */ { 26337, -1 }, /* Tangent3dEXT */ { 27284, -1 }, /* Binormal3svEXT */ - { 27885, -1 }, /* Binormal3fEXT */ - { 28793, -1 }, /* Binormal3dvEXT */ - { 30060, -1 }, /* Tangent3iEXT */ - { 31210, -1 }, /* Tangent3bvEXT */ - { 31775, -1 }, /* Tangent3bEXT */ - { 32339, -1 }, /* Binormal3fvEXT */ - { 33058, -1 }, /* BinormalPointerEXT */ - { 33539, -1 }, /* Tangent3svEXT */ - { 33976, -1 }, /* Binormal3bEXT */ - { 34153, -1 }, /* Binormal3iEXT */ + { 27917, -1 }, /* Binormal3fEXT */ + { 28825, -1 }, /* Binormal3dvEXT */ + { 30144, -1 }, /* Tangent3iEXT */ + { 31294, -1 }, /* Tangent3bvEXT */ + { 31859, -1 }, /* Tangent3bEXT */ + { 32384, -1 }, /* Binormal3fvEXT */ + { 33170, -1 }, /* BinormalPointerEXT */ + { 33651, -1 }, /* Tangent3svEXT */ + { 34088, -1 }, /* Binormal3bEXT */ + { 34265, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { - { 15526, _gloffset_CopyTexSubImage3D }, - { 17233, _gloffset_CopyTexImage2D }, + { 15538, _gloffset_CopyTexSubImage3D }, + { 17207, _gloffset_CopyTexImage2D }, { 25331, _gloffset_CopyTexImage1D }, - { 28143, _gloffset_CopyTexSubImage2D }, - { 30563, _gloffset_CopyTexSubImage1D }, + { 28175, _gloffset_CopyTexSubImage2D }, + { 30647, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_cull_vertex) static const struct gl_function_remap GL_EXT_cull_vertex_functions[] = { - { 9186, -1 }, /* CullParameterdvEXT */ - { 12054, -1 }, /* CullParameterfvEXT */ + { 9217, -1 }, /* CullParameterdvEXT */ + { 12107, -1 }, /* CullParameterfvEXT */ { -1, -1 } }; #endif @@ -5988,7 +5999,7 @@ static const struct gl_function_remap GL_EXT_draw_instanced_functions[] = { #if defined(need_GL_EXT_draw_range_elements) static const struct gl_function_remap GL_EXT_draw_range_elements_functions[] = { - { 9834, _gloffset_DrawRangeElements }, + { 9865, _gloffset_DrawRangeElements }, { -1, -1 } }; #endif @@ -6037,23 +6048,23 @@ static const struct gl_function_remap GL_EXT_gpu_shader4_functions[] = { #if defined(need_GL_EXT_histogram) static const struct gl_function_remap GL_EXT_histogram_functions[] = { - { 856, _gloffset_Histogram }, - { 3598, _gloffset_ResetHistogram }, - { 10317, _gloffset_GetMinmax }, - { 15860, _gloffset_GetHistogramParameterfv }, + { 895, _gloffset_Histogram }, + { 3676, _gloffset_ResetHistogram }, + { 10370, _gloffset_GetMinmax }, + { 15872, _gloffset_GetHistogramParameterfv }, { 25256, _gloffset_GetMinmaxParameteriv }, { 27495, _gloffset_ResetMinmax }, - { 28359, _gloffset_GetHistogramParameteriv }, - { 29528, _gloffset_GetHistogram }, - { 32152, _gloffset_Minmax }, - { 33774, _gloffset_GetMinmaxParameterfv }, + { 28391, _gloffset_GetHistogramParameteriv }, + { 29612, _gloffset_GetHistogram }, + { 32236, _gloffset_Minmax }, + { 33886, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_index_func) static const struct gl_function_remap GL_EXT_index_func_functions[] = { - { 11840, -1 }, /* IndexFuncEXT */ + { 11893, -1 }, /* IndexFuncEXT */ { -1, -1 } }; #endif @@ -6090,8 +6101,8 @@ static const struct gl_function_remap GL_EXT_multisample_functions[] = { #if defined(need_GL_EXT_paletted_texture) static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, { -1, -1 } @@ -6102,8 +6113,8 @@ static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { { 22508, -1 }, /* PixelTransformParameterfEXT */ { 22588, -1 }, /* PixelTransformParameteriEXT */ - { 31490, -1 }, /* PixelTransformParameterfvEXT */ - { 33022, -1 }, /* PixelTransformParameterivEXT */ + { 31574, -1 }, /* PixelTransformParameterfvEXT */ + { 33134, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -6152,15 +6163,15 @@ static const struct gl_function_remap GL_EXT_stencil_two_side_functions[] = { #if defined(need_GL_EXT_subtexture) static const struct gl_function_remap GL_EXT_subtexture_functions[] = { - { 7408, _gloffset_TexSubImage1D }, - { 11021, _gloffset_TexSubImage2D }, + { 7439, _gloffset_TexSubImage1D }, + { 11074, _gloffset_TexSubImage2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { - { 1826, _gloffset_TexImage3D }, + { 1865, _gloffset_TexImage3D }, { 23552, _gloffset_TexSubImage3D }, { -1, -1 } }; @@ -6182,19 +6193,19 @@ static const struct gl_function_remap GL_EXT_texture_integer_functions[] = { #if defined(need_GL_EXT_texture_object) static const struct gl_function_remap GL_EXT_texture_object_functions[] = { - { 3366, _gloffset_PrioritizeTextures }, - { 7857, _gloffset_AreTexturesResident }, - { 13975, _gloffset_GenTextures }, - { 16219, _gloffset_DeleteTextures }, + { 3444, _gloffset_PrioritizeTextures }, + { 7888, _gloffset_AreTexturesResident }, + { 14058, _gloffset_GenTextures }, + { 16231, _gloffset_DeleteTextures }, { 20242, _gloffset_IsTexture }, - { 30628, _gloffset_BindTexture }, + { 30712, _gloffset_BindTexture }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture_perturb_normal) static const struct gl_function_remap GL_EXT_texture_perturb_normal_functions[] = { - { 14217, -1 }, /* TextureNormalEXT */ + { 14268, -1 }, /* TextureNormalEXT */ { -1, -1 } }; #endif @@ -6217,8 +6228,8 @@ static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = { /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { { 25032, _gloffset_ArrayElement }, - { 31740, _gloffset_GetPointerv }, - { 33325, _gloffset_DrawArrays }, + { 31824, _gloffset_GetPointerv }, + { 33437, _gloffset_DrawArrays }, { -1, -1 } }; #endif @@ -6226,19 +6237,19 @@ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { { 20290, -1 }, /* VertexWeightfvEXT */ - { 27828, -1 }, /* VertexWeightfEXT */ - { 29497, -1 }, /* VertexWeightPointerEXT */ + { 27860, -1 }, /* VertexWeightfEXT */ + { 29581, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif #if defined(need_GL_HP_image_transform) static const struct gl_function_remap GL_HP_image_transform_functions[] = { - { 2400, -1 }, /* GetImageTransformParameterfvHP */ - { 3815, -1 }, /* ImageTransformParameterfHP */ - { 10559, -1 }, /* ImageTransformParameterfvHP */ - { 12301, -1 }, /* ImageTransformParameteriHP */ - { 12671, -1 }, /* GetImageTransformParameterivHP */ + { 2439, -1 }, /* GetImageTransformParameterfvHP */ + { 3893, -1 }, /* ImageTransformParameterfHP */ + { 10612, -1 }, /* ImageTransformParameterfvHP */ + { 12354, -1 }, /* ImageTransformParameteriHP */ + { 12724, -1 }, /* GetImageTransformParameterivHP */ { 20354, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; @@ -6253,14 +6264,14 @@ static const struct gl_function_remap GL_IBM_multimode_draw_arrays_functions[] = #if defined(need_GL_IBM_vertex_array_lists) static const struct gl_function_remap GL_IBM_vertex_array_lists_functions[] = { - { 4510, -1 }, /* SecondaryColorPointerListIBM */ - { 6340, -1 }, /* NormalPointerListIBM */ - { 8031, -1 }, /* FogCoordPointerListIBM */ - { 8372, -1 }, /* VertexPointerListIBM */ - { 12555, -1 }, /* ColorPointerListIBM */ - { 13739, -1 }, /* TexCoordPointerListIBM */ - { 14239, -1 }, /* IndexPointerListIBM */ - { 33717, -1 }, /* EdgeFlagPointerListIBM */ + { 4583, -1 }, /* SecondaryColorPointerListIBM */ + { 6371, -1 }, /* NormalPointerListIBM */ + { 8062, -1 }, /* FogCoordPointerListIBM */ + { 8403, -1 }, /* VertexPointerListIBM */ + { 12608, -1 }, /* ColorPointerListIBM */ + { 13822, -1 }, /* TexCoordPointerListIBM */ + { 14290, -1 }, /* IndexPointerListIBM */ + { 33829, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -6274,10 +6285,10 @@ static const struct gl_function_remap GL_INGR_blend_func_separate_functions[] = #if defined(need_GL_INTEL_parallel_arrays) static const struct gl_function_remap GL_INTEL_parallel_arrays_functions[] = { - { 13079, -1 }, /* VertexPointervINTEL */ - { 15953, -1 }, /* ColorPointervINTEL */ - { 30899, -1 }, /* NormalPointervINTEL */ - { 31422, -1 }, /* TexCoordPointervINTEL */ + { 13162, -1 }, /* VertexPointervINTEL */ + { 15965, -1 }, /* ColorPointervINTEL */ + { 30983, -1 }, /* NormalPointervINTEL */ + { 31506, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -6291,10 +6302,10 @@ static const struct gl_function_remap GL_MESA_resize_buffers_functions[] = { #if defined(need_GL_MESA_shader_debug) static const struct gl_function_remap GL_MESA_shader_debug_functions[] = { - { 1690, -1 }, /* GetDebugLogLengthMESA */ - { 3537, -1 }, /* ClearDebugLogMESA */ - { 4695, -1 }, /* GetDebugLogMESA */ - { 31933, -1 }, /* CreateDebugObjectMESA */ + { 1729, -1 }, /* GetDebugLogLengthMESA */ + { 3615, -1 }, /* ClearDebugLogMESA */ + { 4768, -1 }, /* GetDebugLogMESA */ + { 32017, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -6315,15 +6326,15 @@ static const struct gl_function_remap GL_NV_condtitional_render_functions[] = { #if defined(need_GL_NV_evaluators) static const struct gl_function_remap GL_NV_evaluators_functions[] = { - { 7070, -1 }, /* GetMapAttribParameterivNV */ - { 8803, -1 }, /* MapControlPointsNV */ - { 8902, -1 }, /* MapParameterfvNV */ - { 11004, -1 }, /* EvalMapsNV */ - { 17744, -1 }, /* GetMapAttribParameterfvNV */ - { 17961, -1 }, /* MapParameterivNV */ + { 7101, -1 }, /* GetMapAttribParameterivNV */ + { 8834, -1 }, /* MapControlPointsNV */ + { 8933, -1 }, /* MapParameterfvNV */ + { 11057, -1 }, /* EvalMapsNV */ + { 17718, -1 }, /* GetMapAttribParameterfvNV */ + { 17935, -1 }, /* MapParameterivNV */ { 25646, -1 }, /* GetMapParameterivNV */ { 26189, -1 }, /* GetMapParameterfvNV */ - { 30214, -1 }, /* GetMapControlPointsNV */ + { 30298, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -6365,8 +6376,8 @@ static const struct gl_function_remap GL_NV_register_combiners_functions[] = { #if defined(need_GL_NV_register_combiners2) static const struct gl_function_remap GL_NV_register_combiners2_functions[] = { - { 16372, -1 }, /* CombinerStageParameterfvNV */ - { 16768, -1 }, /* GetCombinerStageParameterfvNV */ + { 16384, -1 }, /* CombinerStageParameterfvNV */ + { 16780, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -6401,23 +6412,23 @@ static const struct gl_function_remap GL_OES_EGL_image_functions[] = { #if defined(need_GL_PGI_misc_hints) static const struct gl_function_remap GL_PGI_misc_hints_functions[] = { - { 9023, -1 }, /* HintPGI */ + { 9054, -1 }, /* HintPGI */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 16741, -1 }, /* GetDetailTexFuncSGIS */ - { 17178, -1 }, /* DetailTexFuncSGIS */ + { 16753, -1 }, /* GetDetailTexFuncSGIS */ + { 17152, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 28125, -1 }, /* FogFuncSGIS */ - { 28846, -1 }, /* GetFogFuncSGIS */ + { 28157, -1 }, /* FogFuncSGIS */ + { 28930, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -6445,7 +6456,7 @@ static const struct gl_function_remap GL_SGIS_point_parameters_functions[] = { #if defined(need_GL_SGIS_sharpen_texture) static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { - { 7131, -1 }, /* GetSharpenTexFuncSGIS */ + { 7162, -1 }, /* GetSharpenTexFuncSGIS */ { 22894, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; @@ -6453,66 +6464,66 @@ static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { #if defined(need_GL_SGIS_texture4D) static const struct gl_function_remap GL_SGIS_texture4D_functions[] = { - { 995, -1 }, /* TexImage4DSGIS */ - { 16288, -1 }, /* TexSubImage4DSGIS */ + { 1034, -1 }, /* TexImage4DSGIS */ + { 16300, -1 }, /* TexSubImage4DSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_color_mask) static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = { - { 15659, -1 }, /* TextureColorMaskSGIS */ + { 15671, -1 }, /* TextureColorMaskSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { - { 7308, -1 }, /* GetTexFilterFuncSGIS */ - { 16914, -1 }, /* TexFilterFuncSGIS */ + { 7339, -1 }, /* GetTexFilterFuncSGIS */ + { 16926, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_async) static const struct gl_function_remap GL_SGIX_async_functions[] = { - { 3463, -1 }, /* AsyncMarkerSGIX */ - { 4649, -1 }, /* FinishAsyncSGIX */ - { 5721, -1 }, /* PollAsyncSGIX */ + { 3541, -1 }, /* AsyncMarkerSGIX */ + { 4722, -1 }, /* FinishAsyncSGIX */ + { 5794, -1 }, /* PollAsyncSGIX */ { 23103, -1 }, /* DeleteAsyncMarkersSGIX */ { 23158, -1 }, /* IsAsyncMarkerSGIX */ - { 33514, -1 }, /* GenAsyncMarkersSGIX */ + { 33626, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_flush_raster) static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = { - { 7685, -1 }, /* FlushRasterSGIX */ + { 7716, -1 }, /* FlushRasterSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_fragment_lighting) static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { - { 2698, -1 }, /* FragmentMaterialfvSGIX */ - { 5625, -1 }, /* FragmentLightiSGIX */ - { 8439, -1 }, /* FragmentMaterialfSGIX */ - { 8576, -1 }, /* GetFragmentLightivSGIX */ - { 9449, -1 }, /* FragmentLightModeliSGIX */ - { 11067, -1 }, /* FragmentLightivSGIX */ - { 11374, -1 }, /* GetFragmentMaterialivSGIX */ - { 16681, -1 }, /* GetFragmentMaterialfvSGIX */ + { 2737, -1 }, /* FragmentMaterialfvSGIX */ + { 5698, -1 }, /* FragmentLightiSGIX */ + { 8470, -1 }, /* FragmentMaterialfSGIX */ + { 8607, -1 }, /* GetFragmentLightivSGIX */ + { 9480, -1 }, /* FragmentLightModeliSGIX */ + { 11120, -1 }, /* FragmentLightivSGIX */ + { 11427, -1 }, /* GetFragmentMaterialivSGIX */ + { 16693, -1 }, /* GetFragmentMaterialfvSGIX */ { 20159, -1 }, /* FragmentLightModelfSGIX */ { 20477, -1 }, /* FragmentColorMaterialSGIX */ { 20894, -1 }, /* FragmentMaterialiSGIX */ { 22189, -1 }, /* LightEnviSGIX */ { 23875, -1 }, /* FragmentLightModelfvSGIX */ { 24210, -1 }, /* FragmentLightfvSGIX */ - { 29230, -1 }, /* FragmentLightModelivSGIX */ - { 29379, -1 }, /* FragmentLightfSGIX */ - { 32309, -1 }, /* GetFragmentLightfvSGIX */ - { 33997, -1 }, /* FragmentMaterialivSGIX */ + { 29314, -1 }, /* FragmentLightModelivSGIX */ + { 29463, -1 }, /* FragmentLightfSGIX */ + { 32354, -1 }, /* GetFragmentLightfvSGIX */ + { 34109, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif @@ -6526,18 +6537,18 @@ static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 29687, -1 }, /* IglooInterfaceSGIX */ + { 29771, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_instruments) static const struct gl_function_remap GL_SGIX_instruments_functions[] = { - { 2878, -1 }, /* ReadInstrumentsSGIX */ - { 6904, -1 }, /* PollInstrumentsSGIX */ - { 10925, -1 }, /* GetInstrumentsSGIX */ - { 13337, -1 }, /* StartInstrumentsSGIX */ - { 16406, -1 }, /* StopInstrumentsSGIX */ + { 2917, -1 }, /* ReadInstrumentsSGIX */ + { 6935, -1 }, /* PollInstrumentsSGIX */ + { 10978, -1 }, /* GetInstrumentsSGIX */ + { 13420, -1 }, /* StartInstrumentsSGIX */ + { 16418, -1 }, /* StopInstrumentsSGIX */ { 18383, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; @@ -6545,12 +6556,12 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { #if defined(need_GL_SGIX_list_priority) static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { - { 1226, -1 }, /* ListParameterfSGIX */ - { 3165, -1 }, /* GetListParameterfvSGIX */ - { 18274, -1 }, /* ListParameteriSGIX */ + { 1265, -1 }, /* ListParameterfSGIX */ + { 3243, -1 }, /* GetListParameterfvSGIX */ + { 18248, -1 }, /* ListParameteriSGIX */ { 19365, -1 }, /* ListParameterfvSGIX */ { 21560, -1 }, /* ListParameterivSGIX */ - { 33558, -1 }, /* GetListParameterivSGIX */ + { 33670, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -6564,27 +6575,27 @@ static const struct gl_function_remap GL_SGIX_pixel_texture_functions[] = { #if defined(need_GL_SGIX_polynomial_ffd) static const struct gl_function_remap GL_SGIX_polynomial_ffd_functions[] = { - { 3761, -1 }, /* LoadIdentityDeformationMapSGIX */ - { 16506, -1 }, /* DeformSGIX */ + { 2959, -1 }, /* DeformationMap3dSGIX */ + { 3839, -1 }, /* LoadIdentityDeformationMapSGIX */ + { 16518, -1 }, /* DeformSGIX */ { 25144, -1 }, /* DeformationMap3fSGIX */ - { 32197, -1 }, /* DeformationMap3dSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_reference_plane) static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { - { 15210, -1 }, /* ReferencePlaneSGIX */ + { 15222, -1 }, /* ReferencePlaneSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { - { 9947, -1 }, /* SpriteParameterfvSGIX */ + { 9978, -1 }, /* SpriteParameterfvSGIX */ { 21349, -1 }, /* SpriteParameteriSGIX */ { 27529, -1 }, /* SpriteParameterfSGIX */ - { 30357, -1 }, /* SpriteParameterivSGIX */ + { 30441, -1 }, /* SpriteParameterivSGIX */ { -1, -1 } }; #endif @@ -6598,10 +6609,10 @@ static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { #if defined(need_GL_SGI_color_table) static const struct gl_function_remap GL_SGI_color_table_functions[] = { - { 7975, _gloffset_ColorTableParameteriv }, - { 8697, _gloffset_ColorTable }, - { 15706, _gloffset_GetColorTable }, - { 15816, _gloffset_CopyColorTable }, + { 8006, _gloffset_ColorTableParameteriv }, + { 8728, _gloffset_ColorTable }, + { 15718, _gloffset_GetColorTable }, + { 15828, _gloffset_CopyColorTable }, { 20103, _gloffset_ColorTableParameterfv }, { 23783, _gloffset_GetColorTableParameterfv }, { 25947, _gloffset_GetColorTableParameteriv }, @@ -6611,20 +6622,20 @@ static const struct gl_function_remap GL_SGI_color_table_functions[] = { #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 32287, -1 }, /* FinishTextureSUNX */ + { 32332, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif #if defined(need_GL_SUN_global_alpha) static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { - { 3484, -1 }, /* GlobalAlphaFactorubSUN */ - { 5002, -1 }, /* GlobalAlphaFactoriSUN */ - { 6929, -1 }, /* GlobalAlphaFactordSUN */ - { 10031, -1 }, /* GlobalAlphaFactoruiSUN */ - { 10516, -1 }, /* GlobalAlphaFactorbSUN */ - { 13652, -1 }, /* GlobalAlphaFactorfSUN */ - { 13816, -1 }, /* GlobalAlphaFactorusSUN */ + { 3562, -1 }, /* GlobalAlphaFactorubSUN */ + { 5075, -1 }, /* GlobalAlphaFactoriSUN */ + { 6960, -1 }, /* GlobalAlphaFactordSUN */ + { 10062, -1 }, /* GlobalAlphaFactoruiSUN */ + { 10569, -1 }, /* GlobalAlphaFactorbSUN */ + { 13735, -1 }, /* GlobalAlphaFactorfSUN */ + { 13899, -1 }, /* GlobalAlphaFactorusSUN */ { 23470, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; @@ -6632,50 +6643,50 @@ static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 30148, -1 }, /* DrawMeshArraysSUN */ + { 30232, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_triangle_list) static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { - { 4623, -1 }, /* ReplacementCodeubSUN */ - { 6688, -1 }, /* ReplacementCodeubvSUN */ + { 4696, -1 }, /* ReplacementCodeubSUN */ + { 6719, -1 }, /* ReplacementCodeubvSUN */ { 19824, -1 }, /* ReplacementCodeusvSUN */ { 20012, -1 }, /* ReplacementCodePointerSUN */ { 22253, -1 }, /* ReplacementCodeuiSUN */ { 23132, -1 }, /* ReplacementCodeusSUN */ - { 30814, -1 }, /* ReplacementCodeuivSUN */ + { 30898, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_vertex) static const struct gl_function_remap GL_SUN_vertex_functions[] = { - { 1100, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ - { 1298, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ - { 1552, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ - { 1921, -1 }, /* ReplacementCodeuiVertex3fvSUN */ - { 2055, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ - { 2634, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ - { 2974, -1 }, /* Color4ubVertex3fvSUN */ - { 4807, -1 }, /* Color4ubVertex3fSUN */ - { 4930, -1 }, /* TexCoord2fVertex3fSUN */ - { 5348, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ - { 5825, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ - { 6583, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ - { 7363, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 7722, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ - { 9248, -1 }, /* Color3fVertex3fSUN */ - { 10425, -1 }, /* Color3fVertex3fvSUN */ - { 10890, -1 }, /* Color4fNormal3fVertex3fvSUN */ - { 11719, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ - { 13200, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ - { 14826, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ - { 15352, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 16431, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 16873, -1 }, /* Color4ubVertex2fvSUN */ - { 17203, -1 }, /* Normal3fVertex3fSUN */ + { 1139, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */ + { 1337, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */ + { 1591, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */ + { 1960, -1 }, /* ReplacementCodeuiVertex3fvSUN */ + { 2094, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */ + { 2673, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */ + { 3052, -1 }, /* Color4ubVertex3fvSUN */ + { 4880, -1 }, /* Color4ubVertex3fSUN */ + { 5003, -1 }, /* TexCoord2fVertex3fSUN */ + { 5421, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */ + { 5898, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */ + { 6614, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */ + { 7394, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 7753, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ + { 9279, -1 }, /* Color3fVertex3fSUN */ + { 10478, -1 }, /* Color3fVertex3fvSUN */ + { 10943, -1 }, /* Color4fNormal3fVertex3fvSUN */ + { 11772, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ + { 13283, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ + { 14838, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ + { 15364, -1 }, /* TexCoord2fColor3fVertex3fSUN */ + { 16443, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 16885, -1 }, /* Color4ubVertex2fvSUN */ + { 17177, -1 }, /* Normal3fVertex3fSUN */ { 18324, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ { 18676, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ { 18983, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ @@ -6687,11 +6698,11 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { { 23692, -1 }, /* Color4fNormal3fVertex3fSUN */ { 24693, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ { 26850, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 28241, -1 }, /* TexCoord4fVertex4fSUN */ - { 28687, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 29074, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 29201, -1 }, /* TexCoord4fVertex4fvSUN */ - { 29935, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 28273, -1 }, /* TexCoord4fVertex4fSUN */ + { 28719, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 29158, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 29285, -1 }, /* TexCoord4fVertex4fvSUN */ + { 30019, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -6699,25 +6710,25 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { #if defined(need_GL_VERSION_1_3) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { - { 425, _gloffset_MultiTexCoord3sARB }, - { 657, _gloffset_ActiveTextureARB }, - { 4378, _gloffset_MultiTexCoord1fvARB }, - { 6474, _gloffset_MultiTexCoord3dARB }, - { 6519, _gloffset_MultiTexCoord2iARB }, - { 6643, _gloffset_MultiTexCoord2svARB }, - { 8653, _gloffset_MultiTexCoord2fARB }, - { 10726, _gloffset_MultiTexCoord3fvARB }, - { 11328, _gloffset_MultiTexCoord4sARB }, - { 12009, _gloffset_MultiTexCoord2dvARB }, - { 12416, _gloffset_MultiTexCoord1svARB }, - { 12817, _gloffset_MultiTexCoord3svARB }, - { 12878, _gloffset_MultiTexCoord4iARB }, - { 13679, _gloffset_MultiTexCoord3iARB }, - { 14549, _gloffset_MultiTexCoord1dARB }, - { 14781, _gloffset_MultiTexCoord3dvARB }, - { 16060, _gloffset_MultiTexCoord3ivARB }, - { 16105, _gloffset_MultiTexCoord2sARB }, - { 17603, _gloffset_MultiTexCoord4ivARB }, + { 464, _gloffset_MultiTexCoord3sARB }, + { 696, _gloffset_ActiveTextureARB }, + { 4451, _gloffset_MultiTexCoord1fvARB }, + { 6505, _gloffset_MultiTexCoord3dARB }, + { 6550, _gloffset_MultiTexCoord2iARB }, + { 6674, _gloffset_MultiTexCoord2svARB }, + { 8684, _gloffset_MultiTexCoord2fARB }, + { 10779, _gloffset_MultiTexCoord3fvARB }, + { 11381, _gloffset_MultiTexCoord4sARB }, + { 12062, _gloffset_MultiTexCoord2dvARB }, + { 12469, _gloffset_MultiTexCoord1svARB }, + { 12870, _gloffset_MultiTexCoord3svARB }, + { 12931, _gloffset_MultiTexCoord4iARB }, + { 13762, _gloffset_MultiTexCoord3iARB }, + { 14561, _gloffset_MultiTexCoord1dARB }, + { 14793, _gloffset_MultiTexCoord3dvARB }, + { 16072, _gloffset_MultiTexCoord3ivARB }, + { 16117, _gloffset_MultiTexCoord2sARB }, + { 17577, _gloffset_MultiTexCoord4ivARB }, { 19743, _gloffset_ClientActiveTextureARB }, { 22106, _gloffset_MultiTexCoord2dARB }, { 22543, _gloffset_MultiTexCoord4dvARB }, @@ -6726,13 +6737,13 @@ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { { 26541, _gloffset_MultiTexCoord4dARB }, { 26807, _gloffset_MultiTexCoord1sARB }, { 27011, _gloffset_MultiTexCoord1dvARB }, - { 27987, _gloffset_MultiTexCoord1ivARB }, - { 28080, _gloffset_MultiTexCoord2ivARB }, - { 28419, _gloffset_MultiTexCoord1iARB }, - { 29803, _gloffset_MultiTexCoord4svARB }, - { 30427, _gloffset_MultiTexCoord1fARB }, - { 30690, _gloffset_MultiTexCoord4fARB }, - { 33159, _gloffset_MultiTexCoord2fvARB }, + { 28019, _gloffset_MultiTexCoord1ivARB }, + { 28112, _gloffset_MultiTexCoord2ivARB }, + { 28451, _gloffset_MultiTexCoord1iARB }, + { 29887, _gloffset_MultiTexCoord4svARB }, + { 30511, _gloffset_MultiTexCoord1fARB }, + { 30774, _gloffset_MultiTexCoord4fARB }, + { 33271, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif diff --git a/mesalib/src/mesa/program/prog_statevars.c b/mesalib/src/mesa/program/prog_statevars.c index 1fd26f44d..d94d7fe5d 100644 --- a/mesalib/src/mesa/program/prog_statevars.c +++ b/mesalib/src/mesa/program/prog_statevars.c @@ -602,11 +602,11 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[], value[0] = 1.0F; value[1] = 0.0F; value[2] = -1.0F; - value[3] = (GLfloat) (ctx->DrawBuffer->Height - 1); + value[3] = (GLfloat) ctx->DrawBuffer->Height; } else { /* Flipping Y upside down (XY) followed by identity (ZW). */ value[0] = -1.0F; - value[1] = (GLfloat) (ctx->DrawBuffer->Height - 1); + value[1] = (GLfloat) ctx->DrawBuffer->Height; value[2] = 1.0F; value[3] = 0.0F; } diff --git a/mesalib/src/mesa/program/prog_statevars.h b/mesalib/src/mesa/program/prog_statevars.h index 9fe8d81b3..04af3f4cf 100644 --- a/mesalib/src/mesa/program/prog_statevars.h +++ b/mesalib/src/mesa/program/prog_statevars.h @@ -120,7 +120,7 @@ typedef enum gl_state_index_ { STATE_PT_BIAS, /**< Pixel transfer RGBA bias */ STATE_SHADOW_AMBIENT, /**< ARB_shadow_ambient fail value; token[2] is texture unit index */ STATE_FB_SIZE, /**< (width-1, height-1, 0, 0) */ - STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height-1) if a FBO is bound, (-1, height-1, 1, 0) otherwise */ + STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height) if a FBO is bound, (-1, height, 1, 0) otherwise */ STATE_ROT_MATRIX_0, /**< ATI_envmap_bumpmap, rot matrix row 0 */ STATE_ROT_MATRIX_1, /**< ATI_envmap_bumpmap, rot matrix row 1 */ STATE_INTERNAL_DRIVER /* first available state index for drivers (must be last) */ diff --git a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c index c07739f9d..a41e5b16a 100644 --- a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -752,37 +752,15 @@ compile_instruction( /** - * Emit the TGSI instructions to adjust the WPOS pixel center convention - * Basically, add (adjX, adjY) to the fragment position. - */ -static void -emit_adjusted_wpos( struct st_translate *t, - const struct gl_program *program, - GLfloat adjX, GLfloat adjY) -{ - struct ureg_program *ureg = t->ureg; - struct ureg_dst wpos_temp = ureg_DECL_temporary(ureg); - struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]]; - - /* Note that we bias X and Y and pass Z and W through unchanged. - * The shader might also use gl_FragCoord.w and .z. - */ - ureg_ADD(ureg, wpos_temp, wpos_input, - ureg_imm4f(ureg, adjX, adjY, 0.0f, 0.0f)); - - t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]] = ureg_src(wpos_temp); -} - - -/** - * Emit the TGSI instructions for inverting the WPOS y coordinate. + * Emit the TGSI instructions for inverting and adjusting WPOS. * This code is unavoidable because it also depends on whether * a FBO is bound (STATE_FB_WPOS_Y_TRANSFORM). */ static void -emit_wpos_inversion( struct st_translate *t, - const struct gl_program *program, - boolean invert) +emit_wpos_adjustment( struct st_translate *t, + const struct gl_program *program, + boolean invert, + GLfloat adjX, GLfloat adjY[2]) { struct ureg_program *ureg = t->ureg; @@ -801,18 +779,38 @@ emit_wpos_inversion( struct st_translate *t, wposTransformState); struct ureg_src wpostrans = ureg_DECL_constant( ureg, wposTransConst ); - struct ureg_dst wpos_temp; + struct ureg_dst wpos_temp = ureg_DECL_temporary( ureg ); struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]]; - /* MOV wpos_temp, input[wpos] - */ - if (wpos_input.File == TGSI_FILE_TEMPORARY) - wpos_temp = ureg_dst(wpos_input); - else { - wpos_temp = ureg_DECL_temporary( ureg ); + /* First, apply the coordinate shift: */ + if (adjX || adjY[0] || adjY[1]) { + if (adjY[0] != adjY[1]) { + /* Adjust the y coordinate by adjY[1] or adjY[0] respectively + * depending on whether inversion is actually going to be applied + * or not, which is determined by testing against the inversion + * state variable used below, which will be either +1 or -1. + */ + struct ureg_dst adj_temp = ureg_DECL_temporary(ureg); + + ureg_CMP(ureg, adj_temp, + ureg_scalar(wpostrans, invert ? 2 : 0), + ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f), + ureg_imm4f(ureg, adjX, adjY[1], 0.0f, 0.0f)); + ureg_ADD(ureg, wpos_temp, wpos_input, ureg_src(adj_temp)); + } else { + ureg_ADD(ureg, wpos_temp, wpos_input, + ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f)); + } + wpos_input = ureg_src(wpos_temp); + } else { + /* MOV wpos_temp, input[wpos] + */ ureg_MOV( ureg, wpos_temp, wpos_input ); } + /* Now the conditional y flip: STATE_FB_WPOS_Y_TRANSFORM.xy/zw will be + * inversion/identity, or the other way around if we're drawing to an FBO. + */ if (invert) { /* MAD wpos_temp.y, wpos_input, wpostrans.xxxx, wpostrans.yyyy */ @@ -849,8 +847,37 @@ emit_wpos(struct st_context *st, const struct gl_fragment_program *fp = (const struct gl_fragment_program *) program; struct pipe_screen *pscreen = st->pipe->screen; + GLfloat adjX = 0.0f; + GLfloat adjY[2] = { 0.0f, 0.0f }; boolean invert = FALSE; + /* Query the pixel center conventions supported by the pipe driver and set + * adjX, adjY to help out if it cannot handle the requested one internally. + * + * The bias of the y-coordinate depends on whether y-inversion takes place + * (adjY[1]) or not (adjY[0]), which is in turn dependent on whether we are + * drawing to an FBO (causes additional inversion), and whether the the pipe + * driver origin and the requested origin differ (the latter condition is + * stored in the 'invert' variable). + * + * For height = 100 (i = integer, h = half-integer, l = lower, u = upper): + * + * center shift only: + * i -> h: +0.5 + * h -> i: -0.5 + * + * inversion only: + * l,i -> u,i: ( 0.0 + 1.0) * -1 + 100 = 99 + * l,h -> u,h: ( 0.5 + 0.0) * -1 + 100 = 99.5 + * u,i -> l,i: (99.0 + 1.0) * -1 + 100 = 0 + * u,h -> l,h: (99.5 + 0.0) * -1 + 100 = 0.5 + * + * inversion and center shift: + * l,i -> u,h: ( 0.0 + 0.5) * -1 + 100 = 99.5 + * l,h -> u,i: ( 0.5 + 0.5) * -1 + 100 = 99 + * u,i -> l,h: (99.0 + 0.5) * -1 + 100 = 0.5 + * u,h -> l,i: (99.5 + 0.5) * -1 + 100 = 0 + */ if (fp->OriginUpperLeft) { /* Fragment shader wants origin in upper-left */ if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) { @@ -878,12 +905,17 @@ emit_wpos(struct st_context *st, if (fp->PixelCenterInteger) { /* Fragment shader wants pixel center integer */ - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { /* the driver supports pixel center integer */ + adjY[1] = 1.0f; ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) + } + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) { /* the driver supports pixel center half integer, need to bias X,Y */ - emit_adjusted_wpos(t, program, 0.5f, invert ? 0.5f : -0.5f); + adjX = -0.5f; + adjY[0] = -0.5f; + adjY[1] = 0.5f; + } else assert(0); } @@ -894,8 +926,8 @@ emit_wpos(struct st_context *st, } else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { /* the driver supports pixel center integer, need to bias X,Y */ + adjX = adjY[0] = adjY[1] = 0.5f; ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - emit_adjusted_wpos(t, program, 0.5f, invert ? -0.5f : 0.5f); } else assert(0); @@ -903,7 +935,7 @@ emit_wpos(struct st_context *st, /* we invert after adjustment so that we avoid the MOV to temporary, * and reuse the adjustment ADD instead */ - emit_wpos_inversion(t, program, invert); + emit_wpos_adjustment(t, program, invert, adjX, adjY); } diff --git a/pixman/configure.ac b/pixman/configure.ac index ef8162fc3..9a8ebe90a 100644 --- a/pixman/configure.ac +++ b/pixman/configure.ac @@ -53,8 +53,8 @@ AC_PREREQ([2.57]) # m4_define([pixman_major], 0) -m4_define([pixman_minor], 21) -m4_define([pixman_micro], 9) +m4_define([pixman_minor], 23) +m4_define([pixman_micro], 1) m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro]) diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in index f0f124451..5d74a3900 100644 --- a/xorg-server/xkeyboard-config/rules/base.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.xml.in @@ -4201,6 +4201,13 @@ <_description>Swedish (Svdvorak)</_description> </configItem> </variant> + <variant> + <configItem> + <name>swl</name> + <_description>Swedish Sign Language</_description> + <languageList><iso639Id>swl</iso639Id></languageList> + </configItem> + </variant> </variantList> </layout> <layout> diff --git a/xorg-server/xkeyboard-config/symbols/me b/xorg-server/xkeyboard-config/symbols/me index e898b9d7d..dd81567c2 100644 --- a/xorg-server/xkeyboard-config/symbols/me +++ b/xorg-server/xkeyboard-config/symbols/me @@ -26,7 +26,7 @@ xkb_symbols "cyrillicyz" { partial alphanumeric_keys xkb_symbols "latinunicode" { include "rs(latinunicode)" - name[Group1]= "Montenegrin (Latin unicode)"; + name[Group1]= "Montenegrin (Latin Unicode)"; }; partial alphanumeric_keys @@ -38,7 +38,7 @@ xkb_symbols "latinyz" { partial alphanumeric_keys xkb_symbols "latinunicodeyz" { include "rs(latinunicodeyz)" - name[Group1]= "Montenegrin (Latin unicode qwerty)"; + name[Group1]= "Montenegrin (Latin Unicode qwerty)"; }; xkb_symbols "cyrillicalternatequotes" { diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51 b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51 index fd98fbf28..318d37223 100644 --- a/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51 +++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51 @@ -3,6 +3,8 @@ xkb_symbols "common" { include "nokia_vndr/rx-51(common_keys)" include "nokia_vndr/rx-51(modifiers)" + key <BKSP> { [ BackSpace, Delete, BackSpace, Delete ] }; + // This section should not be included by any other section. // It's referenced only once by rule file to allow multiple layout configurations. @@ -489,3 +491,898 @@ xkb_symbols "arrows_4btns" { key <DOWN> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] }; key <RGHT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] }; }; + +// author: Roman Moravcik +xkb_symbols "sk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Slovak QWERTZ (CZ HW)"; + + // 1. row + key <AD06> { [ z, Z, 6, 6 ] }; + key <AB08> { [ dead_acute, dead_acute, sterling, sterling ] }; + + // 2. row + key <AC08> { [ k, K, semicolon, semicolon ] }; + key <AC09> { [ l, L, colon, colon ] }; + key <AB09> { [ ocircumflex, adiaeresis, EuroSign, EuroSign ] }; + key <UP> { [ dead_caron, bar, dollar, dollar ] }; + + // 3. row + key <AB01> { [ y, Y, equal, equal ] }; + key <AB02> { [ x, X, slash, slash ] }; + key <AB03> { [ c, C, backslash, backslash ] }; + key <AB04> { [ v, V, apostrophe, apostrophe ] }; + key <AB05> { [ b, B, quotedbl, quotedbl ] }; + key <AB06> { [ n, N, exclam, exclam ] }; + key <AB07> { [ m, M, question, question ] }; + key <LEFT> { [ period, Tab, comma, comma ] }; +}; + +xkb_symbols "sk_qwerty" { + include "nokia_vndr/rx-51(sk)" + + name[Group1] = "Slovak QWERTY (CZ hw)"; + + // 1. row + key <AD06> { [ y, Y, 6, 6 ] }; + + // 3. row + key <AB01> { [ z, Z, equal, equal ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "aren" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Arabic"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Arabic_dad, Arabic_fatha, 0x1000661, 0x1000661 ] }; + key <AD02> { symbols[Group2] = [ Arabic_sad, Arabic_fathatan, 0x1000662, 0x1000662 ] }; + key <AD03> { symbols[Group2] = [ Arabic_theh, Arabic_damma, 0x1000663, 0x1000663 ] }; + key <AD04> { symbols[Group2] = [ Arabic_qaf, Arabic_dammatan, 0x1000664, 0x1000664 ] }; + key <AD05> { symbols[Group2] = [ Arabic_feh, 0x100fef9, 0x1000665, 0x1000665 ] }; + key <AD06> { symbols[Group2] = [ Arabic_ghain, Arabic_hamzaunderalef, 0x1000666, 0x1000666 ] }; + key <AD07> { symbols[Group2] = [ Arabic_ain, rightsinglequotemark, 0x1000667, 0x1000667 ] }; + key <AD08> { symbols[Group2] = [ Arabic_ha, Arabic_tehmarbuta, 0x1000668, 0x1000668 ] }; + key <AD09> { symbols[Group2] = [ Arabic_khah, division, 0x1000669, 0x1000669 ] }; + key <AD10> { symbols[Group2] = [ Arabic_hah, multiply, 0x1000660, 0x1000660 ] }; + key <AB08> { symbols[Group2] = [ Arabic_jeem, period, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Arabic_sheen, Arabic_kasra, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Arabic_seen, Arabic_kasratan, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Arabic_yeh, Arabic_alefmaksura, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Arabic_beh, Arabic_hamzaonyeh, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Arabic_lam, 0x100fef7, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Arabic_alef, Arabic_hamzaonalef, parenright, parenright ] }; + key <AC07> { symbols[Group2] = [ Arabic_teh, Arabic_tatweel, parenleft, parenleft ] }; + key <AC08> { symbols[Group2] = [ Arabic_noon, Arabic_comma, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Arabic_meem, Arabic_semicolon, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ Arabic_kaf, colon, Arabic_question_mark, Arabic_question_mark ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Arabic_thal, Arabic_shadda, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ Arabic_dal, Arabic_sukun, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ Arabic_waw, Arabic_hamzaonwaw, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Arabic_ra, 0x100fef5, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Arabic_zain, 0x100fefb, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Arabic_tah, Arabic_maddaonalef, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Arabic_zah, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Hessam Farhang +partial alphanumeric_keys +xkb_symbols "faen" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Persian"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Arabic_dad, Arabic_sukun, 0x10006f1, 0x1000661 ] }; + key <AD02> { symbols[Group2] = [ Arabic_sad, Arabic_dammatan, 0x10006f2, 0x1000662 ] }; + key <AD03> { symbols[Group2] = [ Arabic_theh, Arabic_kasratan, 0x10006f3, 0x1000663 ] }; + key <AD04> { symbols[Group2] = [ Arabic_qaf, Arabic_fathatan, 0x10006f4, 0x1000664 ] }; + key <AD05> { symbols[Group2] = [ Arabic_feh, Arabic_damma, 0x10006f5, 0x1000665 ] }; + key <AD06> { symbols[Group2] = [ Arabic_ghain, Arabic_kasra, 0x10006f6, 0x1000666 ] }; + key <AD07> { symbols[Group2] = [ Arabic_ain, Arabic_fatha, 0x10006f7, 0x1000667 ] }; + key <AD08> { symbols[Group2] = [ Arabic_heh, Arabic_shadda, 0x10006f8, 0x1000668 ] }; + key <AD09> { symbols[Group2] = [ Arabic_khah, 0x10006af, 0x10006f9, 0x1000669 ] }; + key <AD10> { symbols[Group2] = [ Arabic_hah, 0x1000686, 0x10006f0, 0x1000660 ] }; + key <AB08> { symbols[Group2] = [ Arabic_jeem, Arabic_comma, comma, Arabic_semicolon ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Arabic_sheen, Arabic_hamzaonwaw, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Arabic_seen, Arabic_hamzaonyeh, plus, plus ] }; + key <AC03> { symbols[Group2] = [ 0x10006cc, period, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Arabic_beh, colon, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Arabic_lam, Arabic_hamzaonalef, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Arabic_alef, Arabic_maddaonalef, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ Arabic_teh, Arabic_tehmarbuta, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ Arabic_noon, guillemotright, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Arabic_meem, guillemotleft, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ 0x10006a9, Arabic_waw, Arabic_question_mark, colon ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Arabic_zah, Arabic_kaf, sterling, period ] }; + key <AB02> { symbols[Group2] = [ Arabic_tah, 0x1000653, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ Arabic_zain, 0x1000698, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Arabic_ra, 0x1000670, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Arabic_thal, 0x100200c, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Arabic_dal, 0x1000654, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ 0x100067e, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Jaroslav Poriz +xkb_symbols "dv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "Dvorak"; + + // 1. row + key <AD01> { [ colon, semicolon, 1, 1 ] }; + key <AD02> { [ w, W, 2, 2 ] }; + key <AD03> { [ v, V, 3, 3 ] }; + key <AD04> { [ p, P, 4, 4 ] }; + key <AD05> { [ y, Y, 5, 5 ] }; + key <AD06> { [ f, F, 6, 6 ] }; + key <AD07> { [ g, G, 7, 7 ] }; + key <AD08> { [ c, C, 8, 8 ] }; + key <AD09> { [ r, R, 9, 9 ] }; + key <AD10> { [ l, L, 0, 0 ] }; + key <AB08> { [ period, comma, equal, equal ] }; + + // 2. row + key <AC01> { [ a, A, asterisk, asterisk ] }; + key <AC02> { [ o, O, plus, plus ] }; + key <AC03> { [ e, E, numbersign, numbersign ] }; + key <AC04> { [ u, U, minus, minus ] }; + key <AC05> { [ i, I, underscore, underscore ] }; + key <AC06> { [ d, D, exclam, parenleft ] }; + key <AC07> { [ h, H, question, parenright ] }; + key <AC08> { [ t, T, ampersand, ampersand ] }; + key <AC09> { [ n, N, less, exclam ] }; + key <AB09> { [ s, S, greater, question ] }; + + // 3. row + key <AB01> { [ z, Z, asciitilde, asciitilde ] }; + key <AB02> { [ q, Q, dollar, dollar ] }; + key <AB03> { [ j, J, backslash, bar ] }; + key <AB04> { [ k, K, grave, slash ] }; + key <AB05> { [ x, X, parenleft, backslash ] }; + key <AB06> { [ b, B, parenright, quotedbl ] }; + key <AB07> { [ m, M, apostrophe, apostrophe ] }; + key <SPCE> { [ space, slash, at, at ] }; +}; + +// author: Porfyras <porfyras@gmail.com> +// author: Roman Moravcik +// author: Faidon Liambotis +partial alphanumeric_keys +xkb_symbols "gr" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Greek"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ period, colon, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Greek_finalsmallsigma, Greek_SIGMA, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Greek_epsilon, Greek_EPSILON, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Greek_rho, Greek_RHO, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Greek_tau, Greek_TAU, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Greek_upsilon, Greek_UPSILON, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Greek_theta, Greek_THETA, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Greek_iota, Greek_IOTA, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Greek_omicron, Greek_OMICRON, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Greek_pi, Greek_PI, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Greek_alpha, Greek_ALPHA, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Greek_sigma, Greek_SIGMA, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Greek_delta, Greek_DELTA, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Greek_phi, Greek_PHI, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Greek_gamma, Greek_GAMMA, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Greek_eta, Greek_ETA, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ Greek_xi, Greek_XI, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ Greek_kappa, Greek_KAPPA, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Greek_lamda, Greek_LAMDA, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ dead_acute, dead_diaeresis, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Greek_zeta, Greek_ZETA, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ Greek_chi, Greek_CHI, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ Greek_psi, Greek_PSI, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Greek_omega, Greek_OMEGA, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Greek_beta, Greek_BETA, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Greek_nu, Greek_NU, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Greek_mu, Greek_MU, apostrophe, apostrophe ] }; +}; + +// author: Ognian Samokovliyski +// author: Kostadin Bashev +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "bg_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Bulgarian - Phonetic"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Cyrillic_hardsign, Cyrillic_HARDSIGN, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, colon, question, question ] }; + key <UP> { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, Up, Up ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Left, Left ] }; + key <DOWN> { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, Down, Down ] }; + key <RGHT> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Right, Right ] }; +}; + +// author: Nikola Kovachevski +partial alphanumeric_keys +xkb_symbols "mk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Macedonian"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Macedonia_dse, Macedonia_DSE, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, comma, question, question ] }; + key <UP> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Up, Up ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key <AB02> { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key <AB03> { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Macedonia_kje, Macedonia_KJE, Left, Left ] }; + key <DOWN> { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Down, Down ] }; + key <RGHT> { symbols[Group2] = [ Macedonia_gje, Macedonia_GJE, Right, Right ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "ru_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Russian - Phonetic"; + name[Group2] = "U.S. English"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group1] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key <AD02> { symbols[Group1] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key <AD03> { symbols[Group1] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key <AD04> { symbols[Group1] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key <AD05> { symbols[Group1] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key <AD06> { symbols[Group1] = [ Cyrillic_yeru, Cyrillic_YERU, 6, 6 ] }; + key <AD07> { symbols[Group1] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key <AD08> { symbols[Group1] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key <AD09> { symbols[Group1] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key <AD10> { symbols[Group1] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key <AB08> { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key <AD01> { symbols[Group2] = [ q, Q, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ w, W, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ e, E, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ r, R, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ t, T, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ y, Y, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ u, U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ i, I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ o, O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ p, P, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key <AC01> { symbols[Group1] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key <AC02> { symbols[Group1] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key <AC03> { symbols[Group1] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key <AC04> { symbols[Group1] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key <AC05> { symbols[Group1] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key <AC06> { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key <AC07> { symbols[Group1] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key <AC08> { symbols[Group1] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key <AC09> { symbols[Group1] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key <AB09> { symbols[Group1] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key <UP> { symbols[Group1] = [ Cyrillic_e, Cyrillic_E, period, period ] }; + + key <AC01> { symbols[Group2] = [ a, A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ s, S, plus, plus ] }; + key <AC03> { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ f, F, minus, minus ] }; + key <AC05> { symbols[Group2] = [ g, G, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ h, H, exclam, exclam ] }; + key <AC07> { symbols[Group2] = [ j, J, question, question ] }; + key <AC08> { symbols[Group2] = [ k, K, semicolon, semicolon ] }; + key <AC09> { symbols[Group2] = [ l, L, colon, colon ] }; + key <AB09> { symbols[Group2] = [ comma, comma, comma, comma ] }; + key <UP> { symbols[Group2] = [ period, period, period, period ] }; + + // 3. row + key <AB01> { symbols[Group1] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key <AB02> { symbols[Group1] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group1] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key <AB04> { symbols[Group1] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key <AB05> { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key <AB06> { symbols[Group1] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group1] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key <AB01> { symbols[Group2] = [ z, Z, dollar, dollar ] }; + key <AB02> { symbols[Group2] = [ x, X, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group2] = [ c, C, slash, slash ] }; + key <AB04> { symbols[Group2] = [ v, V, parenleft, parenleft ] }; + key <AB05> { symbols[Group2] = [ b, B, parenright, parenright ] }; + key <AB06> { symbols[Group2] = [ n, N, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew - Phonetic"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ hebrew_waw, hebrew_waw, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ hebrew_taw, hebrew_tet, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ hebrew_yod, hebrew_yod, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ hebrew_samech, hebrew_samech, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ hebrew_shin, hebrew_shin, plus, plus ] }; + key <AC03> { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, minus, minus ] }; + key <AC05> { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ hebrew_he, hebrew_he, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ hebrew_kaph, hebrew_finalkaph, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ hebrew_chet, hebrew_chet, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ hebrew_zade, hebrew_finalzade, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ hebrew_waw, hebrew_waw, slash, slash ] }; + key <AB05> { symbols[Group2] = [ hebrew_bet, hebrew_bet, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ hebrew_nun, hebrew_finalnun, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ hebrew_mem, hebrew_finalmem, apostrophe, apostrophe ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ hebrew_taw, hebrew_taw, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ hebrew_finalzade, hebrew_finalzade, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ hebrew_tet, hebrew_tet, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ hebrew_finalnun, hebrew_finalnun, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ hebrew_finalmem, hebrew_finalmem, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ hebrew_pe, hebrew_pe, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ hebrew_shin, hebrew_shin, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, plus, plus ] }; + key <AC03> { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ hebrew_kaph, hebrew_kaph, minus, minus ] }; + key <AC05> { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ hebrew_chet, hebrew_chet, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ hebrew_finalkaph, period, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ hebrew_finalpe, colon, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ hebrew_samech, hebrew_samech, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ hebrew_bet, hebrew_bet, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ hebrew_he, hebrew_he, slash, slash ] }; + key <AB05> { symbols[Group2] = [ hebrew_nun, hebrew_nun, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ hebrew_mem, hebrew_mem, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ hebrew_zade, hebrew_zade, apostrophe, apostrophe ] }; +}; + +// author: David Gegechkori +partial alphanumeric_keys +xkb_symbols "ge" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Georgian - Latin"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ 0x010010e5, Q, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ 0x010010ec, 0x010010ed, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ 0x010010d4, E, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ 0x010010e0, 0x010010e6, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ 0x010010e2, 0x010010d7, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ 0x010010e7, Y, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ 0x010010e3, U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ 0x010010d8, I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ 0x010010dd, O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ 0x010010de, P, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ 0x010010d0, A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ 0x010010e1, 0x010010e8, plus, plus ] }; + key <AC03> { symbols[Group2] = [ 0x010010d3, D, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ 0x010010e4, F, minus, minus ] }; + key <AC05> { symbols[Group2] = [ 0x010010d2, G, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ 0x010010f0, H, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ 0x010010ef, 0x010010df, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ 0x010010d9, K, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ 0x010010da, L, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ 0x010010d6, 0x010010eb, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ 0x010010ee, X, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ 0x010010ea, 0x010010e9, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ 0x010010d5, V, slash, slash ] }; + key <AB05> { symbols[Group2] = [ 0x010010d1, B, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ 0x010010dc, N, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ 0x010010db, M, apostrophe, apostrophe ] }; +}; + +// author: Eriks Jansons +partial alphanumeric_keys +xkb_symbols "lv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Latvian"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ q, Q, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ w, W, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ emacron, Emacron, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ rcedilla, Rcedilla, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ t, T, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ y, Y, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ umacron, Umacron, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ imacron, Imacron, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ omacron, Omacron, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ p, P, 0, 0 ] }; + key <AB08> { symbols[Group1] = [ ISO_Group_Latch, semicolon, equal, equal], + symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ amacron, Amacron, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ scaron, Scaron, plus, plus ] }; + key <AC03> { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ f, F, minus, minus ] }; + key <AC05> { symbols[Group2] = [ gcedilla, Gcedilla, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ h, H, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ j, J, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ kcedilla, Kcedilla, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ lcedilla, Lcedilla, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ zcaron, Zcaron, sterling, sterling ] }; + key <AB02> { symbols[Group2] = [ x, X, dollar, dollar ] }; + key <AB03> { symbols[Group2] = [ ccaron, Ccaron, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ v, V, slash, slash ] }; + key <AB05> { symbols[Group2] = [ b, B, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ ncedilla, Ncedilla, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; +}; + +// author: Aleksandar Urosevic +partial alphanumeric_keys +xkb_symbols "sr_cyrillic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Serbian - Cyrillic"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key <AC07> { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key <AC08> { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ period, comma, question, question ] }; + key <UP> { symbols[Group2] = [ Serbian_dje, Serbian_DJE, Up, Up ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key <AB02> { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key <AB03> { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key <AB04> { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Left, Left ] }; + key <DOWN> { symbols[Group2] = [ Serbian_tshe, Serbian_TSHE, Down, Down ] }; + key <RGHT> { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Right, Right ] }; +}; + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian - Phonetic"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group1] = [ q, Q, 1, 1 ] }; + key <AD02> { symbols[Group1] = [ w, W, 2, 2 ] }; + key <AD03> { symbols[Group1] = [ e, E, 3, 3 ] }; + key <AD04> { symbols[Group1] = [ r, R, 4, 4 ] }; + key <AD05> { symbols[Group1] = [ t, T, 5, 5 ] }; + key <AD06> { symbols[Group1] = [ y, Y, 6, 6 ] }; + key <AD07> { symbols[Group1] = [ u, U, 7, 7 ] }; + key <AD08> { symbols[Group1] = [ i, I, 8, 8 ] }; + key <AD09> { symbols[Group1] = [ o, O, 9, 9 ] }; + key <AD10> { symbols[Group1] = [ p, P, 0, 0 ] }; + key <AB08> { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key <AD01> { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key <AC01> { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key <AC02> { symbols[Group1] = [ s, S, plus, plus ] }; + key <AC03> { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key <AC04> { symbols[Group1] = [ f, F, minus, minus ] }; + key <AC05> { symbols[Group1] = [ g, G, underscore, underscore ] }; + key <AC06> { symbols[Group1] = [ h, H, exclam, exclam ] }; + key <AC07> { symbols[Group1] = [ j, J, question, question ] }; + key <AC08> { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key <AC09> { symbols[Group1] = [ l, L, colon, colon ] }; + key <AB09> { symbols[Group1] = [ comma, comma, comma, comma ] }; + key <UP> { symbols[Group1] = [ period, period, period, period ] }; + + key <AC01> { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key <AC07> { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key <AC08> { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key <AC09> { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key <AB09> { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key <UP> { symbols[Group2] = [ Ukrainin_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key <AB01> { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key <AB02> { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group1] = [ c, C, slash, slash ] }; + key <AB04> { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key <AB05> { symbols[Group1] = [ b, B, parenright, parenright ] }; + key <AB06> { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; + + key <AB01> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key <AB02> { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key <AB04> { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key <AB05> { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key <AB06> { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; +}; + + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group1] = [ q, Q, 1, 1 ] }; + key <AD02> { symbols[Group1] = [ w, W, 2, 2 ] }; + key <AD03> { symbols[Group1] = [ e, E, 3, 3 ] }; + key <AD04> { symbols[Group1] = [ r, R, 4, 4 ] }; + key <AD05> { symbols[Group1] = [ t, T, 5, 5 ] }; + key <AD06> { symbols[Group1] = [ y, Y, 6, 6 ] }; + key <AD07> { symbols[Group1] = [ u, U, 7, 7 ] }; + key <AD08> { symbols[Group1] = [ i, I, 8, 8 ] }; + key <AD09> { symbols[Group1] = [ o, O, 9, 9 ] }; + key <AD10> { symbols[Group1] = [ p, P, 0, 0 ] }; + key <AB08> { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + key <AD01> { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key <AD02> { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key <AD03> { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key <AD04> { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key <AD05> { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key <AD06> { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key <AD07> { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key <AD08> { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key <AD09> { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key <AD10> { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + key <AB08> { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + // 2. row + key <AC01> { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key <AC02> { symbols[Group1] = [ s, S, plus, plus ] }; + key <AC03> { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key <AC04> { symbols[Group1] = [ f, F, minus, minus ] }; + key <AC05> { symbols[Group1] = [ g, G, underscore, underscore ] }; + key <AC06> { symbols[Group1] = [ h, H, exclam, exclam ] }; + key <AC07> { symbols[Group1] = [ j, J, question, question ] }; + key <AC08> { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key <AC09> { symbols[Group1] = [ l, L, colon, colon ] }; + key <AB09> { symbols[Group1] = [ comma, comma, comma, comma ] }; + key <UP> { symbols[Group1] = [ period, period, period, period ] }; + + key <AC01> { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; + key <AC02> { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; + key <AC07> { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, question, question ] }; + key <AC08> { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; + key <AC09> { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key <AB09> { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; + key <UP> { symbols[Group2] = [ Ukrainian_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key <AB01> { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key <AB02> { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group1] = [ c, C, slash, slash ] }; + key <AB04> { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key <AB05> { symbols[Group1] = [ b, B, parenright, parenright ] }; + key <AB06> { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; + + key <AB01> { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; + key <AB02> { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; + key <AB03> { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, slash, slash ] }; + key <AB04> { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; + key <AB05> { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, parenright, parenright ] }; + key <AB06> { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; + key <AB07> { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key <LEFT> { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; +}; + +// author: Mihai C. +// created on 2010-10-31 +partial alphanumeric_keys +xkb_symbols "ro" { + include "nokia_vndr/rx-51(english_base)" + + name[Group1] = "Romanian"; + + key <UP> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, abreve ] }; + key <LEFT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, 0x1000219 ] }; + key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, 0x100021b ] }; + key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, acircumflex ] }; + + key <AB01> { [ z, Z, icircumflex, Icircumflex] }; +}; + +// author: Thanawit Lertruengpanya +partial alphanumeric_keys +xkb_symbols "th" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Thai Kedmanee"; + + key <SPCE> { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key <AD01> { symbols[Group2] = [ Thai_maiyamok, Thai_leksun, Thai_lakkhangyao, plus ] }; + key <AD02> { symbols[Group2] = [ Thai_saraaimaimalai, quotedbl, slash, Thai_leknung ] }; + key <AD03> { symbols[Group2] = [ Thai_saraam, Thai_dochada, minus, Thai_leksong ] }; + key <AD04> { symbols[Group2] = [ Thai_phophan, Thai_thonangmontho, Thai_phosamphao, Thai_leksam ] }; + key <AD05> { symbols[Group2] = [ Thai_saraa, Thai_thothong, Thai_thothung, Thai_leksi ] }; + key <AD06> { symbols[Group2] = [ Thai_maihanakat, Thai_nikhahit, Thai_sarau, Thai_sarauu ] }; + key <AD07> { symbols[Group2] = [ Thai_saraii, Thai_maitri, Thai_saraue, Thai_baht ] }; + key <AD08> { symbols[Group2] = [ Thai_rorua, Thai_nonen, Thai_khokhwai, Thai_lekha ] }; + key <AD09> { symbols[Group2] = [ Thai_nonu, Thai_paiyannoi, Thai_totao, Thai_lekhok ] }; + key <AD10> { symbols[Group2] = [ Thai_yoyak, Thai_yoying, Thai_chochan, Thai_lekchet ] }; + key <AB08> { symbols[Group2] = [ Thai_bobaimai, Thai_thothan, Thai_khokhai, Thai_lekpaet ] }; + + // 2. row + key <AC01> { symbols[Group2] = [ Thai_fofan, Thai_ru, Thai_chochang, Thai_lekkao ] }; + key <AC02> { symbols[Group2] = [ Thai_hohip, Thai_khorakhang, plus, plus ] }; + key <AC03> { symbols[Group2] = [ Thai_kokai, Thai_topatak, numbersign, numbersign ] }; + key <AC04> { symbols[Group2] = [ Thai_dodek, Thai_sarao, minus, minus ] }; + key <AC05> { symbols[Group2] = [ Thai_sarae, Thai_chochoe, underscore, underscore ] }; + key <AC06> { symbols[Group2] = [ Thai_maitho, Thai_maitaikhu, Thai_ngongu, period ] }; + key <AC07> { symbols[Group2] = [ Thai_maiek, Thai_maichattawa, Thai_loling, comma ] }; + key <AC08> { symbols[Group2] = [ Thai_saraaa, Thai_sorusi, ampersand, ampersand ] }; + key <AC09> { symbols[Group2] = [ Thai_sosua, Thai_sosala, exclam, exclam ] }; + key <AB09> { symbols[Group2] = [ Thai_wowaen, Thai_soso, question, question ] }; + + // 3. row + key <AB01> { symbols[Group2] = [ Thai_phophung, parenleft, Thai_moma, Thai_thophuthao ] }; + key <AB02> { symbols[Group2] = [ Thai_popla, parenright, Thai_saraaimaimuan, Thai_lochula ] }; + key <AB03> { symbols[Group2] = [ Thai_saraae, Thai_choching, Thai_fofa, Thai_lu ] }; + key <AB04> { symbols[Group2] = [ Thai_oang, Thai_honokhuk, slash, slash ] }; + key <AB05> { symbols[Group2] = [ Thai_sarai, Thai_phinthu, backslash, backslash ] }; + key <AB06> { symbols[Group2] = [ Thai_sarauee, Thai_thanthakhat, Thai_khokhuat, Thai_khokhon ] }; + key <AB07> { symbols[Group2] = [ Thai_thothahan, question, apostrophe, apostrophe ] }; +}; diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se index d2865c338..827b091f8 100644 --- a/xorg-server/xkeyboard-config/symbols/se +++ b/xorg-server/xkeyboard-config/symbols/se @@ -251,3 +251,62 @@ xkb_symbols "svdvorak" { key <AB09> { [ v, V ] }; key <AB10> { [ z, Z ] }; }; + +partial alphanumeric_keys +xkb_symbols "swl" { + +// +// Swedish Sign Language +// ISO_639-3 language code: swl +// (called “svenskt teckenspråk” in swedish) +// +// Author: Saašha Metsärantala saasha@acc.umu.se +// +// A sans-serif font is available at +// http://www.acc.umu.se/home/saasha/typsnitt/swl_sans.ttf +// + + include "se(basic)" + + name[Group1]="Swedish Sign Language"; + + key <AB01> { [ 0x110c925, 0x110c95f, 0x110c940, 0x110c99a ] }; + key <AB02> { [ 0x110c96b, 0x110c933, 0x110c920, 0x110c98e ] }; + key <AB03> { [ 0x110c949, 0x110c94b, 0x110c921, 0x110c99f ] }; + key <AB04> { [ 0x110c923, 0x110c92d, 0x110c95c, 0x110c96e ] }; + key <AB05> { [ 0x110c93b, 0x110c927, 0x110c908, 0x110c9a6 ] }; + key <AB06> { [ 0x110c93a, 0x110c94c, 0x110c93e, 0x110c9a7 ] }; + key <AB07> { [ 0x110c95b, 0x110c93f, 0x110c907, 0x110c992 ] }; + key <AC01> { [ 0x110c973, 0x110c924, 0x110c93c, 0x110c9a4 ] }; + key <AC02> { [ 0x110c972, 0x110c945, 0x110c91a, 0x110c99c ] }; + key <AC03> { [ 0x110c979, 0x110c929, 0x110c916, 0x110c999 ] }; + key <AC04> { [ 0x110c976, 0x110c975, 0x110c917, 0x110c994 ] }; + key <AC05> { [ 0x110c95a, 0x110c926, 0x110c918, 0x110c996 ] }; + key <AC06> { [ 0x110c96f, 0x110c932, 0x110c915, 0x110c998 ] }; + key <AC07> { [ 0x110c942, 0x110c922, 0x110c913, 0x110c9a2 ] }; + key <AC08> { [ 0x110c985, 0x110c94e, 0x110c914, 0x110c97a ] }; + key <AC09> { [ 0x110c928, 0x110c948, 0x110c919, 0x110c9a5 ] }; + key <AC10> { [ 0x110c970, 0x110c92b, 0x110c905, 0x110c991 ] }; + key <AC11> { [ 0x110c92e, 0x110c944, 0x110c904, VoidSymbol ] }; + key <AD01> { [ 0x110c96c, 0x110c92a, 0x110c900, 0x110c9a1 ] }; + key <AD02> { [ 0x110c971, 0x110c930, 0x110c903, 0x110c99e ] }; + key <AD03> { [ 0x110c987, 0x110c947, 0x110c90c, 0x110c96d ] }; + key <AD04> { [ 0x110c986, 0x110c92c, 0x110c91b, 0x110c993 ] }; + key <AD05> { [ 0x110c939, 0x110c94a, 0x110c911, 0x110c995 ] }; + key <AD06> { [ 0x110c952, 0x110c943, 0x110c912, 0x110c99b ] }; + key <AD07> { [ 0x110c978, 0x110c977, 0x110c95e, 0x110c9a3 ] }; + key <AD08> { [ 0x110c951, 0x110c931, 0x110c91e, 0x110c997 ] }; + key <AD09> { [ 0x110c90e, 0x110c946, 0x110c906, 0x110c9a0 ] }; + key <AD10> { [ 0x110c91f, 0x110c961, 0x110c91c, VoidSymbol ] }; + key <AD11> { [ 0x110c93d, 0x110c92f, 0x110c902, VoidSymbol ] }; + key <AE01> { [ 0x110c953, 0x110c936, 0x110c988, 0x110c962 ] }; + key <AE02> { [ 0x110c954, 0x110c957, 0x110c97d, 0x110c963 ] }; + key <AE03> { [ 0x110c934, 0x110c937, 0x110c97e, 0x110c983 ] }; + key <AE04> { [ 0x110c955, 0x110c958, 0x110c98a, 0x110c984 ] }; + key <AE05> { [ 0x110c935, 0x110c938, 0x110c97f, 0x110c966 ] }; + key <AE06> { [ 0x110c956, 0x110c959, 0x110c980, 0x110c967 ] }; + key <AE07> { [ 0x110c960, 0x110c969, 0x110c982, 0x110c96a ] }; + key <AE08> { [ 0x110c97c, 0x110c90b, 0x110c989, 0x110c964 ] }; + key <AE09> { [ 0x110c97b, 0x110c90a, 0x110c98b, 0x110c965 ] }; + key <AE10> { [ 0x110c974, 0x110c909, 0x110c98c, 0x110c968 ] }; +}; |