Skip to content

Commit

Permalink
OpenXR Specification 1.0.19 (2021-08-24)
Browse files Browse the repository at this point in the history
This release features a number of new or updated vendor extensions, as
well as some minor spec clarifications.

-   Registry
    -   Add XR_SESSION_NOT_FOCUSED as a possible success return code to
        xrApplyHapticFeedback and xrStopHapticFeedback. (internal MR
        2106, internal issue 1270)
    -   Add new XR_FB_hand_tracking_mesh vendor extension. (internal MR
        2089)
    -   Add new XR_FB_hand_tracking_capsules vendor extension. (internal
        MR 2089)
    -   Add new XR_FB_hand_tracking_aim vendor extension. (internal MR
        2089)
    -   Add version 1 of new XR_FB_space_warp vendor extension.
        (internal MR 2115)
    -   Register new Author ID for Almalence. (OpenXR-Docs PR 92,
        OpenXR-Docs PR 93)
    -   Update to version 2 of XR_VALVE_analog_threshold. (internal MR
        2113)
-   Specification
    -   Clarifies the imageRect in XrSwapchainSubImage uses a graphics
        API-specific coordinate origin. (internal MR 2104, OpenXR-Docs
        issue 86, internal issue 1587)
    -   Clarify text that haptics are suppressed when the session does
        not have or loses focus. (internal MR 2106, internal issue 1270)
    -   Document new XR_FB_hand_tracking_mesh vendor extension.
        (internal MR 2089)
    -   Document new XR_FB_hand_tracking_capsules vendor extension.
        (internal MR 2089)
    -   Document new XR_FB_hand_tracking_aim vendor extension. (internal
        MR 2089)
    -   Document updated version 2 of XR_VALVE_analog_threshold. This
        adapts the extension for usage with XR_KHR_binding_modification,
        deprecating the previous direct binding modification technique.
        (internal MR 2113)
    -   Document version 1 of new XR_FB_space_warp vendor extension.
        (internal MR 2115)
    -   scripts: Some typing annotations and type-related cleanup found
        by using type- aware Python editors. (internal MR 2100)
  • Loading branch information
rpavlik committed Aug 24, 2021
1 parent 9a409d0 commit a308636
Show file tree
Hide file tree
Showing 23 changed files with 1,016 additions and 113 deletions.
49 changes: 49 additions & 0 deletions CHANGELOG.Docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,55 @@ any public pull requests that have been accepted.
This changelog only lists changes that affect the registry,
headers, and/or specification text.

## OpenXR Specification 1.0.19 (2021-08-24)

This release features a number of new or updated vendor extensions, as well as
some minor spec clarifications.

- Registry
- Add `XR_SESSION_NOT_FOCUSED` as a possible success return code to
`xrApplyHapticFeedback` and `xrStopHapticFeedback`.
([internal MR 2106](https://gitlab.khronos.org/openxr/openxr/merge_requests/2106),
[internal issue 1270](https://gitlab.khronos.org/openxr/openxr/issues/1270))
- Add new `XR_FB_hand_tracking_mesh` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Add new `XR_FB_hand_tracking_capsules` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Add new `XR_FB_hand_tracking_aim` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Add version 1 of new `XR_FB_space_warp` vendor extension.
([internal MR 2115](https://gitlab.khronos.org/openxr/openxr/merge_requests/2115))
- Register new Author ID for Almalence.
([OpenXR-Docs PR 92](https://github.com/KhronosGroup/OpenXR-Docs/pull/92),
[OpenXR-Docs PR 93](https://github.com/KhronosGroup/OpenXR-Docs/pull/93))
- Update to version 2 of `XR_VALVE_analog_threshold`.
([internal MR 2113](https://gitlab.khronos.org/openxr/openxr/merge_requests/2113))
- Specification
- Clarifies the `imageRect` in `XrSwapchainSubImage` uses a graphics API-specific
coordinate origin.
([internal MR 2104](https://gitlab.khronos.org/openxr/openxr/merge_requests/2104),
[OpenXR-Docs issue 86](https://github.com/KhronosGroup/OpenXR-Docs/issues/86),
[internal issue 1587](https://gitlab.khronos.org/openxr/openxr/issues/1587))
- Clarify text that haptics are suppressed when the session does not have or
loses focus.
([internal MR 2106](https://gitlab.khronos.org/openxr/openxr/merge_requests/2106),
[internal issue 1270](https://gitlab.khronos.org/openxr/openxr/issues/1270))
- Document new `XR_FB_hand_tracking_mesh` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Document new `XR_FB_hand_tracking_capsules` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Document new `XR_FB_hand_tracking_aim` vendor extension.
([internal MR 2089](https://gitlab.khronos.org/openxr/openxr/merge_requests/2089))
- Document updated version 2 of `XR_VALVE_analog_threshold`. This adapts the
extension for usage with `XR_KHR_binding_modification`, deprecating the
previous direct binding modification technique.
([internal MR 2113](https://gitlab.khronos.org/openxr/openxr/merge_requests/2113))
- Document version 1 of new `XR_FB_space_warp` vendor extension.
([internal MR 2115](https://gitlab.khronos.org/openxr/openxr/merge_requests/2115))
- scripts: Some typing annotations and type-related cleanup found by using type-
aware Python editors.
([internal MR 2100](https://gitlab.khronos.org/openxr/openxr/merge_requests/2100))

## OpenXR Specification 1.0.18 (2021-07-30)

The main changes in this release include clarifications to the Session chapter
Expand Down
2 changes: 1 addition & 1 deletion specification/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ ifneq (,$(strip $(VERY_STRICT)))
ASCIIDOC := $(ASCIIDOC) --failure-level WARN
endif

SPECREVISION = 1.0.18
SPECREVISION = 1.0.19
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))

Expand Down
2 changes: 1 addition & 1 deletion specification/current_version.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
# Similarly, update specification/scripts/extensionmetadocgenerator.py as well.
MAJOR=1
MINOR=0
PATCH=18
PATCH=19
176 changes: 159 additions & 17 deletions specification/registry/xr.xml

Large diffs are not rendered by default.

29 changes: 24 additions & 5 deletions specification/scripts/cgenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@

import os
import re
from generator import (GeneratorOptions, OutputGenerator, noneStr,
regSortFeatures, write)

from generator import (GeneratorOptions,
MissingGeneratorOptionsConventionsError,
MissingGeneratorOptionsError, MissingRegistryError,
OutputGenerator, noneStr, write)


class CGeneratorOptions(GeneratorOptions):
Expand Down Expand Up @@ -156,10 +159,12 @@ def __init__(self, *args, **kwargs):

def beginFile(self, genOpts):
OutputGenerator.beginFile(self, genOpts)
if self.genOpts is None:
raise MissingGeneratorOptionsError()
# C-specific
#
# Multiple inclusion protection & C++ wrappers.
if genOpts.protectFile and self.genOpts.filename:
if self.genOpts.protectFile and self.genOpts.filename:
headerSym = re.sub(r'\.h', '_h_',
os.path.basename(self.genOpts.filename)).upper()
write('#ifndef', headerSym, file=self.outFile)
Expand All @@ -181,6 +186,8 @@ def beginFile(self, genOpts):
def endFile(self):
# C-specific
# Finish C++ wrapper and multiple inclusion protection
if self.genOpts is None:
raise MissingGeneratorOptionsError()
self.newline()
write('#ifdef __cplusplus', file=self.outFile)
write('}', file=self.outFile)
Expand Down Expand Up @@ -214,7 +221,11 @@ def endFeature(self):
# C-specific
if self.emit:
if self.feature_not_empty:
is_core = self.featureName.startswith(self.conventions.api_prefix + "VERSION_")
if self.genOpts is None:
raise MissingGeneratorOptionsError()
if self.genOpts.conventions is None:
raise MissingGeneratorOptionsConventionsError()
is_core = self.featureName and self.featureName.startswith(self.conventions.api_prefix + "VERSION_")
if self.genOpts.conventions.writeFeature(self.featureExtraProtect, self.genOpts.filename):
self.newline()
if self.genOpts.protectFeature:
Expand Down Expand Up @@ -292,6 +303,8 @@ def genType(self, typeinfo, name, alias):
# special-purpose generator.
self.genStruct(typeinfo, name, alias)
else:
if self.genOpts is None:
raise MissingGeneratorOptionsError()
# OpenXR: this section was not under 'else:' previously, just fell through
if alias:
# If the type is an alias, just emit a typedef declaration
Expand Down Expand Up @@ -338,6 +351,8 @@ def genProtectString(self, protect_str):

def typeMayAlias(self, typeName):
if not self.may_alias:
if self.registry is None:
raise MissingRegistryError()
# First time we've asked if a type may alias.
# So, let's populate the set of all names of types that may.

Expand Down Expand Up @@ -384,7 +399,7 @@ def genStruct(self, typeinfo, typeName, alias):
# This is an OpenXR-specific alternative where aliasing refers
# to an inheritance hierarchy of types rather than C-level type
# aliases.
if self.genOpts.genAliasMacro and self.typeMayAlias(typeName):
if self.genOpts and self.genOpts.genAliasMacro and self.typeMayAlias(typeName):
body += ' ' + self.genOpts.aliasMacro

body += ' ' + typeName + ' {\n'
Expand Down Expand Up @@ -422,6 +437,8 @@ def genGroup(self, groupinfo, groupName, alias=None):
body = 'typedef ' + alias + ' ' + groupName + ';\n'
self.appendSection(section, body)
else:
if self.genOpts is None:
raise MissingGeneratorOptionsError()
(section, body) = self.buildEnumCDecl(self.genOpts.genEnumBeginEndRange, groupinfo, groupName)
self.appendSection(section, "\n" + body)

Expand All @@ -443,6 +460,8 @@ def genCmd(self, cmdinfo, name, alias):
# prefix = '// ' + name + ' is an alias of command ' + alias + '\n'
# else:
# prefix = ''
if self.genOpts is None:
raise MissingGeneratorOptionsError()

prefix = ''
decls = self.makeCDecls(cmdinfo.elem)
Expand Down
5 changes: 3 additions & 2 deletions specification/scripts/check_spec_links.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
EXTRA_DEFINES = ('XRAPI_ATTR', 'XRAPI_CALL', 'XRAPI_PTR', 'XR_NO_STDINT_H')

# These are marked with the code: macro
SYSTEM_TYPES = set(('void', 'char', 'float', 'size_t', 'uintptr_t',
SYSTEM_TYPES = set(('void', 'char', 'float', 'size_t',
'intptr_t', 'uintptr_t',
'int8_t', 'uint8_t',
'uint16_t',
'int16_t', 'uint16_t',
'int32_t', 'uint32_t',
'int64_t', 'uint64_t'))

Expand Down
Loading

0 comments on commit a308636

Please sign in to comment.