Changeset 285846 in webkit
- Timestamp:
- Nov 15, 2021, 6:11:27 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 11 added
- 13 edited
- 1 copied
-
WTF/ChangeLog (modified) (1 diff)
-
WTF/Scripts/Preferences/WebPreferencesInternal.yaml (modified) (2 diffs)
-
WTF/wtf/PlatformHave.h (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Configurations/WebCore.xcconfig (modified) (1 diff)
-
WebCore/Modules/model-element/scenekit (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModel.h (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModel.mm (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoader.h (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoader.mm (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoaderClient.h (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoaderClient.mm (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoaderUSD.h (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.h (added)
-
WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.mm (added)
-
WebCore/PAL/ChangeLog (modified) (1 diff)
-
WebCore/PAL/PAL.xcodeproj/project.pbxproj (modified) (4 diffs)
-
WebCore/PAL/pal/spi/cocoa/SceneKitSPI.h (copied) (copied from trunk/Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp ) (1 diff)
-
WebCore/SourcesCocoa.txt (modified) (1 diff)
-
WebCore/WebCore.xcodeproj/project.pbxproj (modified) (5 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/WebProcess/Model/WebModelPlayerProvider.cpp (modified) (2 diffs)
-
WebKit/WebProcess/WebPage/WebPage.cpp (modified) (2 diffs)
-
WebKit/WebProcess/WebPage/WebPage.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r285841 r285846 1 2021-11-15 Sam Weinig <weinig@apple.com> 2 3 Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more 4 https://bugs.webkit.org/show_bug.cgi?id=233112 5 6 Reviewed by Dean Jackson. 7 8 * Scripts/Preferences/WebPreferencesInternal.yaml: 9 Add some internal settings to enable/disable the ARKit and SceneKit based 10 <model> backends. 11 12 * wtf/PlatformHave.h: 13 Add HAVE macro for SceneKit. Only enabled for macOS at the moment, but could 14 probably be enabled for iOS if it is useful. 15 1 16 2021-11-15 Eric Liang <ericliang@apple.com> 2 17 -
trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml
r285787 r285846 798 798 default: true 799 799 800 UseARKitForModel: 801 type: bool 802 humanReadableName: "Use ARKit for <model>" 803 humanReadableDescription: "Use ARKit for <model>" 804 webcoreBinding: none 805 exposed: [ WebKit ] 806 condition: ENABLE(ARKIT_INLINE_PREVIEW) 807 defaultValue: 808 WebKit: 809 default: true 810 800 811 UseCGDisplayListsForDOMRendering: 801 812 type: bool … … 819 830 WebKit: 820 831 default: defaultUseGPUProcessForDOMRenderingEnabled() 832 833 UseSceneKitForModel: 834 type: bool 835 humanReadableName: "Use SceneKit for <model>" 836 humanReadableDescription: "Use SceneKit for <model>" 837 webcoreBinding: none 838 exposed: [ WebKit ] 839 condition: HAVE(SCENEKIT) 840 defaultValue: 841 WebKit: 842 default: false 821 843 822 844 # FIXME: Remove once <rdar://73830961> has been fixed -
trunk/Source/WTF/wtf/PlatformHave.h
r285841 r285846 1091 1091 #define HAVE_NSTEXTLIST_MARKER_FORMATS 1 1092 1092 #endif 1093 1094 #if PLATFORM(MAC) 1095 #define HAVE_SCENEKIT 1 1096 #endif -
trunk/Source/WebCore/ChangeLog
r285838 r285846 1 2021-11-15 Sam Weinig <weinig@apple.com> 2 3 Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more 4 https://bugs.webkit.org/show_bug.cgi?id=233112 5 6 Reviewed by Dean Jackson. 7 8 Adds basic SceneKit based ModelPlayer implementation. Like the ARKit player, this one 9 also requires writing the USD file to a temporary file as SceneKit does not support 10 loading USD files from NSData, and therefore is not actually something that can be used 11 for production yet. 12 13 The player is backed by a SceneKitModel class, which is created via a SceneKitModelLoader. 14 Both SceneKitModel and SceneKitModelLoader are abstract so that different types of models 15 can be supported. Currently, there is only a USD loader implemented for parity with the 16 ARKit based implementation. 17 18 * SourcesCocoa.txt: 19 * WebCore.xcodeproj/project.pbxproj: 20 Add new files. 21 22 * Modules/model-element/scenekit: Added. 23 * Modules/model-element/scenekit/SceneKitModel.h: Added. 24 * Modules/model-element/scenekit/SceneKitModel.mm: Added. 25 Abstract base class for loader specific implementations. 26 27 * Modules/model-element/scenekit/SceneKitModelLoader.h: Added. 28 * Modules/model-element/scenekit/SceneKitModelLoader.mm: Added. 29 (WebCore::loadSceneKitModel): 30 Entry point where different loaders can be referenced for different 31 file types. As noted above, currenly only a USD loader is implementend. 32 33 * Modules/model-element/scenekit/SceneKitModelLoaderClient.h: Added. 34 * Modules/model-element/scenekit/SceneKitModelLoaderClient.mm: Added. 35 Interface to pass state back to whatever requested the load. 36 37 * Modules/model-element/scenekit/SceneKitModelLoaderUSD.h: Added. 38 * Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm: Added. 39 Loads USD file into a SCNScene which the client can attach to a 40 renderer (e.g. the SCNMetalLayer). 41 42 * Modules/model-element/scenekit/SceneKitModelPlayer.h: Added. 43 * Modules/model-element/scenekit/SceneKitModelPlayer.mm: Added. 44 The SceneKitModelPlayer uses loadSceneKitModel() to load and build 45 a SCNScene asynchonously that it then attaches to its SCNMetalLayer. 46 1 47 2021-11-15 Takashi Komori <Takashi.Komori@sony.com> 2 48 -
trunk/Source/WebCore/Configurations/WebCore.xcconfig
r284383 r285846 127 127 WK_URL_FORMATTING_LDFLAGS_YES = -framework URLFormatting; 128 128 129 WK_SCENEKIT_LDFLAGS = $(WK_SCENEKIT_LDFLAGS_$(WK_PLATFORM_NAME)); 130 WK_SCENEKIT_LDFLAGS_macosx = -weak_framework SceneKit; 131 129 132 // FIXME: Reduce the number of allowable_clients <rdar://problem/31823969> 130 OTHER_LDFLAGS = $(inherited) $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS) -lsqlite3 -lobjc -allowable_client WebCoreTestSupport -allowable_client WebKitLegacy -force_load $(BUILT_PRODUCTS_DIR)/libPAL.a -framework CFNetwork -framework CoreAudio -framework CoreGraphics -framework CoreText -framework Foundation -framework IOSurface -framework ImageIO -framework Metal $(OTHER_LDFLAGS_PLATFORM_$(WK_COCOA_TOUCH)) $(OTHER_LDFLAGS_PLATFORM_$(WK_PLATFORM_NAME)) $(WK_ANGLE_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_APPSUPPORT_LDFLAGS) $(WK_AUDIO_UNIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_UI_LDFLAGS) $(WK_DATA_DETECTORS_CORE_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_IOSURFACE_ACCELERATOR_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_NETWORK_EXTENSION_LD_FLAGS) $(WK_SYSTEM_CONFIGURATION_LDFLAGS) $(WK_CORE_IMAGE_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) ;133 OTHER_LDFLAGS = $(inherited) $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS) -lsqlite3 -lobjc -allowable_client WebCoreTestSupport -allowable_client WebKitLegacy -force_load $(BUILT_PRODUCTS_DIR)/libPAL.a -framework CFNetwork -framework CoreAudio -framework CoreGraphics -framework CoreText -framework Foundation -framework IOSurface -framework ImageIO -framework Metal $(OTHER_LDFLAGS_PLATFORM_$(WK_COCOA_TOUCH)) $(OTHER_LDFLAGS_PLATFORM_$(WK_PLATFORM_NAME)) $(WK_ANGLE_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_APPSUPPORT_LDFLAGS) $(WK_AUDIO_UNIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_UI_LDFLAGS) $(WK_DATA_DETECTORS_CORE_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_IOSURFACE_ACCELERATOR_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_NETWORK_EXTENSION_LD_FLAGS) $(WK_SYSTEM_CONFIGURATION_LDFLAGS) $(WK_CORE_IMAGE_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_SCENEKIT_LDFLAGS); 131 134 132 135 OTHER_LDFLAGS_PLATFORM_cocoatouch = -allowable_client WebKit -allowable_client iTunesU -allowable_client Casablanca -allowable_client Remote -allowable_client TVBooks -allowable_client DumpRenderTree -allowable_client WebKitTestRunner -allowable_client TestWebKitAPI; -
trunk/Source/WebCore/PAL/ChangeLog
r285836 r285846 1 2021-11-15 Sam Weinig <weinig@apple.com> 2 3 Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more 4 https://bugs.webkit.org/show_bug.cgi?id=233112 5 6 Reviewed by Dean Jackson. 7 8 * PAL.xcodeproj/project.pbxproj: 9 * pal/spi/cocoa/SceneKitSPI.h: Added. 10 Adds forward declaration of SCNMetalLayer SPI so SceneKit can be used 11 without an NSView/UIView. 12 1 13 2021-11-15 Jer Noble <jer.noble@apple.com> 2 14 -
trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
r285831 r285846 352 352 A3C66CDD1F462D6A009E6EE9 /* SessionID.h in Headers */ = {isa = PBXBuildFile; fileRef = A3C66CDB1F462D6A009E6EE9 /* SessionID.h */; }; 353 353 ABCA536824895DB900361BFF /* CoreMotionSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = ABCA536724895DB900361BFF /* CoreMotionSPI.h */; }; 354 BC4DDD9F273EF56E00660EBB /* SceneKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4DDD9E273EF56E00660EBB /* SceneKitSPI.h */; }; 354 355 C15CBB3523F3548A00300CC7 /* NSUserDefaultsSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = C15CBB3223F34A1200300CC7 /* NSUserDefaultsSPI.h */; }; 355 356 CD6122CC2559B6AC00FC657A /* OutputContext.h in Headers */ = {isa = PBXBuildFile; fileRef = CD6122CA2559B6AC00FC657A /* OutputContext.h */; }; … … 756 757 A3C66CDB1F462D6A009E6EE9 /* SessionID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionID.h; sourceTree = "<group>"; }; 757 758 ABCA536724895DB900361BFF /* CoreMotionSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreMotionSPI.h; sourceTree = "<group>"; }; 759 BC4DDD9E273EF56E00660EBB /* SceneKitSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitSPI.h; sourceTree = "<group>"; }; 758 760 C037494124127CCB00D9A36E /* AccessibilitySupportSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilitySupportSPI.h; sourceTree = "<group>"; }; 759 761 C138EA1A2436447200656DF1 /* CoreServicesSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreServicesSPI.h; sourceTree = "<group>"; }; … … 907 909 0C2DA13B1F3BEB4900DBC317 /* QuartzCoreSPI.h */, 908 910 442956CC218A72DE0080DB54 /* RevealSPI.h */, 911 BC4DDD9E273EF56E00660EBB /* SceneKitSPI.h */, 909 912 570AB8F020AE2E8D00B8BE87 /* SecKeyProxySPI.h */, 910 913 0C2DA13C1F3BEB4900DBC317 /* ServersSPI.h */, … … 1538 1541 F4974EA3265EEA2200B49B8C /* RevealSoftLink.h in Headers */, 1539 1542 442956CD218A72DF0080DB54 /* RevealSPI.h in Headers */, 1543 BC4DDD9F273EF56E00660EBB /* SceneKitSPI.h in Headers */, 1540 1544 570AB8F120AE2E8D00B8BE87 /* SecKeyProxySPI.h in Headers */, 1541 1545 0C2DA1581F3BEB4900DBC317 /* ServersSPI.h in Headers */, -
trunk/Source/WebCore/PAL/pal/spi/cocoa/SceneKitSPI.h
r285843 r285846 24 24 */ 25 25 26 #include "config.h" 27 #include "WebModelPlayerProvider.h" 26 #pragma once 28 27 29 #include <WebCore/ModelPlayer.h> 28 #if HAVE(SCENEKIT) 29 #if USE(APPLE_INTERNAL_SDK) 30 30 31 #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) 32 #include "ARKitInlinePreviewModelPlayer.h" 31 #import <SceneKit/SceneKitPrivate.h> 32 33 #else 34 35 #import <QuartzCore/CAMetalLayer.h> 36 #import <SceneKit/SceneKit.h> 37 38 @interface SCNMetalLayer : CAMetalLayer <SCNSceneRenderer, SCNTechniqueSupport> 39 @property (nonatomic, retain, nullable) SCNScene *scene; 40 @end 41 33 42 #endif 34 43 35 namespace WebKit { 36 37 WebModelPlayerProvider::WebModelPlayerProvider(WebPage& page) 38 : m_page { page } 39 { 40 UNUSED_PARAM(m_page); 41 } 42 43 WebModelPlayerProvider::~WebModelPlayerProvider() = default; 44 45 // MARK: - WebCore::ModelPlayerProvider overrides. 46 47 RefPtr<WebCore::ModelPlayer> WebModelPlayerProvider::createModelPlayer(WebCore::ModelPlayerClient& client) 48 { 49 #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) 50 return ARKitInlinePreviewModelPlayer::create(m_page, client); 51 #else 52 UNUSED_PARAM(client); 53 return nullptr; 54 #endif 55 } 56 57 } 44 #endif // HAVE(SCENEKIT) -
trunk/Source/WebCore/SourcesCocoa.txt
r285637 r285846 102 102 Modules/async-clipboard/mac/ClipboardImageReaderMac.mm 103 103 Modules/mediastream/RTCRtpSFrameTransformerCocoa.cpp 104 Modules/model-element/scenekit/SceneKitModel.mm 105 Modules/model-element/scenekit/SceneKitModelLoader.mm 106 Modules/model-element/scenekit/SceneKitModelLoaderClient.mm 107 Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm 108 Modules/model-element/scenekit/SceneKitModelPlayer.mm 104 109 Modules/speech/cocoa/SpeechRecognizerCocoa.mm 105 110 Modules/speech/cocoa/WebSpeechRecognizerTask.mm -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r285822 r285846 4111 4111 BC4A5339256063980028C592 /* FontRenderingMode.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4A5338256063980028C592 /* FontRenderingMode.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4112 4112 BC4A533B256064E10028C592 /* TextDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4A533A256064E10028C592 /* TextDirection.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4113 BC4DDD96273D949900660EBB /* SceneKitModelPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4DDD8F273D84E700660EBB /* SceneKitModelPlayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4114 BC4DDD97273D94A800660EBB /* SceneKitModelLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4DDD91273D84E700660EBB /* SceneKitModelLoaderClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4113 4115 BC51156E12B1749C00C96754 /* ScrollAnimatorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC51156D12B1749C00C96754 /* ScrollAnimatorMac.mm */; }; 4114 4116 BC53C5F50DA56B920021EB5D /* Gradient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC53C5F40DA56B920021EB5D /* Gradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 14826 14828 BC4A5338256063980028C592 /* FontRenderingMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontRenderingMode.h; sourceTree = "<group>"; }; 14827 14829 BC4A533A256064E10028C592 /* TextDirection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextDirection.h; sourceTree = "<group>"; }; 14830 BC4DDD8B273D84E700660EBB /* SceneKitModelLoaderUSD.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitModelLoaderUSD.h; sourceTree = "<group>"; }; 14831 BC4DDD8C273D84E700660EBB /* SceneKitModelLoaderClient.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SceneKitModelLoaderClient.mm; sourceTree = "<group>"; }; 14832 BC4DDD8D273D84E700660EBB /* SceneKitModelPlayer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SceneKitModelPlayer.mm; sourceTree = "<group>"; }; 14833 BC4DDD8E273D84E700660EBB /* SceneKitModelLoader.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SceneKitModelLoader.mm; sourceTree = "<group>"; }; 14834 BC4DDD8F273D84E700660EBB /* SceneKitModelPlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitModelPlayer.h; sourceTree = "<group>"; }; 14835 BC4DDD90273D84E700660EBB /* SceneKitModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitModel.h; sourceTree = "<group>"; }; 14836 BC4DDD91273D84E700660EBB /* SceneKitModelLoaderClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitModelLoaderClient.h; sourceTree = "<group>"; }; 14837 BC4DDD92273D84E700660EBB /* SceneKitModel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SceneKitModel.mm; sourceTree = "<group>"; }; 14838 BC4DDD93273D84E700660EBB /* SceneKitModelLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneKitModelLoader.h; sourceTree = "<group>"; }; 14839 BC4DDD94273D84E700660EBB /* SceneKitModelLoaderUSD.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SceneKitModelLoaderUSD.mm; sourceTree = "<group>"; }; 14828 14840 BC51156D12B1749C00C96754 /* ScrollAnimatorMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollAnimatorMac.mm; sourceTree = "<group>"; }; 14829 14841 BC51580A0C03D404008BB0EE /* JSHTMLDocumentCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLDocumentCustom.cpp; sourceTree = "<group>"; }; … … 23793 23805 children = ( 23794 23806 BC2B412227335E0C00A2D191 /* dummy */, 23807 BC4DDD8A273D84E700660EBB /* scenekit */, 23795 23808 71A3D1802562B8250064E2A6 /* HTMLModelElement.cpp */, 23796 23809 71A3D17D2562B8240064E2A6 /* HTMLModelElement.h */, … … 28391 28404 ); 28392 28405 path = dummy; 28406 sourceTree = "<group>"; 28407 }; 28408 BC4DDD8A273D84E700660EBB /* scenekit */ = { 28409 isa = PBXGroup; 28410 children = ( 28411 BC4DDD90273D84E700660EBB /* SceneKitModel.h */, 28412 BC4DDD92273D84E700660EBB /* SceneKitModel.mm */, 28413 BC4DDD93273D84E700660EBB /* SceneKitModelLoader.h */, 28414 BC4DDD8E273D84E700660EBB /* SceneKitModelLoader.mm */, 28415 BC4DDD91273D84E700660EBB /* SceneKitModelLoaderClient.h */, 28416 BC4DDD8C273D84E700660EBB /* SceneKitModelLoaderClient.mm */, 28417 BC4DDD8B273D84E700660EBB /* SceneKitModelLoaderUSD.h */, 28418 BC4DDD94273D84E700660EBB /* SceneKitModelLoaderUSD.mm */, 28419 BC4DDD8F273D84E700660EBB /* SceneKitModelPlayer.h */, 28420 BC4DDD8D273D84E700660EBB /* SceneKitModelPlayer.mm */, 28421 ); 28422 path = scenekit; 28393 28423 sourceTree = "<group>"; 28394 28424 }; … … 35919 35949 CDD7089718359F6F002B3DC6 /* SampleMap.h in Headers */, 35920 35950 49E911CB0EF86D47009D0CAF /* ScaleTransformOperation.h in Headers */, 35951 BC4DDD97273D94A800660EBB /* SceneKitModelLoaderClient.h in Headers */, 35952 BC4DDD96273D949900660EBB /* SceneKitModelPlayer.h in Headers */, 35921 35953 5DFE8F570D16477C0076E937 /* ScheduledAction.h in Headers */, 35922 35954 9BD0BF9312A42BF50072FD43 /* ScopedEventQueue.h in Headers */, -
trunk/Source/WebKit/ChangeLog
r285841 r285846 1 2021-11-15 Sam Weinig <weinig@apple.com> 2 3 Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more 4 https://bugs.webkit.org/show_bug.cgi?id=233112 5 6 Reviewed by Dean Jackson. 7 8 Add support for instantiating the new SceneKit backed ModelPlayer. 9 10 If both ARKit based ModelPlayer and SceneKit based ModelPlayer are enabled, 11 the ARKit one wins. 12 13 * WebProcess/Model/WebModelPlayerProvider.cpp: 14 (WebKit::WebModelPlayerProvider::createModelPlayer): 15 Add support for creating a SceneKit based ModelPlayer and add checks 16 for whether the backend is enabled. 17 18 * WebProcess/WebPage/WebPage.cpp: 19 (WebKit::WebPage::updatePreferences): 20 * WebProcess/WebPage/WebPage.h: 21 (WebKit::WebPage::useARKitForModel const): 22 (WebKit::WebPage::useSceneKitForModel const): 23 Add bits to store which <model> backends are enabled. 24 1 25 2021-11-15 Eric Liang <ericliang@apple.com> 2 26 -
trunk/Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp
r285637 r285846 27 27 #include "WebModelPlayerProvider.h" 28 28 29 #include "WebPage.h" 29 30 #include <WebCore/ModelPlayer.h> 30 31 31 32 #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) 32 33 #include "ARKitInlinePreviewModelPlayer.h" 34 #endif 35 36 #if HAVE(SCENEKIT) 37 #include <WebCore/SceneKitModelPlayer.h> 33 38 #endif 34 39 … … 47 52 RefPtr<WebCore::ModelPlayer> WebModelPlayerProvider::createModelPlayer(WebCore::ModelPlayerClient& client) 48 53 { 54 UNUSED_PARAM(client); 55 49 56 #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) 50 return ARKitInlinePreviewModelPlayer::create(m_page, client); 51 #else 52 UNUSED_PARAM(client); 57 if (m_page.useARKitForModel()) 58 return ARKitInlinePreviewModelPlayer::create(m_page, client); 59 #endif 60 #if HAVE(SCENEKIT) 61 if (m_page.useSceneKitForModel()) 62 return WebCore::SceneKitModelPlayer::create(client); 63 #endif 64 53 65 return nullptr; 54 #endif55 66 } 56 67 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r285731 r285846 4041 4041 #endif 4042 4042 4043 // FIXME: This should be automated by adding a new field in WebPreferences*.yaml 4044 // that indicates override state for captive portal mode. https://webkit.org/b/233100. 4043 4045 if (WebProcess::singleton().isCaptivePortalModeEnabled()) { 4044 4046 settings.setWebGLEnabled(false); … … 4079 4081 #endif 4080 4082 } 4083 4084 #if ENABLE(ARKIT_INLINE_PREVIEW) 4085 m_useARKitForModel = store.getBoolValueForKey(WebPreferencesKey::useARKitForModelKey()); 4086 #endif 4087 #if HAVE(SCENEKIT) 4088 m_useSceneKitForModel = store.getBoolValueForKey(WebPreferencesKey::useSceneKitForModelKey()); 4089 #endif 4081 4090 4082 4091 m_page->settingsDidChange(); -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r285640 r285846 1500 1500 #endif 1501 1501 1502 #if ENABLE(ARKIT_INLINE_PREVIEW) 1503 bool useARKitForModel() const { return m_useARKitForModel; }; 1504 #endif 1505 #if HAVE(SCENEKIT) 1506 bool useSceneKitForModel() const { return m_useSceneKitForModel; }; 1507 #endif 1508 1502 1509 private: 1503 1510 WebPage(WebCore::PageIdentifier, WebPageCreationParameters&&); … … 2369 2376 bool m_didUpdateRenderingAfterCommittingLoad { false }; 2370 2377 2378 #if ENABLE(ARKIT_INLINE_PREVIEW) 2379 bool m_useARKitForModel { false }; 2380 #endif 2381 #if HAVE(SCENEKIT) 2382 bool m_useSceneKitForModel { false }; 2383 #endif 2384 2371 2385 Vector<String> m_corsDisablingPatterns; 2372 2386
Note:
See TracChangeset
for help on using the changeset viewer.