Skip to content

Commit ccc3c31

Browse files
committed
Add WebGL demo to DOMKitDemo
1 parent 15a8acf commit ccc3c31

File tree

74 files changed

+2734
-38
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+2734
-38
lines changed

Sources/DOMKit/ECMAScript/RenderingContext.swift

+29-29
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import JavaScriptKit
55

66
public protocol Any_RenderingContext: ConvertibleToJSValue {}
77
extension CanvasRenderingContext2D: Any_RenderingContext {}
8-
//extension GPUCanvasContext: Any_RenderingContext {}
8+
// extension GPUCanvasContext: Any_RenderingContext {}
99
extension ImageBitmapRenderingContext: Any_RenderingContext {}
10-
//extension WebGL2RenderingContext: Any_RenderingContext {}
11-
//extension WebGLRenderingContext: Any_RenderingContext {}
10+
// extension WebGL2RenderingContext: Any_RenderingContext {}
11+
// extension WebGLRenderingContext: Any_RenderingContext {}
1212

1313
public enum RenderingContext: JSValueCompatible, Any_RenderingContext {
1414
case canvasRenderingContext2D(CanvasRenderingContext2D)
1515
// case gpuCanvasContext(GPUCanvasContext)
1616
case imageBitmapRenderingContext(ImageBitmapRenderingContext)
17-
// case webGL2RenderingContext(WebGL2RenderingContext)
18-
// case webGLRenderingContext(WebGLRenderingContext)
17+
case webGL2RenderingContext(WebGL2RenderingContext)
18+
case webGLRenderingContext(WebGLRenderingContext)
1919

2020
var canvasRenderingContext2D: CanvasRenderingContext2D? {
2121
switch self {
@@ -31,26 +31,26 @@ public enum RenderingContext: JSValueCompatible, Any_RenderingContext {
3131
// }
3232
// }
3333

34-
var imageBitmapRenderingContext: ImageBitmapRenderingContext? {
34+
public var imageBitmapRenderingContext: ImageBitmapRenderingContext? {
3535
switch self {
3636
case let .imageBitmapRenderingContext(imageBitmapRenderingContext): return imageBitmapRenderingContext
3737
default: return nil
3838
}
3939
}
4040

41-
// var webGL2RenderingContext: WebGL2RenderingContext? {
42-
// switch self {
43-
// case let .webGL2RenderingContext(webGL2RenderingContext): return webGL2RenderingContext
44-
// default: return nil
45-
// }
46-
// }
47-
//
48-
// var webGLRenderingContext: WebGLRenderingContext? {
49-
// switch self {
50-
// case let .webGLRenderingContext(webGLRenderingContext): return webGLRenderingContext
51-
// default: return nil
52-
// }
53-
// }
41+
public var webGL2RenderingContext: WebGL2RenderingContext? {
42+
switch self {
43+
case let .webGL2RenderingContext(webGL2RenderingContext): return webGL2RenderingContext
44+
default: return nil
45+
}
46+
}
47+
48+
public var webGLRenderingContext: WebGLRenderingContext? {
49+
switch self {
50+
case let .webGLRenderingContext(webGLRenderingContext): return webGLRenderingContext
51+
default: return nil
52+
}
53+
}
5454

5555
public static func construct(from value: JSValue) -> Self? {
5656
if let canvasRenderingContext2D: CanvasRenderingContext2D = value.fromJSValue() {
@@ -62,12 +62,12 @@ public enum RenderingContext: JSValueCompatible, Any_RenderingContext {
6262
if let imageBitmapRenderingContext: ImageBitmapRenderingContext = value.fromJSValue() {
6363
return .imageBitmapRenderingContext(imageBitmapRenderingContext)
6464
}
65-
// if let webGL2RenderingContext: WebGL2RenderingContext = value.fromJSValue() {
66-
// return .webGL2RenderingContext(webGL2RenderingContext)
67-
// }
68-
// if let webGLRenderingContext: WebGLRenderingContext = value.fromJSValue() {
69-
// return .webGLRenderingContext(webGLRenderingContext)
70-
// }
65+
if let webGL2RenderingContext: WebGL2RenderingContext = value.fromJSValue() {
66+
return .webGL2RenderingContext(webGL2RenderingContext)
67+
}
68+
if let webGLRenderingContext: WebGLRenderingContext = value.fromJSValue() {
69+
return .webGLRenderingContext(webGLRenderingContext)
70+
}
7171
return nil
7272
}
7373

@@ -79,10 +79,10 @@ public enum RenderingContext: JSValueCompatible, Any_RenderingContext {
7979
// return gpuCanvasContext.jsValue
8080
case let .imageBitmapRenderingContext(imageBitmapRenderingContext):
8181
return imageBitmapRenderingContext.jsValue
82-
// case let .webGL2RenderingContext(webGL2RenderingContext):
83-
// return webGL2RenderingContext.jsValue
84-
// case let .webGLRenderingContext(webGLRenderingContext):
85-
// return webGLRenderingContext.jsValue
82+
case let .webGL2RenderingContext(webGL2RenderingContext):
83+
return webGL2RenderingContext.jsValue
84+
case let .webGLRenderingContext(webGLRenderingContext):
85+
return webGLRenderingContext.jsValue
8686
}
8787
}
8888
}
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public enum BitrateMode: JSString, JSValueCompatible {
7+
case constant = "constant"
8+
case variable = "variable"
9+
10+
@inlinable public static func construct(from jsValue: JSValue) -> Self? {
11+
if let string = jsValue.jsString {
12+
return Self(rawValue: string)
13+
}
14+
return nil
15+
}
16+
17+
@inlinable public init?(string: String) {
18+
self.init(rawValue: JSString(string))
19+
}
20+
21+
@inlinable public var jsValue: JSValue { rawValue.jsValue }
22+
}

Sources/DOMKit/WebIDL/BlobEvent.swift

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public class BlobEvent: Event {
7+
@inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BlobEvent].function! }
8+
9+
public required init(unsafelyWrapping jsObject: JSObject) {
10+
_data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data)
11+
_timecode = ReadonlyAttribute(jsObject: jsObject, name: Strings.timecode)
12+
super.init(unsafelyWrapping: jsObject)
13+
}
14+
15+
@inlinable public convenience init(type: String, eventInitDict: BlobEventInit) {
16+
self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue]))
17+
}
18+
19+
@ReadonlyAttribute
20+
public var data: Blob
21+
22+
@ReadonlyAttribute
23+
public var timecode: DOMHighResTimeStamp
24+
}
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public class BlobEventInit: BridgedDictionary {
7+
public convenience init(data: Blob, timecode: DOMHighResTimeStamp) {
8+
let object = JSObject.global[Strings.Object].function!.new()
9+
object[Strings.data] = data.jsValue
10+
object[Strings.timecode] = timecode.jsValue
11+
self.init(unsafelyWrapping: object)
12+
}
13+
14+
public required init(unsafelyWrapping object: JSObject) {
15+
_data = ReadWriteAttribute(jsObject: object, name: Strings.data)
16+
_timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode)
17+
super.init(unsafelyWrapping: object)
18+
}
19+
20+
@ReadWriteAttribute
21+
public var data: Blob
22+
23+
@ReadWriteAttribute
24+
public var timecode: DOMHighResTimeStamp
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
7+
extension Bool: Any_Bool_or_MediaTrackConstraints {}
8+
extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
9+
10+
public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
11+
case bool(Bool)
12+
case mediaTrackConstraints(MediaTrackConstraints)
13+
14+
var bool: Bool? {
15+
switch self {
16+
case let .bool(bool): return bool
17+
default: return nil
18+
}
19+
}
20+
21+
var mediaTrackConstraints: MediaTrackConstraints? {
22+
switch self {
23+
case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
24+
default: return nil
25+
}
26+
}
27+
28+
public static func construct(from value: JSValue) -> Self? {
29+
if let bool: Bool = value.fromJSValue() {
30+
return .bool(bool)
31+
}
32+
if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
33+
return .mediaTrackConstraints(mediaTrackConstraints)
34+
}
35+
return nil
36+
}
37+
38+
public var jsValue: JSValue {
39+
switch self {
40+
case let .bool(bool):
41+
return bool.jsValue
42+
case let .mediaTrackConstraints(mediaTrackConstraints):
43+
return mediaTrackConstraints.jsValue
44+
}
45+
}
46+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public protocol Any_Bool_or_ScrollIntoViewOptions: ConvertibleToJSValue {}
7+
extension Bool: Any_Bool_or_ScrollIntoViewOptions {}
8+
extension ScrollIntoViewOptions: Any_Bool_or_ScrollIntoViewOptions {}
9+
10+
public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
11+
case bool(Bool)
12+
case scrollIntoViewOptions(ScrollIntoViewOptions)
13+
14+
var bool: Bool? {
15+
switch self {
16+
case let .bool(bool): return bool
17+
default: return nil
18+
}
19+
}
20+
21+
var scrollIntoViewOptions: ScrollIntoViewOptions? {
22+
switch self {
23+
case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
24+
default: return nil
25+
}
26+
}
27+
28+
public static func construct(from value: JSValue) -> Self? {
29+
if let bool: Bool = value.fromJSValue() {
30+
return .bool(bool)
31+
}
32+
if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
33+
return .scrollIntoViewOptions(scrollIntoViewOptions)
34+
}
35+
return nil
36+
}
37+
38+
public var jsValue: JSValue {
39+
switch self {
40+
case let .bool(bool):
41+
return bool.jsValue
42+
case let .scrollIntoViewOptions(scrollIntoViewOptions):
43+
return scrollIntoViewOptions.jsValue
44+
}
45+
}
46+
}
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public class BoxQuadOptions: BridgedDictionary {
7+
public convenience init(box: CSSBoxType, relativeTo: GeometryNode) {
8+
let object = JSObject.global[Strings.Object].function!.new()
9+
object[Strings.box] = box.jsValue
10+
object[Strings.relativeTo] = relativeTo.jsValue
11+
self.init(unsafelyWrapping: object)
12+
}
13+
14+
public required init(unsafelyWrapping object: JSObject) {
15+
_box = ReadWriteAttribute(jsObject: object, name: Strings.box)
16+
_relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo)
17+
super.init(unsafelyWrapping: object)
18+
}
19+
20+
@ReadWriteAttribute
21+
public var box: CSSBoxType
22+
23+
@ReadWriteAttribute
24+
public var relativeTo: GeometryNode
25+
}
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public enum CSSBoxType: JSString, JSValueCompatible {
7+
case margin = "margin"
8+
case border = "border"
9+
case padding = "padding"
10+
case content = "content"
11+
12+
@inlinable public static func construct(from jsValue: JSValue) -> Self? {
13+
if let string = jsValue.jsString {
14+
return Self(rawValue: string)
15+
}
16+
return nil
17+
}
18+
19+
@inlinable public init?(string: String) {
20+
self.init(rawValue: JSString(string))
21+
}
22+
23+
@inlinable public var jsValue: JSValue { rawValue.jsValue }
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public class CSSPseudoElement: EventTarget, GeometryUtils {
7+
@inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CSSPseudoElement].function! }
8+
9+
public required init(unsafelyWrapping jsObject: JSObject) {
10+
_type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type)
11+
_element = ReadonlyAttribute(jsObject: jsObject, name: Strings.element)
12+
_parent = ReadonlyAttribute(jsObject: jsObject, name: Strings.parent)
13+
super.init(unsafelyWrapping: jsObject)
14+
}
15+
16+
@ReadonlyAttribute
17+
public var type: String
18+
19+
@ReadonlyAttribute
20+
public var element: Element
21+
22+
@ReadonlyAttribute
23+
public var parent: CSSPseudoElement_or_Element
24+
25+
@inlinable public func pseudo(type: String) -> CSSPseudoElement? {
26+
let this = jsObject
27+
return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
2+
3+
import JavaScriptEventLoop
4+
import JavaScriptKit
5+
6+
public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
7+
extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
8+
extension Element: Any_CSSPseudoElement_or_Element {}
9+
10+
public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
11+
case cssPseudoElement(CSSPseudoElement)
12+
case element(Element)
13+
14+
var cssPseudoElement: CSSPseudoElement? {
15+
switch self {
16+
case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
17+
default: return nil
18+
}
19+
}
20+
21+
var element: Element? {
22+
switch self {
23+
case let .element(element): return element
24+
default: return nil
25+
}
26+
}
27+
28+
public static func construct(from value: JSValue) -> Self? {
29+
if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() {
30+
return .cssPseudoElement(cssPseudoElement)
31+
}
32+
if let element: Element = value.fromJSValue() {
33+
return .element(element)
34+
}
35+
return nil
36+
}
37+
38+
public var jsValue: JSValue {
39+
switch self {
40+
case let .cssPseudoElement(cssPseudoElement):
41+
return cssPseudoElement.jsValue
42+
case let .element(element):
43+
return element.jsValue
44+
}
45+
}
46+
}

0 commit comments

Comments
 (0)