Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ext/geometry): Geometry Interfaces Module Level 1 #22054

Open
wants to merge 92 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 68 commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
70eeca9
feat: add `DOMPoint`
petamoriken Jan 21, 2024
a84a512
add `DOMRect`
petamoriken Jan 21, 2024
90b3dde
use `Float64Array`
petamoriken Jan 23, 2024
e887135
use `webidl.createDictionaryConverter`
petamoriken Jan 23, 2024
39fa463
tweak
petamoriken Jan 23, 2024
5cfb1f7
add `DOMQuad`
petamoriken Jan 23, 2024
78b453f
fix
petamoriken Jan 23, 2024
478af56
tweak
petamoriken Jan 25, 2024
2ff44de
add `DOMMatrix` except transform methods
petamoriken Jan 25, 2024
9271f25
add Window features
petamoriken Jan 25, 2024
d94b6b3
tweak
petamoriken Jan 25, 2024
62481c3
tweak
petamoriken Jan 25, 2024
7571b73
fmt
petamoriken Jan 27, 2024
8dabe11
perf
petamoriken Jan 28, 2024
7018b55
add types
petamoriken Jan 28, 2024
e6b7603
add multiply methods
petamoriken Jan 28, 2024
75b7982
fix
petamoriken Jan 28, 2024
e431da4
add TODO comments
petamoriken Jan 29, 2024
36378c7
add tests
petamoriken Feb 1, 2024
3270c3a
add translate methods
petamoriken Feb 1, 2024
065e85f
tweak
petamoriken Feb 4, 2024
76d69ad
add scale methods
petamoriken Feb 4, 2024
e8a413d
refactor
petamoriken Feb 5, 2024
4462ca6
update types
petamoriken Feb 6, 2024
4ed7117
add rotate methods
petamoriken Feb 6, 2024
ad42985
tweak
petamoriken Feb 6, 2024
914058e
add skew methods
petamoriken Feb 7, 2024
8f6513c
tweak
petamoriken Feb 7, 2024
284a674
perf
petamoriken Feb 7, 2024
4b315e3
add flip methods
petamoriken Feb 7, 2024
c0042c0
perf
petamoriken Feb 10, 2024
b32a43f
add inverse methods
petamoriken Feb 10, 2024
9025bd8
add transform point methods
petamoriken Feb 10, 2024
034c965
add prototype overwrite checks
petamoriken Feb 10, 2024
ce9544c
lazyload
petamoriken Feb 10, 2024
682fd33
lint
petamoriken Feb 10, 2024
a953991
Update wpt
petamoriken Feb 10, 2024
8147325
`Symbol.toStringTag`
petamoriken Feb 10, 2024
6b1636d
accept `DOMMatrix` in constructor
petamoriken Feb 10, 2024
bdcd342
fmt
petamoriken Feb 10, 2024
5a5b89f
reduce errors
petamoriken Feb 10, 2024
7c62dbc
tweak
petamoriken Feb 10, 2024
6d37886
fmt
petamoriken Feb 10, 2024
527b94d
Merge branch 'main' into feat/geometry
petamoriken Feb 10, 2024
53829ae
tweak
petamoriken Feb 11, 2024
b644837
Merge branch 'main' into feat/geometry
petamoriken Feb 11, 2024
5d5219e
Merge branch 'main' into feat/geometry
petamoriken Feb 11, 2024
092bcd8
fix
petamoriken Feb 11, 2024
8d2be61
use `webidl.configureInterface`
petamoriken Feb 12, 2024
af9717e
fix
petamoriken Feb 12, 2024
a4569f9
fix
petamoriken Feb 12, 2024
8e3c035
tweak
petamoriken Feb 13, 2024
539580e
Merge branch 'main' into feat/geometry
petamoriken Feb 13, 2024
e49a126
Merge branch 'main' into feat/geometry
petamoriken Feb 15, 2024
dcfef6c
Merge branch 'main' into feat/geometry
petamoriken Feb 17, 2024
ddfad7f
Merge branch 'main' into feat/geometry
petamoriken Feb 23, 2024
9cb76be
Merge branch 'main' into feat/geometry
petamoriken Feb 25, 2024
ca71d50
add geometry/00_init.js
petamoriken Feb 25, 2024
494777b
fix: rename constants
petamoriken Feb 25, 2024
9ca5e9b
fix
petamoriken Feb 25, 2024
b891a77
fix error messages
petamoriken Feb 25, 2024
d5f3414
fmt
petamoriken Feb 25, 2024
69abe4f
Merge branch 'main' into feat/geometry
petamoriken Feb 26, 2024
085ef53
add JSDoc
petamoriken Feb 26, 2024
8f40286
add parser for single matrix and matrix3d functions
petamoriken Feb 26, 2024
0ab3f03
fix WebIDL union type
petamoriken Feb 26, 2024
9b1f7a6
tweak: StringNumericLiteral allows whitespaces
petamoriken Feb 26, 2024
51a18cb
tweak
petamoriken Feb 26, 2024
b45014b
fix
petamoriken Feb 27, 2024
51a1914
fix
petamoriken Feb 27, 2024
301ee81
Merge branch 'main' into feat/geometry
petamoriken Feb 27, 2024
62838e2
Merge branch 'main' into feat/geometry
petamoriken Mar 1, 2024
c95aa44
Merge branch 'main' into feat/geometry
petamoriken Mar 2, 2024
69ffc42
Merge branch 'main' into feat/geometry
petamoriken Mar 4, 2024
7ec111e
Merge branch 'main' into feat/geometry
petamoriken Mar 5, 2024
78b5f9a
Merge branch 'main' into feat/geometry
petamoriken Mar 6, 2024
ad86d89
Merge branch 'main' into feat/geometry
petamoriken Mar 10, 2024
5833096
Merge branch 'main' into feat/geometry
petamoriken Mar 12, 2024
8b0b24d
Merge branch 'main' into feat/geometry
petamoriken Mar 20, 2024
584af3c
update Cargo.lock
petamoriken Mar 20, 2024
2b59c74
Merge branch 'main' into feat/geometry
petamoriken Mar 21, 2024
a34f587
Merge branch 'main' into feat/geometry
bartlomieju Mar 27, 2024
f9c2bba
Merge branch 'main' into feat/geometry
petamoriken Mar 28, 2024
c3265c8
update comments
petamoriken Mar 28, 2024
8b7dd60
Merge branch 'main' into feat/geometry
petamoriken Apr 2, 2024
d1a5851
Merge branch 'main' into feat/geometry
petamoriken Apr 4, 2024
f18a0a1
Merge branch 'main' into feat/geometry
petamoriken Apr 11, 2024
a3ea1d3
Merge branch 'main' into feat/geometry
petamoriken Apr 29, 2024
e38c0ea
update jsdoc_checker.js
petamoriken Apr 29, 2024
3172c38
tweak
petamoriken Apr 30, 2024
f355a6e
Merge branch 'main' into feat/geometry
petamoriken May 26, 2024
dc891f8
tweak
petamoriken May 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
90 changes: 90 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ members = [
"ext/fetch",
"ext/ffi",
"ext/fs",
"ext/geometry",
"ext/http",
"ext/io",
"ext/kv",
Expand Down Expand Up @@ -68,6 +69,7 @@ deno_crypto = { version = "0.153.0", path = "./ext/crypto" }
deno_fetch = { version = "0.163.0", path = "./ext/fetch" }
deno_ffi = { version = "0.126.0", path = "./ext/ffi" }
deno_fs = { version = "0.49.0", path = "./ext/fs" }
deno_geometry = { version = "0.1.0", path = "./ext/geometry" }
deno_http = { version = "0.136.0", path = "./ext/http" }
deno_io = { version = "0.49.0", path = "./ext/io" }
deno_kv = { version = "0.47.0", path = "./ext/kv" }
Expand Down Expand Up @@ -178,6 +180,9 @@ zstd = "=0.12.4"
hkdf = "0.12.3"
rsa = { version = "0.9.3", default-features = false, features = ["std", "pem", "hazmat"] } # hazmat needed for PrehashSigner in ext/node

# geometry
nalgebra = { version = "0.32.3", default-features = false, features = ["std"] }

# webgpu
raw-window-handle = "0.5.0"
wgpu-core = { version = "=0.18", features = ["raw-window-handle"] }
Expand Down Expand Up @@ -259,6 +264,8 @@ opt-level = 3
opt-level = 3
[profile.bench.package.deno_crypto]
opt-level = 3
[profile.bench.package.deno_geometry]
opt-level = 3
[profile.bench.package.deno_node]
opt-level = 3
[profile.bench.package.num-bigint-dig]
Expand Down Expand Up @@ -317,6 +324,8 @@ opt-level = 3
opt-level = 3
[profile.release.package.deno_crypto]
opt-level = 3
[profile.release.package.deno_geometry]
opt-level = 3
[profile.release.package.deno_node]
opt-level = 3
[profile.release.package.deno_broadcast_channel]
Expand Down
1 change: 1 addition & 0 deletions cli/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ mod ts {
op_crate_libs.insert("deno.url", deno_url::get_declaration());
op_crate_libs.insert("deno.web", deno_web::get_declaration());
op_crate_libs.insert("deno.fetch", deno_fetch::get_declaration());
op_crate_libs.insert("deno.geometry", deno_geometry::get_declaration());
op_crate_libs.insert("deno.webgpu", deno_webgpu_get_declaration());
op_crate_libs.insert("deno.websocket", deno_websocket::get_declaration());
op_crate_libs.insert("deno.webstorage", deno_webstorage::get_declaration());
Expand Down
1 change: 1 addition & 0 deletions cli/tsc/dts/lib.deno.shared_globals.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
/// <reference lib="deno.webgpu" />
/// <reference lib="deno.canvas" />
/// <reference lib="deno.fetch" />
/// <reference lib="deno.geometry" />
/// <reference lib="deno.websocket" />
/// <reference lib="deno.crypto" />

Expand Down
1 change: 1 addition & 0 deletions cli/tsc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ pub fn get_types_declaration_file_text() -> String {
"deno.webstorage",
"deno.canvas",
"deno.crypto",
"deno.geometry",
"deno.broadcast_channel",
"deno.net",
"deno.shared_globals",
Expand Down
27 changes: 27 additions & 0 deletions ext/geometry/00_init.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

import { core } from "ext:core/mod.js";

const lazyLoad = core.createLazyLoader("ext:deno_geometry/01_geometry.js");

let geometry;

/**
* @param {(transformList: string, prefix: string) => { matrix: Float64Array, is2D: boolean }} transformListParser
* @param {boolean} enableWindowFeatures
*/
export function createGeometryLoader(
transformListParser,
enableWindowFeatures,
) {
return () => {
if (geometry !== undefined) {
return geometry;
}

geometry = lazyLoad();
geometry.init(transformListParser, enableWindowFeatures);

return geometry;
};
}