Changeset 213762 in webkit


Ignore:
Timestamp:
Mar 11, 2017 3:09:26 PM (7 years ago)
Author:
dino@apple.com
Message:

WebGPU prototype - Front-End
https://bugs.webkit.org/show_bug.cgi?id=167952

Patch by Jon Lee <jonlee@apple.com> on 2017-03-11
Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h: Add WebGPU objects.

Source/WebCore:

This patch adds all of the relevant front-end files, and builds successfully when
ENABLE(WEBGPU) is off. For the back-end components that are not yet
implemented, a stub was added with a FIXME.

  • DerivedSources.make: Add all the new IDL files.
  • WebCore.xcodeproj/project.pbxproj: New IDL, front-end and generated files.

JS custom bindings.

  • bindings/js/JSDocumentCustom.cpp: Add WebGPU clause for getCSSCanvasContext.
  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):

  • bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp: Added.
  • bindings/js/JSWebGPURenderingContextCustom.cpp: Added.
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebGPUType):
(WebCore::HTMLCanvasElement::getContextWebGPU):
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::isGPU):
(WebCore::HTMLCanvasElement::getContextWebGPU): For release builds, switch to ASSERT_UNUSED.

  • html/HTMLCanvasElement.h:
  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::isGPU):

.cpp, .h, .idl files, wrapped in WEBGPU conditional, and enabled at runtime.

  • html/canvas/WebGPUBuffer:
  • html/canvas/WebGPUCommandBuffer:
  • html/canvas/WebGPUCommandQueue:
  • html/canvas/WebGPUDepthStencilDescriptor:
  • html/canvas/WebGPUDepthStencilState:
  • html/canvas/WebGPUDrawable:
  • html/canvas/WebGPUEnums:
  • html/canvas/WebGPUFunction:
  • html/canvas/WebGPULibrary:
  • html/canvas/WebGPUObject (no IDL):
  • html/canvas/WebGPURenderCommandEncoder:
  • html/canvas/WebGPURenderPassAttachmentDescriptor:
  • html/canvas/WebGPURenderPassColorAttachmentDescriptor:
  • html/canvas/WebGPURenderPassDepthAttachmentDescriptor:
  • html/canvas/WebGPURenderPassDescriptor:
  • html/canvas/WebGPURenderPipelineColorAttachmentDescriptor:
  • html/canvas/WebGPURenderPipelineDescriptor:
  • html/canvas/WebGPURenderPipelineState:
  • html/canvas/WebGPURenderingContext:
  • html/canvas/WebGPUTexture:
  • html/canvas/WebGPUTextureDescriptor: Add stubs.
Location:
trunk/Source
Files:
17 added
11 edited
47 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r213753 r213762  
     12017-03-11  Jon Lee  <jonlee@apple.com>
     2
     3        WebGPU prototype - Front-End
     4        https://bugs.webkit.org/show_bug.cgi?id=167952
     5
     6        Reviewed by Dean Jackson.
     7
     8        * runtime/CommonIdentifiers.h: Add WebGPU objects.
     9
    1102017-03-10  Filip Pizlo  <fpizlo@apple.com>
    211
  • trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h

    r213676 r213762  
    127127    macro(WebGL2RenderingContext) \
    128128    macro(WebGLVertexArrayObject) \
     129    macro(WebGPUBuffer) \
     130    macro(WebGPUCommandBuffer) \
     131    macro(WebGPUCommandQueue) \
     132    macro(WebGPUDepthStencilDescriptor) \
     133    macro(WebGPUDepthStencilState) \
     134    macro(WebGPUDrawable) \
     135    macro(WebGPUFunction) \
     136    macro(WebGPULibrary) \
     137    macro(WebGPURenderCommandEncoder) \
     138    macro(WebGPURenderPassAttachmentDescriptor) \
     139    macro(WebGPURenderPassColorAttachmentDescriptor) \
     140    macro(WebGPURenderPassDepthAttachmentDescriptor) \
     141    macro(WebGPURenderPassDescriptor) \
     142    macro(WebGPURenderPipelineColorAttachmentDescriptor) \
     143    macro(WebGPURenderPipelineDescriptor) \
     144    macro(WebGPURenderPipelineState) \
     145    macro(WebGPURenderingContext) \
     146    macro(WebGPUTexture) \
     147    macro(WebGPUTextureDescriptor) \
    129148    macro(WebSocket) \
    130149    macro(__defineGetter__) \
  • trunk/Source/WebCore/ChangeLog

    r213759 r213762  
     12017-03-11  Jon Lee  <jonlee@apple.com>
     2
     3        WebGPU prototype - Front-End
     4        https://bugs.webkit.org/show_bug.cgi?id=167952
     5
     6        Reviewed by Dean Jackson.
     7
     8        This patch adds all of the relevant front-end files, and builds successfully when
     9        ENABLE(WEBGPU) is off. For the back-end components that are not yet
     10        implemented, a stub was added with a FIXME.
     11
     12        * DerivedSources.make: Add all the new IDL files.
     13        * WebCore.xcodeproj/project.pbxproj: New IDL, front-end and generated files.
     14
     15        JS custom bindings.
     16        * bindings/js/JSDocumentCustom.cpp: Add WebGPU clause for getCSSCanvasContext.
     17        * bindings/js/JSHTMLCanvasElementCustom.cpp:
     18        (WebCore::JSHTMLCanvasElement::getContext):
     19        * bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp: Added.
     20        * bindings/js/JSWebGPURenderingContextCustom.cpp: Added.
     21        * html/HTMLCanvasElement.cpp:
     22        (WebCore::HTMLCanvasElement::getContext):
     23        (WebCore::HTMLCanvasElement::isWebGPUType):
     24        (WebCore::HTMLCanvasElement::getContextWebGPU):
     25        (WebCore::HTMLCanvasElement::reset):
     26        (WebCore::HTMLCanvasElement::paint):
     27        (WebCore::HTMLCanvasElement::isGPU):
     28        (WebCore::HTMLCanvasElement::getContextWebGPU): For release builds, switch to ASSERT_UNUSED.
     29        * html/HTMLCanvasElement.h:
     30        * html/canvas/CanvasRenderingContext.h:
     31        (WebCore::CanvasRenderingContext::isGPU):
     32
     33        .cpp, .h, .idl files, wrapped in WEBGPU conditional, and enabled at runtime.
     34        * html/canvas/WebGPUBuffer:
     35        * html/canvas/WebGPUCommandBuffer:
     36        * html/canvas/WebGPUCommandQueue:
     37        * html/canvas/WebGPUDepthStencilDescriptor:
     38        * html/canvas/WebGPUDepthStencilState:
     39        * html/canvas/WebGPUDrawable:
     40        * html/canvas/WebGPUEnums:
     41        * html/canvas/WebGPUFunction:
     42        * html/canvas/WebGPULibrary:
     43        * html/canvas/WebGPUObject (no IDL):
     44        * html/canvas/WebGPURenderCommandEncoder:
     45        * html/canvas/WebGPURenderPassAttachmentDescriptor:
     46        * html/canvas/WebGPURenderPassColorAttachmentDescriptor:
     47        * html/canvas/WebGPURenderPassDepthAttachmentDescriptor:
     48        * html/canvas/WebGPURenderPassDescriptor:
     49        * html/canvas/WebGPURenderPipelineColorAttachmentDescriptor:
     50        * html/canvas/WebGPURenderPipelineDescriptor:
     51        * html/canvas/WebGPURenderPipelineState:
     52        * html/canvas/WebGPURenderingContext:
     53        * html/canvas/WebGPUTexture:
     54        * html/canvas/WebGPUTextureDescriptor:  Add stubs.
     55
    1562017-03-11  Brady Eidson  <beidson@apple.com>
    257
  • trunk/Source/WebCore/DerivedSources.make

    r213673 r213762  
    1 # Copyright (C) 2006-2008, 2012, 2014-2015 Apple Inc. All rights reserved.
     1# Copyright (C) 2006-2008, 2012, 2014-2015, 2017 Apple Inc. All rights reserved.
    22# Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
    33# Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
     
    563563    $(WebCore)/html/canvas/WebGLVertexArrayObject.idl \
    564564    $(WebCore)/html/canvas/WebGLVertexArrayObjectOES.idl \
     565    $(WebCore)/html/canvas/WebGPUBuffer.idl \
     566    $(WebCore)/html/canvas/WebGPUCommandBuffer.idl \
     567    $(WebCore)/html/canvas/WebGPUCommandQueue.idl \
     568    $(WebCore)/html/canvas/WebGPUDepthStencilDescriptor.idl \
     569    $(WebCore)/html/canvas/WebGPUDepthStencilState.idl \
     570    $(WebCore)/html/canvas/WebGPUDrawable.idl \
     571    $(WebCore)/html/canvas/WebGPUFunction.idl \
     572    $(WebCore)/html/canvas/WebGPULibrary.idl \
     573    $(WebCore)/html/canvas/WebGPURenderCommandEncoder.idl \
     574    $(WebCore)/html/canvas/WebGPURenderingContext.idl \
     575    $(WebCore)/html/canvas/WebGPURenderPassAttachmentDescriptor.idl \
     576    $(WebCore)/html/canvas/WebGPURenderPassColorAttachmentDescriptor.idl \
     577    $(WebCore)/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.idl \
     578    $(WebCore)/html/canvas/WebGPURenderPassDescriptor.idl \
     579    $(WebCore)/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl \
     580    $(WebCore)/html/canvas/WebGPURenderPipelineDescriptor.idl \
     581    $(WebCore)/html/canvas/WebGPURenderPipelineState.idl \
     582    $(WebCore)/html/canvas/WebGPUTexture.idl \
     583    $(WebCore)/html/canvas/WebGPUTextureDescriptor.idl \
    565584    $(WebCore)/html/track/AudioTrack.idl \
    566585    $(WebCore)/html/track/AudioTrackList.idl \
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r213759 r213762  
    14061406                319AE064142D6B24006563A1 /* StyleFilterData.h in Headers */ = {isa = PBXBuildFile; fileRef = 319AE062142D6B24006563A1 /* StyleFilterData.h */; settings = {ATTRIBUTES = (Private, ); }; };
    14071407                319FBD5F15D2F464009640A6 /* CachedImageClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 319FBD5D15D2F444009640A6 /* CachedImageClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1408                31A089041E737D51003B6609 /* WebGPUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088C61E737B4D003B6609 /* WebGPUBuffer.cpp */; };
     1409                31A089051E737D51003B6609 /* WebGPUCommandBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088C91E737B4D003B6609 /* WebGPUCommandBuffer.cpp */; };
     1410                31A089061E737D51003B6609 /* WebGPUCommandQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088CC1E737B4D003B6609 /* WebGPUCommandQueue.cpp */; };
     1411                31A089071E737D51003B6609 /* WebGPUDepthStencilDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088CF1E737B4D003B6609 /* WebGPUDepthStencilDescriptor.cpp */; };
     1412                31A089081E737D51003B6609 /* WebGPUDepthStencilState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088D21E737B4D003B6609 /* WebGPUDepthStencilState.cpp */; };
     1413                31A089091E737D51003B6609 /* WebGPUDrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088D51E737B4D003B6609 /* WebGPUDrawable.cpp */; };
     1414                31A0890A1E737D51003B6609 /* WebGPUEnums.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088D81E737B4D003B6609 /* WebGPUEnums.cpp */; };
     1415                31A0890B1E737D51003B6609 /* WebGPUFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088DB1E737B4D003B6609 /* WebGPUFunction.cpp */; };
     1416                31A0890C1E737D51003B6609 /* WebGPULibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088DE1E737B4D003B6609 /* WebGPULibrary.cpp */; };
     1417                31A0890D1E737D51003B6609 /* WebGPUObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088E11E737B4D003B6609 /* WebGPUObject.cpp */; };
     1418                31A0890E1E737D51003B6609 /* WebGPURenderCommandEncoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088E31E737B4D003B6609 /* WebGPURenderCommandEncoder.cpp */; };
     1419                31A0890F1E737D51003B6609 /* WebGPURenderingContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088E61E737B4D003B6609 /* WebGPURenderingContext.cpp */; };
     1420                31A089101E737D51003B6609 /* WebGPURenderPassAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088E91E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.cpp */; };
     1421                31A089111E737D51003B6609 /* WebGPURenderPassColorAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088EC1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.cpp */; };
     1422                31A089121E737D51003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088EF1E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.cpp */; };
     1423                31A089131E737D51003B6609 /* WebGPURenderPassDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088F21E737B4D003B6609 /* WebGPURenderPassDescriptor.cpp */; };
     1424                31A089141E737D51003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088F51E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp */; };
     1425                31A089151E737D51003B6609 /* WebGPURenderPipelineDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088F81E737B4D003B6609 /* WebGPURenderPipelineDescriptor.cpp */; };
     1426                31A089161E737D51003B6609 /* WebGPURenderPipelineState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088FB1E737B4D003B6609 /* WebGPURenderPipelineState.cpp */; };
     1427                31A089171E737D51003B6609 /* WebGPUTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088FE1E737B4D003B6609 /* WebGPUTexture.cpp */; };
     1428                31A089181E737D51003B6609 /* WebGPUTextureDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089011E737B4D003B6609 /* WebGPUTextureDescriptor.cpp */; };
     1429                31A089191E737D55003B6609 /* JSWebGPURenderingContextCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088C41E737B2C003B6609 /* JSWebGPURenderingContextCustom.cpp */; };
     1430                31A0891A1E737D55003B6609 /* JSWebGPURenderPassAttachmentDescriptorCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A088C51E737B2C003B6609 /* JSWebGPURenderPassAttachmentDescriptorCustom.cpp */; };
     1431                31A089541E738D59003B6609 /* JSWebGPUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0891B1E738D59003B6609 /* JSWebGPUBuffer.cpp */; };
     1432                31A089561E738D59003B6609 /* JSWebGPUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0891D1E738D59003B6609 /* JSWebGPUBuffer.h */; };
     1433                31A089571E738D59003B6609 /* JSWebGPUCommandBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0891E1E738D59003B6609 /* JSWebGPUCommandBuffer.cpp */; };
     1434                31A089591E738D59003B6609 /* JSWebGPUCommandBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089201E738D59003B6609 /* JSWebGPUCommandBuffer.h */; };
     1435                31A0895A1E738D59003B6609 /* JSWebGPUCommandQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089211E738D59003B6609 /* JSWebGPUCommandQueue.cpp */; };
     1436                31A0895C1E738D59003B6609 /* JSWebGPUCommandQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089231E738D59003B6609 /* JSWebGPUCommandQueue.h */; };
     1437                31A0895D1E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089241E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.cpp */; };
     1438                31A0895F1E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089261E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.h */; };
     1439                31A089601E738D59003B6609 /* JSWebGPUDepthStencilState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089271E738D59003B6609 /* JSWebGPUDepthStencilState.cpp */; };
     1440                31A089621E738D59003B6609 /* JSWebGPUDepthStencilState.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089291E738D59003B6609 /* JSWebGPUDepthStencilState.h */; };
     1441                31A089631E738D59003B6609 /* JSWebGPUDrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0892A1E738D59003B6609 /* JSWebGPUDrawable.cpp */; };
     1442                31A089651E738D59003B6609 /* JSWebGPUDrawable.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0892C1E738D59003B6609 /* JSWebGPUDrawable.h */; };
     1443                31A089661E738D59003B6609 /* JSWebGPUFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0892D1E738D59003B6609 /* JSWebGPUFunction.cpp */; };
     1444                31A089681E738D59003B6609 /* JSWebGPUFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0892F1E738D59003B6609 /* JSWebGPUFunction.h */; };
     1445                31A089691E738D59003B6609 /* JSWebGPULibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089301E738D59003B6609 /* JSWebGPULibrary.cpp */; };
     1446                31A0896B1E738D59003B6609 /* JSWebGPULibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089321E738D59003B6609 /* JSWebGPULibrary.h */; };
     1447                31A0896C1E738D59003B6609 /* JSWebGPURenderCommandEncoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089331E738D59003B6609 /* JSWebGPURenderCommandEncoder.cpp */; };
     1448                31A0896E1E738D5A003B6609 /* JSWebGPURenderCommandEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089351E738D59003B6609 /* JSWebGPURenderCommandEncoder.h */; };
     1449                31A0896F1E738D5A003B6609 /* JSWebGPURenderingContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089361E738D59003B6609 /* JSWebGPURenderingContext.cpp */; };
     1450                31A089711E738D5A003B6609 /* JSWebGPURenderingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089381E738D59003B6609 /* JSWebGPURenderingContext.h */; };
     1451                31A089721E738D5A003B6609 /* JSWebGPURenderPassAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089391E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.cpp */; };
     1452                31A089741E738D5A003B6609 /* JSWebGPURenderPassAttachmentDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0893B1E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.h */; };
     1453                31A089751E738D5A003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0893C1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.cpp */; };
     1454                31A089771E738D5A003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0893E1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.h */; };
     1455                31A089781E738D5A003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0893F1E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.cpp */; };
     1456                31A0897A1E738D5A003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089411E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.h */; };
     1457                31A0897B1E738D5A003B6609 /* JSWebGPURenderPassDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089421E738D59003B6609 /* JSWebGPURenderPassDescriptor.cpp */; };
     1458                31A0897D1E738D5A003B6609 /* JSWebGPURenderPassDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089441E738D59003B6609 /* JSWebGPURenderPassDescriptor.h */; };
     1459                31A0897E1E738D5A003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089451E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.cpp */; };
     1460                31A089801E738D5A003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089471E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.h */; };
     1461                31A089811E738D5A003B6609 /* JSWebGPURenderPipelineDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089481E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.cpp */; };
     1462                31A089831E738D5A003B6609 /* JSWebGPURenderPipelineDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0894A1E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.h */; };
     1463                31A089841E738D5A003B6609 /* JSWebGPURenderPipelineState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0894B1E738D59003B6609 /* JSWebGPURenderPipelineState.cpp */; };
     1464                31A089861E738D5A003B6609 /* JSWebGPURenderPipelineState.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A0894D1E738D59003B6609 /* JSWebGPURenderPipelineState.h */; };
     1465                31A089871E738D5A003B6609 /* JSWebGPUTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A0894E1E738D59003B6609 /* JSWebGPUTexture.cpp */; };
     1466                31A089891E738D5A003B6609 /* JSWebGPUTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089501E738D59003B6609 /* JSWebGPUTexture.h */; };
     1467                31A0898A1E738D5A003B6609 /* JSWebGPUTextureDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A089511E738D59003B6609 /* JSWebGPUTextureDescriptor.cpp */; };
     1468                31A0898C1E738D5A003B6609 /* JSWebGPUTextureDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A089531E738D59003B6609 /* JSWebGPUTextureDescriptor.h */; };
    14081469                31A795C61888BADC00382F90 /* JSANGLEInstancedArrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31A795C41888BAD100382F90 /* JSANGLEInstancedArrays.cpp */; };
    14091470                31A795C71888BCB200382F90 /* ANGLEInstancedArrays.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A795C21888B72400382F90 /* ANGLEInstancedArrays.h */; };
     
    87808841                319AE062142D6B24006563A1 /* StyleFilterData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleFilterData.h; sourceTree = "<group>"; };
    87818842                319FBD5D15D2F444009640A6 /* CachedImageClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedImageClient.h; sourceTree = "<group>"; };
     8843                31A088C41E737B2C003B6609 /* JSWebGPURenderingContextCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGPURenderingContextCustom.cpp; sourceTree = "<group>"; };
     8844                31A088C51E737B2C003B6609 /* JSWebGPURenderPassAttachmentDescriptorCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGPURenderPassAttachmentDescriptorCustom.cpp; sourceTree = "<group>"; };
     8845                31A088C61E737B4D003B6609 /* WebGPUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUBuffer.cpp; sourceTree = "<group>"; };
     8846                31A088C71E737B4D003B6609 /* WebGPUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUBuffer.h; sourceTree = "<group>"; };
     8847                31A088C81E737B4D003B6609 /* WebGPUBuffer.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUBuffer.idl; sourceTree = "<group>"; };
     8848                31A088C91E737B4D003B6609 /* WebGPUCommandBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUCommandBuffer.cpp; sourceTree = "<group>"; };
     8849                31A088CA1E737B4D003B6609 /* WebGPUCommandBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUCommandBuffer.h; sourceTree = "<group>"; };
     8850                31A088CB1E737B4D003B6609 /* WebGPUCommandBuffer.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUCommandBuffer.idl; sourceTree = "<group>"; };
     8851                31A088CC1E737B4D003B6609 /* WebGPUCommandQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUCommandQueue.cpp; sourceTree = "<group>"; };
     8852                31A088CD1E737B4D003B6609 /* WebGPUCommandQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUCommandQueue.h; sourceTree = "<group>"; };
     8853                31A088CE1E737B4D003B6609 /* WebGPUCommandQueue.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUCommandQueue.idl; sourceTree = "<group>"; };
     8854                31A088CF1E737B4D003B6609 /* WebGPUDepthStencilDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUDepthStencilDescriptor.cpp; sourceTree = "<group>"; };
     8855                31A088D01E737B4D003B6609 /* WebGPUDepthStencilDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUDepthStencilDescriptor.h; sourceTree = "<group>"; };
     8856                31A088D11E737B4D003B6609 /* WebGPUDepthStencilDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUDepthStencilDescriptor.idl; sourceTree = "<group>"; };
     8857                31A088D21E737B4D003B6609 /* WebGPUDepthStencilState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUDepthStencilState.cpp; sourceTree = "<group>"; };
     8858                31A088D31E737B4D003B6609 /* WebGPUDepthStencilState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUDepthStencilState.h; sourceTree = "<group>"; };
     8859                31A088D41E737B4D003B6609 /* WebGPUDepthStencilState.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUDepthStencilState.idl; sourceTree = "<group>"; };
     8860                31A088D51E737B4D003B6609 /* WebGPUDrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUDrawable.cpp; sourceTree = "<group>"; };
     8861                31A088D61E737B4D003B6609 /* WebGPUDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUDrawable.h; sourceTree = "<group>"; };
     8862                31A088D71E737B4D003B6609 /* WebGPUDrawable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUDrawable.idl; sourceTree = "<group>"; };
     8863                31A088D81E737B4D003B6609 /* WebGPUEnums.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUEnums.cpp; sourceTree = "<group>"; };
     8864                31A088D91E737B4D003B6609 /* WebGPUEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUEnums.h; sourceTree = "<group>"; };
     8865                31A088DA1E737B4D003B6609 /* WebGPUEnums.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUEnums.idl; sourceTree = "<group>"; };
     8866                31A088DB1E737B4D003B6609 /* WebGPUFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUFunction.cpp; sourceTree = "<group>"; };
     8867                31A088DC1E737B4D003B6609 /* WebGPUFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUFunction.h; sourceTree = "<group>"; };
     8868                31A088DD1E737B4D003B6609 /* WebGPUFunction.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUFunction.idl; sourceTree = "<group>"; };
     8869                31A088DE1E737B4D003B6609 /* WebGPULibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPULibrary.cpp; sourceTree = "<group>"; };
     8870                31A088DF1E737B4D003B6609 /* WebGPULibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPULibrary.h; sourceTree = "<group>"; };
     8871                31A088E01E737B4D003B6609 /* WebGPULibrary.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPULibrary.idl; sourceTree = "<group>"; };
     8872                31A088E11E737B4D003B6609 /* WebGPUObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUObject.cpp; sourceTree = "<group>"; };
     8873                31A088E21E737B4D003B6609 /* WebGPUObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUObject.h; sourceTree = "<group>"; };
     8874                31A088E31E737B4D003B6609 /* WebGPURenderCommandEncoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderCommandEncoder.cpp; sourceTree = "<group>"; };
     8875                31A088E41E737B4D003B6609 /* WebGPURenderCommandEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderCommandEncoder.h; sourceTree = "<group>"; };
     8876                31A088E51E737B4D003B6609 /* WebGPURenderCommandEncoder.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderCommandEncoder.idl; sourceTree = "<group>"; };
     8877                31A088E61E737B4D003B6609 /* WebGPURenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderingContext.cpp; sourceTree = "<group>"; };
     8878                31A088E71E737B4D003B6609 /* WebGPURenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderingContext.h; sourceTree = "<group>"; };
     8879                31A088E81E737B4D003B6609 /* WebGPURenderingContext.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderingContext.idl; sourceTree = "<group>"; };
     8880                31A088E91E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPassAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8881                31A088EA1E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPassAttachmentDescriptor.h; sourceTree = "<group>"; };
     8882                31A088EB1E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPassAttachmentDescriptor.idl; sourceTree = "<group>"; };
     8883                31A088EC1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPassColorAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8884                31A088ED1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPassColorAttachmentDescriptor.h; sourceTree = "<group>"; };
     8885                31A088EE1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPassColorAttachmentDescriptor.idl; sourceTree = "<group>"; };
     8886                31A088EF1E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPassDepthAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8887                31A088F01E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPassDepthAttachmentDescriptor.h; sourceTree = "<group>"; };
     8888                31A088F11E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPassDepthAttachmentDescriptor.idl; sourceTree = "<group>"; };
     8889                31A088F21E737B4D003B6609 /* WebGPURenderPassDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPassDescriptor.cpp; sourceTree = "<group>"; };
     8890                31A088F31E737B4D003B6609 /* WebGPURenderPassDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPassDescriptor.h; sourceTree = "<group>"; };
     8891                31A088F41E737B4D003B6609 /* WebGPURenderPassDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPassDescriptor.idl; sourceTree = "<group>"; };
     8892                31A088F51E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPipelineColorAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8893                31A088F61E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPipelineColorAttachmentDescriptor.h; sourceTree = "<group>"; };
     8894                31A088F71E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPipelineColorAttachmentDescriptor.idl; sourceTree = "<group>"; };
     8895                31A088F81E737B4D003B6609 /* WebGPURenderPipelineDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPipelineDescriptor.cpp; sourceTree = "<group>"; };
     8896                31A088F91E737B4D003B6609 /* WebGPURenderPipelineDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPipelineDescriptor.h; sourceTree = "<group>"; };
     8897                31A088FA1E737B4D003B6609 /* WebGPURenderPipelineDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPipelineDescriptor.idl; sourceTree = "<group>"; };
     8898                31A088FB1E737B4D003B6609 /* WebGPURenderPipelineState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPURenderPipelineState.cpp; sourceTree = "<group>"; };
     8899                31A088FC1E737B4D003B6609 /* WebGPURenderPipelineState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPipelineState.h; sourceTree = "<group>"; };
     8900                31A088FD1E737B4D003B6609 /* WebGPURenderPipelineState.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPURenderPipelineState.idl; sourceTree = "<group>"; };
     8901                31A088FE1E737B4D003B6609 /* WebGPUTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUTexture.cpp; sourceTree = "<group>"; };
     8902                31A088FF1E737B4D003B6609 /* WebGPUTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUTexture.h; sourceTree = "<group>"; };
     8903                31A089001E737B4D003B6609 /* WebGPUTexture.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUTexture.idl; sourceTree = "<group>"; };
     8904                31A089011E737B4D003B6609 /* WebGPUTextureDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUTextureDescriptor.cpp; sourceTree = "<group>"; };
     8905                31A089021E737B4D003B6609 /* WebGPUTextureDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGPUTextureDescriptor.h; sourceTree = "<group>"; };
     8906                31A089031E737B4D003B6609 /* WebGPUTextureDescriptor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGPUTextureDescriptor.idl; sourceTree = "<group>"; };
     8907                31A0891B1E738D59003B6609 /* JSWebGPUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUBuffer.cpp; path = JSWebGPUBuffer.cpp; sourceTree = "<group>"; };
     8908                31A0891D1E738D59003B6609 /* JSWebGPUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUBuffer.h; path = JSWebGPUBuffer.h; sourceTree = "<group>"; };
     8909                31A0891E1E738D59003B6609 /* JSWebGPUCommandBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUCommandBuffer.cpp; path = JSWebGPUCommandBuffer.cpp; sourceTree = "<group>"; };
     8910                31A089201E738D59003B6609 /* JSWebGPUCommandBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUCommandBuffer.h; path = JSWebGPUCommandBuffer.h; sourceTree = "<group>"; };
     8911                31A089211E738D59003B6609 /* JSWebGPUCommandQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUCommandQueue.cpp; path = JSWebGPUCommandQueue.cpp; sourceTree = "<group>"; };
     8912                31A089231E738D59003B6609 /* JSWebGPUCommandQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUCommandQueue.h; path = JSWebGPUCommandQueue.h; sourceTree = "<group>"; };
     8913                31A089241E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUDepthStencilDescriptor.cpp; path = JSWebGPUDepthStencilDescriptor.cpp; sourceTree = "<group>"; };
     8914                31A089261E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUDepthStencilDescriptor.h; path = JSWebGPUDepthStencilDescriptor.h; sourceTree = "<group>"; };
     8915                31A089271E738D59003B6609 /* JSWebGPUDepthStencilState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUDepthStencilState.cpp; path = JSWebGPUDepthStencilState.cpp; sourceTree = "<group>"; };
     8916                31A089291E738D59003B6609 /* JSWebGPUDepthStencilState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUDepthStencilState.h; path = JSWebGPUDepthStencilState.h; sourceTree = "<group>"; };
     8917                31A0892A1E738D59003B6609 /* JSWebGPUDrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUDrawable.cpp; path = JSWebGPUDrawable.cpp; sourceTree = "<group>"; };
     8918                31A0892C1E738D59003B6609 /* JSWebGPUDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUDrawable.h; path = JSWebGPUDrawable.h; sourceTree = "<group>"; };
     8919                31A0892D1E738D59003B6609 /* JSWebGPUFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUFunction.cpp; path = JSWebGPUFunction.cpp; sourceTree = "<group>"; };
     8920                31A0892F1E738D59003B6609 /* JSWebGPUFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUFunction.h; path = JSWebGPUFunction.h; sourceTree = "<group>"; };
     8921                31A089301E738D59003B6609 /* JSWebGPULibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPULibrary.cpp; path = JSWebGPULibrary.cpp; sourceTree = "<group>"; };
     8922                31A089321E738D59003B6609 /* JSWebGPULibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPULibrary.h; path = JSWebGPULibrary.h; sourceTree = "<group>"; };
     8923                31A089331E738D59003B6609 /* JSWebGPURenderCommandEncoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderCommandEncoder.cpp; path = JSWebGPURenderCommandEncoder.cpp; sourceTree = "<group>"; };
     8924                31A089351E738D59003B6609 /* JSWebGPURenderCommandEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderCommandEncoder.h; path = JSWebGPURenderCommandEncoder.h; sourceTree = "<group>"; };
     8925                31A089361E738D59003B6609 /* JSWebGPURenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderingContext.cpp; path = JSWebGPURenderingContext.cpp; sourceTree = "<group>"; };
     8926                31A089381E738D59003B6609 /* JSWebGPURenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderingContext.h; path = JSWebGPURenderingContext.h; sourceTree = "<group>"; };
     8927                31A089391E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPassAttachmentDescriptor.cpp; path = JSWebGPURenderPassAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8928                31A0893B1E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPassAttachmentDescriptor.h; path = JSWebGPURenderPassAttachmentDescriptor.h; sourceTree = "<group>"; };
     8929                31A0893C1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPassColorAttachmentDescriptor.cpp; path = JSWebGPURenderPassColorAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8930                31A0893E1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPassColorAttachmentDescriptor.h; path = JSWebGPURenderPassColorAttachmentDescriptor.h; sourceTree = "<group>"; };
     8931                31A0893F1E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPassDepthAttachmentDescriptor.cpp; path = JSWebGPURenderPassDepthAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8932                31A089411E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPassDepthAttachmentDescriptor.h; path = JSWebGPURenderPassDepthAttachmentDescriptor.h; sourceTree = "<group>"; };
     8933                31A089421E738D59003B6609 /* JSWebGPURenderPassDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPassDescriptor.cpp; path = JSWebGPURenderPassDescriptor.cpp; sourceTree = "<group>"; };
     8934                31A089441E738D59003B6609 /* JSWebGPURenderPassDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPassDescriptor.h; path = JSWebGPURenderPassDescriptor.h; sourceTree = "<group>"; };
     8935                31A089451E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPipelineColorAttachmentDescriptor.cpp; path = JSWebGPURenderPipelineColorAttachmentDescriptor.cpp; sourceTree = "<group>"; };
     8936                31A089471E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPipelineColorAttachmentDescriptor.h; path = JSWebGPURenderPipelineColorAttachmentDescriptor.h; sourceTree = "<group>"; };
     8937                31A089481E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPipelineDescriptor.cpp; path = JSWebGPURenderPipelineDescriptor.cpp; sourceTree = "<group>"; };
     8938                31A0894A1E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPipelineDescriptor.h; path = JSWebGPURenderPipelineDescriptor.h; sourceTree = "<group>"; };
     8939                31A0894B1E738D59003B6609 /* JSWebGPURenderPipelineState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPURenderPipelineState.cpp; path = JSWebGPURenderPipelineState.cpp; sourceTree = "<group>"; };
     8940                31A0894D1E738D59003B6609 /* JSWebGPURenderPipelineState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPURenderPipelineState.h; path = JSWebGPURenderPipelineState.h; sourceTree = "<group>"; };
     8941                31A0894E1E738D59003B6609 /* JSWebGPUTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUTexture.cpp; path = JSWebGPUTexture.cpp; sourceTree = "<group>"; };
     8942                31A089501E738D59003B6609 /* JSWebGPUTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUTexture.h; path = JSWebGPUTexture.h; sourceTree = "<group>"; };
     8943                31A089511E738D59003B6609 /* JSWebGPUTextureDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSWebGPUTextureDescriptor.cpp; path = JSWebGPUTextureDescriptor.cpp; sourceTree = "<group>"; };
     8944                31A089531E738D59003B6609 /* JSWebGPUTextureDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSWebGPUTextureDescriptor.h; path = JSWebGPUTextureDescriptor.h; sourceTree = "<group>"; };
    87828945                31A795C11888B72400382F90 /* ANGLEInstancedArrays.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEInstancedArrays.cpp; sourceTree = "<group>"; };
    87838946                31A795C21888B72400382F90 /* ANGLEInstancedArrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ANGLEInstancedArrays.h; sourceTree = "<group>"; };
     
    1754817711                                77A17A7512F28642004E02F6 /* WebGLVertexArrayObjectOES.h */,
    1754917712                                77A17A7612F28642004E02F6 /* WebGLVertexArrayObjectOES.idl */,
     17713                                31A088C61E737B4D003B6609 /* WebGPUBuffer.cpp */,
     17714                                31A088C71E737B4D003B6609 /* WebGPUBuffer.h */,
     17715                                31A088C81E737B4D003B6609 /* WebGPUBuffer.idl */,
     17716                                31A088C91E737B4D003B6609 /* WebGPUCommandBuffer.cpp */,
     17717                                31A088CA1E737B4D003B6609 /* WebGPUCommandBuffer.h */,
     17718                                31A088CB1E737B4D003B6609 /* WebGPUCommandBuffer.idl */,
     17719                                31A088CC1E737B4D003B6609 /* WebGPUCommandQueue.cpp */,
     17720                                31A088CD1E737B4D003B6609 /* WebGPUCommandQueue.h */,
     17721                                31A088CE1E737B4D003B6609 /* WebGPUCommandQueue.idl */,
     17722                                31A088CF1E737B4D003B6609 /* WebGPUDepthStencilDescriptor.cpp */,
     17723                                31A088D01E737B4D003B6609 /* WebGPUDepthStencilDescriptor.h */,
     17724                                31A088D11E737B4D003B6609 /* WebGPUDepthStencilDescriptor.idl */,
     17725                                31A088D21E737B4D003B6609 /* WebGPUDepthStencilState.cpp */,
     17726                                31A088D31E737B4D003B6609 /* WebGPUDepthStencilState.h */,
     17727                                31A088D41E737B4D003B6609 /* WebGPUDepthStencilState.idl */,
     17728                                31A088D51E737B4D003B6609 /* WebGPUDrawable.cpp */,
     17729                                31A088D61E737B4D003B6609 /* WebGPUDrawable.h */,
     17730                                31A088D71E737B4D003B6609 /* WebGPUDrawable.idl */,
     17731                                31A088D81E737B4D003B6609 /* WebGPUEnums.cpp */,
     17732                                31A088D91E737B4D003B6609 /* WebGPUEnums.h */,
     17733                                31A088DA1E737B4D003B6609 /* WebGPUEnums.idl */,
     17734                                31A088DB1E737B4D003B6609 /* WebGPUFunction.cpp */,
     17735                                31A088DC1E737B4D003B6609 /* WebGPUFunction.h */,
     17736                                31A088DD1E737B4D003B6609 /* WebGPUFunction.idl */,
     17737                                31A088DE1E737B4D003B6609 /* WebGPULibrary.cpp */,
     17738                                31A088DF1E737B4D003B6609 /* WebGPULibrary.h */,
     17739                                31A088E01E737B4D003B6609 /* WebGPULibrary.idl */,
     17740                                31A088E11E737B4D003B6609 /* WebGPUObject.cpp */,
     17741                                31A088E21E737B4D003B6609 /* WebGPUObject.h */,
     17742                                31A088E31E737B4D003B6609 /* WebGPURenderCommandEncoder.cpp */,
     17743                                31A088E41E737B4D003B6609 /* WebGPURenderCommandEncoder.h */,
     17744                                31A088E51E737B4D003B6609 /* WebGPURenderCommandEncoder.idl */,
     17745                                31A088E61E737B4D003B6609 /* WebGPURenderingContext.cpp */,
     17746                                31A088E71E737B4D003B6609 /* WebGPURenderingContext.h */,
     17747                                31A088E81E737B4D003B6609 /* WebGPURenderingContext.idl */,
     17748                                31A088E91E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.cpp */,
     17749                                31A088EA1E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.h */,
     17750                                31A088EB1E737B4D003B6609 /* WebGPURenderPassAttachmentDescriptor.idl */,
     17751                                31A088EC1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.cpp */,
     17752                                31A088ED1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.h */,
     17753                                31A088EE1E737B4D003B6609 /* WebGPURenderPassColorAttachmentDescriptor.idl */,
     17754                                31A088EF1E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.cpp */,
     17755                                31A088F01E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.h */,
     17756                                31A088F11E737B4D003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.idl */,
     17757                                31A088F21E737B4D003B6609 /* WebGPURenderPassDescriptor.cpp */,
     17758                                31A088F31E737B4D003B6609 /* WebGPURenderPassDescriptor.h */,
     17759                                31A088F41E737B4D003B6609 /* WebGPURenderPassDescriptor.idl */,
     17760                                31A088F51E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp */,
     17761                                31A088F61E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.h */,
     17762                                31A088F71E737B4D003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.idl */,
     17763                                31A088F81E737B4D003B6609 /* WebGPURenderPipelineDescriptor.cpp */,
     17764                                31A088F91E737B4D003B6609 /* WebGPURenderPipelineDescriptor.h */,
     17765                                31A088FA1E737B4D003B6609 /* WebGPURenderPipelineDescriptor.idl */,
     17766                                31A088FB1E737B4D003B6609 /* WebGPURenderPipelineState.cpp */,
     17767                                31A088FC1E737B4D003B6609 /* WebGPURenderPipelineState.h */,
     17768                                31A088FD1E737B4D003B6609 /* WebGPURenderPipelineState.idl */,
     17769                                31A088FE1E737B4D003B6609 /* WebGPUTexture.cpp */,
     17770                                31A088FF1E737B4D003B6609 /* WebGPUTexture.h */,
     17771                                31A089001E737B4D003B6609 /* WebGPUTexture.idl */,
     17772                                31A089011E737B4D003B6609 /* WebGPUTextureDescriptor.cpp */,
     17773                                31A089021E737B4D003B6609 /* WebGPUTextureDescriptor.h */,
     17774                                31A089031E737B4D003B6609 /* WebGPUTextureDescriptor.idl */,
    1755017775                        );
    1755117776                        path = canvas;
     
    2088821113                                77EF62F112F9DB7400C77BD2 /* JSWebGLVertexArrayObjectOES.cpp */,
    2088921114                                77EF62F212F9DB7400C77BD2 /* JSWebGLVertexArrayObjectOES.h */,
     21115                                31A0891B1E738D59003B6609 /* JSWebGPUBuffer.cpp */,
     21116                                31A0891D1E738D59003B6609 /* JSWebGPUBuffer.h */,
     21117                                31A0891E1E738D59003B6609 /* JSWebGPUCommandBuffer.cpp */,
     21118                                31A089201E738D59003B6609 /* JSWebGPUCommandBuffer.h */,
     21119                                31A089211E738D59003B6609 /* JSWebGPUCommandQueue.cpp */,
     21120                                31A089231E738D59003B6609 /* JSWebGPUCommandQueue.h */,
     21121                                31A089241E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.cpp */,
     21122                                31A089261E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.h */,
     21123                                31A089271E738D59003B6609 /* JSWebGPUDepthStencilState.cpp */,
     21124                                31A089291E738D59003B6609 /* JSWebGPUDepthStencilState.h */,
     21125                                31A0892A1E738D59003B6609 /* JSWebGPUDrawable.cpp */,
     21126                                31A0892C1E738D59003B6609 /* JSWebGPUDrawable.h */,
     21127                                31A0892D1E738D59003B6609 /* JSWebGPUFunction.cpp */,
     21128                                31A0892F1E738D59003B6609 /* JSWebGPUFunction.h */,
     21129                                31A089301E738D59003B6609 /* JSWebGPULibrary.cpp */,
     21130                                31A089321E738D59003B6609 /* JSWebGPULibrary.h */,
     21131                                31A089331E738D59003B6609 /* JSWebGPURenderCommandEncoder.cpp */,
     21132                                31A089351E738D59003B6609 /* JSWebGPURenderCommandEncoder.h */,
     21133                                31A089361E738D59003B6609 /* JSWebGPURenderingContext.cpp */,
     21134                                31A089381E738D59003B6609 /* JSWebGPURenderingContext.h */,
     21135                                31A089391E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.cpp */,
     21136                                31A0893B1E738D59003B6609 /* JSWebGPURenderPassAttachmentDescriptor.h */,
     21137                                31A0893C1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.cpp */,
     21138                                31A0893E1E738D59003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.h */,
     21139                                31A0893F1E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.cpp */,
     21140                                31A089411E738D59003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.h */,
     21141                                31A089421E738D59003B6609 /* JSWebGPURenderPassDescriptor.cpp */,
     21142                                31A089441E738D59003B6609 /* JSWebGPURenderPassDescriptor.h */,
     21143                                31A089451E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.cpp */,
     21144                                31A089471E738D59003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.h */,
     21145                                31A089481E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.cpp */,
     21146                                31A0894A1E738D59003B6609 /* JSWebGPURenderPipelineDescriptor.h */,
     21147                                31A0894B1E738D59003B6609 /* JSWebGPURenderPipelineState.cpp */,
     21148                                31A0894D1E738D59003B6609 /* JSWebGPURenderPipelineState.h */,
     21149                                31A0894E1E738D59003B6609 /* JSWebGPUTexture.cpp */,
     21150                                31A089501E738D59003B6609 /* JSWebGPUTexture.h */,
     21151                                31A089511E738D59003B6609 /* JSWebGPUTextureDescriptor.cpp */,
     21152                                31A089531E738D59003B6609 /* JSWebGPUTextureDescriptor.h */,
    2089021153                                0FDA7C241883333200C954B5 /* JSWebKitPlaybackTargetAvailabilityEvent.cpp */,
    2089121154                                0FDA7C251883333200C954B5 /* JSWebKitPlaybackTargetAvailabilityEvent.h */,
     
    2285423117                                BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */,
    2285523118                                2D9BF7481DBFDDF8007A7D99 /* JSMediaKeySessionCustom.cpp */,
     23119                                415CDAF61E6CE0D3004F11EE /* JSMediaStreamTrackCustom.cpp */,
    2285623120                                410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */,
    22857                                 415CDAF61E6CE0D3004F11EE /* JSMediaStreamTrackCustom.cpp */,
    2285823121                                A1E5B31D1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp */,
    2285923122                                C6F0917E143A2BB900685849 /* JSMutationObserverCustom.cpp */,
     
    2286923132                                BE6DF708171CA2C500DD52B8 /* JSVideoTrackCustom.cpp */,
    2287023133                                D3F3D35A1A69A3B00059FC2B /* JSWebGLRenderingContextBaseCustom.cpp */,
     23134                                31A088C41E737B2C003B6609 /* JSWebGPURenderingContextCustom.cpp */,
     23135                                31A088C51E737B2C003B6609 /* JSWebGPURenderPassAttachmentDescriptorCustom.cpp */,
    2287123136                                E1FF8F661807460800132674 /* JSWebKitSubtleCryptoCustom.cpp */,
    2287223137                                E1CA5CBB0E8CDCAF00E8EF90 /* JSWorkerCustom.cpp */,
     
    2567825943                                1A8A64521D19FCFB00D0E00F /* ApplePayPaymentAuthorizedEvent.h in Headers */,
    2567925944                                7C6522FB1E00C90900677F22 /* ApplePayPaymentContact.h in Headers */,
     25945                                31A089561E738D59003B6609 /* JSWebGPUBuffer.h in Headers */,
    2568025946                                7C6522EF1E00A4C700677F22 /* ApplePayPaymentMethod.h in Headers */,
    2568125947                                1A8A64561D19FCFC00D0E00F /* ApplePayPaymentMethodSelectedEvent.h in Headers */,
     
    2570725973                                FD629EA3154B47160006D026 /* AudioBasicInspectorNode.h in Headers */,
    2570825974                                FD315FF712B0267600C1A359 /* AudioBasicProcessorNode.h in Headers */,
     25975                                31A089891E738D5A003B6609 /* JSWebGPUTexture.h in Headers */,
    2570925976                                FD315FF912B0267600C1A359 /* AudioBuffer.h in Headers */,
    2571025977                                FD5686CC13AC181400B69C68 /* AudioBufferCallback.h in Headers */,
     
    2583226099                                1A569CFE0D7E2B82007C3983 /* c_utility.h in Headers */,
    2583326100                                07C046C41E42508B007201E7 /* CAAudioStreamDescription.h in Headers */,
     26101                                31A089651E738D59003B6609 /* JSWebGPUDrawable.h in Headers */,
    2583426102                                BCB16C1A0979C3BD00467741 /* CachedCSSStyleSheet.h in Headers */,
    2583526103                                BC64B4CC0CB4295D005F2B62 /* CachedFont.h in Headers */,
     
    2594126209                                FD31608F12B026F700C1A359 /* Cone.h in Headers */,
    2594226210                                65C97AF308EA908800ACD273 /* config.h in Headers */,
     26211                                31A0896E1E738D5A003B6609 /* JSWebGPURenderCommandEncoder.h in Headers */,
    2594326212                                A818721C0977D3C0005826D9 /* ContainerNode.h in Headers */,
    2594426213                                E1A1470811102B1500EEC0F3 /* ContainerNodeAlgorithms.h in Headers */,
     
    2614326412                                A80E6CEE0A1989CA007FB8C5 /* CSSValue.h in Headers */,
    2614426413                                6565815109D13043000E61D7 /* CSSValueKeywords.h in Headers */,
     26414                                31A089591E738D59003B6609 /* JSWebGPUCommandBuffer.h in Headers */,
    2614526415                                A80E6CE90A1989CA007FB8C5 /* CSSValueList.h in Headers */,
    2614626416                                E49BD9FA131FD2ED003C56F0 /* CSSValuePool.h in Headers */,
     
    2616826438                                97BC6A321505F081001B74AC /* DatabaseTracker.h in Headers */,
    2616926439                                BE23480D18A9871400E4B6E8 /* DataCue.h in Headers */,
     26440                                31A0895C1E738D59003B6609 /* JSWebGPUCommandQueue.h in Headers */,
    2617026441                                C5227DF11C3C6DF100F5ED54 /* DataDetection.h in Headers */,
    2617126442                                7C7941E51C56C29300A4C58E /* DataDetectorsCoreSoftLink.h in Headers */,
     
    2617426445                                2DC4CF791D2DD98900ECCC94 /* DataDetectorsUISPI.h in Headers */,
    2617526446                                BC22746F0E83664500E7F975 /* DataRef.h in Headers */,
     26447                                31A0896B1E738D59003B6609 /* JSWebGPULibrary.h in Headers */,
    2617626448                                BC64641C11D7F416006455B0 /* DatasetDOMStringMap.h in Headers */,
    2617726449                                85031B3E0A44EFC700F992E0 /* DataTransfer.h in Headers */,
     
    2651326785                                9746AF2414F4DDE6003E7A70 /* Geolocation.h in Headers */,
    2651426786                                9746AF2514F4DDE6003E7A71 /* GeolocationClient.h in Headers */,
     26787                                31A089741E738D5A003B6609 /* JSWebGPURenderPassAttachmentDescriptor.h in Headers */,
    2651526788                                9746AF2714F4DDE6003E7A70 /* GeolocationController.h in Headers */,
    2651626789                                9746AF2814F4DDE6003E7A70 /* GeolocationError.h in Headers */,
     
    2696927242                                59A86008119DAFA100DEF1EF /* JSDeviceOrientationEvent.h in Headers */,
    2697027243                                659DDC8309E198BA001BF3C6 /* JSDocument.h in Headers */,
     27244                                31A0897D1E738D5A003B6609 /* JSWebGPURenderPassDescriptor.h in Headers */,
    2697127245                                1221E05E1C02B444006A1A00 /* JSDocumentAnimation.h in Headers */,
    2697227246                                ADDA94C219687AA500453029 /* JSDocumentCustom.h in Headers */,
     
    2699427268                                7C8E34BA1E4A33B00054CE23 /* JSDOMConvertNull.h in Headers */,
    2699527269                                7C8E34BB1E4A33B00054CE23 /* JSDOMConvertNullable.h in Headers */,
     27270                                31A089801E738D5A003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.h in Headers */,
    2699627271                                7C8E34BD1E4A33B00054CE23 /* JSDOMConvertNumbers.h in Headers */,
    2699727272                                7C8E34BE1E4A33B00054CE23 /* JSDOMConvertObject.h in Headers */,
     
    2740827683                                B2FA3D9F0AB75A6F000E5AC4 /* JSSVGImageElement.h in Headers */,
    2740927684                                B2FA3DA10AB75A6F000E5AC4 /* JSSVGLength.h in Headers */,
     27685                                31A089621E738D59003B6609 /* JSWebGPUDepthStencilState.h in Headers */,
    2741027686                                B2FA3DA30AB75A6F000E5AC4 /* JSSVGLengthList.h in Headers */,
    2741127687                                B2FA3DA50AB75A6F000E5AC4 /* JSSVGLinearGradientElement.h in Headers */,
     
    2749627772                                15C77093100D3CA8005BA267 /* JSValidityState.h in Headers */,
    2749727773                                BE8EF04B171C9014009B48C3 /* JSVideoTrack.h in Headers */,
     27774                                31A0898C1E738D5A003B6609 /* JSWebGPUTextureDescriptor.h in Headers */,
    2749827775                                BE8EF04D171C9014009B48C3 /* JSVideoTrackList.h in Headers */,
    2749927776                                BE20508218A460C30080647E /* JSVTTCue.h in Headers */,
     
    2759827875                                BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */,
    2759927876                                E5BA7D63151437CA00FE1E3F /* LengthFunctions.h in Headers */,
     27877                                31A089771E738D5A003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.h in Headers */,
    2760027878                                0F8716701C869D83004FF0DE /* LengthPoint.h in Headers */,
    2760127879                                BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */,
     
    2777928057                                37DDCDA71384501C0008B793 /* MHTMLParser.h in Headers */,
    2778028058                                53B895AF19DC7ED9009CAA93 /* Microtasks.h in Headers */,
     28059                                31A089681E738D59003B6609 /* JSWebGPUFunction.h in Headers */,
    2778128060                                37DDCD9513844FD50008B793 /* MIMEHeader.h in Headers */,
    2778228061                                BC772C4F0C4EB3040083285F /* MIMETypeRegistry.h in Headers */,
     
    2799128270                                83FE90271E307C30003E9199 /* PerformanceMonitor.h in Headers */,
    2799228271                                8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */,
     28272                                31A0897A1E738D5A003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.h in Headers */,
    2799328273                                A5A9933D1E37FB19005B5E4D /* PerformanceObserver.h in Headers */,
    2799428274                                A5A9933F1E37FB1F005B5E4D /* PerformanceObserverCallback.h in Headers */,
     
    2841928699                                93C4A4151629DF5A00C3EB6E /* ScrollingTreeFrameScrollingNodeMac.h in Headers */,
    2842028700                                0FC4E410187F82E10045882C /* ScrollingTreeIOS.h in Headers */,
     28701                                31A089861E738D5A003B6609 /* JSWebGPURenderPipelineState.h in Headers */,
    2842128702                                0FE5806419327A6200DE32EB /* ScrollingTreeMac.h in Headers */,
    2842228703                                1AAADDE414DC8C8F00AF64B3 /* ScrollingTreeNode.h in Headers */,
     
    2856328844                                C50D0E830FF4272900AC2644 /* StorageNamespace.h in Headers */,
    2856428845                                1A37636C1A2E68BB009A7EE2 /* StorageNamespaceProvider.h in Headers */,
     28846                                31A089831E738D5A003B6609 /* JSWebGPURenderPipelineDescriptor.h in Headers */,
    2856528847                                416E6FE81BBD12DF000A6033 /* StreamInternalsBuiltins.h in Headers */,
    2856628848                                81AC6C36131C57D30009A7E0 /* StringCallback.h in Headers */,
     
    2878129063                                B2227A620D00BF220071B782 /* SVGPathSegClosePath.h in Headers */,
    2878229064                                B2227A650D00BF220071B782 /* SVGPathSegCurvetoCubic.h in Headers */,
     29065                                31A089711E738D5A003B6609 /* JSWebGPURenderingContext.h in Headers */,
    2878329066                                83C1D427178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h in Headers */,
    2878429067                                83C1D428178D5AB400141E68 /* SVGPathSegCurvetoCubicRel.h in Headers */,
     
    2912829411                                D3F3D36E1A69B7E00059FC2B /* WebGL2RenderingContext.h in Headers */,
    2912929412                                A7D20F6D107F438B00A80392 /* WebGLActiveInfo.h in Headers */,
     29413                                31A0895F1E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.h in Headers */,
    2913029414                                6E47E66110B7944B00B186C8 /* WebGLAny.h in Headers */,
    2913129415                                1AFFC4581D5E865500267A66 /* WebGLBlacklist.h in Headers */,
     
    2967929963                                37F57ABC1A50727700876F98 /* AccessibilityImageMapLink.cpp in Sources */,
    2968029964                                F52A8FD71D0A8D0E0073CF42 /* AccessibilityLabel.cpp in Sources */,
     29965                                31A089141E737D51003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp in Sources */,
    2968129966                                37F57ABD1A50727A00876F98 /* AccessibilityList.cpp in Sources */,
    2968229967                                37F57ABE1A50727E00876F98 /* AccessibilityListBox.cpp in Sources */,
     
    2980630091                                29A8124B0FBB9CA900510293 /* AXObjectCacheMac.mm in Sources */,
    2980730092                                BCA8C81F11E3D36900812FB7 /* BackForwardController.cpp in Sources */,
     30093                                31A089161E737D51003B6609 /* WebGPURenderPipelineState.cpp in Sources */,
    2980830094                                BC124EE70C2641CD009E2349 /* BarProp.cpp in Sources */,
    2980930095                                460BB6151D0A1BF000221812 /* Base64Utilities.cpp in Sources */,
     
    2986730153                                0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */,
    2986830154                                BCB16C270979C3BD00467741 /* CachedXSLStyleSheet.cpp in Sources */,
     30155                                31A0896C1E738D59003B6609 /* JSWebGPURenderCommandEncoder.cpp in Sources */,
    2986930156                                E43AF8E61AC5B7E800CA717E /* CacheValidation.cpp in Sources */,
    2987030157                                49AE2D96134EE5F90072920A /* CalculationValue.cpp in Sources */,
     
    2988830175                                CDE5959D1BF2757100A1CBE8 /* CDMSessionMediaSourceAVFObjC.mm in Sources */,
    2988930176                                5F2DBBE9178E3C8100141486 /* CertificateInfoMac.mm in Sources */,
     30177                                31A089751E738D5A003B6609 /* JSWebGPURenderPassColorAttachmentDescriptor.cpp in Sources */,
    2989030178                                E1A8E56617552B2A007488E7 /* CFURLExtras.cpp in Sources */,
    2989130179                                97BC69DC1505F076001B74AC /* ChangeVersionWrapper.cpp in Sources */,
     
    2991930207                                6550B6A1099DF0270090D781 /* Comment.cpp in Sources */,
    2992030208                                E1FE137418402A6700892F13 /* CommonCryptoUtilities.cpp in Sources */,
     30209                                31A0890C1E737D51003B6609 /* WebGPULibrary.cpp in Sources */,
    2992130210                                0F60F32C1DFBB10B00416D6C /* CommonVM.cpp in Sources */,
    2992230211                                7C93F3491AA6BA5E00A98BAB /* CompiledContentExtension.cpp in Sources */,
     
    2995830247                                FD31602812B0267600C1A359 /* ConvolverNode.cpp in Sources */,
    2995930248                                E1424C93164B52C800F32D40 /* CookieJar.cpp in Sources */,
     30249                                31A0890A1E737D51003B6609 /* WebGPUEnums.cpp in Sources */,
    2996030250                                7EE6846212D26E3800E79415 /* CookieJarCFNet.cpp in Sources */,
    2996130251                                E1424C90164B460B00F32D40 /* CookieJarMac.mm in Sources */,
     
    3022530515                                76FC2B0B12370DA0006A991A /* DOMTokenList.cpp in Sources */,
    3022630516                                2E37DFDA12DBAFB800A6B233 /* DOMURL.cpp in Sources */,
     30517                                31A089191E737D55003B6609 /* JSWebGPURenderingContextCustom.cpp in Sources */,
    3022730518                                CD9DE18117AAD6A400EA386D /* DOMURLMediaSource.cpp in Sources */,
    3022830519                                15FCC9FC1B4DF7F200E72326 /* DOMURLMediaStream.cpp in Sources */,
     
    3034130632                                31313F651443B35F006E2A90 /* FilterEffectRenderer.cpp in Sources */,
    3034230633                                49ECEB6D1499790D00CDD3A4 /* FilterOperation.cpp in Sources */,
     30634                                31A0890D1E737D51003B6609 /* WebGPUObject.cpp in Sources */,
    3034330635                                49ECEB6F1499790D00CDD3A4 /* FilterOperations.cpp in Sources */,
    3034430636                                A8CFF04D0A154F09000A4234 /* FixedTableLayout.cpp in Sources */,
     
    3041630708                                4FB390AD15EF61F3007AD51F /* GeneratedImage.cpp in Sources */,
    3041730709                                830030F51B7D33B500ED3AAC /* GenericCachedHTMLCollection.cpp in Sources */,
     30710                                31A089091E737D51003B6609 /* WebGPUDrawable.cpp in Sources */,
    3041830711                                0720B0A014D3323500642955 /* GenericEventQueue.cpp in Sources */,
    3041930712                                CD4BE52A1CE136EF009D87DA /* GenericTaskQueue.cpp in Sources */,
     
    3053630829                                977B3870122883E900B81FF8 /* HTMLParserScheduler.cpp in Sources */,
    3053730830                                BCC0E8751BFE70E9008F7F50 /* HTMLPictureElement.cpp in Sources */,
     30831                                31A089781E738D5A003B6609 /* JSWebGPURenderPassDepthAttachmentDescriptor.cpp in Sources */,
    3053830832                                A871D4570A127CBC00B12A68 /* HTMLPlugInElement.cpp in Sources */,
     30833                                31A089101E737D51003B6609 /* WebGPURenderPassAttachmentDescriptor.cpp in Sources */,
    3053930834                                4415292F0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp in Sources */,
    3054030835                                A8EA7CAD0A192B9C00A8EF5F /* HTMLPreElement.cpp in Sources */,
     
    3068730982                                1C81B95B0E97330800266E07 /* InspectorController.cpp in Sources */,
    3068830983                                82AB1743124B99EC00C5069D /* InspectorCSSAgent.cpp in Sources */,
     30984                                31A089171E737D51003B6609 /* WebGPUTexture.cpp in Sources */,
    3068930985                                4A9CC82016BF9BB400EC645A /* InspectorCSSOMWrappers.cpp in Sources */,
    3069030986                                7AB0B1C01211A62200A76940 /* InspectorDatabaseAgent.cpp in Sources */,
     
    3073531031                                1221E06C1C03D224006A1A00 /* JSAnimationTimeline.cpp in Sources */,
    3073631032                                57B5F7E21E57DBC800F34F90 /* JSSiteBoundCredentialData.cpp in Sources */,
     31033                                31A089871E738D5A003B6609 /* JSWebGPUTexture.cpp in Sources */,
    3073731034                                1221E0731C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp in Sources */,
    3073831035                                7C6579EF1E00856600E3A27A /* JSApplePayLineItem.cpp in Sources */,
     
    3099331290                                576814441E70CB1B00E77754 /* JSAesKeyParams.cpp in Sources */,
    3099431291                                1AE2AB230A1CE63B00B42B25 /* JSHTMLLegendElement.cpp in Sources */,
     31292                                31A089181E737D51003B6609 /* WebGPUTextureDescriptor.cpp in Sources */,
    3099531293                                1AE2AB250A1CE63B00B42B25 /* JSHTMLLIElement.cpp in Sources */,
    3099631294                                A80E7B100A19D606007FB8C5 /* JSHTMLLinkElement.cpp in Sources */,
     
    3102031318                                BC17F9660B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp in Sources */,
    3102131319                                9B69D3B81B99100700E3512B /* JSHTMLSlotElement.cpp in Sources */,
     31320                                31A089131E737D51003B6609 /* WebGPURenderPassDescriptor.cpp in Sources */,
    3102231321                                E446143B0CD689CC00FADA75 /* JSHTMLSourceElement.cpp in Sources */,
    3102331322                                9752D38D1413104B003305BD /* JSHTMLSpanElement.cpp in Sources */,
     
    3118631485                                5768E4361DB7527400D0A4F7 /* JSRsaHashedKeyGenParams.cpp in Sources */,
    3118731486                                57FEDD431DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp in Sources */,
     31487                                31A089061E737D51003B6609 /* WebGPUCommandQueue.cpp in Sources */,
    3118831488                                5706A69A1DDE5E8500A03B14 /* JSRsaOaepParams.cpp in Sources */,
    3118931489                                57E233611DC7D6AA00F28D01 /* JSRsaOtherPrimesInfo.cpp in Sources */,
     
    3139931699                                070334E9145A1F36008D8D45 /* JSTrackCustom.cpp in Sources */,
    3140031700                                07846342145B151A00A58DF1 /* JSTrackEvent.cpp in Sources */,
     31701                                31A0895A1E738D59003B6609 /* JSWebGPUCommandQueue.cpp in Sources */,
    3140131702                                E17B492216A9B8FF001C8839 /* JSTransitionEvent.cpp in Sources */,
    3140231703                                1A750D5C0A90DEE1000FF215 /* JSTreeWalker.cpp in Sources */,
     
    3140431705                                A86629D009DA2B48009633A5 /* JSUIEvent.cpp in Sources */,
    3140531706                                465307D11DB6EE4A00E4137C /* JSUIEventInit.cpp in Sources */,
     31707                                31A089691E738D59003B6609 /* JSWebGPULibrary.cpp in Sources */,
    3140631708                                5C5381B51D87E08700E2EBE6 /* JSURLSearchParams.cpp in Sources */,
    3140731709                                7C73FB11191EF6F4007DE061 /* JSUserMessageHandler.cpp in Sources */,
     
    3142031722                                FD82D7F713D4C8BD004E4372 /* JSWaveShaperNode.cpp in Sources */,
    3142131723                                120DE3F91C87C5AB00B6D4DD /* JSWebAnimation.cpp in Sources */,
     31724                                31A089081E737D51003B6609 /* WebGPUDepthStencilState.cpp in Sources */,
    3142231725                                D3F3D3631A69B1900059FC2B /* JSWebGL2RenderingContext.cpp in Sources */,
    3142331726                                D3F3D36C1A69B7D50059FC2B /* JSWebGL2RenderingContextCustom.cpp in Sources */,
     
    3144231745                                D3F3D36B1A69B7C50059FC2B /* JSWebGLRenderingContextBaseCustom.cpp in Sources */,
    3144331746                                49EED14F1051971A00099FAB /* JSWebGLRenderingContextCustom.cpp in Sources */,
     31747                                31A0898A1E738D5A003B6609 /* JSWebGPUTextureDescriptor.cpp in Sources */,
    3144431748                                6F995A331A70833700A735F4 /* JSWebGLSampler.cpp in Sources */,
    3144531749                                49C7B9A21042D2D30009D447 /* JSWebGLShader.cpp in Sources */,
     
    3151031814                                2917B566147349950052C9D0 /* LayerFlushSchedulerMac.cpp in Sources */,
    3151131815                                7AA3A69F194B59B6001CBD24 /* LayerPool.cpp in Sources */,
     31816                                31A089601E738D59003B6609 /* JSWebGPUDepthStencilState.cpp in Sources */,
    3151231817                                0F36E7371BD1837A002DB891 /* LayoutPoint.cpp in Sources */,
    3151331818                                141DC052164834B900371E5A /* LayoutRect.cpp in Sources */,
     
    3164431949                                C90843CF1B18E47D00B68564 /* MediaRemoteControls.cpp in Sources */,
    3164531950                                CD8ACA8E1D23971900ECC59E /* MediaRemoteSoftLink.cpp in Sources */,
     31951                                31A089721E738D5A003B6609 /* JSWebGPURenderPassAttachmentDescriptor.cpp in Sources */,
    3164631952                                CEEFCD7919DB31F7003876D7 /* MediaResourceLoader.cpp in Sources */,
    3164731953                                1B124D8F1D380BB600ECDFB0 /* MediaSampleAVFObjC.mm in Sources */,
     
    3164931955                                C9027F411B1D0AD200BFBFEF /* MediaSession.cpp in Sources */,
    3165031956                                C96F5EC71B5872260091EA9D /* MediaSessionInterruptionProvider.cpp in Sources */,
     31957                                31A0895D1E738D59003B6609 /* JSWebGPUDepthStencilDescriptor.cpp in Sources */,
    3165131958                                C96F5EC61B5872260091EA9D /* MediaSessionInterruptionProviderMac.mm in Sources */,
    3165231959                                57B5F80F1E5E2A4B00F34F90 /* JSAesGcmParams.cpp in Sources */,
     
    3178732094                                CD5E5B611A15F156000C609E /* PageConfiguration.cpp in Sources */,
    3178832095                                F3820892147D35F90010BC06 /* PageConsoleAgent.cpp in Sources */,
     32096                                31A089111E737D51003B6609 /* WebGPURenderPassColorAttachmentDescriptor.cpp in Sources */,
    3178932097                                DAED203016F2442B0070EC0F /* PageConsoleClient.cpp in Sources */,
    3179032098                                A5A2AF0B1829734300DE1729 /* PageDebuggable.cpp in Sources */,
     
    3181532123                                2D5002FB1B56D7990020AAF7 /* PathUtilities.cpp in Sources */,
    3181632124                                A8FA6E5E0E4CFDED00D5CF49 /* Pattern.cpp in Sources */,
     32125                                31A089841E738D5A003B6609 /* JSWebGPURenderPipelineState.cpp in Sources */,
    3181732126                                A80A38FE0E50CC8200A25EBC /* PatternCG.cpp in Sources */,
    3181832127                                1A8A646C1D19FF8700D0E00F /* PaymentCocoa.mm in Sources */,
     
    3182432133                                1A58E8671D19D80E00C0EA73 /* PaymentRequest.cpp in Sources */,
    3182532134                                1A8A64671D19FDFF00D0E00F /* PaymentRequestValidator.cpp in Sources */,
     32135                                31A089661E738D59003B6609 /* JSWebGPUFunction.cpp in Sources */,
    3182632136                                B27535640B053814002CE64F /* PDFDocumentImage.cpp in Sources */,
    3182732137                                2D6E468417D660F500ECF8BB /* PDFDocumentImageMac.mm in Sources */,
     
    3186332173                                2934940B16C02C0A00901318 /* PlatformSpeechSynthesisUtterance.cpp in Sources */,
    3186432174                                2934940A16C02C0700901318 /* PlatformSpeechSynthesisVoice.cpp in Sources */,
     32175                                31A089811E738D5A003B6609 /* JSWebGPURenderPipelineDescriptor.cpp in Sources */,
    3186532176                                297BE3DA16C043D8003316BD /* PlatformSpeechSynthesizer.cpp in Sources */,
    3186632177                                AA12DF491743DF83004DAFDF /* PlatformSpeechSynthesizerIOS.mm in Sources */,
     
    3194632257                                066C77300AB603FD00238CC4 /* RenderFileUploadControl.cpp in Sources */,
    3194732258                                53C8298D13D8D92700DE2DEB /* RenderFlexibleBox.cpp in Sources */,
     32259                                31A0896F1E738D5A003B6609 /* JSWebGPURenderingContext.cpp in Sources */,
    3194832260                                508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */,
    3194932261                                A871DED40A1530C700B12A68 /* RenderFrame.cpp in Sources */,
     
    3197532287                                439046D912DA25E800AF81B3 /* RenderMathMLFencedOperator.cpp in Sources */,
    3197632288                                439046DB12DA25E800AF80A2 /* RenderMathMLFraction.cpp in Sources */,
     32289                                31A0897B1E738D5A003B6609 /* JSWebGPURenderPassDescriptor.cpp in Sources */,
    3197732290                                439046DD12DA25E800AF80A2 /* RenderMathMLMath.cpp in Sources */,
    3197832291                                3571883EEF618793751E4089 /* RenderMathMLMenclose.cpp in Sources */,
     
    3205832371                                E1BA003116FB92AC00BA7A35 /* ResourceHandleClient.cpp in Sources */,
    3205932372                                7E428CE513E3407F003B661C /* ResourceHandleIOS.mm in Sources */,
     32373                                31A089051E737D51003B6609 /* WebGPUCommandBuffer.cpp in Sources */,
    3206032374                                514C76510CE9234E007EF3CD /* ResourceHandleMac.mm in Sources */,
    3206132375                                93E227E30AF589AD00D48324 /* ResourceLoader.cpp in Sources */,
     
    3206632380                                6B693A341C51A95D00B03BEF /* ResourceLoadObserver.cpp in Sources */,
    3206732381                                7A929CA61C598A9E004DF226 /* ResourceLoadStatistics.cpp in Sources */,
     32382                                31A0890B1E737D51003B6609 /* WebGPUFunction.cpp in Sources */,
    3206832383                                7AD3CDD91C8A002F00F12698 /* ResourceLoadStatisticsStore.cpp in Sources */,
    3206932384                                514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */,
     
    3215632471                                1AF62EE714DA22A70041556C /* ScrollingCoordinator.cpp in Sources */,
    3215732472                                0FC4E40E187F82E10045882C /* ScrollingCoordinatorIOS.mm in Sources */,
     32473                                31A0891A1E737D55003B6609 /* JSWebGPURenderPassAttachmentDescriptorCustom.cpp in Sources */,
    3215832474                                1AF62EE614DA22A70041556C /* ScrollingCoordinatorMac.mm in Sources */,
    3215932475                                51C61B0A1DE536E7008A212D /* ScrollingMomentumCalculator.cpp in Sources */,
     32476                                31A089541E738D59003B6609 /* JSWebGPUBuffer.cpp in Sources */,
    3216032477                                517DEEE51DE94ADC00B91644 /* ScrollingMomentumCalculatorMac.mm in Sources */,
    3216132478                                93C38BFE164473C700091EB2 /* ScrollingStateFixedNode.cpp in Sources */,
     
    3219232509                                0E7058EE1BC5BC190045A507 /* SearchPopupMenuCocoa.mm in Sources */,
    3219332510                                976F36EA14686225005E93B4 /* SecurityContext.cpp in Sources */,
     32511                                31A0890E1E737D51003B6609 /* WebGPURenderCommandEncoder.cpp in Sources */,
    3219432512                                BCD0E0FA0E972C3500265DEA /* SecurityOrigin.cpp in Sources */,
    3219532513                                51E3AA0A1B98BCAB0036AD81 /* SecurityOriginData.cpp in Sources */,
    3219632514                                1AF7AFC71A48A8BC00C8E4E7 /* SecurityOriginPolicy.cpp in Sources */,
     32515                                31A089121E737D51003B6609 /* WebGPURenderPassDepthAttachmentDescriptor.cpp in Sources */,
    3219732516                                974D2DA4146A535D00D51F8B /* SecurityPolicy.cpp in Sources */,
    3219832517                                99CC0B5D18BE984A006CEBCC /* SegmentedInputStorage.cpp in Sources */,
     
    3230132620                                8102C5881325BB1100DDE67A /* StringCallback.cpp in Sources */,
    3230232621                                B23540F20D00782E002382FA /* StringTruncator.cpp in Sources */,
     32622                                31A089041E737D51003B6609 /* WebGPUBuffer.cpp in Sources */,
    3230332623                                414B82041D6DF0DF0077EBE3 /* StructuredClone.cpp in Sources */,
    3230432624                                BC5EB6A20E81DC4F00B25965 /* StyleBackgroundData.cpp in Sources */,
     
    3256232882                                F55B3DD91251F12D003EF269 /* TextInputType.cpp in Sources */,
    3256332883                                CECADFCD1537791D00E37068 /* TextInsertionBaseCommand.cpp in Sources */,
     32884                                31A089631E738D59003B6609 /* JSWebGPUDrawable.cpp in Sources */,
    3256432885                                93309E1B099E64920056E581 /* TextIterator.cpp in Sources */,
    3256532886                                E4D988B617BFEB210084FB88 /* TextNodeTraversal.cpp in Sources */,
     
    3262932950                                93309E19099E64920056E581 /* TypingCommand.cpp in Sources */,
    3263032951                                85031B4D0A44EFC700F992E0 /* UIEvent.cpp in Sources */,
     32952                                31A0897E1E738D5A003B6609 /* JSWebGPURenderPipelineColorAttachmentDescriptor.cpp in Sources */,
    3263132953                                93354A3C0B24F8C9003F6DEA /* UIEventWithKeyState.cpp in Sources */,
    3263232954                                518864E01BBAF57100E540C9 /* UniqueIDBDatabase.cpp in Sources */,
     
    3267032992                                CDE83DB1183C44060031EAA3 /* VideoPlaybackQuality.cpp in Sources */,
    3267132993                                CD9D82791C7B8EE1006FF066 /* VideoTextureCopierCV.cpp in Sources */,
     32994                                31A089151E737D51003B6609 /* WebGPURenderPipelineDescriptor.cpp in Sources */,
    3267232995                                BE88E0DE1715D2A200658D98 /* VideoTrack.cpp in Sources */,
    3267332996                                BE88E0E11715D2A200658D98 /* VideoTrackList.cpp in Sources */,
     
    3267632999                                CEF418CE1179678C009D112C /* ViewportArguments.cpp in Sources */,
    3267733000                                26F9A83818A046AC00AEB88A /* ViewportConfiguration.cpp in Sources */,
     33001                                31A089071E737D51003B6609 /* WebGPUDepthStencilDescriptor.cpp in Sources */,
    3267833002                                3FFFF9AD159D9B060020BBD5 /* ViewportStyleResolver.cpp in Sources */,
    3267933003                                93309E1F099E64920056E581 /* VisiblePosition.cpp in Sources */,
     
    3271533039                                BC348BD30DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp in Sources */,
    3271633040                                BC348BD30DB7F804004ABABA /* WebCoreJSBuiltins.cpp in Sources */,
     33041                                31A089571E738D59003B6609 /* JSWebGPUCommandBuffer.cpp in Sources */,
    3271733042                                0F7DF1481E2BF1B10095951B /* WebCoreJSClientData.cpp in Sources */,
    3271833043                                3140379C124BEA7F00AF40E4 /* WebCoreMotionManager.mm in Sources */,
     
    3285533180                                E1271A140EEEC80400F61213 /* WorkerNavigator.cpp in Sources */,
    3285633181                                2E4346520F546A8200B0F1BA /* WorkerRunLoop.cpp in Sources */,
     33182                                31A0890F1E737D51003B6609 /* WebGPURenderingContext.cpp in Sources */,
    3285733183                                A57FD71B1DB9423E006AE24B /* WorkerRuntimeAgent.cpp in Sources */,
    3285833184                                E1A643FD0EC097A000779668 /* WorkerScriptController.cpp in Sources */,
  • trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp

    r211247 r213762  
    11/*
    2  * Copyright (C) 2007-2009, 2011, 2016 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007-2009, 2011, 2016, 2017 Apple Inc. All rights reserved.
    33 *
    44 * This library is free software; you can redistribute it and/or
     
    4141#if ENABLE(WEBGL)
    4242#include "JSWebGLRenderingContextBase.h"
     43#endif
     44
     45#if ENABLE(WEBGPU)
     46#include "JSWebGPURenderingContext.h"
    4347#endif
    4448
     
    151155        return toJS(&state, globalObject(), downcast<WebGLRenderingContextBase>(*context));
    152156#endif
     157#if ENABLE(WEBGPU)
     158    if (is<WebGPURenderingContext>(*context))
     159        return toJS(&state, globalObject(), downcast<WebGPURenderingContext>(*context));
     160#endif
    153161
    154162    return toJS(&state, globalObject(), downcast<CanvasRenderingContext2D>(*context));
  • trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp

    r209549 r213762  
    11/*
    2  * Copyright (C) 2007, 2016 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007, 2016, 2017 Apple Inc. All rights reserved.
    33 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
    44 *
     
    3838#endif
    3939
     40#if ENABLE(WEBGPU)
     41#include "JSWebGPURenderingContext.h"
     42#endif
     43
    4044using namespace JSC;
    4145
     
    6367        return toJS<IDLNullable<IDLInterface<WebGLRenderingContextBase>>>(state, *globalObject(), static_cast<WebGLRenderingContextBase*>(wrapped().getContextWebGL(contextId, WTFMove(attributes))));
    6468    }
     69#endif
     70
     71#if ENABLE(WEBGPU)
     72    if (HTMLCanvasElement::isWebGPUType(contextId))
     73        return toJS<IDLNullable<IDLInterface<WebGPURenderingContext>>>(state, *globalObject(), static_cast<WebGPURenderingContext*>(wrapped().getContextWebGPU(contextId)));
    6574#endif
    6675
  • trunk/Source/WebCore/bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "JSWebGPURenderPassAttachmentDescriptor.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     31#include "JSDOMBinding.h"
     32#include "JSWebGPURenderPassColorAttachmentDescriptor.h"
     33#include "WebGPURenderPassColorAttachmentDescriptor.h"
    3334
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     35using namespace JSC;
    4636
    4737namespace WebCore {
    4838
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     39JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<WebGPURenderPassAttachmentDescriptor>&& object)
     40{
     41    if (object->isColorAttachmentDescriptor())
     42        return createWrapper<WebGPURenderPassColorAttachmentDescriptor>(globalObject, WTFMove(object));
     43    return createWrapper<WebGPURenderPassAttachmentDescriptor>(globalObject, WTFMove(object));
     44}
    5345
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     46JSValue toJS(ExecState* state, JSDOMGlobalObject* globalObject, WebGPURenderPassAttachmentDescriptor& object)
     47{
     48    return wrap(state, globalObject, object);
     49}
    5850
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
    80 
    81 } // namespace WebCore
     51}
    8252
    8353#endif
  • trunk/Source/WebCore/bindings/js/JSWebGPURenderingContextCustom.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "JSWebGPURenderingContext.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31using namespace JSC;
    4632
    4733namespace WebCore {
    4834
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     35void JSWebGPURenderingContext::visitAdditionalChildren(SlotVisitor& visitor)
     36{
     37    visitor.addOpaqueRoot(&wrapped());
     38}
    8039
    8140} // namespace WebCore
  • trunk/Source/WebCore/html/HTMLCanvasElement.cpp

    r213598 r213762  
    11/*
    2  * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
     2 * Copyright (C) 2004, 2006, 2007, 2017 Apple Inc. All rights reserved.
    33 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
    44 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
     
    6363#endif
    6464
     65#if ENABLE(WEBGPU)
     66#include "WebGPURenderingContext.h"
     67#endif
     68
    6569#if PLATFORM(COCOA)
    6670#include "MediaSampleAVFObjC.h"
     
    195199    if (HTMLCanvasElement::is2dType(type))
    196200        return getContext2d(type);
     201
     202#if ENABLE(WEBGPU)
     203    if (HTMLCanvasElement::isWebGPUType(type))
     204        return getContextWebGPU(type);
     205#endif
    197206
    198207#if ENABLE(WEBGL)
     
    289298    if (!m_context) {
    290299        m_context = WebGLRenderingContextBase::create(*this, attrs, type);
     300        if (m_context) {
     301            // Need to make sure a RenderLayer and compositing layer get created for the Canvas
     302            invalidateStyleAndLayerComposition();
     303        }
     304    }
     305
     306    return m_context.get();
     307}
     308#endif
     309
     310#if ENABLE(WEBGPU)
     311bool HTMLCanvasElement::isWebGPUType(const String& type)
     312{
     313    return type == "webgpu";
     314}
     315
     316CanvasRenderingContext* HTMLCanvasElement::getContextWebGPU(const String& type)
     317{
     318    ASSERT_UNUSED(type, HTMLCanvasElement::isWebGPUType(type));
     319
     320    if (m_context && !m_context->isGPU())
     321        return nullptr;
     322
     323    if (!m_context) {
     324        m_context = WebGPURenderingContext::create(*this);
    291325        if (m_context) {
    292326            // Need to make sure a RenderLayer and compositing layer get created for the Canvas
     
    356390    setSurfaceSize(newSize);
    357391
     392#if ENABLE(WEBGPU)
     393    // FIXME: WebGPU needs something here too.
     394    if (isGPU() && oldSize != size())
     395        static_cast<WebGPURenderingContext*>(m_context.get())->reshape(width(), height());
     396#endif
     397
    358398#if ENABLE(WEBGL)
    359399    if (is3D() && oldSize != size())
     
    424464    }
    425465
    426 #if ENABLE(WEBGL)   
     466#if ENABLE(WEBGPU)
     467    if (isGPU())
     468        static_cast<WebGPURenderingContext*>(m_context.get())->markLayerComposited();
     469#endif
     470
     471#if ENABLE(WEBGL)
    427472    if (is3D())
    428473        static_cast<WebGLRenderingContextBase*>(m_context.get())->markLayerComposited();
    429474#endif
    430475}
     476
     477#if ENABLE(WEBGPU)
     478bool HTMLCanvasElement::isGPU() const
     479{
     480    return m_context && m_context->isGPU();
     481}
     482#endif
    431483
    432484#if ENABLE(WEBGL)
  • trunk/Source/WebCore/html/HTMLCanvasElement.h

    r213598 r213762  
    11/*
    2  * Copyright (C) 2004, 2006, 2009, 2010 Apple Inc. All rights reserved.
     2 * Copyright (C) 2004, 2006, 2009, 2010, 2017 Apple Inc. All rights reserved.
    33 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
    44 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
     
    101101    CanvasRenderingContext* getContextWebGL(const String&, WebGLContextAttributes&& = { });
    102102#endif
     103#if ENABLE(WEBGPU)
     104    static bool isWebGPUType(const String&);
     105    CanvasRenderingContext* getContextWebGPU(const String&);
     106#endif
    103107
    104108    static String toEncodingMimeType(const String& mimeType);
     
    176180#if ENABLE(WEBGL)
    177181    bool is3D() const;
     182#endif
     183#if ENABLE(WEBGPU)
     184    bool isGPU() const;
    178185#endif
    179186
  • trunk/Source/WebCore/html/canvas/CanvasRenderingContext.h

    r208206 r213762  
    11/*
    2  * Copyright (C) 2009 Apple Inc. All rights reserved.
     2 * Copyright (C) 2009, 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    5555    virtual bool isWebGL2() const { return false; }
    5656    bool is3d() const { return isWebGL1() || isWebGL2(); }
     57    virtual bool isGPU() const { return false; }
    5758    virtual bool isAccelerated() const { return false; }
    5859
  • trunk/Source/WebCore/html/canvas/WebGPUBuffer.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUBuffer.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31#include "GPUBuffer.h"
     32#include "WebGPURenderingContext.h"
     33#include <runtime/ArrayBuffer.h>
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37Ref<WebGPUBuffer> WebGPUBuffer::create(WebGPURenderingContext* context, ArrayBufferView* data)
     38{
     39    return adoptRef(*new WebGPUBuffer(context, data));
     40}
    5341
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     42WebGPUBuffer::WebGPUBuffer(WebGPURenderingContext* context, ArrayBufferView* data)
     43    : WebGPUObject(context)
     44{
     45    m_buffer = context->device()->createBufferFromData(data);
     46}
    5847
    59     void reshape(int width, int height);
     48WebGPUBuffer::~WebGPUBuffer()
     49{
     50}
    6051
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     52unsigned long WebGPUBuffer::length() const
     53{
     54    if (!m_buffer)
     55        return 0;
    6556
    66     WebGPULayer* layer() { return m_layer.get(); }
     57    return m_buffer->length();
     58}
    6759
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     60RefPtr<ArrayBuffer> WebGPUBuffer::contents() const
     61{
     62    if (!m_buffer)
     63        return nullptr;
    7164
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     65    return m_buffer->contents();
     66}
    8067
    8168} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUBuffer.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include "WebGPUObject.h"
    4631
    4732namespace WebCore {
    4833
    4934class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    5335
    54 class GPUDevice : public RefCounted<GPUDevice> {
     36class WebGPUBuffer : public WebGPUObject {
    5537public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     38    virtual ~WebGPUBuffer();
     39    static Ref<WebGPUBuffer> create(WebGPURenderingContext*, ArrayBufferView*);
    5840
    59     void reshape(int width, int height);
     41    unsigned long length() const;
     42    RefPtr<ArrayBuffer> contents() const;
    6043
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     44    GPUBuffer* buffer() { return m_buffer.get(); }
    7145
    7246private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     47    WebGPUBuffer(WebGPURenderingContext*, ArrayBufferView*);
     48    RefPtr<GPUBuffer> m_buffer;
    7949};
    8050
  • trunk/Source/WebCore/html/canvas/WebGPUBuffer.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUBuffer {
    2730
    28 #if ENABLE(WEBGPU)
     31    readonly attribute unsigned long length;
     32    readonly attribute ArrayBufferView contents;
    2933
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7934};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUCommandBuffer.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36// FIXME: WebGPU - Stub implementation - not implemented yet.
     37// class GPUCommandBuffer;
     38class GPUDrawable;
     39class GPURenderCommandEncoder;
     40class GPURenderPassDescriptor;
     41class GPUCommandBuffer : public RefCounted<GPUCommandBuffer> {
     42public:
     43    GPURenderCommandEncoder* createRenderCommandEncoder(GPURenderPassDescriptor*) { return nullptr; }
     44    void commit() { }
     45    void presentDrawable(GPUDrawable*) { }
     46};
     47// FIXME: WebGPU - End stub.
     48class WebGPUCommandQueue;
     49class WebGPUDrawable;
     50class WebGPUFunction;
     51class WebGPURenderCommandEncoder;
     52class WebGPURenderPassDescriptor;
    5353
    54 class GPUDevice : public RefCounted<GPUDevice> {
     54class WebGPUCommandBuffer : public WebGPUObject {
    5555public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     56    virtual ~WebGPUCommandBuffer();
     57    static Ref<WebGPUCommandBuffer> create(WebGPURenderingContext*, WebGPUCommandQueue*);
    5858
    59     void reshape(int width, int height);
     59    void commit();
     60    void presentDrawable(WebGPUDrawable&);
    6061
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     62    RefPtr<WebGPURenderCommandEncoder> createRenderCommandEncoderWithDescriptor(WebGPURenderPassDescriptor&);
    6563
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     64    GPUCommandBuffer* commandBuffer() { return m_commandBuffer.get(); }
    7165
    7266private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     67    WebGPUCommandBuffer(WebGPURenderingContext*, WebGPUCommandQueue*);
     68    RefPtr<GPUCommandBuffer> m_commandBuffer;
    7969};
    8070
  • trunk/Source/WebCore/html/canvas/WebGPUCommandBuffer.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUCommandBuffer {
    2730
    28 #if ENABLE(WEBGPU)
     31    WebGPURenderCommandEncoder createRenderCommandEncoderWithDescriptor(WebGPURenderPassDescriptor descriptor);
     32    void commit();
     33    void presentDrawable(WebGPUDrawable drawable);
    2934
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7935};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUCommandQueue.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUCommandQueue.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31/* FIXME: WebGPU - Not implemented yet.
     32#include "GPUCommandQueue.h"
     33*/
     34#include "WebGPUCommandBuffer.h"
     35#include "WebGPURenderingContext.h"
    4636
    4737namespace WebCore {
    4838
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     39Ref<WebGPUCommandQueue> WebGPUCommandQueue::create(WebGPURenderingContext* context)
     40{
     41    return adoptRef(*new WebGPUCommandQueue(context));
     42}
    5343
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     44WebGPUCommandQueue::WebGPUCommandQueue(WebGPURenderingContext* context)
     45    : WebGPUObject(context)
     46{
     47    m_commandQueue = context->device()->createCommandQueue();
     48}
    5849
    59     void reshape(int width, int height);
     50WebGPUCommandQueue::~WebGPUCommandQueue()
     51{
     52}
    6053
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     54String WebGPUCommandQueue::label() const
     55{
     56    if (!m_commandQueue)
     57        return emptyString();
    6558
    66     WebGPULayer* layer() { return m_layer.get(); }
     59    return m_commandQueue->label();
     60}
    6761
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     62void WebGPUCommandQueue::setLabel(const String& label)
     63{
     64    if (!m_commandQueue)
     65        return;
    7166
    72 private:
    73     GPUDevice();
     67    m_commandQueue->setLabel(label);
     68}
    7469
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     70RefPtr<WebGPUCommandBuffer> WebGPUCommandQueue::createCommandBuffer()
     71{
     72    RefPtr<WebGPUCommandBuffer> buffer = WebGPUCommandBuffer::create(this->context(), this);
     73    return buffer;
     74}
    8075
    8176} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUCommandQueue.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36class GPUCommandBuffer;
    5337
    54 class GPUDevice : public RefCounted<GPUDevice> {
     38// FIXME: WebGPU - Stub implementation - not implemented yet.
     39// class GPUCommandQueue;
     40class GPUCommandQueue : public RefCounted<GPUCommandQueue> {
    5541public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     42    GPUCommandBuffer* createCommandBuffer() { return nullptr; }
     43    String label() const { return emptyString(); }
     44    void setLabel(const String&) { }
     45};
     46// FIXME: WebGPU - End stub.
    5847
    59     void reshape(int width, int height);
     48class WebGPUCommandBuffer;
    6049
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     50class WebGPUCommandQueue : public WebGPUObject {
     51public:
     52    virtual ~WebGPUCommandQueue();
     53    static Ref<WebGPUCommandQueue> create(WebGPURenderingContext*);
    6554
    66     WebGPULayer* layer() { return m_layer.get(); }
     55    String label() const;
     56    void setLabel(const String&);
    6757
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     58    RefPtr<WebGPUCommandBuffer> createCommandBuffer();
     59
     60    GPUCommandQueue* commandQueue() { return m_commandQueue.get(); }
    7161
    7262private:
    73     GPUDevice();
     63    WebGPUCommandQueue(WebGPURenderingContext*);
    7464
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     65    RefPtr<GPUCommandQueue> m_commandQueue;
    7966};
    8067
  • trunk/Source/WebCore/html/canvas/WebGPUCommandQueue.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUCommandQueue {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute DOMString label;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     33    WebGPUCommandBuffer? createCommandBuffer();
    3334
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7935};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUEnums.h"
     31#include "WebGPUObject.h"
    3332
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     33#include <wtf/Vector.h>
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37// FIXME: WebGPU - Stub implementation - not implemented yet.
     38// class GPUDepthStencilDescriptor;
     39class GPUDepthStencilDescriptor : public RefCounted<GPUDepthStencilDescriptor> {
     40public:
     41    static RefPtr<GPUDepthStencilDescriptor> create() { return nullptr; }
     42    String label() const { return emptyString(); }
     43    void setLabel(const String&) { }
     44    bool depthWriteEnabled() const { return false; }
     45    void setDepthWriteEnabled(bool) { }
     46    void setDepthCompareFunction(GPUCompareFunction) { }
     47};
     48// FIXME: WebGPU - End stub.
    5349
    54 class GPUDevice : public RefCounted<GPUDevice> {
     50class WebGPUDepthStencilDescriptor : public WebGPUObject {
    5551public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     52    virtual ~WebGPUDepthStencilDescriptor();
     53    static Ref<WebGPUDepthStencilDescriptor> create();
    5854
    59     void reshape(int width, int height);
     55    String label() const;
     56    void setLabel(const String&);
    6057
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     58    bool depthWriteEnabled() const;
     59    void setDepthWriteEnabled(bool);
    6560
    66     WebGPULayer* layer() { return m_layer.get(); }
     61    using CompareFunction = WebGPUCompareFunction;
     62    CompareFunction depthCompareFunction() const;
     63    void setDepthCompareFunction(CompareFunction);
    6764
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     65    GPUDepthStencilDescriptor* depthStencilDescriptor() { return m_depthStencilDescriptor.get(); }
    7166
    7267private:
    73     GPUDevice();
     68    WebGPUDepthStencilDescriptor();
    7469
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     70    WebGPUCompareFunction m_depthCompareFunction;
     71    RefPtr<GPUDepthStencilDescriptor> m_depthStencilDescriptor;
    7972};
    8073
  • trunk/Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
    27 
    28 #if ENABLE(WEBGPU)
    29 
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] enum WebGPUCompareFunction {
     30    "never",
     31    "less",
     32    "equal",
     33    "lessequal",
     34    "greater",
     35    "notequal",
     36    "greaterequal",
     37    "always"
    7938};
    8039
    81 } // namespace WebCore
     40[
     41    Constructor,
     42    Conditional=WEBGPU,
     43    EnabledAtRuntime=WebGPU
     44] interface WebGPUDepthStencilDescriptor {
    8245
    83 #endif
     46    attribute DOMString label;
     47
     48    attribute WebGPUCompareFunction depthCompareFunction;
     49    attribute boolean depthWriteEnabled;
     50
     51};
  • trunk/Source/WebCore/html/canvas/WebGPUDepthStencilState.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUDepthStencilState.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31/* FIXME: WebGPU - Not implemented yet.
     32#include "GPUDepthStencilState.h"
     33 */
     34#include "WebGPUDepthStencilDescriptor.h"
     35#include "WebGPURenderingContext.h"
    4636
    4737namespace WebCore {
    4838
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     39Ref<WebGPUDepthStencilState> WebGPUDepthStencilState::create(WebGPURenderingContext* context, WebGPUDepthStencilDescriptor* descriptor)
     40{
     41    return adoptRef(*new WebGPUDepthStencilState(context, descriptor));
     42}
    5343
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     44WebGPUDepthStencilState::WebGPUDepthStencilState(WebGPURenderingContext* context, WebGPUDepthStencilDescriptor* descriptor)
     45    : WebGPUObject(context)
     46{
     47    if (!context || !descriptor)
     48        return;
     49    m_depthStencilState = GPUDepthStencilState::create(context->device().get(), descriptor->depthStencilDescriptor());
     50}
    5851
    59     void reshape(int width, int height);
     52WebGPUDepthStencilState::~WebGPUDepthStencilState()
     53{
     54}
    6055
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     56String WebGPUDepthStencilState::label() const
     57{
     58    if (!m_depthStencilState)
     59        return emptyString();
    6560
    66     WebGPULayer* layer() { return m_layer.get(); }
     61    return m_depthStencilState->label();
     62}
    6763
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     64void WebGPUDepthStencilState::setLabel(const String& label)
     65{
     66    if (!m_depthStencilState)
     67        return;
    7168
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     69    m_depthStencilState->setLabel(label);
     70}
    8071
    8172} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUDepthStencilState.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36// FIXME: WebGPU - Stub implementation - not implemented yet.
     37// class GPUDepthStencilState;
     38class GPUDevice;
     39class GPUDepthStencilDescriptor;
     40class GPUDepthStencilState : public RefCounted<GPUDepthStencilState> {
     41public:
     42    static RefPtr<GPUDepthStencilState> create(GPUDevice*, GPUDepthStencilDescriptor*) { return nullptr; }
     43    String label() const { return emptyString(); }
     44    void setLabel(const String&) { }
     45};
     46// FIXME: WebGPU - End stub.
     47class WebGPUDepthStencilDescriptor;
    5348
    54 class GPUDevice : public RefCounted<GPUDevice> {
     49class WebGPUDepthStencilState : public WebGPUObject {
    5550public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     51    virtual ~WebGPUDepthStencilState();
     52    static Ref<WebGPUDepthStencilState> create(WebGPURenderingContext*, WebGPUDepthStencilDescriptor*);
    5853
    59     void reshape(int width, int height);
     54    String label() const;
     55    void setLabel(const String&);
    6056
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     57    GPUDepthStencilState* depthStencilState() { return m_depthStencilState.get(); }
    7158
    7259private:
    73     GPUDevice();
     60    WebGPUDepthStencilState(WebGPURenderingContext*, WebGPUDepthStencilDescriptor*);
    7461
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     62    RefPtr<GPUDepthStencilState> m_depthStencilState;
    7963};
    80 
     64   
    8165} // namespace WebCore
    8266
  • trunk/Source/WebCore/html/canvas/WebGPUDepthStencilState.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUDepthStencilState {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute DOMString label;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUDrawable.cpp

    r213761 r213762  
    1515 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    1616 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
     17 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    1718 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    1919 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    2020 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUDrawable.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31/* FIXME: WebGPU - Not implemented yet.
     32#include "GPUDrawable.h"
     33 */
     34#include "GPUTexture.h"
     35#include "WebGPURenderingContext.h"
     36#include "WebGPUTexture.h"
    4637
    4738namespace WebCore {
    4839
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     40Ref<WebGPUDrawable> WebGPUDrawable::create(WebGPURenderingContext* context)
     41{
     42    return adoptRef(*new WebGPUDrawable(context));
     43}
    5344
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     45WebGPUDrawable::WebGPUDrawable(WebGPURenderingContext* context)
     46    : WebGPUObject(context)
     47{
     48    m_drawable = context->device()->getFramebuffer();
     49    if (!m_drawable)
     50        return;
    5851
    59     void reshape(int width, int height);
     52    RefPtr<GPUTexture> drawableTexture = GPUTexture::createFromExistingTexture(m_drawable->texture());
     53    m_texture = WebGPUTexture::createFromDrawableTexture(context, drawableTexture);
     54}
    6055
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     56WebGPUDrawable::~WebGPUDrawable()
     57{
     58}
    6559
    66     WebGPULayer* layer() { return m_layer.get(); }
     60WebGPUTexture* WebGPUDrawable::texture()
     61{
     62    if (!m_texture)
     63        return nullptr;
    6764
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     65    return m_texture.get();
     66}
    8067
    8168} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUDrawable.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include "WebGPUObject.h"
    4631
    4732namespace WebCore {
    4833
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     34// FIXME: WebGPU - Stub implementation - not implemented yet.
     35// class GPUDrawable;
     36class GPUDrawable : public RefCounted<GPUDrawable> {
     37public:
     38    GPUTexture* texture() { return nullptr; }
     39};
     40// FIXME: WebGPU - End stub.
     41class WebGPUTexture;
    5342
    54 class GPUDevice : public RefCounted<GPUDevice> {
     43class WebGPUDrawable : public WebGPUObject {
    5544public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     45    virtual ~WebGPUDrawable();
     46    static Ref<WebGPUDrawable> create(WebGPURenderingContext*);
    5847
    59     void reshape(int width, int height);
     48    WebGPUTexture* texture();
    6049
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     50    GPUDrawable* drawable() { return m_drawable.get(); }
    7151
    7252private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     53    WebGPUDrawable(WebGPURenderingContext*);
     54    RefPtr<GPUDrawable> m_drawable;
     55    RefPtr<WebGPUTexture> m_texture;
    7956};
    8057
  • trunk/Source/WebCore/html/canvas/WebGPUDrawable.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUDrawable {
    2730
    28 #if ENABLE(WEBGPU)
     31    readonly attribute WebGPUTexture texture; // FIXME: Only the framebuffer should have this.
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUEnums.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include <wtf/Optional.h>
     31#include <wtf/text/WTFString.h>
    4632
    4733namespace WebCore {
    4834
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     35enum class WebGPUCompareFunction {
     36    Never,
     37    Less,
     38    Equal,
     39    Lessequal,
     40    Greater,
     41    Notequal,
     42    Greaterequal,
     43    Always
     44};
    5345
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     46std::optional<WebGPUCompareFunction> toWebGPUCompareFunction(const String&);
     47String web3DCompareFunctionName(const WebGPUCompareFunction);
    5848
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     49// FIXME: WebGPU - Stub implementation - not implemented yet.
     50// enum class GPUCompareFunction;
     51enum class GPUCompareFunction {
     52    Never,
     53    Less,
     54    Equal,
     55    LessEqual,
     56    Greater,
     57    NotEqual,
     58    GreaterEqual,
     59    Always
    7960};
     61// FIXME: WebGPU - End stub.
     62GPUCompareFunction toGPUCompareFunction(const WebGPUCompareFunction);
    8063
    8164} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUFunction.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUFunction.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31#include "GPUFunction.h"
     32#include "GPULibrary.h"
     33#include "WebGPULibrary.h"
     34#include "WebGPURenderingContext.h"
    4635
    4736namespace WebCore {
    4837
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     38Ref<WebGPUFunction> WebGPUFunction::create(WebGPURenderingContext* context, WebGPULibrary* library, const String& name)
     39{
     40    return adoptRef(*new WebGPUFunction(context, library, name));
     41}
    5342
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     43WebGPUFunction::WebGPUFunction(WebGPURenderingContext* context, WebGPULibrary* library, const String& name)
     44    : WebGPUObject(context)
     45{
     46    m_function = library->library()->functionWithName(name);
     47}
    5848
    59     void reshape(int width, int height);
     49WebGPUFunction::~WebGPUFunction()
     50{
     51}
    6052
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     53String WebGPUFunction::name() const
     54{
     55    if (!m_function)
     56        return emptyString();
    6557
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     58    return m_function->name();
     59}
    8060
    8161} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUFunction.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include "WebGPUObject.h"
    4631
    4732namespace WebCore {
    4833
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     34class GPUFunction;
     35class WebGPULibrary;
    5336
    54 class GPUDevice : public RefCounted<GPUDevice> {
     37class WebGPUFunction : public WebGPUObject {
    5538public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     39    virtual ~WebGPUFunction();
     40    static Ref<WebGPUFunction> create(WebGPURenderingContext*, WebGPULibrary*, const String& name);
    5841
    59     void reshape(int width, int height);
     42    String name() const;
    6043
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     44    GPUFunction* function() const { return m_function.get(); }
    7145
    7246private:
    73     GPUDevice();
     47    WebGPUFunction(WebGPURenderingContext*, WebGPULibrary*, const String& name);
    7448
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     49    RefPtr<GPUFunction> m_function;
    7950};
    80 
     51   
    8152} // namespace WebCore
    8253
  • trunk/Source/WebCore/html/canvas/WebGPUFunction.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUFunction {
    2730
    28 #if ENABLE(WEBGPU)
     31    readonly attribute DOMString name;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPULibrary.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPULibrary.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31#include "GPULibrary.h"
     32#include "WebGPUFunction.h"
     33#include "WebGPURenderingContext.h"
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37Ref<WebGPULibrary> WebGPULibrary::create(WebGPURenderingContext* context, const String& sourceCode)
     38{
     39    return adoptRef(*new WebGPULibrary(context, sourceCode));
     40}
    5341
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     42WebGPULibrary::WebGPULibrary(WebGPURenderingContext* context, const String& sourceCode)
     43    : WebGPUObject(context)
     44    , m_sourceCode(sourceCode)
     45{
     46    m_library = context->device()->createLibrary(sourceCode);
     47}
    5848
    59     void reshape(int width, int height);
     49WebGPULibrary::~WebGPULibrary()
     50{
     51}
    6052
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     53String WebGPULibrary::label() const
     54{
     55    if (!m_library)
     56        return emptyString();
    6557
    66     WebGPULayer* layer() { return m_layer.get(); }
     58    return m_library->label();
     59}
    6760
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     61void WebGPULibrary::setLabel(const String& label)
     62{
     63    if (!m_library)
     64        return;
    7165
    72 private:
    73     GPUDevice();
     66    m_library->setLabel(label);
     67}
    7468
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     69Vector<String> WebGPULibrary::functionNames()
     70{
     71    if (!m_library)
     72        return Vector<String>();
     73
     74    return m_library->functionNames();
     75}
     76
     77RefPtr<WebGPUFunction> WebGPULibrary::functionWithName(const String& name)
     78{
     79    if (!m_library)
     80        return nullptr;
     81
     82    RefPtr<WebGPUFunction> function = WebGPUFunction::create(this->context(), this, name);
     83    if (!function->function())
     84        return nullptr;
     85    return function;
     86}
    8087
    8188} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPULibrary.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    5036class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37class WebGPUFunction;
    5338
    54 class GPUDevice : public RefCounted<GPUDevice> {
     39class WebGPULibrary : public WebGPUObject {
    5540public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     41    virtual ~WebGPULibrary();
     42    static Ref<WebGPULibrary> create(WebGPURenderingContext*, const String& sourceCode);
    5843
    59     void reshape(int width, int height);
     44    String sourceCode() const { return m_sourceCode; }
     45    String label() const;
     46    void setLabel(const String&);
    6047
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     48    Vector<String> functionNames();
    6549
    66     WebGPULayer* layer() { return m_layer.get(); }
     50    RefPtr<WebGPUFunction> functionWithName(const String&);
    6751
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     52    GPULibrary* library() { return m_library.get(); }
    7153
    7254private:
    73     GPUDevice();
     55    WebGPULibrary(WebGPURenderingContext*, const String& sourceCode);
    7456
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     57    String m_sourceCode;
     58    RefPtr<GPULibrary> m_library;
    7959};
    8060
  • trunk/Source/WebCore/html/canvas/WebGPULibrary.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPULibrary {
    2730
    28 #if ENABLE(WEBGPU)
     31    readonly attribute DOMString sourceCode;
     32    attribute DOMString label;
     33    readonly attribute sequence<DOMString> functionNames;
    2934
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     35    WebGPUFunction? functionWithName(DOMString name);
    3336
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7937};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUObject.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUObject.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31#include "WebGPURenderingContext.h"
    4632
    4733namespace WebCore {
    4834
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     35WebGPUObject::WebGPUObject(WebGPURenderingContext* context)
     36    : m_context(context)
     37{
     38}
    5339
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     40WebGPUObject::~WebGPUObject()
     41{
     42}
    5843
    59     void reshape(int width, int height);
     44void WebGPUObject::deleteObject(GPUDevice*)
     45{
     46    m_deleted = true;
     47}
    6048
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
    80 
    81 } // namespace WebCore
     49}
    8250
    8351#endif
  • trunk/Source/WebCore/html/canvas/WebGPUObject.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
     30#include "GPUDevice.h"
     31
    3232#include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36class WebGPURenderingContext;
    5337
    54 class GPUDevice : public RefCounted<GPUDevice> {
     38class WebGPUObject : public RefCounted<WebGPUObject> {
    5539public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     40    virtual ~WebGPUObject();
    5841
    59     void reshape(int width, int height);
     42    void deleteObject(GPUDevice*);
     43    bool isDeleted() const { return m_deleted; }
    6044
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     45    WebGPURenderingContext* context() { return m_context.get(); }
    6546
    66     WebGPULayer* layer() { return m_layer.get(); }
     47protected:
     48    WebGPUObject(WebGPURenderingContext* = nullptr);
    6749
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     50    bool hasContext() const { return m_context; }
    7151
    7252private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     53    RefPtr<WebGPURenderingContext> m_context;
     54    bool m_deleted { false };
    7955};
    80 
     56   
    8157} // namespace WebCore
    8258
  • trunk/Source/WebCore/html/canvas/WebGPURenderCommandEncoder.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPURenderCommandEncoder {
    2730
    28 #if ENABLE(WEBGPU)
     31    void setRenderPipelineState(WebGPURenderPipelineState pipelineState);
     32    void setDepthStencilState(WebGPUDepthStencilState depthStencilState);
     33    void setVertexBuffer(WebGPUBuffer buffer, unsigned long offset, unsigned long index);
     34    void setFragmentBuffer(WebGPUBuffer buffer, unsigned long offset, unsigned long index);
     35    void drawPrimitives(unsigned long type, unsigned long start, unsigned long count);
    2936
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     37    void endEncoding();
    3338
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7939};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36// FIXME: WebGPU - Stub implementation - not implemented yet.
     37// class GPURenderPassAttachmentDescriptor;
     38class GPURenderPassAttachmentDescriptor : public RefCounted<GPURenderPassAttachmentDescriptor> {
     39public:
     40    unsigned long loadAction() const { return 0; }
     41    void setLoadAction(unsigned long) { }
     42    unsigned long storeAction() const { return 0; }
     43    void setStoreAction(unsigned long) { }
     44    void setTexture(GPUTexture*) { }
     45};
     46// FIXME: WebGPU - End stub.
     47class WebGPUTexture;
    5348
    54 class GPUDevice : public RefCounted<GPUDevice> {
     49class WebGPURenderPassAttachmentDescriptor : public WebGPUObject {
    5550public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     51    virtual ~WebGPURenderPassAttachmentDescriptor();
    5852
    59     void reshape(int width, int height);
     53    unsigned long loadAction() const;
     54    void setLoadAction(unsigned long);
    6055
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     56    unsigned long storeAction() const;
     57    void setStoreAction(unsigned long);
    6558
    66     WebGPULayer* layer() { return m_layer.get(); }
     59    RefPtr<WebGPUTexture> texture() const;
     60    void setTexture(RefPtr<WebGPUTexture>);
    6761
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     62    GPURenderPassAttachmentDescriptor* renderPassAttachmentDescriptor() const { return m_renderPassAttachmentDescriptor.get(); }
     63
     64    virtual bool isColorAttachmentDescriptor() const { return false; }
     65
     66protected:
     67
     68    WebGPURenderPassAttachmentDescriptor(WebGPURenderingContext*, GPURenderPassAttachmentDescriptor*);
     69
    7170
    7271private:
    73     GPUDevice();
    7472
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     73    RefPtr<GPURenderPassAttachmentDescriptor> m_renderPassAttachmentDescriptor;
     74    RefPtr<WebGPUTexture> m_texture;
    7975};
    80 
     76   
    8177} // namespace WebCore
    8278
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU,
     29    CustomToJSObject
     30]
     31interface WebGPURenderPassAttachmentDescriptor {
    2732
    28 #if ENABLE(WEBGPU)
     33    attribute WebGPUTexture? texture;
    2934
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     35    attribute unsigned long loadAction; // should be WebGPULoadAction
     36    attribute unsigned long storeAction; // should be WebGPUStoreAction
    3337
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7938};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
     31#include "WebGPURenderPassAttachmentDescriptor.h"
    3332
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     33#include <wtf/Vector.h>
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37// FIXME: WebGPU - Stub implementation - not implemented yet.
     38// class GPURenderPassColorAttachmentDescriptor;
     39class GPURenderPassColorAttachmentDescriptor : public GPURenderPassAttachmentDescriptor {
     40public:
     41    Vector<float> clearColor() const { return Vector<float>(); }
     42    void setClearColor(const Vector<float>&) { }
     43};
     44// FIXME: WebGPU - End stub.
    5345
    54 class GPUDevice : public RefCounted<GPUDevice> {
     46class WebGPURenderPassColorAttachmentDescriptor : public WebGPURenderPassAttachmentDescriptor {
    5547public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     48    virtual ~WebGPURenderPassColorAttachmentDescriptor();
     49    static Ref<WebGPURenderPassColorAttachmentDescriptor> create(WebGPURenderingContext*, GPURenderPassColorAttachmentDescriptor*);
    5850
    59     void reshape(int width, int height);
     51    Vector<float> clearColor() const;
     52    void setClearColor(const Vector<float>&);
    6053
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     54    GPURenderPassColorAttachmentDescriptor* renderPassColorAttachmentDescriptor() const;
    6555
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     56    bool isColorAttachmentDescriptor() const override { return true; }
    7157
    7258private:
    73     GPUDevice();
     59    WebGPURenderPassColorAttachmentDescriptor(WebGPURenderingContext*, GPURenderPassColorAttachmentDescriptor*);
    7460
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7961};
    80 
     62   
    8163} // namespace WebCore
    8264
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPURenderPassColorAttachmentDescriptor : WebGPURenderPassAttachmentDescriptor {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute sequence<float> clearColor;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include "WebGPUObject.h"
     31#include "WebGPURenderPassAttachmentDescriptor.h"
    4632
    4733namespace WebCore {
    4834
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     35// FIXME: WebGPU - Stub implementation - not implemented yet.
     36// class GPURenderPassDepthAttachmentDescriptor;
     37class GPURenderPassDepthAttachmentDescriptor : public GPURenderPassAttachmentDescriptor {
     38public:
     39    double clearDepth() const { return 0; }
     40    void setClearDepth(double) { }
     41};
     42// FIXME: WebGPU - End stub.
    5343
    54 class GPUDevice : public RefCounted<GPUDevice> {
     44class WebGPURenderPassDepthAttachmentDescriptor : public WebGPURenderPassAttachmentDescriptor {
    5545public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     46    virtual ~WebGPURenderPassDepthAttachmentDescriptor();
     47    static Ref<WebGPURenderPassDepthAttachmentDescriptor> create(WebGPURenderingContext*, GPURenderPassDepthAttachmentDescriptor*);
    5848
    59     void reshape(int width, int height);
     49    double clearDepth() const;
     50    void setClearDepth(double);
    6051
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     52    GPURenderPassDepthAttachmentDescriptor* renderPassDepthAttachmentDescriptor() const;
    7153
    7254private:
    73     GPUDevice();
     55    WebGPURenderPassDepthAttachmentDescriptor(WebGPURenderingContext*, GPURenderPassDepthAttachmentDescriptor*);
    7456
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7957};
    80 
     58   
    8159} // namespace WebCore
    8260
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPURenderPassDepthAttachmentDescriptor : WebGPURenderPassAttachmentDescriptor {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute unrestricted double clearDepth;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPassDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Constructor,
     28    Conditional=WEBGPU,
     29    EnabledAtRuntime=WebGPU
     30] interface WebGPURenderPassDescriptor {
    2731
    28 #if ENABLE(WEBGPU)
     32    readonly attribute sequence<WebGPURenderPassColorAttachmentDescriptor> colorAttachments;
     33    readonly attribute WebGPURenderPassDepthAttachmentDescriptor depthAttachment;
     34    //readonly attribute WebGPURenderPassStencilAttachmentDescriptor stencilAttachment;
    2935
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     36    // renderTargetArrayLength
     37    // visibilityResultBuffer
    3338
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7939};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPURenderPipelineColorAttachmentDescriptor.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31/* FIXME: WebGPU - Not implemented yet.
     32#include "GPURenderPipelineColorAttachmentDescriptor.h"
     33*/
     34#include "WebGPURenderingContext.h"
    4635
    4736namespace WebCore {
    4837
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     38Ref<WebGPURenderPipelineColorAttachmentDescriptor> WebGPURenderPipelineColorAttachmentDescriptor::create(WebGPURenderingContext* context, GPURenderPipelineColorAttachmentDescriptor* descriptor)
     39{
     40    return adoptRef(*new WebGPURenderPipelineColorAttachmentDescriptor(context, descriptor));
     41}
    5342
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     43WebGPURenderPipelineColorAttachmentDescriptor::WebGPURenderPipelineColorAttachmentDescriptor(WebGPURenderingContext* context, GPURenderPipelineColorAttachmentDescriptor* descriptor)
     44    : WebGPUObject(context)
     45    , m_renderPipelineColorAttachmentDescriptor(descriptor)
     46{
     47}
    5848
    59     void reshape(int width, int height);
     49WebGPURenderPipelineColorAttachmentDescriptor::~WebGPURenderPipelineColorAttachmentDescriptor()
     50{
     51}
    6052
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     53unsigned long WebGPURenderPipelineColorAttachmentDescriptor::pixelFormat() const
     54{
     55    if (!m_renderPipelineColorAttachmentDescriptor)
     56        return 0; // FIXME: probably a real value for unknown
    6557
    66     WebGPULayer* layer() { return m_layer.get(); }
     58    return m_renderPipelineColorAttachmentDescriptor->pixelFormat();
     59}
    6760
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     61void WebGPURenderPipelineColorAttachmentDescriptor::setPixelFormat(unsigned long newPixelFormat)
     62{
     63    if (!m_renderPipelineColorAttachmentDescriptor)
     64        return;
    7165
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     66    m_renderPipelineColorAttachmentDescriptor->setPixelFormat(newPixelFormat);
     67}
    8068
    8169} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    4632
    4733namespace WebCore {
    4834
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     35// FIXME: WebGPU - Stub implementation - not implemented yet.
     36// class GPURenderPipelineColorAttachmentDescriptor;
     37class GPURenderPipelineColorAttachmentDescriptor : public RefCounted<GPURenderPipelineColorAttachmentDescriptor> {
     38public:
     39    unsigned long pixelFormat() const { return 0; }
     40    void setPixelFormat(unsigned long) { }
     41};
     42// FIXME: WebGPU - End stub.
    5343
    54 class GPUDevice : public RefCounted<GPUDevice> {
     44class WebGPURenderPipelineColorAttachmentDescriptor : public WebGPUObject {
    5545public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     46    virtual ~WebGPURenderPipelineColorAttachmentDescriptor();
     47    static Ref<WebGPURenderPipelineColorAttachmentDescriptor> create(WebGPURenderingContext*, GPURenderPipelineColorAttachmentDescriptor*);
    5848
    59     void reshape(int width, int height);
     49    unsigned long pixelFormat() const;
     50    void setPixelFormat(unsigned long);
    6051
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     52    GPURenderPipelineColorAttachmentDescriptor* renderPipelineColorAttachmentDescriptor() { return m_renderPipelineColorAttachmentDescriptor.get(); }
    7153
    7254private:
    73     GPUDevice();
     55    WebGPURenderPipelineColorAttachmentDescriptor(WebGPURenderingContext*, GPURenderPipelineColorAttachmentDescriptor*);
    7456
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     57    RefPtr<GPURenderPipelineColorAttachmentDescriptor> m_renderPipelineColorAttachmentDescriptor;
    7958};
    80 
     59   
    8160} // namespace WebCore
    8261
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPURenderPipelineColorAttachmentDescriptor {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute unsigned long pixelFormat; // should be MTLPixelFormat
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Constructor,
     28    Conditional=WEBGPU,
     29    EnabledAtRuntime=WebGPU
     30] interface WebGPURenderPipelineDescriptor {
    2731
    28 #if ENABLE(WEBGPU)
     32    attribute DOMString label;
    2933
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     34    attribute WebGPUFunction? vertexFunction;
     35    attribute WebGPUFunction? fragmentFunction;
    3336
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
     37    readonly attribute sequence<WebGPURenderPipelineColorAttachmentDescriptor> colorAttachments;
    3738
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     39    attribute unsigned long depthAttachmentPixelFormat;
    4640
    47 namespace WebCore {
     41    void reset();
    4842
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7943};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineState.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPURenderPipelineState.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31/* FIXME: WebGPU - Not implemented yet.FIXME: WebGPU - Not implemented yet.
     32#include "GPURenderPipelineState.h"
     33 */
     34#include "WebGPURenderPipelineDescriptor.h"
     35#include "WebGPURenderingContext.h"
    4636
    4737namespace WebCore {
    4838
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     39Ref<WebGPURenderPipelineState> WebGPURenderPipelineState::create(WebGPURenderingContext* context, WebGPURenderPipelineDescriptor* descriptor)
     40{
     41    return adoptRef(*new WebGPURenderPipelineState(context, descriptor));
     42}
    5343
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     44WebGPURenderPipelineState::WebGPURenderPipelineState(WebGPURenderingContext* context, WebGPURenderPipelineDescriptor* descriptor)
     45    : WebGPUObject(context)
     46{
     47    if (!context || !descriptor)
     48        return;
     49    m_renderPipelineState = GPURenderPipelineState::create(context->device().get(), descriptor->renderPipelineDescriptor());
     50}
    5851
    59     void reshape(int width, int height);
     52WebGPURenderPipelineState::~WebGPURenderPipelineState()
     53{
     54}
    6055
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     56String WebGPURenderPipelineState::label() const
     57{
     58    if (!m_renderPipelineState)
     59        return emptyString();
    6560
    66     WebGPULayer* layer() { return m_layer.get(); }
     61    return m_renderPipelineState->label();
     62}
    6763
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     64void WebGPURenderPipelineState::setLabel(const String& label)
     65{
     66    if (!m_renderPipelineState)
     67        return;
    7168
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     69    m_renderPipelineState->setLabel(label);
     70}
    8071
    8172} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineState.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUObject.h"
    3331
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     32#include <wtf/Vector.h>
    4633
    4734namespace WebCore {
    4835
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     36// FIXME: WebGPU - Stub implementation - not implemented yet.
     37// class GPURenderPipelineState;
     38class GPURenderPipelineDescriptor;
     39class GPURenderPipelineState : public RefCounted<GPURenderPipelineState> {
     40public:
     41    static RefPtr<GPURenderPipelineState> create(GPUDevice*, GPURenderPipelineDescriptor*) { return nullptr; }
     42    String label() const { return emptyString(); }
     43    void setLabel(const String&) { }
     44};
     45// FIXME: WebGPU - End stub.
    5346
    54 class GPUDevice : public RefCounted<GPUDevice> {
     47class WebGPURenderPipelineDescriptor;
     48
     49class WebGPURenderPipelineState : public WebGPUObject {
    5550public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     51    virtual ~WebGPURenderPipelineState();
     52    static Ref<WebGPURenderPipelineState> create(WebGPURenderingContext*, WebGPURenderPipelineDescriptor*);
    5853
    59     void reshape(int width, int height);
     54    String label() const;
     55    void setLabel(const String&);
    6056
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     57    GPURenderPipelineState* renderPipelineState() { return m_renderPipelineState.get(); }
    7158
    7259private:
    73     GPUDevice();
     60    WebGPURenderPipelineState(WebGPURenderingContext*, WebGPURenderPipelineDescriptor*);
    7461
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     62    RefPtr<GPURenderPipelineState> m_renderPipelineState;
    7963};
    80 
     64   
    8165} // namespace WebCore
    8266
  • trunk/Source/WebCore/html/canvas/WebGPURenderPipelineState.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPURenderPipelineState {
    2730
    28 #if ENABLE(WEBGPU)
     31    attribute DOMString label;
    2932
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7933};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUTexture.cpp

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26#include "config.h"
     27#include "WebGPUTexture.h"
    2728
    2829#if ENABLE(WEBGPU)
    2930
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     31#include "GPUTexture.h"
     32#include "WebGPURenderingContext.h"
     33#include "WebGPUTextureDescriptor.h"
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
     37Ref<WebGPUTexture> WebGPUTexture::createFromDrawableTexture(WebGPURenderingContext* context, PassRefPtr<GPUTexture> drawableTexture)
     38{
     39    return adoptRef(*new WebGPUTexture(context, drawableTexture));
     40}
    5341
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     42Ref<WebGPUTexture> WebGPUTexture::create(WebGPURenderingContext* context, WebGPUTextureDescriptor* descriptor)
     43{
     44    return adoptRef(*new WebGPUTexture(context, descriptor));
     45}
    5846
    59     void reshape(int width, int height);
     47WebGPUTexture::WebGPUTexture(WebGPURenderingContext* context, PassRefPtr<GPUTexture> drawableTexture)
     48    : WebGPUObject(context)
     49    , m_texture(drawableTexture)
     50{
     51}
    6052
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     53WebGPUTexture::WebGPUTexture(WebGPURenderingContext* context, WebGPUTextureDescriptor* descriptor)
     54    : WebGPUObject(context)
     55{
     56    m_texture = context->device()->createTexture(descriptor->textureDescriptor());
     57}
    6558
    66     WebGPULayer* layer() { return m_layer.get(); }
     59WebGPUTexture::~WebGPUTexture()
     60{
     61}
    6762
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     63unsigned long WebGPUTexture::width() const
     64{
     65    if (!m_texture)
     66        return 0;
     67   
     68    return m_texture->width();
     69}
    7170
    72 private:
    73     GPUDevice();
     71unsigned long WebGPUTexture::height() const
     72{
     73    if (!m_texture)
     74        return 0;
    7475
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    79 };
     76    return m_texture->height();
     77}
    8078
    8179} // namespace WebCore
  • trunk/Source/WebCore/html/canvas/WebGPUTexture.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     30#include "WebGPUObject.h"
    4631
    4732namespace WebCore {
    4833
    49 class GPUBuffer;
    50 class GPULibrary;
    5134class GPUTexture;
    52 class GPUTextureDescriptor;
     35class WebGPUTextureDescriptor;
    5336
    54 class GPUDevice : public RefCounted<GPUDevice> {
     37class WebGPUTexture : public WebGPUObject {
    5538public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     39    virtual ~WebGPUTexture();
     40    static Ref<WebGPUTexture> createFromDrawableTexture(WebGPURenderingContext*, PassRefPtr<GPUTexture>);
     41    static Ref<WebGPUTexture> create(WebGPURenderingContext*, WebGPUTextureDescriptor*);
    5842
    59     void reshape(int width, int height);
     43    unsigned long width() const;
     44    unsigned long height() const;
    6045
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     46    GPUTexture* texture() const { return m_texture.get(); }
    7147
    7248private:
    73     GPUDevice();
     49    WebGPUTexture(WebGPURenderingContext*, PassRefPtr<GPUTexture>);
     50    WebGPUTexture(WebGPURenderingContext*, WebGPUTextureDescriptor*);
    7451
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     52    RefPtr<GPUTexture> m_texture;
    7953};
    80 
     54   
    8155} // namespace WebCore
    8256
  • trunk/Source/WebCore/html/canvas/WebGPUTexture.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Conditional=WEBGPU,
     28    EnabledAtRuntime=WebGPU
     29] interface WebGPUTexture {
    2730
    28 #if ENABLE(WEBGPU)
     31    readonly attribute unsigned long width;
     32    readonly attribute unsigned long height;
    2933
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
    33 
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
    46 
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7934};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/html/canvas/WebGPUTextureDescriptor.h

    r213761 r213762  
    2828#if ENABLE(WEBGPU)
    2929
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     30#include "WebGPUEnums.h"
     31#include "WebGPUObject.h"
    3332
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
    37 
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     33#include <wtf/Vector.h>
    4634
    4735namespace WebCore {
    4836
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    5237class GPUTextureDescriptor;
    5338
    54 class GPUDevice : public RefCounted<GPUDevice> {
     39class WebGPUTextureDescriptor : public WebGPUObject {
    5540public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
     41    virtual ~WebGPUTextureDescriptor();
     42    static Ref<WebGPUTextureDescriptor> create(unsigned long pixelFormat, unsigned long width, unsigned long height, bool mipmapped);
    5843
    59     void reshape(int width, int height);
     44    unsigned long width() const;
     45    void setWidth(unsigned long);
    6046
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
     47    unsigned long height() const;
     48    void setHeight(unsigned long);
    6549
    66     WebGPULayer* layer() { return m_layer.get(); }
     50    unsigned long sampleCount() const;
     51    void setSampleCount(unsigned long);
    6752
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
     53    unsigned long textureType() const;
     54    void setTextureType(unsigned long);
     55
     56    unsigned long storageMode() const;
     57    void setStorageMode(unsigned long);
     58
     59    unsigned long usage() const;
     60    void setUsage(unsigned long);
     61
     62    GPUTextureDescriptor* textureDescriptor() { return m_textureDescriptor.get(); }
    7163
    7264private:
    73     GPUDevice();
     65    WebGPUTextureDescriptor(unsigned long pixelFormat, unsigned long width, unsigned long height, bool mipmapped);
    7466
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
     67    RefPtr<GPUTextureDescriptor> m_textureDescriptor;
    7968};
    8069
  • trunk/Source/WebCore/html/canvas/WebGPUTextureDescriptor.idl

    r213761 r213762  
    2424 */
    2525
    26 #pragma once
     26[
     27    Constructor(unsigned long pixelFormat, unsigned long width, unsigned long height, boolean mipmapped),
     28    Conditional=WEBGPU,
     29    EnabledAtRuntime=WebGPU
     30] interface WebGPUTextureDescriptor {
    2731
    28 #if ENABLE(WEBGPU)
     32    attribute unsigned long textureType;
    2933
    30 #include "PlatformLayer.h"
    31 #include <runtime/ArrayBufferView.h>
    32 #include <wtf/RefCounted.h>
     34    attribute unsigned long width;
     35    attribute unsigned long height;
     36    attribute unsigned long sampleCount;
    3337
    34 #if USE(CA)
    35 #include "PlatformCALayer.h"
    36 #endif
     38    attribute unsigned long storageMode;
    3739
    38 #if PLATFORM(COCOA)
    39 typedef struct objc_object* id;
    40 OBJC_CLASS CALayer;
    41 OBJC_CLASS WebGPULayer;
    42 #else
    43 class WebGPULayer;
    44 typedef void PlatformGPUDevice;
    45 #endif
     40    attribute unsigned long usage;
    4641
    47 namespace WebCore {
    48 
    49 class GPUBuffer;
    50 class GPULibrary;
    51 class GPUTexture;
    52 class GPUTextureDescriptor;
    53 
    54 class GPUDevice : public RefCounted<GPUDevice> {
    55 public:
    56     WEBCORE_EXPORT static RefPtr<GPUDevice> create();
    57     WEBCORE_EXPORT ~GPUDevice();
    58 
    59     void reshape(int width, int height);
    60 
    61 #if PLATFORM(COCOA)
    62     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_layer.get()); }
    63     WEBCORE_EXPORT id platformDevice();
    64 #endif
    65 
    66     WebGPULayer* layer() { return m_layer.get(); }
    67 
    68     WEBCORE_EXPORT RefPtr<GPULibrary> createLibrary(const String& sourceCode);
    69     WEBCORE_EXPORT RefPtr<GPUBuffer> createBufferFromData(ArrayBufferView* data);
    70     WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    71 
    72 private:
    73     GPUDevice();
    74 
    75     RetainPtr<WebGPULayer> m_layer;
    76 #if PLATFORM(COCOA)
    77     RetainPtr<id> m_device;
    78 #endif
    7942};
    80 
    81 } // namespace WebCore
    82 
    83 #endif
  • trunk/Source/WebCore/platform/graphics/gpu/GPUDevice.h

    r213731 r213762  
    4848
    4949class GPUBuffer;
     50// FIXME: WebGPU - Stub implementation - not implemented yet.
     51class GPUCommandQueue;
     52class GPUDrawable;
     53// FIXME: WebGPU - End stub.
    5054class GPULibrary;
    5155class GPUTexture;
     
    7074    WEBCORE_EXPORT RefPtr<GPUTexture> createTexture(GPUTextureDescriptor*);
    7175
     76    // FIXME: WebGPU - Stub implementation - not implemented yet.
     77    GPUCommandQueue* createCommandQueue() { return nullptr; }
     78    GPUDrawable* getFramebuffer() { return nullptr; }
     79    void markLayerComposited() { }
     80    // FIXME: WebGPU - End stub.
     81
    7282private:
    7383    GPUDevice();
Note: See TracChangeset for help on using the changeset viewer.