diff --git a/.editorconfig b/.editorconfig index d9ac3e2..f2709cb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,8 +6,11 @@ end_of_line = lf indent_size = 4 indent_style = tab insert_final_newline = true -tab_width = 4 trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false + +[bun.lock] +indent_size = 2 +indent_style = space diff --git a/AUTHORS b/AUTHORS index 8023d98..3a300b5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1 @@ -Szymon Nowakowski (https://renati.me) +Szymon Nowakowski (https://renati.me) diff --git a/README.md b/README.md index 3b9db94..c641b29 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ -This project ships with [bun.lockb](https://bun.sh/docs/install/lockfile) +This project ships with [bun.lock](https://bun.sh/docs/install/lockfile) lockfile for the [Bun](https://bun.sh/) JavaScript runtime. You should be able to install the dependencies with any JavaScript package manager, though. -To run the example, run `start:example` script with your JavaScript package -manager and visit [localhost:8000](http://localhost:8000). +To run the example, run `bun run start:example`. The example relies on the Bun +JavaScript runtime to bundle and serve the example. diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..80fdc6e --- /dev/null +++ b/bun.lock @@ -0,0 +1,22 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "oktaeder", + "dependencies": { + "tslib": "^2.6.2", + }, + "devDependencies": { + "@webgpu/types": "^0.1.66", + "typescript": "^5.9.3", + }, + }, + }, + "packages": { + "@webgpu/types": ["@webgpu/types@0.1.66", "", {}, "sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100644 index db6a886..0000000 Binary files a/bun.lockb and /dev/null differ diff --git a/example/index.html b/example/index.html index b0b7d08..94ff3c6 100644 --- a/example/index.html +++ b/example/index.html @@ -4,8 +4,8 @@ oktaeder example - - + + diff --git a/example/script.ts b/example/script.ts index 5a26ca0..82fcb2a 100644 --- a/example/script.ts +++ b/example/script.ts @@ -1,10 +1,10 @@ /// +/// import { Color, Mesh, Node, PerspectiveCamera, PointLight, Quaternion, Scene, Submesh, Vector3 } from "../src/data/index"; import { Renderer, degToRad } from "../src/oktaeder"; import "./style.css"; - -new EventSource("/esbuild").addEventListener("change", () => location.reload()); +import uvmapUrl from "./uvmap.png"; const canvas = document.createElement("canvas"); window.addEventListener("resize", onResize); @@ -66,7 +66,7 @@ const submesh: Submesh = { start: 0, length: 24 }; const mesh = new Mesh({ vertexBuffer, indexBuffer, submeshes: [submesh] }); -const imageBitmap = await loadImageBitmap("/uvmap.png"); +const imageBitmap = await loadImageBitmap(uvmapUrl); const texture = renderer.createTexture({ format: "srgb", diff --git a/example/types.d.ts b/example/types.d.ts new file mode 100644 index 0000000..1884019 --- /dev/null +++ b/example/types.d.ts @@ -0,0 +1,4 @@ +declare module "*.png" { + const url: string; + export default url; +} diff --git a/package.json b/package.json index 9555b64..dbfa466 100644 --- a/package.json +++ b/package.json @@ -7,27 +7,23 @@ "gltf", "wegbpu" ], - "homepage": "https://github.com/iszn11/oktaeder", - "bugs": { - "url": "https://github.com/iszn11/oktaeder/issues" - }, + "homepage": "https://gitea.renati.me/renati/oktaeder", "license": "MPL-2.0", "browser": "./dist/oktaeder.js", "repository": { "type": "git", - "url": "https://github.com/iszn11/oktaeder.git" + "url": "https://gitea.renati.me/renati/oktaeder.git" }, "scripts": { - "start:example": "esbuild example/script.ts --bundle --outfile=example/bundle.js --watch --servedir=example --format=esm --sourcemap", + "start:example": "bun run example/index.html", "build": "tsc --build" }, "dependencies": { - "tslib": "^2.6.2" + "tslib": "^2.8.1" }, "devDependencies": { - "@webgpu/types": "^0.1.40", - "esbuild": "^0.20.2", - "typescript": "^5.4.2" + "@webgpu/types": "^0.1.66", + "typescript": "^5.9.3" }, "exports": { ".": { diff --git a/src/_BinaryWriter.ts b/src/_BinaryWriter.ts index e4c9adb..496c6c5 100644 --- a/src/_BinaryWriter.ts +++ b/src/_BinaryWriter.ts @@ -12,10 +12,10 @@ export class _BinaryWriter { _buffer: ArrayBuffer; _dataView: DataView; - _typedArray: Uint8Array; + _typedArray: Uint8Array; _length: number; - get subarray(): Uint8Array { return new Uint8Array(this._buffer, 0, this._length); } + get subarray(): Uint8Array { return new Uint8Array(this._buffer, 0, this._length); } constructor(capacity = _BinaryWriter.DEFAULT_CAPACITY) { capacity = Math.max(capacity, 1); diff --git a/src/gltf.ts b/src/gltf.ts index 39cd0a1..e20947a 100644 --- a/src/gltf.ts +++ b/src/gltf.ts @@ -69,7 +69,7 @@ import * as resources from "./resources"; * - issues error * - BLEND: partial support * - decoded, but not implemented - * - doubleSided: prtial support + * - doubleSided: partial support * - decoded, but not implemented * * Extensions: @@ -240,7 +240,7 @@ export async function parse(gltf: ArrayBufferView, { } if (version !== 2) { - const message = `Unsupported binary glTF container format. The bytes 4-8 define the binary glTF conatiner format version when read as little endian unsigned integer. Only version 2 is supported, but in the provided buffer they have the value of ${version}`; + const message = `Unsupported binary glTF container format. The bytes 4-8 define the binary glTF container format version when read as little endian unsigned integer. Only version 2 is supported, but in the provided buffer they have the value of ${version}`; const error = new ParseError({ message, severity: "error" }); if (throwOnError) { throw error; diff --git a/src/resources/IndexBuffer.ts b/src/resources/IndexBuffer.ts index fd3ed5f..562c212 100644 --- a/src/resources/IndexBuffer.ts +++ b/src/resources/IndexBuffer.ts @@ -64,7 +64,7 @@ export class IndexBuffer { return this.writeTypedArray(offset, array); } - writeTypedArray(offset: number, indices: Uint16Array | Uint32Array): IndexBuffer { + writeTypedArray(offset: number, indices: Uint16Array | Uint32Array): IndexBuffer { if ( this._indexFormat === "uint16" && !(indices instanceof Uint16Array) || this._indexFormat === "uint32" && !(indices instanceof Uint32Array) diff --git a/src/resources/VertexBuffer.ts b/src/resources/VertexBuffer.ts index dfaea2e..11943b2 100644 --- a/src/resources/VertexBuffer.ts +++ b/src/resources/VertexBuffer.ts @@ -42,11 +42,11 @@ export interface VertexBufferWriteArrayProps { } export interface VertexBufferWriteTypedArrayProps { - readonly position?: Float32Array; - readonly texCoord?: Float32Array; - readonly lightTexCoord?: Float32Array; - readonly normal?: Float32Array; - readonly tangent?: Float32Array; + readonly position?: Float32Array; + readonly texCoord?: Float32Array; + readonly lightTexCoord?: Float32Array; + readonly normal?: Float32Array; + readonly tangent?: Float32Array; } export class VertexBuffer {