MCPcopy Index your code
hub / github.com/KhronosGroup/Vulkan-Docs / endFile

Method endFile

scripts/base_generator.py:660–719  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

658 self.vk.videoCodecs[name] = VideoCodec(name, value, profiles, capabilities, formats)
659
660 def endFile(self):
661 # This is the point were reg.py has ran, everything is collected
662 # We do some post processing now
663 self.applyExtensionDependency()
664
665 # Build full extensionRequirement for all types after extensions list is populated
666 self.buildFullExtensionRequirements()
667
668 self.addConstants([k for k,v in self.registry.enumvaluedict.items() if v == 'API Constants'])
669 self.addVideoCodecs()
670
671 self.vk.headerVersionComplete = APISpecific.createHeaderVersion(self.targetApiName, self.vk)
672
673 # Use structs and commands to find which things are returnedOnly
674 for struct in [x for x in self.vk.structs.values() if not x.returnedOnly]:
675 for enum in [self.vk.enums[x.type] for x in struct.members if x.type in self.vk.enums]:
676 enum.returnedOnly = False
677 for bitmask in [self.vk.bitmasks[x.type] for x in struct.members if x.type in self.vk.bitmasks]:
678 bitmask.returnedOnly = False
679 for flags in [self.vk.flags[x.type] for x in struct.members if x.type in self.vk.flags]:
680 flags.returnedOnly = False
681 if flags.bitmaskName is not None:
682 self.vk.bitmasks[flags.bitmaskName].returnedOnly = False
683 for command in self.vk.commands.values():
684 for enum in [self.vk.enums[x.type] for x in command.params if x.type in self.vk.enums]:
685 enum.returnedOnly = False
686 for bitmask in [self.vk.bitmasks[x.type] for x in command.params if x.type in self.vk.bitmasks]:
687 bitmask.returnedOnly = False
688 for flags in [self.vk.flags[x.type] for x in command.params if x.type in self.vk.flags]:
689 flags.returnedOnly = False
690 if flags.bitmaskName is not None:
691 self.vk.bitmasks[flags.bitmaskName].returnedOnly = False
692
693 # Turn handle parents into pointers to classes
694 for handle in [x for x in self.vk.handles.values() if x.parent is not None]:
695 handle.parent = self.vk.handles[handle.parent]
696 # search up parent chain to see if instance or device
697 for handle in [x for x in self.vk.handles.values()]:
698 next_parent = handle.parent
699 while (not handle.instance and not handle.device):
700 handle.instance = next_parent.name == 'VkInstance'
701 handle.device = next_parent.name == 'VkDevice'
702 next_parent = next_parent.parent
703
704 maxSyncSupport.stages = self.vk.bitmasks['VkPipelineStageFlagBits2'].flags
705 maxSyncEquivalent.accesses = self.vk.bitmasks['VkAccessFlagBits2'].flags
706 maxSyncEquivalent.stages = self.vk.bitmasks['VkPipelineStageFlagBits2'].flags
707
708 # All inherited generators should run from here
709 self.generate()
710
711 if cachingEnabled:
712 cachePath = os.path.join(tempfile.gettempdir(), f'vkobject_{os.getpid()}')
713 if not os.path.isfile(cachePath):
714 cacheFile = open(cachePath, 'wb')
715 pickle.dump(self.vk, cacheFile)
716 cacheFile.close()
717

Callers 2

generateFromCacheMethod · 0.45
endFileMethod · 0.45

Calls 9

addConstantsMethod · 0.95
addVideoCodecsMethod · 0.95
generateMethod · 0.95
itemsMethod · 0.80
createHeaderVersionMethod · 0.80
valuesMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected