haikuwebkit/Source/WebCore/Modules/webxr/XRVisibilityState.idl

35 lines
1.5 KiB
Plaintext
Raw Permalink Normal View History

[WebXR] IDLs, stubs and build configuration for WPE https://bugs.webkit.org/show_bug.cgi?id=208702 Reviewed by Dean Jackson. .: Added a new compile flag for WEBXR which depends on WEBGL. For the WPE port, added OpenXR detection and USE_OPENXR define to be used in the sources. It also adds a dependency between USE_OPENXR and ENABLE_WEBXR. Largely based on previous work by Žan Doberšek. * Source/cmake/FindOpenXR.cmake: Added. * Source/cmake/OptionsWPE.cmake: Added mandatory OpenXR dependency if WEBXR is enabled exposing USE_OPENXR to the build. * Source/cmake/WebKitFeatures.cmake: Added ENABLE_WEBXR. * Source/cmake/tools/vsprops/FeatureDefines.props: Ditto. * Source/cmake/tools/vsprops/FeatureDefinesCairo.props: Ditto. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Source/WebCore: Added the IDLs defined by the spec with very basic empty implementations to get them built. Apart from that a very basic implementation of the required platform code using OpenXR API was also added. No new tests as no new functionality was really added (empty implementations). However follow up patches will import the already available WPT tests for WebXR. Largely based on previous work by Žan Doberšek. * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. * DerivedSources.make: * Modules/webxr/NavigatorWebXR.cpp: Added. (WebCore::NavigatorWebXR::xr): (WebCore::NavigatorWebXR::from): * Modules/webxr/NavigatorWebXR.h: Added. * Modules/webxr/NavigatorWebXR.idl: Added. * Modules/webxr/WebXRBoundedReferenceSpace.cpp: Added. (WebCore::WebXRBoundedReferenceSpace::boundsGeometry const): * Modules/webxr/WebXRBoundedReferenceSpace.h: Added. * Modules/webxr/WebXRBoundedReferenceSpace.idl: Added. * Modules/webxr/WebXRFrame.cpp: Added. (WebCore::WebXRFrame::create): (WebCore::WebXRFrame::WebXRFrame): (WebCore::WebXRFrame::session const): (WebCore::WebXRFrame::getViewerPose): (WebCore::WebXRFrame::getPose): * Modules/webxr/WebXRFrame.h: Added. * Modules/webxr/WebXRFrame.idl: Added. * Modules/webxr/WebXRInputSource.cpp: Added. (WebCore::WebXRInputSource::create): (WebCore::WebXRInputSource::WebXRInputSource): (WebCore::WebXRInputSource::handedness const): (WebCore::WebXRInputSource::targetRayMode const): (WebCore::WebXRInputSource::targetRaySpace const): (WebCore::WebXRInputSource::gripSpace const): (WebCore::WebXRInputSource::profiles const): * Modules/webxr/WebXRInputSource.h: Added. * Modules/webxr/WebXRInputSource.idl: Added. * Modules/webxr/WebXRInputSourceArray.cpp: Added. (WebCore::WebXRInputSourceArray::length const): (WebCore::WebXRInputSourceArray::item const): * Modules/webxr/WebXRInputSourceArray.h: Added. * Modules/webxr/WebXRInputSourceArray.idl: Added. * Modules/webxr/WebXRPose.cpp: Added. (WebCore::WebXRPose::create): (WebCore::WebXRPose::WebXRPose): (WebCore::WebXRPose::transform const): (WebCore::WebXRPose::emulatedPosition const): * Modules/webxr/WebXRPose.h: Added. * Modules/webxr/WebXRPose.idl: Added. * Modules/webxr/WebXRReferenceSpace.cpp: Added. (WebCore::WebXRReferenceSpace::WebXRReferenceSpace): (WebCore::WebXRReferenceSpace::getOffsetReferenceSpace): * Modules/webxr/WebXRReferenceSpace.h: Added. * Modules/webxr/WebXRReferenceSpace.idl: Added. * Modules/webxr/WebXRRenderState.cpp: Added. (WebCore::WebXRRenderState::create): (WebCore::WebXRRenderState::WebXRRenderState): (WebCore::WebXRRenderState::depthNear const): (WebCore::WebXRRenderState::depthFar const): (WebCore::WebXRRenderState::inlineVerticalFieldOfView const): (WebCore::WebXRRenderState::baseLayer const): * Modules/webxr/WebXRRenderState.h: Added. * Modules/webxr/WebXRRenderState.idl: Added. * Modules/webxr/WebXRRigidTransform.cpp: Added. (WebCore::WebXRRigidTransform::create): (WebCore::WebXRRigidTransform::WebXRRigidTransform): (WebCore::WebXRRigidTransform::position const): (WebCore::WebXRRigidTransform::orientation const): (WebCore::WebXRRigidTransform::matrix const): (WebCore::WebXRRigidTransform::inverse const): * Modules/webxr/WebXRRigidTransform.h: Added. * Modules/webxr/WebXRRigidTransform.idl: Added. * Modules/webxr/WebXRSession.cpp: Added. (WebCore::WebXRSession::environmentBlendMode const): (WebCore::WebXRSession::visibilityState const): (WebCore::WebXRSession::renderState const): (WebCore::WebXRSession::inputSources const): (WebCore::WebXRSession::updateRenderState): (WebCore::WebXRSession::requestReferenceSpace): (WebCore::WebXRSession::requestAnimationFrame): (WebCore::WebXRSession::cancelAnimationFrame): (WebCore::WebXRSession::end): (WebCore::WebXRSession::activeDOMObjectName const): (WebCore::WebXRSession::stop): * Modules/webxr/WebXRSession.h: Added. * Modules/webxr/WebXRSession.idl: Added. * Modules/webxr/WebXRSpace.cpp: Added. (WebCore::WebXRSpace::WebXRSpace): * Modules/webxr/WebXRSpace.h: Added. * Modules/webxr/WebXRSpace.idl: Added. * Modules/webxr/WebXRSystem.cpp: Added. (WebCore::WebXRSystem::create): (WebCore::WebXRSystem::WebXRSystem): (WebCore::WebXRSystem::isSessionSupported): (WebCore::WebXRSystem::requestSession): (WebCore::WebXRSystem::activeDOMObjectName const): (WebCore::WebXRSystem::stop): * Modules/webxr/WebXRSystem.h: Added. * Modules/webxr/WebXRSystem.idl: Added. * Modules/webxr/WebXRView.cpp: Added. (WebCore::WebXRView::create): (WebCore::WebXRView::WebXRView): (WebCore::WebXRView::eye const): (WebCore::WebXRView::projectionMatrix const): (WebCore::WebXRView::transform const): * Modules/webxr/WebXRView.h: Added. * Modules/webxr/WebXRView.idl: Added. * Modules/webxr/WebXRViewerPose.cpp: Added. (WebCore::WebXRViewerPose::create): (WebCore::WebXRViewerPose::views const): * Modules/webxr/WebXRViewerPose.h: Added. * Modules/webxr/WebXRViewerPose.idl: Added. * Modules/webxr/WebXRViewport.cpp: Added. (WebCore::WebXRViewport::create): (WebCore::WebXRViewport::x const): (WebCore::WebXRViewport::y const): (WebCore::WebXRViewport::width const): (WebCore::WebXRViewport::height const): * Modules/webxr/WebXRViewport.h: Added. * Modules/webxr/WebXRViewport.idl: Added. * Modules/webxr/WebXRWebGLLayer.cpp: Added. (WebCore::WebXRWebGLLayer::create): (WebCore::WebXRWebGLLayer::WebXRWebGLLayer): (WebCore::WebXRWebGLLayer::antialias const): (WebCore::WebXRWebGLLayer::ignoreDepthValues const): (WebCore::WebXRWebGLLayer::framebuffer const): (WebCore::WebXRWebGLLayer::framebufferWidth const): (WebCore::WebXRWebGLLayer::framebufferHeight const): (WebCore::WebXRWebGLLayer::getViewport): (WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor): * Modules/webxr/WebXRWebGLLayer.h: Added. * Modules/webxr/WebXRWebGLLayer.idl: Added. * Modules/webxr/XREnvironmentBlendMode.h: Added. * Modules/webxr/XREnvironmentBlendMode.idl: Added. * Modules/webxr/XREye.h: Added. * Modules/webxr/XREye.idl: Added. * Modules/webxr/XRFrameRequestCallback.h: Added. * Modules/webxr/XRFrameRequestCallback.idl: Added. * Modules/webxr/XRHandedness.h: Added. * Modules/webxr/XRHandedness.idl: Added. * Modules/webxr/XRInputSourceEvent.cpp: Added. (WebCore::XRInputSourceEvent::create): (WebCore::XRInputSourceEvent::XRInputSourceEvent): (WebCore::XRInputSourceEvent::frame const): (WebCore::XRInputSourceEvent::inputSource const): (WebCore::XRInputSourceEvent::buttonIndex const): * Modules/webxr/XRInputSourceEvent.h: Added. * Modules/webxr/XRInputSourceEvent.idl: Added. * Modules/webxr/XRInputSourcesChangeEvent.cpp: Added. (WebCore::XRInputSourcesChangeEvent::create): (WebCore::XRInputSourcesChangeEvent::XRInputSourcesChangeEvent): (WebCore::XRInputSourcesChangeEvent::session const): (WebCore::XRInputSourcesChangeEvent::added const): (WebCore::XRInputSourcesChangeEvent::removed const): * Modules/webxr/XRInputSourcesChangeEvent.h: Added. * Modules/webxr/XRInputSourcesChangeEvent.idl: Added. * Modules/webxr/XRReferenceSpaceEvent.cpp: Added. (WebCore::XRReferenceSpaceEvent::create): (WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent): (WebCore::XRReferenceSpaceEvent::referenceSpace const): (WebCore::XRReferenceSpaceEvent::transform const): * Modules/webxr/XRReferenceSpaceEvent.h: Added. * Modules/webxr/XRReferenceSpaceEvent.idl: Added. * Modules/webxr/XRReferenceSpaceType.h: Added. * Modules/webxr/XRReferenceSpaceType.idl: Added. * Modules/webxr/XRRenderStateInit.h: Added. * Modules/webxr/XRRenderStateInit.idl: Added. * Modules/webxr/XRSessionEvent.cpp: Added. (WebCore::XRSessionEvent::create): (WebCore::XRSessionEvent::XRSessionEvent): (WebCore::XRSessionEvent::session const): * Modules/webxr/XRSessionEvent.h: Added. * Modules/webxr/XRSessionEvent.idl: Added. * Modules/webxr/XRSessionInit.h: Added. * Modules/webxr/XRSessionInit.idl: Added. * Modules/webxr/XRSessionMode.h: Added. * Modules/webxr/XRSessionMode.idl: Added. * Modules/webxr/XRTargetRayMode.h: Added. * Modules/webxr/XRTargetRayMode.idl: Added. * Modules/webxr/XRVisibilityState.h: Added. * Modules/webxr/XRVisibilityState.idl: Added. * Modules/webxr/XRWebGLLayerInit.h: Added. * Modules/webxr/XRWebGLLayerInit.idl: Added. * PlatformWPE.cmake: Added OpenXR libraries and include paths. * Sources.txt: Added new cpp files. * WebCore.xcodeproj/project.pbxproj: Added new files. * bindings/IDLTypes.h: Added SequenceStorageType. * bindings/js/JSDOMConvertSequences.h: * bindings/js/WebCoreBuiltinNames.h: * dom/EventNames.h: * dom/EventNames.in: Added WebXR events. * dom/EventTargetFactory.in: Added WebXR event targets. * page/RuntimeEnabledFeatures.h: Added new runtime feature for WebXR. (WebCore::RuntimeEnabledFeatures::setWebXREnabled): (WebCore::RuntimeEnabledFeatures::webXREnabled const): * platform/xr/PlatformXR.cpp: Added. * platform/xr/PlatformXR.h: Added. * platform/xr/openxr/PlatformXR.cpp: Added. (PlatformXR::createStructure): Utility function to create OpenXR structs. (PlatformXR::resultToString): Translates OpenXR error codes to strings. (PlatformXR::Instance::Impl::Impl): (PlatformXR::Instance::Impl::~Impl): (PlatformXR::Instance::singleton): Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. Source/WebKit: Added WebXR to the list of experimental features. * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. * Shared/WebPreferences.yaml: Added WebXR feature. * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultWebXREnabled): Set WebXR to off by default unless HAVE_SYSTEM_FEATURE_FLAGS. * Shared/WebPreferencesDefaultValues.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Tools: * Scripts/webkitperl/FeatureList.pm: Added WebXR. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Canonical link: https://commits.webkit.org/222040@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-03-16 15:49:47 +00:00
/*
* Copyright (C) 2020 Igalia S.L. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
[
Move RuntimeEnabledFeatures to Settings (Part 1) https://bugs.webkit.org/show_bug.cgi?id=224440 Reviewed by Alex Christensen. Move a few RuntimeEnabledFeatures to Settings to consolidate settings in one object and removes the need for additional boilerplate. This is now possible as Settings are now accessible in workers. Moves PeerConnectionEnabled, WebGLUsingMetal, WebGL2Enabled, WebGPUEnabled and MaskWebGLStringsEnabled. Source/WebCore: * Modules/mediastream/RTCAnswerOptions.idl: * Modules/mediastream/RTCCertificate.idl: * Modules/mediastream/RTCConfiguration.idl: * Modules/mediastream/RTCDTMFSender.idl: * Modules/mediastream/RTCDTMFToneChangeEvent.idl: * Modules/mediastream/RTCDataChannel.idl: * Modules/mediastream/RTCDataChannelEvent.idl: * Modules/mediastream/RTCIceCandidate.idl: * Modules/mediastream/RTCIceCandidateInit.idl: * Modules/mediastream/RTCIceConnectionState.idl: * Modules/mediastream/RTCIceGatheringState.idl: * Modules/mediastream/RTCIceServer.idl: * Modules/mediastream/RTCIceTransport.idl: * Modules/mediastream/RTCIceTransportState.idl: * Modules/mediastream/RTCOfferAnswerOptions.idl: * Modules/mediastream/RTCOfferOptions.idl: * Modules/mediastream/RTCPeerConnection.idl: * Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl: * Modules/mediastream/RTCPeerConnectionIceEvent.idl: * Modules/mediastream/RTCPeerConnectionState.idl: * Modules/mediastream/RTCPriorityType.idl: * Modules/mediastream/RTCRtcpParameters.idl: * Modules/mediastream/RTCRtpCapabilities.idl: * Modules/mediastream/RTCRtpCodecCapability.idl: * Modules/mediastream/RTCRtpCodecParameters.idl: * Modules/mediastream/RTCRtpCodingParameters.idl: * Modules/mediastream/RTCRtpContributingSource.idl: * Modules/mediastream/RTCRtpDecodingParameters.idl: * Modules/mediastream/RTCRtpEncodingParameters.idl: * Modules/mediastream/RTCRtpFecParameters.idl: * Modules/mediastream/RTCRtpHeaderExtensionParameters.idl: * Modules/mediastream/RTCRtpParameters.idl: * Modules/mediastream/RTCRtpReceiver.idl: * Modules/mediastream/RTCRtpRtxParameters.idl: * Modules/mediastream/RTCRtpSendParameters.idl: * Modules/mediastream/RTCRtpSender.idl: * Modules/mediastream/RTCRtpSynchronizationSource.idl: * Modules/mediastream/RTCRtpTransceiver.idl: * Modules/mediastream/RTCRtpTransceiverDirection.idl: * Modules/mediastream/RTCSdpType.idl: * Modules/mediastream/RTCSessionDescription.idl: * Modules/mediastream/RTCSignalingState.idl: * Modules/mediastream/RTCStatsReport.idl: * Modules/mediastream/RTCTrackEvent.idl: * Modules/webgpu/GPUBindGroupLayoutBinding.idl: * Modules/webgpu/GPUBindGroupLayoutDescriptor.idl: * Modules/webgpu/GPUBlendDescriptor.idl: * Modules/webgpu/GPUBufferDescriptor.idl: * Modules/webgpu/GPUBufferUsage.idl: * Modules/webgpu/GPUCanvasContext.idl: * Modules/webgpu/GPUColor.idl: * Modules/webgpu/GPUColorStateDescriptor.idl: * Modules/webgpu/GPUColorWrite.idl: * Modules/webgpu/GPUCompareFunction.idl: * Modules/webgpu/GPUDepthStencilStateDescriptor.idl: * Modules/webgpu/GPUErrorFilter.idl: * Modules/webgpu/GPUExtent3D.idl: * Modules/webgpu/GPULoadOp.idl: * Modules/webgpu/GPUOrigin3D.idl: * Modules/webgpu/GPUOutOfMemoryError.idl: * Modules/webgpu/GPURequestAdapterOptions.idl: * Modules/webgpu/GPUSamplerDescriptor.idl: * Modules/webgpu/GPUShaderStage.idl: * Modules/webgpu/GPUStoreOp.idl: * Modules/webgpu/GPUTextureDescriptor.idl: * Modules/webgpu/GPUTextureFormat.idl: * Modules/webgpu/GPUTextureUsage.idl: * Modules/webgpu/GPUUncapturedErrorEvent.idl: * Modules/webgpu/GPUValidationError.idl: * Modules/webgpu/GPUVertexAttributeDescriptor.idl: * Modules/webgpu/GPUVertexBufferDescriptor.idl: * Modules/webgpu/GPUVertexInputDescriptor.idl: * Modules/webgpu/Navigator+GPU.idl: * Modules/webgpu/NavigatorGPU.cpp: * Modules/webgpu/WebGPU.idl: * Modules/webgpu/WebGPUAdapter.idl: * Modules/webgpu/WebGPUBindGroup.idl: * Modules/webgpu/WebGPUBindGroupBinding.idl: * Modules/webgpu/WebGPUBindGroupDescriptor.idl: * Modules/webgpu/WebGPUBindGroupLayout.idl: * Modules/webgpu/WebGPUBuffer.idl: * Modules/webgpu/WebGPUBufferBinding.idl: * Modules/webgpu/WebGPUCommandBuffer.idl: * Modules/webgpu/WebGPUCommandEncoder.idl: * Modules/webgpu/WebGPUComputePassEncoder.idl: * Modules/webgpu/WebGPUComputePipeline.idl: * Modules/webgpu/WebGPUComputePipelineDescriptor.idl: * Modules/webgpu/WebGPUDevice.idl: * Modules/webgpu/WebGPUDeviceErrorScopes.idl: * Modules/webgpu/WebGPUDeviceEventHandler.idl: * Modules/webgpu/WebGPUPipelineDescriptorBase.idl: * Modules/webgpu/WebGPUPipelineLayout.idl: * Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl: * Modules/webgpu/WebGPUProgrammablePassEncoder.idl: * Modules/webgpu/WebGPUProgrammableStageDescriptor.idl: * Modules/webgpu/WebGPUQueue.idl: * Modules/webgpu/WebGPURenderPassDescriptor.idl: * Modules/webgpu/WebGPURenderPassEncoder.idl: * Modules/webgpu/WebGPURenderPipeline.idl: * Modules/webgpu/WebGPURenderPipelineDescriptor.idl: * Modules/webgpu/WebGPUSampler.idl: * Modules/webgpu/WebGPUShaderModule.idl: * Modules/webgpu/WebGPUShaderModuleDescriptor.idl: * Modules/webgpu/WebGPUSwapChain.idl: * Modules/webgpu/WebGPUTexture.idl: * Modules/webgpu/WebGPUTextureView.idl: * Modules/webgpu/WorkerNavigator+GPU.idl: * Modules/webgpu/WorkerNavigatorGPU.cpp: * Modules/webxr/Navigator+WebXR.idl: * Modules/webxr/WebXRBoundedReferenceSpace.idl: * Modules/webxr/WebXRFrame.idl: * Modules/webxr/WebXRInputSource.idl: * Modules/webxr/WebXRInputSourceArray.idl: * Modules/webxr/WebXRLayer.idl: * Modules/webxr/WebXRPose.idl: * Modules/webxr/WebXRReferenceSpace.idl: * Modules/webxr/WebXRRenderState.idl: * Modules/webxr/WebXRRigidTransform.idl: * Modules/webxr/WebXRSession.idl: * Modules/webxr/WebXRSpace.idl: * Modules/webxr/WebXRSystem.cpp: * Modules/webxr/WebXRSystem.idl: * Modules/webxr/WebXRView.idl: * Modules/webxr/WebXRViewerPose.idl: * Modules/webxr/WebXRViewport.idl: * Modules/webxr/WebXRWebGLLayer.idl: * Modules/webxr/XREnvironmentBlendMode.idl: * Modules/webxr/XREye.idl: * Modules/webxr/XRHandedness.idl: * Modules/webxr/XRInputSourceEvent.idl: * Modules/webxr/XRInputSourcesChangeEvent.idl: * Modules/webxr/XRInteractionMode.idl: * Modules/webxr/XRReferenceSpaceEvent.idl: * Modules/webxr/XRReferenceSpaceType.idl: * Modules/webxr/XRRenderStateInit.idl: * Modules/webxr/XRSessionEvent.idl: * Modules/webxr/XRSessionInit.idl: * Modules/webxr/XRSessionMode.idl: * Modules/webxr/XRTargetRayMode.idl: * Modules/webxr/XRVisibilityState.idl: * Modules/webxr/XRWebGLLayerInit.idl: * html/HTMLCanvasElement.cpp: * html/canvas/WebGL2RenderingContext.cpp: * html/canvas/WebGL2RenderingContext.idl: * html/canvas/WebGLRenderingContextBase.cpp: * html/canvas/WebGLTransformFeedback.idl: * html/canvas/WebGLVertexArrayObject.idl: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::peerConnectionEnabled const): Deleted. (WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::setWebGLUsingMetal): Deleted. (WebCore::RuntimeEnabledFeatures::webGLUsingMetal const): Deleted. (WebCore::RuntimeEnabledFeatures::setWebGL2Enabled): Deleted. (WebCore::RuntimeEnabledFeatures::webGL2Enabled const): Deleted. (WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::webGPUEnabled const): Deleted. (WebCore::RuntimeEnabledFeatures::setMaskWebGLStringsEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::maskWebGLStringsEnabled const): Deleted. * testing/FakeXRBoundsPoint.idl: * testing/FakeXRButtonStateInit.idl: * testing/FakeXRInputSourceInit.idl: * testing/FakeXRRigidTransformInit.idl: * testing/FakeXRViewInit.idl: * testing/InternalSettings.cpp: (WebCore::InternalSettings::Backup::Backup): (WebCore::InternalSettings::Backup::restoreTo): (WebCore::InternalSettings::setWebGL2Enabled): Deleted. (WebCore::InternalSettings::setWebGPUEnabled): Deleted. * testing/InternalSettings.h: * testing/InternalSettings.idl: * testing/Internals.cpp: * testing/WebFakeXRDevice.idl: * testing/WebFakeXRInputController.idl: * testing/WebXRTest.idl: * testing/XRSimulateUserActivationFunction.idl: Source/WebKit: * WebProcess/Inspector/RemoteWebInspectorUI.cpp: (WebKit::RemoteWebInspectorUI::RemoteWebInspectorUI): * WebProcess/Inspector/WebInspectorUI.cpp: (WebKit::WebInspectorUI::enableFrontendFeatures): (WebKit::WebInspectorUI::WebInspectorUI): * WebProcess/Inspector/WebInspectorUI.h: Source/WTF: * Scripts/Preferences/WebPreferences.yaml: * Scripts/Preferences/WebPreferencesExperimental.yaml: Canonical link: https://commits.webkit.org/236686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276204 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-04-17 20:07:30 +00:00
EnabledBySetting=WebXR,
Conditional=WEBXR,
ExportMacro=WEBCORE_EXPORT
[WebXR] IDLs, stubs and build configuration for WPE https://bugs.webkit.org/show_bug.cgi?id=208702 Reviewed by Dean Jackson. .: Added a new compile flag for WEBXR which depends on WEBGL. For the WPE port, added OpenXR detection and USE_OPENXR define to be used in the sources. It also adds a dependency between USE_OPENXR and ENABLE_WEBXR. Largely based on previous work by Žan Doberšek. * Source/cmake/FindOpenXR.cmake: Added. * Source/cmake/OptionsWPE.cmake: Added mandatory OpenXR dependency if WEBXR is enabled exposing USE_OPENXR to the build. * Source/cmake/WebKitFeatures.cmake: Added ENABLE_WEBXR. * Source/cmake/tools/vsprops/FeatureDefines.props: Ditto. * Source/cmake/tools/vsprops/FeatureDefinesCairo.props: Ditto. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Source/WebCore: Added the IDLs defined by the spec with very basic empty implementations to get them built. Apart from that a very basic implementation of the required platform code using OpenXR API was also added. No new tests as no new functionality was really added (empty implementations). However follow up patches will import the already available WPT tests for WebXR. Largely based on previous work by Žan Doberšek. * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. * DerivedSources.make: * Modules/webxr/NavigatorWebXR.cpp: Added. (WebCore::NavigatorWebXR::xr): (WebCore::NavigatorWebXR::from): * Modules/webxr/NavigatorWebXR.h: Added. * Modules/webxr/NavigatorWebXR.idl: Added. * Modules/webxr/WebXRBoundedReferenceSpace.cpp: Added. (WebCore::WebXRBoundedReferenceSpace::boundsGeometry const): * Modules/webxr/WebXRBoundedReferenceSpace.h: Added. * Modules/webxr/WebXRBoundedReferenceSpace.idl: Added. * Modules/webxr/WebXRFrame.cpp: Added. (WebCore::WebXRFrame::create): (WebCore::WebXRFrame::WebXRFrame): (WebCore::WebXRFrame::session const): (WebCore::WebXRFrame::getViewerPose): (WebCore::WebXRFrame::getPose): * Modules/webxr/WebXRFrame.h: Added. * Modules/webxr/WebXRFrame.idl: Added. * Modules/webxr/WebXRInputSource.cpp: Added. (WebCore::WebXRInputSource::create): (WebCore::WebXRInputSource::WebXRInputSource): (WebCore::WebXRInputSource::handedness const): (WebCore::WebXRInputSource::targetRayMode const): (WebCore::WebXRInputSource::targetRaySpace const): (WebCore::WebXRInputSource::gripSpace const): (WebCore::WebXRInputSource::profiles const): * Modules/webxr/WebXRInputSource.h: Added. * Modules/webxr/WebXRInputSource.idl: Added. * Modules/webxr/WebXRInputSourceArray.cpp: Added. (WebCore::WebXRInputSourceArray::length const): (WebCore::WebXRInputSourceArray::item const): * Modules/webxr/WebXRInputSourceArray.h: Added. * Modules/webxr/WebXRInputSourceArray.idl: Added. * Modules/webxr/WebXRPose.cpp: Added. (WebCore::WebXRPose::create): (WebCore::WebXRPose::WebXRPose): (WebCore::WebXRPose::transform const): (WebCore::WebXRPose::emulatedPosition const): * Modules/webxr/WebXRPose.h: Added. * Modules/webxr/WebXRPose.idl: Added. * Modules/webxr/WebXRReferenceSpace.cpp: Added. (WebCore::WebXRReferenceSpace::WebXRReferenceSpace): (WebCore::WebXRReferenceSpace::getOffsetReferenceSpace): * Modules/webxr/WebXRReferenceSpace.h: Added. * Modules/webxr/WebXRReferenceSpace.idl: Added. * Modules/webxr/WebXRRenderState.cpp: Added. (WebCore::WebXRRenderState::create): (WebCore::WebXRRenderState::WebXRRenderState): (WebCore::WebXRRenderState::depthNear const): (WebCore::WebXRRenderState::depthFar const): (WebCore::WebXRRenderState::inlineVerticalFieldOfView const): (WebCore::WebXRRenderState::baseLayer const): * Modules/webxr/WebXRRenderState.h: Added. * Modules/webxr/WebXRRenderState.idl: Added. * Modules/webxr/WebXRRigidTransform.cpp: Added. (WebCore::WebXRRigidTransform::create): (WebCore::WebXRRigidTransform::WebXRRigidTransform): (WebCore::WebXRRigidTransform::position const): (WebCore::WebXRRigidTransform::orientation const): (WebCore::WebXRRigidTransform::matrix const): (WebCore::WebXRRigidTransform::inverse const): * Modules/webxr/WebXRRigidTransform.h: Added. * Modules/webxr/WebXRRigidTransform.idl: Added. * Modules/webxr/WebXRSession.cpp: Added. (WebCore::WebXRSession::environmentBlendMode const): (WebCore::WebXRSession::visibilityState const): (WebCore::WebXRSession::renderState const): (WebCore::WebXRSession::inputSources const): (WebCore::WebXRSession::updateRenderState): (WebCore::WebXRSession::requestReferenceSpace): (WebCore::WebXRSession::requestAnimationFrame): (WebCore::WebXRSession::cancelAnimationFrame): (WebCore::WebXRSession::end): (WebCore::WebXRSession::activeDOMObjectName const): (WebCore::WebXRSession::stop): * Modules/webxr/WebXRSession.h: Added. * Modules/webxr/WebXRSession.idl: Added. * Modules/webxr/WebXRSpace.cpp: Added. (WebCore::WebXRSpace::WebXRSpace): * Modules/webxr/WebXRSpace.h: Added. * Modules/webxr/WebXRSpace.idl: Added. * Modules/webxr/WebXRSystem.cpp: Added. (WebCore::WebXRSystem::create): (WebCore::WebXRSystem::WebXRSystem): (WebCore::WebXRSystem::isSessionSupported): (WebCore::WebXRSystem::requestSession): (WebCore::WebXRSystem::activeDOMObjectName const): (WebCore::WebXRSystem::stop): * Modules/webxr/WebXRSystem.h: Added. * Modules/webxr/WebXRSystem.idl: Added. * Modules/webxr/WebXRView.cpp: Added. (WebCore::WebXRView::create): (WebCore::WebXRView::WebXRView): (WebCore::WebXRView::eye const): (WebCore::WebXRView::projectionMatrix const): (WebCore::WebXRView::transform const): * Modules/webxr/WebXRView.h: Added. * Modules/webxr/WebXRView.idl: Added. * Modules/webxr/WebXRViewerPose.cpp: Added. (WebCore::WebXRViewerPose::create): (WebCore::WebXRViewerPose::views const): * Modules/webxr/WebXRViewerPose.h: Added. * Modules/webxr/WebXRViewerPose.idl: Added. * Modules/webxr/WebXRViewport.cpp: Added. (WebCore::WebXRViewport::create): (WebCore::WebXRViewport::x const): (WebCore::WebXRViewport::y const): (WebCore::WebXRViewport::width const): (WebCore::WebXRViewport::height const): * Modules/webxr/WebXRViewport.h: Added. * Modules/webxr/WebXRViewport.idl: Added. * Modules/webxr/WebXRWebGLLayer.cpp: Added. (WebCore::WebXRWebGLLayer::create): (WebCore::WebXRWebGLLayer::WebXRWebGLLayer): (WebCore::WebXRWebGLLayer::antialias const): (WebCore::WebXRWebGLLayer::ignoreDepthValues const): (WebCore::WebXRWebGLLayer::framebuffer const): (WebCore::WebXRWebGLLayer::framebufferWidth const): (WebCore::WebXRWebGLLayer::framebufferHeight const): (WebCore::WebXRWebGLLayer::getViewport): (WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor): * Modules/webxr/WebXRWebGLLayer.h: Added. * Modules/webxr/WebXRWebGLLayer.idl: Added. * Modules/webxr/XREnvironmentBlendMode.h: Added. * Modules/webxr/XREnvironmentBlendMode.idl: Added. * Modules/webxr/XREye.h: Added. * Modules/webxr/XREye.idl: Added. * Modules/webxr/XRFrameRequestCallback.h: Added. * Modules/webxr/XRFrameRequestCallback.idl: Added. * Modules/webxr/XRHandedness.h: Added. * Modules/webxr/XRHandedness.idl: Added. * Modules/webxr/XRInputSourceEvent.cpp: Added. (WebCore::XRInputSourceEvent::create): (WebCore::XRInputSourceEvent::XRInputSourceEvent): (WebCore::XRInputSourceEvent::frame const): (WebCore::XRInputSourceEvent::inputSource const): (WebCore::XRInputSourceEvent::buttonIndex const): * Modules/webxr/XRInputSourceEvent.h: Added. * Modules/webxr/XRInputSourceEvent.idl: Added. * Modules/webxr/XRInputSourcesChangeEvent.cpp: Added. (WebCore::XRInputSourcesChangeEvent::create): (WebCore::XRInputSourcesChangeEvent::XRInputSourcesChangeEvent): (WebCore::XRInputSourcesChangeEvent::session const): (WebCore::XRInputSourcesChangeEvent::added const): (WebCore::XRInputSourcesChangeEvent::removed const): * Modules/webxr/XRInputSourcesChangeEvent.h: Added. * Modules/webxr/XRInputSourcesChangeEvent.idl: Added. * Modules/webxr/XRReferenceSpaceEvent.cpp: Added. (WebCore::XRReferenceSpaceEvent::create): (WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent): (WebCore::XRReferenceSpaceEvent::referenceSpace const): (WebCore::XRReferenceSpaceEvent::transform const): * Modules/webxr/XRReferenceSpaceEvent.h: Added. * Modules/webxr/XRReferenceSpaceEvent.idl: Added. * Modules/webxr/XRReferenceSpaceType.h: Added. * Modules/webxr/XRReferenceSpaceType.idl: Added. * Modules/webxr/XRRenderStateInit.h: Added. * Modules/webxr/XRRenderStateInit.idl: Added. * Modules/webxr/XRSessionEvent.cpp: Added. (WebCore::XRSessionEvent::create): (WebCore::XRSessionEvent::XRSessionEvent): (WebCore::XRSessionEvent::session const): * Modules/webxr/XRSessionEvent.h: Added. * Modules/webxr/XRSessionEvent.idl: Added. * Modules/webxr/XRSessionInit.h: Added. * Modules/webxr/XRSessionInit.idl: Added. * Modules/webxr/XRSessionMode.h: Added. * Modules/webxr/XRSessionMode.idl: Added. * Modules/webxr/XRTargetRayMode.h: Added. * Modules/webxr/XRTargetRayMode.idl: Added. * Modules/webxr/XRVisibilityState.h: Added. * Modules/webxr/XRVisibilityState.idl: Added. * Modules/webxr/XRWebGLLayerInit.h: Added. * Modules/webxr/XRWebGLLayerInit.idl: Added. * PlatformWPE.cmake: Added OpenXR libraries and include paths. * Sources.txt: Added new cpp files. * WebCore.xcodeproj/project.pbxproj: Added new files. * bindings/IDLTypes.h: Added SequenceStorageType. * bindings/js/JSDOMConvertSequences.h: * bindings/js/WebCoreBuiltinNames.h: * dom/EventNames.h: * dom/EventNames.in: Added WebXR events. * dom/EventTargetFactory.in: Added WebXR event targets. * page/RuntimeEnabledFeatures.h: Added new runtime feature for WebXR. (WebCore::RuntimeEnabledFeatures::setWebXREnabled): (WebCore::RuntimeEnabledFeatures::webXREnabled const): * platform/xr/PlatformXR.cpp: Added. * platform/xr/PlatformXR.h: Added. * platform/xr/openxr/PlatformXR.cpp: Added. (PlatformXR::createStructure): Utility function to create OpenXR structs. (PlatformXR::resultToString): Translates OpenXR error codes to strings. (PlatformXR::Instance::Impl::Impl): (PlatformXR::Instance::Impl::~Impl): (PlatformXR::Instance::singleton): Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. Source/WebKit: Added WebXR to the list of experimental features. * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default. * Shared/WebPreferences.yaml: Added WebXR feature. * Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultWebXREnabled): Set WebXR to off by default unless HAVE_SYSTEM_FEATURE_FLAGS. * Shared/WebPreferencesDefaultValues.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Tools: * Scripts/webkitperl/FeatureList.pm: Added WebXR. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default. Canonical link: https://commits.webkit.org/222040@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-03-16 15:49:47 +00:00
] enum XRVisibilityState {
"visible",
"visible-blurred",
"hidden"
};