def __init__(self): # Set of adjacent of nodes. self.adj = set() def make_dir(fn): outdir = Path(fn).parent try: outdir.mkdir(parents=True) except OSError as e: if e.errno != errno.EEXIST: raise # API conventions object conventions = APIConventions() # -extension name - may be a single extension name, a space-separated list # of names, or a regular expression. if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-registry', action='store', default=conventions.registry_path, help='Use specified registry file instead of ' + conventions.registry_path) parser.add_argument('-outscript', action='store', default=None, help='Shell script to create')
def __init__(self): manual_types_to_codes = { # These are hard-coded "manual" return codes: # the codes of the value (string, list, or tuple) # are available for a command if-and-only-if # the key type is passed as an input. "XrSystemId": "XR_ERROR_SYSTEM_INVALID", "XrFormFactor": ("XR_ERROR_FORM_FACTOR_UNSUPPORTED", "XR_ERROR_FORM_FACTOR_UNAVAILABLE"), "XrInstance": ("XR_ERROR_INSTANCE_LOST"), "XrSession": ("XR_ERROR_SESSION_LOST", "XR_SESSION_LOSS_PENDING"), "XrPosef": "XR_ERROR_POSE_INVALID", "XrViewConfigurationType": "XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED", "XrEnvironmentBlendMode": "XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED", "XrCompositionLayerBaseHeader": ("XR_ERROR_LAYER_INVALID"), "XrPath": ("XR_ERROR_PATH_INVALID", "XR_ERROR_PATH_UNSUPPORTED"), "XrTime": "XR_ERROR_TIME_INVALID" } forward_only = { # Like the above, but these are only valid in the # "type implies return code" direction } reverse_only = { # like the above, but these are only valid in the # "return code implies type or its descendant" direction "XrSession": ("XR_ERROR_SESSION_RUNNING", "XR_ERROR_SESSION_NOT_RUNNING", "XR_ERROR_SESSION_NOT_READY", "XR_ERROR_SESSION_NOT_STOPPING", "XR_SESSION_NOT_FOCUSED", "XR_FRAME_DISCARDED"), "XrReferenceSpaceType": "XR_SPACE_BOUNDS_UNAVAILABLE", "XrDuration": "XR_TIMEOUT_EXPIRED", "uint32_t": "XR_ERROR_SIZE_INSUFFICIENT", } # Some return codes are related in that only one of a set # may be returned by a command # (eg. XR_ERROR_SESSION_RUNNING and XR_ERROR_SESSION_NOT_RUNNING) self.exclusive_return_code_sets = (set( ("XR_ERROR_SESSION_NOT_RUNNING", "XR_ERROR_SESSION_RUNNING")), ) # Keys are entity names, values are tuples or lists of message text to suppress. suppressions = { # path to string can take any path "xrPathToString": ("Missing expected return code(s) XR_ERROR_PATH_UNSUPPORTED implied because of input of type XrPath", ) } conventions = APIConventions() db = EntityDatabase() self.extension_cmds = get_extension_commands(db.registry) self.return_codes = get_enum_value_names(db.registry, 'XrResult') self.structure_types = get_enum_value_names(db.registry, TYPEENUM) # Initialize superclass super().__init__(entity_db=db, conventions=conventions, manual_types_to_codes=manual_types_to_codes, forward_only_types_to_codes=forward_only, reverse_only_types_to_codes=reverse_only, suppressions=suppressions)
def __init__(self): manual_types_to_codes = { # These are hard-coded "manual" return codes: # the codes of the value (string, list, or tuple) # are available for a command if-and-only-if # the key type is passed as an input. "XrSystemId": "XR_ERROR_SYSTEM_INVALID", "XrFormFactor": ("XR_ERROR_FORM_FACTOR_UNSUPPORTED", "XR_ERROR_FORM_FACTOR_UNAVAILABLE"), "XrInstance": ("XR_ERROR_INSTANCE_LOST"), "XrSession": ("XR_ERROR_SESSION_LOST", "XR_SESSION_LOSS_PENDING"), "XrPosef": "XR_ERROR_POSE_INVALID", "XrViewConfigurationType": "XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED", "XrEnvironmentBlendMode": "XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED", "XrCompositionLayerBaseHeader": ("XR_ERROR_LAYER_INVALID"), "XrPath": ("XR_ERROR_PATH_INVALID", "XR_ERROR_PATH_UNSUPPORTED"), "XrTime": "XR_ERROR_TIME_INVALID" } forward_only = { # Like the above, but these are only valid in the # "type implies return code" direction } reverse_only = { # like the above, but these are only valid in the # "return code implies type or its descendant" direction "XrSession": ("XR_ERROR_SESSION_RUNNING", "XR_ERROR_SESSION_NOT_RUNNING", "XR_ERROR_SESSION_NOT_READY", "XR_ERROR_SESSION_NOT_STOPPING", "XR_SESSION_NOT_FOCUSED", "XR_FRAME_DISCARDED"), "XrReferenceSpaceType": "XR_SPACE_BOUNDS_UNAVAILABLE", "XrDuration": "XR_TIMEOUT_EXPIRED", "uint32_t": "XR_ERROR_SIZE_INSUFFICIENT", } # Some return codes are related in that only one of a set # may be returned by a command # (eg. XR_ERROR_SESSION_RUNNING and XR_ERROR_SESSION_NOT_RUNNING) self.exclusive_return_code_sets = (set( ("XR_ERROR_SESSION_NOT_RUNNING", "XR_ERROR_SESSION_RUNNING")), ) # Keys are entity names, values are tuples or lists of message text to suppress. suppressions: Dict[str, Union[Tuple[str, ...], List[str]]] = { # path to string can take any path "xrPathToString": ("Missing expected return code(s) XR_ERROR_PATH_UNSUPPORTED implied because of input of type XrPath", ), # Just a case error, vendor declined to modify "XR_OCULUS_audio_device_guid": ( "Extension-defined name xrGetAudioInputDeviceGuidOculus has wrong or missing vendor tag: expected to end with OCULUS", "Extension-defined name xrGetAudioOutputDeviceGuidOculus has wrong or missing vendor tag: expected to end with OCULUS", ), # This is warning about compatibility aliases, we already fixed this. "XR_FB_hand_tracking_capsules": ( "Extension-defined name XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT has wrong or missing vendor tag: expected to end with FB", "Extension-defined name XR_FB_HAND_TRACKING_CAPSULE_COUNT has wrong or missing vendor tag: expected to end with FB", ), } conventions = APIConventions() db = EntityDatabase() self.extension_cmds = get_extension_commands(db.registry) self.return_codes: Set[str] = get_enum_value_names( db.registry, 'XrResult') self.structure_types: Set[str] = get_enum_value_names( db.registry, _TYPEENUM) # Initialize superclass super().__init__(entity_db=db, conventions=conventions, manual_types_to_codes=manual_types_to_codes, forward_only_types_to_codes=forward_only, reverse_only_types_to_codes=reverse_only, suppressions=suppressions)