Implement WebXR lighting estimation API
This implements the API outlined in the explainer here:
https://github.com/immersive-web/lighting-estimation
Initial components of this implementation were done by bialpio@.
Bug: 1034135
Change-Id: I98ba7d3e7c166c6ac2254efae4f5b79e4bb95f48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1965850
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Piotr Bialecki <bialpio@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Commit-Queue: Will Cassella <cassew@google.com>
Cr-Commit-Position: refs/heads/master@{#732270}
diff --git a/resources/chromium/webxr-test.js b/resources/chromium/webxr-test.js
index 54788b4..ca62754 100644
--- a/resources/chromium/webxr-test.js
+++ b/resources/chromium/webxr-test.js
@@ -551,8 +551,11 @@
// Mojo function implementations.
+ _injectAdditionalFrameData(options, frameData) {
+ }
+
// XRFrameDataProvider implementation.
- getFrameData() {
+ getFrameData(options) {
let mojo_space_reset = this.send_mojo_space_reset_;
this.send_mojo_space_reset_ = false;
if (this.pose_) {
@@ -577,18 +580,21 @@
now += diff;
now *= 1000000;
+ let frameData = {
+ pose: this.pose_,
+ mojoSpaceReset: mojo_space_reset,
+ inputState: input_state,
+ timeDelta: {
+ microseconds: now,
+ },
+ frameId: this.next_frame_id_++,
+ bufferHolder: null,
+ bufferSize: {},
+ };
+ this._injectAdditionalFrameData(options, frameData);
+
return Promise.resolve({
- frameData: {
- pose: this.pose_,
- mojoSpaceReset: mojo_space_reset,
- inputState: input_state,
- timeDelta: {
- microseconds: now,
- },
- frameId: this.next_frame_id_++,
- bufferHolder: null,
- bufferSize: {}
- }
+ frameData: frameData,
});
}