@galacean/engine-xr-webxr 0.0.0-experimental-shaderlab.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +42 -0
- package/dist/browser.js +6548 -0
- package/dist/browser.js.map +1 -0
- package/dist/browser.min.js +2 -0
- package/dist/browser.min.js.map +1 -0
- package/dist/main.js +5038 -0
- package/dist/main.js.map +1 -0
- package/dist/miniprogram.js +5907 -0
- package/dist/module.js +5034 -0
- package/dist/module.js.map +1 -0
- package/package.json +36 -0
- package/types/Util.d.ts +5 -0
- package/types/WebXRDevice.d.ts +13 -0
- package/types/WebXRFrame.d.ts +9 -0
- package/types/WebXRSession.d.ts +31 -0
- package/types/feature/WebXRAnchorTracking.d.ts +20 -0
- package/types/feature/WebXRFeature.d.ts +1 -0
- package/types/feature/WebXRImageTracking.d.ts +23 -0
- package/types/feature/WebXRPlaneTracking.d.ts +21 -0
- package/types/feature/WebXRTrackableFeature.d.ts +1 -0
- package/types/index.d.ts +4 -0
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@galacean/engine-xr-webxr",
|
|
3
|
+
"version": "0.0.0-experimental-shaderlab.2",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public",
|
|
6
|
+
"registry": "https://registry.npmjs.org"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"main": "dist/main.js",
|
|
10
|
+
"module": "dist/module.js",
|
|
11
|
+
"debug": "src/index.ts",
|
|
12
|
+
"browser": "dist/browser.js",
|
|
13
|
+
"types": "types/index.d.ts",
|
|
14
|
+
"umd": {
|
|
15
|
+
"name": "Galacean.WebXR",
|
|
16
|
+
"globals": {
|
|
17
|
+
"@galacean/engine": "Galacean"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/**/*",
|
|
22
|
+
"libs/**/*",
|
|
23
|
+
"types/**/*"
|
|
24
|
+
],
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@galacean/engine-xr": "0.0.0-experimental-shaderlab.2"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@galacean/engine-math": "0.0.0-experimental-shaderlab.2",
|
|
30
|
+
"@galacean/engine-design": "0.0.0-experimental-shaderlab.2"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"b:types": "tsc"
|
|
35
|
+
}
|
|
36
|
+
}
|
package/types/Util.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="webxr" />
|
|
2
|
+
import { XRTrackedInputDevice } from "@galacean/engine-xr";
|
|
3
|
+
export declare function parseXRMode(mode: number): XRSessionMode | null;
|
|
4
|
+
export declare function getInputSource(inputSource: XRInputSource): XRTrackedInputDevice;
|
|
5
|
+
export declare function viewToCamera(type: XREye): XRTrackedInputDevice;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IHardwareRenderer, IXRDevice } from "@galacean/engine-design";
|
|
2
|
+
import { XRFeatureType, XRSessionMode } from "@galacean/engine-xr";
|
|
3
|
+
import { WebXRSession } from "./WebXRSession";
|
|
4
|
+
import { WebXRFeature } from "./feature/WebXRFeature";
|
|
5
|
+
export declare class WebXRDevice implements IXRDevice {
|
|
6
|
+
isSupportedSessionMode(mode: XRSessionMode): Promise<void>;
|
|
7
|
+
isSupportedFeature(type: XRFeatureType): boolean;
|
|
8
|
+
createPlatformFeature(type: XRFeatureType, ...args: any[]): WebXRFeature;
|
|
9
|
+
requestSession(rhi: IHardwareRenderer, mode: XRSessionMode, platformFeatures: WebXRFeature[]): Promise<WebXRSession>;
|
|
10
|
+
}
|
|
11
|
+
type PlatformFeatureConstructor = new (...args: any[]) => WebXRFeature;
|
|
12
|
+
export declare function registerXRPlatformFeature(type: XRFeatureType): (platformFeatureConstructor: PlatformFeatureConstructor) => void;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IXRFrame, IXRInput } from "@galacean/engine-design";
|
|
2
|
+
import { WebXRSession } from "./WebXRSession";
|
|
3
|
+
export declare class WebXRFrame implements IXRFrame {
|
|
4
|
+
private _session;
|
|
5
|
+
updateInputs(inputs: IXRInput[]): void;
|
|
6
|
+
private _updateController;
|
|
7
|
+
private _updateCamera;
|
|
8
|
+
constructor(session: WebXRSession);
|
|
9
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="webxr" />
|
|
2
|
+
import { IXRInputEvent, IXRSession } from "@galacean/engine-design";
|
|
3
|
+
import { WebXRFrame } from "./WebXRFrame";
|
|
4
|
+
export declare class WebXRSession implements IXRSession {
|
|
5
|
+
requestAnimationFrame: (callback: FrameRequestCallback) => number;
|
|
6
|
+
cancelAnimationFrame: (id: number) => void;
|
|
7
|
+
private _frame;
|
|
8
|
+
private _events;
|
|
9
|
+
private _screenPointers;
|
|
10
|
+
private _inputEventTypeMap;
|
|
11
|
+
private _targetRayModeMap;
|
|
12
|
+
get frame(): WebXRFrame;
|
|
13
|
+
get framebuffer(): WebGLFramebuffer;
|
|
14
|
+
get framebufferWidth(): number;
|
|
15
|
+
get framebufferHeight(): number;
|
|
16
|
+
get frameRate(): number;
|
|
17
|
+
get supportedFrameRates(): Float32Array;
|
|
18
|
+
get events(): IXRInputEvent[];
|
|
19
|
+
constructor(session: XRSession, layer: XRWebGLLayer, referenceSpace: XRReferenceSpace);
|
|
20
|
+
getFixedFoveation(): number;
|
|
21
|
+
setFixedFoveation(value: number): void;
|
|
22
|
+
start(): void;
|
|
23
|
+
stop(): void;
|
|
24
|
+
end(): Promise<void>;
|
|
25
|
+
setSessionExitCallBack(onSessionExitCallBack: () => void): void;
|
|
26
|
+
addEventListener(): void;
|
|
27
|
+
removeEventListener(): void;
|
|
28
|
+
resetEvents(): void;
|
|
29
|
+
private _onSessionExit;
|
|
30
|
+
private _onSessionEvent;
|
|
31
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="webxr" />
|
|
2
|
+
import { IXRRequestAnchor, IXRTracked } from "@galacean/engine-design";
|
|
3
|
+
import { WebXRFrame } from "../WebXRFrame";
|
|
4
|
+
import { WebXRSession } from "../WebXRSession";
|
|
5
|
+
import { WebXRTrackableFeature } from "./WebXRTrackableFeature";
|
|
6
|
+
/**
|
|
7
|
+
* WebXR implementation of XRPlatformAnchorTracking.
|
|
8
|
+
*/
|
|
9
|
+
export declare class WebXRAnchorTracking extends WebXRTrackableFeature<IXRTracked, IWebXRRequestTrackingAnchor> {
|
|
10
|
+
checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): boolean;
|
|
11
|
+
getTrackedResult(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): void;
|
|
12
|
+
get canModifyRequestTrackingAfterInit(): boolean;
|
|
13
|
+
onDelRequestTracking(requestTracking: IWebXRRequestTrackingAnchor): void;
|
|
14
|
+
private _addAnchor;
|
|
15
|
+
private _updateTrackedAnchor;
|
|
16
|
+
}
|
|
17
|
+
interface IWebXRRequestTrackingAnchor extends IXRRequestAnchor {
|
|
18
|
+
xrAnchor: XRAnchor;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IXRReferenceImage, IXRRequestImage, IXRTrackedImage } from "@galacean/engine-design";
|
|
2
|
+
import { WebXRFrame } from "../WebXRFrame";
|
|
3
|
+
import { WebXRSession } from "../WebXRSession";
|
|
4
|
+
import { WebXRTrackableFeature } from "./WebXRTrackableFeature";
|
|
5
|
+
/**
|
|
6
|
+
* WebXR implementation of XRPlatformImageTracking.
|
|
7
|
+
* Note: each tracked image can appear at most once in the tracking results.
|
|
8
|
+
* If multiple copies of the same image exist in the user’s environment,
|
|
9
|
+
* the device can choose an arbitrary instance to report a pose,
|
|
10
|
+
* and this choice can change for future XRFrames.
|
|
11
|
+
*/
|
|
12
|
+
export declare class WebXRImageTracking extends WebXRTrackableFeature<IXRTrackedImage, IXRRequestImage> {
|
|
13
|
+
private _images;
|
|
14
|
+
private _trackingScoreStatus;
|
|
15
|
+
private _tempIdx;
|
|
16
|
+
private _tempArr;
|
|
17
|
+
constructor(images: IXRReferenceImage[]);
|
|
18
|
+
checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestImage[]): boolean;
|
|
19
|
+
getTrackedResult(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestImage[], generateTracked: () => IXRTrackedImage): void;
|
|
20
|
+
onAddRequestTracking(requestTracking: IXRRequestImage): void;
|
|
21
|
+
private _requestTrackingScore;
|
|
22
|
+
private _updateTrackedImage;
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="webxr" />
|
|
2
|
+
import { IXRRequestPlane, IXRTrackedPlane } from "@galacean/engine-design";
|
|
3
|
+
import { WebXRFrame } from "../WebXRFrame";
|
|
4
|
+
import { WebXRSession } from "../WebXRSession";
|
|
5
|
+
import { WebXRTrackableFeature } from "./WebXRTrackableFeature";
|
|
6
|
+
/**
|
|
7
|
+
* WebXR implementation of XRPlatformPlaneTracking.
|
|
8
|
+
*/
|
|
9
|
+
export declare class WebXRPlaneTracking extends WebXRTrackableFeature<IWebXRTrackedPlane, IXRRequestPlane> {
|
|
10
|
+
private _lastDetectedPlanes;
|
|
11
|
+
constructor(detectedMode: number);
|
|
12
|
+
checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestPlane[]): boolean;
|
|
13
|
+
getTrackedResult(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestPlane[], generateTracked: () => IWebXRTrackedPlane): void;
|
|
14
|
+
onAddRequestTracking(requestTracking: IXRRequestPlane): void;
|
|
15
|
+
private _updatePlane;
|
|
16
|
+
}
|
|
17
|
+
interface IWebXRTrackedPlane extends IXRTrackedPlane {
|
|
18
|
+
xrPlane?: XRPlane;
|
|
19
|
+
lastChangedTime?: number;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/types/index.d.ts
ADDED