Skip to content

Commit

Permalink
fix type issues; tag 0.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
tiye committed Nov 16, 2024
1 parent 9b9fac6 commit 5a78548
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 26 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@triadica/lagopus",
"version": "0.1.0",
"version": "0.1.1",
"type": "module",
"module": "./lib/index.mjs",
"scripts": {
Expand Down
6 changes: 3 additions & 3 deletions src/alias.mts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { createRenderer } from "./renderer.mjs";
import { LagopusObjectData, LagopusObjectOptions, LagopusGroup, LagopusRenderer } from "./primes.mjs";
import { LagopusObjectData, LagopusObjectOptions, LagopusGroup, LagopusRenderObject } from "./primes.mjs";

export let group = (options: any, ...children: any[]): LagopusRenderer => {
export let group = (options: any, ...children: any[]): LagopusRenderObject => {
return {
type: "group",
children,
};
};

/** create a render object */
export let object = (options: LagopusObjectOptions): LagopusRenderer => {
export let object = (options: LagopusObjectOptions): LagopusRenderObject => {
let { attrsList, data } = options;

let buffers = attrsList.map((attr) => {
Expand Down
4 changes: 2 additions & 2 deletions src/app/container.mts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import blinkWgsl from "../../shaders/blink.wgsl";
import triangleComputeWgsl from "../../shaders/triangle-compute.wgsl";

import { flattenData, group, object } from "../alias.mjs";
import { LagopusElement, LagopusRenderer, V3 } from "../primes.mjs";
import { LagopusElement, LagopusRenderObject, V3 } from "../primes.mjs";
import { compButton, compSlider, compDragPoint, compFlatButton } from "../comp/button.mjs";
import { makeAlignedFloat32Array } from "../util.mjs";

export let compContainer = (store: { position: V3 }, resources: Record<string, GPUTexture>): LagopusRenderer => {
export let compContainer = (store: { position: V3 }, resources: Record<string, GPUTexture>): LagopusRenderObject => {
return group(
null,
object({
Expand Down
10 changes: 5 additions & 5 deletions src/comp/button.mts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { object } from "../alias.mjs";
import { vAdd, vCross, vDot, vScale, vSub } from "@triadica/touch-control";

import { Atom } from "@triadica/touch-control";
import { FnDispatch, V3, V2, LagopusObjectData } from "../primes.mjs";
import { FnDispatch, V3, V2, LagopusObjectData, LagopusRenderObject } from "../primes.mjs";

let atomDragCache = new Atom<{ x: number; y: number }>({
x: 0,
Expand All @@ -23,7 +23,7 @@ export let compSlider = (
color?: V3;
},
onMove: (delta: V2, dispatch: FnDispatch) => void
): LagopusObjectData => {
): LagopusRenderObject => {
let { position } = props;
let geo: V3[] = [
[1, 0, 0],
Expand Down Expand Up @@ -85,7 +85,7 @@ export let compDragPoint = (
color?: V3;
},
onMove: (p: V3, d: FnDispatch) => void
): LagopusObjectData => {
): LagopusRenderObject => {
let position = props.position;
let ignoreMoving = props.ignoreMoving ?? false;
let geo: V3[] = [
Expand Down Expand Up @@ -159,7 +159,7 @@ export let compButton = (
color?: V3;
},
onClick: (e: MouseEvent, d: FnDispatch) => void
): LagopusObjectData => {
): LagopusRenderObject => {
let position = props.position;
let size = props.size ?? 20;
let color = props.color ?? [0.6, 1, 0.56, 1.0];
Expand Down Expand Up @@ -201,7 +201,7 @@ export let compFlatButton = (
color?: V3;
},
onClick: (e: MouseEvent, d: FnDispatch) => void
): LagopusObjectData => {
): LagopusRenderObject => {
let position = props.position;
let size = props.size ?? 20;
let color = props.color ?? [0.6, 1, 0.56, 1.0];
Expand Down
6 changes: 3 additions & 3 deletions src/events.mts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { atomMouseHoldingPaths, atomObjectsBuffer, atomObjectsTree, atomProxiedD
import isMobile from "ismobilejs";
import { cDistance } from "./math.mjs";
import { atomViewerScale, transform3d } from "./perspective.mjs";
import { LagopusElement, LagopusObjectData } from "./primes.mjs";
import { LagopusElement, LagopusObjectData, LagopusRenderObject } from "./primes.mjs";

export let traverseTree = (tree: LagopusElement, coord: number[], cb: (obj: LagopusObjectData, coord: number[]) => void) => {
export let traverseTree = (tree: LagopusRenderObject, coord: number[], cb: (obj: LagopusRenderObject, coord: number[]) => void) => {
if (tree != null) {
switch (tree.type) {
case "object":
Expand Down Expand Up @@ -158,7 +158,7 @@ let findNearest = (
}
};

let loadTreeNode = (tree: LagopusElement, path: number[]): LagopusElement => {
let loadTreeNode = (tree: LagopusRenderObject, path: number[]): LagopusRenderObject => {
if (path.length === 0) {
return tree;
} else if (tree.type === "group") {
Expand Down
6 changes: 3 additions & 3 deletions src/global.mts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LagopusElement, LagopusObjectBuffer, LagopusRenderer } from "./primes.mjs";
import { LagopusElement, LagopusObjectBuffer, LagopusRenderObject } from "./primes.mjs";
import { Atom } from "@triadica/touch-control";

export var atomDevice: Atom<GPUDevice> = new Atom(null);
Expand All @@ -22,9 +22,9 @@ export var atomBufferNeedClear: Atom<boolean> = new Atom(true);

export var atomClearColor: Atom<{ r: number; g: number; b: number; a: number }> = new Atom(undefined);

export var atomLagopusTree: Atom<LagopusRenderer> = new Atom(null);
export var atomLagopusTree: Atom<LagopusRenderObject> = new Atom(null);
/** TODO merge */
export let atomObjectsTree = new Atom<LagopusRenderer>(null);
export let atomObjectsTree = new Atom<LagopusRenderObject>(null);

// proxy it for hot reloading
export let atomProxiedDispatch = new Atom<(op: string, data: any) => void>(null);
Expand Down
4 changes: 2 additions & 2 deletions src/index.mts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
export { group, object, u32buffer, newBufferFormatLength, newBufferFormatArray } from "./alias.mjs";

export { paintLagopusTree, renderLagopusTree, resetCanvasSize } from "./paint.mjs";
export { paintLagopusTree } from "./paint.mjs";

export { createRenderer } from "./renderer.mjs";
export { createRenderer, renderLagopusTree, resetCanvasSize } from "./renderer.mjs";

export { initializeContext, enableBloom, initializeCanvasTextures } from "./initialize.js";

Expand Down
4 changes: 2 additions & 2 deletions src/paint.mts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LagopusElement, LagopusObjectData, LagopusRenderer } from "./primes.mjs";
import { LagopusElement, LagopusObjectData, LagopusRenderObject } from "./primes.mjs";
import {
atomDepthTexture,
atomContext,
Expand Down Expand Up @@ -243,7 +243,7 @@ export let makePainter = (info: LagopusObjectData): ((l: number) => void) => {
};
};

export let triggerRendering = (t: number, el: LagopusRenderer) => {
export let triggerRendering = (t: number, el: LagopusRenderObject) => {
if (el == null) return;
if (el.type === "object") {
el.renderer(t);
Expand Down
5 changes: 3 additions & 2 deletions src/primes.mts
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ export interface LagopusObjectData {
computeOptions?: ComputeOptions;
}

export interface LagopusRenderer {
export interface LagopusRenderObject {
type: "object" | "group";
renderer?: (t: number) => void;
children?: LagopusRenderer[];
children?: LagopusRenderObject[];
hitRegion?: LagopusHitRegion;
}

export interface LagopusGroup {
Expand Down
7 changes: 4 additions & 3 deletions src/renderer.mts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ComputeOptions, LagopusAttribute, LagopusElement, LagopusHitRegion, LagopusObjectData, LagopusRenderer } from "./primes.mjs";
import { ComputeOptions, LagopusAttribute, LagopusElement, LagopusHitRegion, LagopusObjectData, LagopusRenderObject } from "./primes.mjs";

import { createBuffer, readFormatSize } from "./util.mjs";
import { atomDevice, atomLagopusTree, atomProxiedDispatch, atomObjectsTree } from "./global.mjs";
Expand All @@ -17,7 +17,7 @@ export let createRenderer = (
textures: GPUTexture[],
label: string,
computeOptions?: ComputeOptions
): LagopusRenderer => {
): LagopusRenderObject => {
// load shared device
let device = atomDevice.deref();

Expand Down Expand Up @@ -46,6 +46,7 @@ export let createRenderer = (

return {
type: "object",
hitRegion,
renderer: makePainter({
type: "object",
topology: topology,
Expand All @@ -64,7 +65,7 @@ export let createRenderer = (
};

/** track tree, internally it calls `paintLagopusTree` to render */
export function renderLagopusTree(tree: LagopusRenderer, dispatch: (op: any, data: any) => void) {
export function renderLagopusTree(tree: LagopusRenderObject, dispatch: (op: any, data: any) => void) {
atomLagopusTree.reset(tree);
atomProxiedDispatch.reset(dispatch);
atomObjectsTree.reset(tree);
Expand Down

0 comments on commit 5a78548

Please sign in to comment.