| 235 | # deprecation warning is required, and this function returns a list of |
| 236 | # those extensions/versions |
| 237 | def deprecatedBy(self, eleminfo): |
| 238 | deprecators = [] |
| 239 | |
| 240 | # Versions doing the deprecating are automatically added to the list |
| 241 | if eleminfo.deprecatedbyversion: |
| 242 | deprecators.append(eleminfo.deprecatedbyversion) |
| 243 | |
| 244 | # Ordering for "how promoted" something is. |
| 245 | # 'None' indicates core functionality. |
| 246 | def getLevel(vendor): |
| 247 | if vendor == None: |
| 248 | return 0 |
| 249 | elif vendor == "KHR": |
| 250 | return 1 |
| 251 | elif vendor == "EXT": |
| 252 | return 2 |
| 253 | else: |
| 254 | return 3 |
| 255 | |
| 256 | # Extensions are conditionally added to the list based on their |
| 257 | # promotion level |
| 258 | if eleminfo.deprecatedbyextensions: |
| 259 | elemlevel = getLevel(eleminfo.vendor) |
| 260 | |
| 261 | # Loop through each extension and split off its vendor tag to get |
| 262 | # the level, then compare |
| 263 | for extension in eleminfo.deprecatedbyextensions: |
| 264 | extlevel = getLevel(conventions.extension_name_split(extension)[0]) |
| 265 | if extlevel <= elemlevel: |
| 266 | deprecators.append(extension) |
| 267 | |
| 268 | return deprecators |
| 269 | |
| 270 | def writeInclude(self, directory, basename, contents, deprecatedby, deprecatedlink, supersededby): |
| 271 | """Generate an include file. |