(self, interface, emit)
| 1341 | OutputGenerator.endFile(self) |
| 1342 | |
| 1343 | def beginFeature(self, interface, emit): |
| 1344 | # We intentionally skip default BaseGenerator behavior |
| 1345 | OutputGenerator.beginFeature(self, interface, emit) |
| 1346 | |
| 1347 | # Only "extension" is possible in the video.xml, identifying the Video Std header |
| 1348 | assert interface.tag == 'extension' |
| 1349 | name = interface.get('name') |
| 1350 | version: (str | None) = None |
| 1351 | depends: list[str] = [] |
| 1352 | |
| 1353 | # Handle Video Std header version constant |
| 1354 | for enum in interface.findall('require/enum[@value]'): |
| 1355 | enumName = enum.get('name') |
| 1356 | if enumName.endswith('_SPEC_VERSION'): |
| 1357 | version = enum.get('value') |
| 1358 | |
| 1359 | # Handle dependencies on other Video Std headers |
| 1360 | for type in interface.findall('require/type[@name]'): |
| 1361 | typeName = type.get('name') |
| 1362 | if typeName.startswith('vk_video/'): |
| 1363 | depends.append(typeName[len('vk_video/'):-len('.h')]) |
| 1364 | |
| 1365 | headerFile = f'vk_video/{name}.h' |
| 1366 | |
| 1367 | self.vk.videoStd.headers[name] = VideoStdHeader(name, version, headerFile, depends) |
| 1368 | |
| 1369 | self.currentVideoStdHeader = self.vk.videoStd.headers[name] |
| 1370 | |
| 1371 | # Handle constants here as that seems the most straightforward |
| 1372 | constantNames = [] |
| 1373 | for enum in interface.findall('require/enum[@type]'): |
| 1374 | constantNames.append(enum.get('name')) |
| 1375 | self.addConstants(constantNames) |
| 1376 | for constantName in constantNames: |
| 1377 | self.vk.constants[constantName].videoStdHeader = self.currentVideoStdHeader.name |
| 1378 | |
| 1379 | def endFeature(self): |
| 1380 | self.currentVideoStdHeader = None |
nothing calls this directly
no test coverage detected