| /* |
| * Copyright (C) 2023 Mohamad Al-Jaf |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifdef __WIDL__ |
| #pragma winrt ns_prefix |
| #endif |
| |
| import "inspectable.idl"; |
| import "asyncinfo.idl"; |
| import "eventtoken.idl"; |
| import "windowscontracts.idl"; |
| import "windows.foundation.idl"; |
| import "windows.foundation.numerics.idl"; |
| import "windows.graphics.directx.idl"; |
| import "windows.graphics.directx.direct3d11.idl"; |
| import "windows.perception.idl"; |
| import "windows.perception.spatial.idl"; |
| import "windows.ui.core.idl"; |
| |
| namespace Windows.Perception { |
| runtimeclass PerceptionTimestamp; |
| } |
| |
| namespace Windows.Graphics.Holographic { |
| typedef enum HolographicFramePresentResult HolographicFramePresentResult; |
| typedef enum HolographicFramePresentWaitBehavior HolographicFramePresentWaitBehavior; |
| |
| typedef struct HolographicAdapterId HolographicAdapterId; |
| typedef struct HolographicStereoTransform HolographicStereoTransform; |
| |
| interface IHolographicCamera; |
| interface IHolographicCameraPose; |
| interface IHolographicCameraRenderingParameters; |
| interface IHolographicFrame; |
| interface IHolographicFramePrediction; |
| interface IHolographicSpaceStatics; |
| interface IHolographicSpaceStatics2; |
| interface IHolographicSpaceStatics3; |
| interface IHolographicSpaceCameraAddedEventArgs; |
| interface IHolographicSpaceCameraRemovedEventArgs; |
| |
| runtimeclass HolographicCamera; |
| runtimeclass HolographicCameraPose; |
| runtimeclass HolographicCameraRenderingParameters; |
| runtimeclass HolographicFrame; |
| runtimeclass HolographicFramePrediction; |
| runtimeclass HolographicSpace; |
| runtimeclass HolographicSpaceCameraAddedEventArgs; |
| runtimeclass HolographicSpaceCameraRemovedEventArgs; |
| |
| declare { |
| interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera *>; |
| interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCameraPose *>; |
| interface Windows.Foundation.IReference<Windows.Graphics.Holographic.HolographicStereoTransform>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace *, IInspectable *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace *, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace *, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs *>; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0) |
| ] |
| enum HolographicFramePresentResult |
| { |
| Success = 0, |
| DeviceRemoved = 1, |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0) |
| ] |
| enum HolographicFramePresentWaitBehavior |
| { |
| WaitForFrameToFinish = 0, |
| DoNotWaitForFrameToFinish = 1, |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0) |
| ] |
| struct HolographicAdapterId |
| { |
| UINT32 LowPart; |
| INT32 HighPart; |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0) |
| ] |
| struct HolographicStereoTransform |
| { |
| Windows.Foundation.Numerics.Matrix4x4 Left; |
| Windows.Foundation.Numerics.Matrix4x4 Right; |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicCamera), |
| uuid(e4e98445-9bed-4980-9ba0-e87680d1cb74) |
| ] |
| interface IHolographicCamera : IInspectable |
| { |
| [propget] HRESULT RenderTargetSize([out, retval] Windows.Foundation.Size *value); |
| [propget] HRESULT ViewportScaleFactor([out, retval] DOUBLE *value); |
| [propput] HRESULT ViewportScaleFactor([in] DOUBLE value); |
| [propget] HRESULT IsStereo([out, retval] boolean *value); |
| [propget] HRESULT Id([out, retval] UINT32 *value); |
| HRESULT SetNearPlaneDistance([in] DOUBLE value); |
| HRESULT SetFarPlaneDistance([in] DOUBLE value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicCameraPose), |
| uuid(0d7d7e30-12de-45bd-912b-c7f6561599d1) |
| ] |
| interface IHolographicCameraPose : IInspectable |
| { |
| [propget] HRESULT HolographicCamera([out, retval] Windows.Graphics.Holographic.HolographicCamera **value); |
| [propget] HRESULT Viewport([out, retval] Windows.Foundation.Rect *value); |
| HRESULT TryGetViewTransform([in] Windows.Perception.Spatial.SpatialCoordinateSystem *coordinate_system, [out, retval] Windows.Foundation.IReference<Windows.Graphics.Holographic.HolographicStereoTransform> **value); |
| [propget] HRESULT ProjectionTransform([out, retval] Windows.Graphics.Holographic.HolographicStereoTransform *value); |
| HRESULT TryGetCullingFrustum([in] Windows.Perception.Spatial.SpatialCoordinateSystem *coordinate_system, [out, retval] Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingFrustum> **value); |
| HRESULT TryGetVisibleFrustum([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out, retval] Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingFrustum> **value); |
| [propget] HRESULT NearPlaneDistance([out, retval] DOUBLE *value); |
| [propget] HRESULT FarPlaneDistance([out, retval] DOUBLE *value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicCameraRenderingParameters), |
| uuid(8eac2ed1-5bf4-4e16-8236-ae0800c11d0d) |
| ] |
| interface IHolographicCameraRenderingParameters : IInspectable |
| { |
| [overload("SetFocusPoint")] HRESULT SetFocusPoint([in] Windows.Perception.Spatial.SpatialCoordinateSystem *coordinate_system, [in] Windows.Foundation.Numerics.Vector3 position); |
| [overload("SetFocusPoint")] HRESULT SetFocusPointWithNormal([in] Windows.Perception.Spatial.SpatialCoordinateSystem *coordinate_system, [in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Vector3 normal); |
| [overload("SetFocusPoint")] HRESULT SetFocusPointWithNormalLinearVelocity([in] Windows.Perception.Spatial.SpatialCoordinateSystem *coordinate_system, [in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Vector3 normal, [in] Windows.Foundation.Numerics.Vector3 linearVelocity); |
| [propget] HRESULT Direct3D11Device([out, retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice **value); |
| [propget] HRESULT Direct3D11BackBuffer([out, retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicFrame), |
| uuid(c6988eb6-a8b9-3054-a6eb-d624b6536375) |
| ] |
| interface IHolographicFrame : IInspectable |
| { |
| [propget] HRESULT AddedCameras([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera *> **value); |
| [propget] HRESULT RemovedCameras([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera *> **value); |
| HRESULT GetRenderingParameters([in] Windows.Graphics.Holographic.HolographicCameraPose *camera_pose, [out, retval] Windows.Graphics.Holographic.HolographicCameraRenderingParameters **value); |
| [propget] HRESULT Duration([out, retval] Windows.Foundation.TimeSpan *value); |
| [propget] HRESULT CurrentPrediction([out, retval] Windows.Graphics.Holographic.HolographicFramePrediction **value); |
| HRESULT UpdateCurrentPrediction(); |
| [overload("PresentUsingCurrentPrediction")] HRESULT PresentUsingCurrentPrediction([out, retval] Windows.Graphics.Holographic.HolographicFramePresentResult *result); |
| [overload("PresentUsingCurrentPrediction")] HRESULT PresentUsingCurrentPredictionWithBehavior([in] Windows.Graphics.Holographic.HolographicFramePresentWaitBehavior wait_behavior, [out, retval] Windows.Graphics.Holographic.HolographicFramePresentResult *result); |
| HRESULT WaitForFrameToFinish(); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicFramePrediction), |
| uuid(520f4de1-5c0a-4e79-a81e-6abe02bb2739) |
| ] |
| interface IHolographicFramePrediction : IInspectable |
| { |
| [propget] HRESULT CameraPoses([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCameraPose *> **value); |
| [propget] HRESULT Timestamp([out, retval] Windows.Perception.PerceptionTimestamp **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicSpace), |
| uuid(4380dba6-5e78-434f-807c-3433d1efe8b7) |
| ] |
| interface IHolographicSpace : IInspectable |
| { |
| [propget] HRESULT PrimaryAdapterId([out, retval] Windows.Graphics.Holographic.HolographicAdapterId *value); |
| HRESULT SetDirect3D11Device([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice *value); |
| [eventadd] HRESULT CameraAdded( |
| [in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace *, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs *> *handler, |
| [out, retval] EventRegistrationToken *cookie |
| ); |
| [eventremove] HRESULT CameraAdded([in] EventRegistrationToken cookie); |
| [eventadd] HRESULT CameraRemoved( |
| [in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace *, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs *> *handler, |
| [out, retval] EventRegistrationToken *cookie |
| ); |
| [eventremove] HRESULT CameraRemoved([in] EventRegistrationToken cookie); |
| HRESULT CreateNextFrame([out, retval] Windows.Graphics.Holographic.HolographicFrame **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 4.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicSpace), |
| uuid(0e777088-75fc-48af-8758-0652f6f07c59) |
| ] |
| interface IHolographicSpaceStatics2 : IInspectable |
| { |
| [propget] HRESULT IsSupported([out, retval] boolean *value); |
| [propget] HRESULT IsAvailable([out, retval] boolean *value); |
| [eventadd] HRESULT IsAvailableChanged([in] Windows.Foundation.EventHandler<IInspectable *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT IsAvailableChanged([in] EventRegistrationToken token); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 5.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicSpace), |
| uuid(3b00de3d-b1a3-4dfe-8e79-fec5909e6df8) |
| ] |
| interface IHolographicSpaceStatics3 : IInspectable |
| { |
| [propget] HRESULT IsConfigured([out, retval] boolean *value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs), |
| uuid(58f1da35-bbb3-3c8f-993d-6c80e7feb99f) |
| ] |
| interface IHolographicSpaceCameraAddedEventArgs : IInspectable |
| { |
| [propget] HRESULT Camera([out, retval] Windows.Graphics.Holographic.HolographicCamera **value); |
| HRESULT GetDeferral([out, retval] Windows.Foundation.Deferral **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs), |
| uuid(805444a8-f2ae-322e-8da9-836a0a95a4c1) |
| ] |
| interface IHolographicSpaceCameraRemovedEventArgs : IInspectable |
| { |
| [propget] HRESULT Camera([out, retval] Windows.Graphics.Holographic.HolographicCamera **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicCamera |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicCamera; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicCameraPose |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicCameraPose; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicCameraRenderingParameters |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicCameraRenderingParameters; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicFrame |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicFrame; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicFramePrediction |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicFramePrediction; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| /* static(Windows.Graphics.Holographic.IHolographicSpaceStatics, Windows.Foundation.UniversalApiContract, 2.0), */ |
| static(Windows.Graphics.Holographic.IHolographicSpaceStatics2, Windows.Foundation.UniversalApiContract, 4.0), |
| static(Windows.Graphics.Holographic.IHolographicSpaceStatics3, Windows.Foundation.UniversalApiContract, 5.0), |
| threading(both) |
| ] |
| runtimeclass HolographicSpace |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicSpace; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicSpaceCameraAddedEventArgs |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraAddedEventArgs; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass HolographicSpaceCameraRemovedEventArgs |
| { |
| [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraRemovedEventArgs; |
| } |
| } |