Lines Matching refs:self

35     def create_function(self, element, context):
38 def create_enum(self, element, context, category):
41 def create_api(self):
42 return glx_api(self)
46 def __init__(self, element, context, category):
47 gl_XML.gl_enum.__init__(self, element, context, category)
49 self.functions = {}
58 c = self.default_count
67 if n not in self.functions:
68 self.functions[ n ] = [c, mode]
74 def __init__(self, element, context):
75 self.glx_rop = 0
76 self.glx_sop = 0
77 self.glx_vendorpriv = 0
79 self.glx_vendorpriv_names = []
88 self.glx_doubles_in_order = 0
90 self.vectorequiv = None
91 self.output = None
92 self.can_be_large = 0
93 self.reply_always_array = 0
94 self.dimensions_in_reply = 0
95 self.img_reset = None
97 self.server_handcode = 0
98 self.client_handcode = 0
99 self.ignore = 0
101 self.count_parameter_list = []
102 self.counter_list = []
103 self.parameters_by_name = {}
104 self.offsets_calculated = 0
106 gl_XML.gl_function.__init__(self, element, context)
110 def process_element(self, element):
111 gl_XML.gl_function.process_element(self, element)
117 if not self.vectorequiv:
118 self.vectorequiv = element.get("vectorequiv")
122 if name == self.name:
123 for param in self.parameters:
124 self.parameters_by_name[ param.name ] = param
127 self.count_parameter_list.extend( param.count_parameter_list )
129 if param.counter and param.counter not in self.counter_list:
130 self.counter_list.append(param.counter)
140 self.glx_rop = int(rop)
143 self.glx_sop = int(sop)
146 self.glx_vendorpriv = int(vop)
147 self.glx_vendorpriv_names.append(name)
149 self.img_reset = child.get( 'img_reset' )
156 self.server_handcode = 0
157 self.client_handcode = 0
159 self.server_handcode = 1
160 self.client_handcode = 1
162 self.server_handcode = 0
163 self.client_handcode = 1
165 self.server_handcode = 1
166 self.client_handcode = 0
168 raise RuntimeError('Invalid handcode mode "%s" in function "%s".' % (handcode, self.name))
170 self.ignore = gl_XML.is_attr_true( child, 'ignore' )
171 self.can_be_large = gl_XML.is_attr_true( child, 'large' )
172 self.glx_doubles_in_order = gl_XML.is_attr_true( child, 'doubles_in_order' )
173 self.reply_always_array = gl_XML.is_attr_true( child, 'always_array' )
174 self.dimensions_in_reply = gl_XML.is_attr_true( child, 'dimensions_in_reply' )
180 for param in self.parameters:
181 if param.is_output and self.glx_rop != 0:
182 raise RuntimeError("Render / RenderLarge commands cannot have outputs (%s)." % (self.name))
187 def has_variable_size_request(self):
207 if self.glx_rop == 0:
210 if self.server_handcode or self.images:
213 for param in self.parameters:
221 def variable_length_parameter(self):
222 for param in self.parameters:
230 def calculate_offsets(self):
231 if not self.offsets_calculated:
239 if len(self.images) and not self.images[0].is_output:
240 [dim, junk, junk, junk, junk] = self.images[0].get_dimensions()
251 raise RuntimeError('Invalid number of dimensions %u for parameter "%s" in function "%s".' % (dim, self.image.name, self.name))
255 for param in self.parameterIterateGlxSend():
259 if param.name != self.img_reset:
264 if self.pad_after( param ):
268 self.offsets_calculated = 1
272 def offset_of(self, param_name):
273 self.calculate_offsets()
274 return self.parameters_by_name[ param_name ].offset
277 def parameterIterateGlxSend(self, include_variable_parameters = 1):
285 for param in self.parameters:
290 elif not self.glx_doubles_in_order and param.is_64_bit():
302 def parameterIterateCounters(self):
304 for name in self.counter_list:
305 temp.append( self.parameters_by_name[ name ] )
310 def parameterIterateOutputs(self):
312 for p in self.parameters:
319 def command_fixed_length(self):
323 if len(self.parameters) == 0:
326 self.calculate_offsets()
329 for param in self.parameterIterateGlxSend(0):
330 if param.name != self.img_reset and not param.is_client_only:
336 if self.pad_after( param ):
339 for param in self.images:
346 def command_variable_length(self):
351 for p in self.parameterIterateGlxSend():
364 def command_length(self):
365 size = self.command_fixed_length()
367 if self.glx_rop != 0:
371 return "%u%s" % (size, self.command_variable_length())
374 def opcode_real_value(self):
385 if self.glx_vendorpriv != 0:
386 if self.needs_reply():
391 return self.opcode_value()
394 def opcode_value(self):
397 if (self.glx_rop == 0) and self.vectorequiv:
398 equiv = self.context.functions_by_name[ self.vectorequiv ]
399 self.glx_rop = equiv.glx_rop
402 if self.glx_rop != 0:
403 return self.glx_rop
404 elif self.glx_sop != 0:
405 return self.glx_sop
406 elif self.glx_vendorpriv != 0:
407 return self.glx_vendorpriv
412 def opcode_rop_basename(self):
419 if self.vectorequiv == None:
420 return self.name
422 return self.vectorequiv
425 def opcode_name(self):
428 if (self.glx_rop == 0) and self.vectorequiv:
429 equiv = self.context.functions_by_name[ self.vectorequiv ]
430 self.glx_rop = equiv.glx_rop
431 self.glx_doubles_in_order = equiv.glx_doubles_in_order
434 if self.glx_rop != 0:
435 return "X_GLrop_%s" % (self.opcode_rop_basename())
436 elif self.glx_sop != 0:
437 return "X_GLsop_%s" % (self.name)
438 elif self.glx_vendorpriv != 0:
439 return "X_GLvop_%s" % (self.name)
441 raise RuntimeError('Function "%s" has no opcode.' % (self.name))
444 def opcode_vendor_name(self, name):
445 if name in self.glx_vendorpriv_names:
451 def opcode_real_name(self):
461 if self.glx_vendorpriv != 0:
462 if self.needs_reply():
467 return self.opcode_name()
470 def needs_reply(self):
472 x = self._needs_reply
475 if self.return_type != 'void':
478 for param in self.parameters:
483 self._needs_reply = x
488 def pad_after(self, p):
492 for image in self.images:
509 def has_different_protocol(self, name):
519 return (name in self.glx_vendorpriv_names) and self.glx_sop
522 def static_glx_name(self, name):
523 if self.has_different_protocol(name):
524 for n in self.glx_vendorpriv_names:
525 if n in self.static_entry_points:
528 return self.static_name(name)
531 def client_supported_for_indirect(self):
535 return not self.ignore and (self.offset != -1) and (self.glx_rop or self.glx_sop or self.glx_vendorpriv or self.vectorequiv or self.client_handcode)
541 def __init__(self, context):
542 self.iterator = context.functionIterateByOffset()
546 def __iter__(self):
547 return self
550 def __next__(self):
552 f = next(self.iterator)
561 def functionIterateGlx(self):
562 return glx_function_iterator(self)