Update for Vulkan-Docs 1.4.314
This commit is contained in:
parent
e2e53a7246
commit
9c77de5c3d
16 changed files with 584 additions and 251 deletions
|
|
@ -210,6 +210,10 @@ class BaseInfo:
|
|||
|
||||
self.elem = elem
|
||||
"etree Element for this feature"
|
||||
|
||||
self.deprecatedbyversion = None
|
||||
self.deprecatedbyextensions = []
|
||||
self.deprecatedlink = None
|
||||
|
||||
def resetState(self):
|
||||
"""Reset required/declared to initial values. Used
|
||||
|
|
@ -349,6 +353,8 @@ class FeatureInfo(BaseInfo):
|
|||
|
||||
self.number = 0
|
||||
self.supported = None
|
||||
|
||||
self.deprecates = elem.findall('deprecate')
|
||||
else:
|
||||
# Extract vendor portion of <APIprefix>_<vendor>_<name>
|
||||
self.category = self.name.split('_', 2)[1]
|
||||
|
|
@ -1250,6 +1256,51 @@ class Registry:
|
|||
if matchAPIProfile(api, profile, feature):
|
||||
self.markRequired(featurename, feature, True)
|
||||
|
||||
def deprecateFeatures(self, interface, featurename, api, profile):
|
||||
"""Process `<require>` tags for a `<version>` or `<extension>`.
|
||||
|
||||
- interface - Element for `<version>` or `<extension>`, containing
|
||||
`<require>` tags
|
||||
- featurename - name of the feature
|
||||
- api - string specifying API name being generated
|
||||
- profile - string specifying API profile being generated"""
|
||||
|
||||
versionmatch = APIConventions().is_api_version_name(featurename)
|
||||
|
||||
# <deprecate> marks things that are deprecated by this version/profile
|
||||
for deprecation in interface.findall('deprecate'):
|
||||
if matchAPIProfile(api, profile, deprecation):
|
||||
for typeElem in deprecation.findall('type'):
|
||||
type = self.lookupElementInfo(typeElem.get('name'), self.typedict)
|
||||
if type:
|
||||
if versionmatch is not None:
|
||||
type.deprecatedbyversion = featurename
|
||||
else:
|
||||
type.deprecatedbyextensions += featurename
|
||||
type.deprecatedlink = deprecation.get('explanationlink')
|
||||
else:
|
||||
self.gen.logMsg('error', typeElem.get('name'), ' is tagged for deprecation but not present in registry')
|
||||
for enumElem in deprecation.findall('enum'):
|
||||
enum = self.lookupElementInfo(enumElem.get('name'), self.enumdict)
|
||||
if enum:
|
||||
if versionmatch is not None:
|
||||
enum.deprecatedbyversion = featurename
|
||||
else:
|
||||
enum.deprecatedbyextensions += featurename
|
||||
enum.deprecatedlink = deprecation.get('explanationlink')
|
||||
else:
|
||||
self.gen.logMsg('error', enumElem.get('name'), ' is tagged for deprecation but not present in registry')
|
||||
for cmdElem in deprecation.findall('command'):
|
||||
cmd = self.lookupElementInfo(cmdElem.get('name'), self.cmddict)
|
||||
if cmd:
|
||||
if versionmatch is not None:
|
||||
cmd.deprecatedbyversion = featurename
|
||||
else:
|
||||
cmd.deprecatedbyextensions += featurename
|
||||
cmd.deprecatedlink = deprecation.get('explanationlink')
|
||||
else:
|
||||
self.gen.logMsg('error', cmdElem.get('name'), ' is tagged for deprecation but not present in registry')
|
||||
|
||||
def removeFeatures(self, interface, featurename, api, profile):
|
||||
"""Process `<remove>` tags for a `<version>` or `<extension>`.
|
||||
|
||||
|
|
@ -1750,6 +1801,7 @@ class Registry:
|
|||
self.gen.logMsg('diag', 'PASS 1: Tagging required and features for', f.name)
|
||||
self.fillFeatureDictionary(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
|
||||
self.requireFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
|
||||
self.deprecateFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
|
||||
self.assignAdditionalValidity(f.elem, self.genOpts.apiname, self.genOpts.profile)
|
||||
|
||||
for f in features:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue