First commit

This commit is contained in:
Andrey Kernichniy 2026-03-01 21:25:46 +07:00
commit 26e8760bc4
9 changed files with 120 additions and 0 deletions

1
lib/src/index.ts Normal file
View file

@ -0,0 +1 @@
export * from "./interfaces";

View file

@ -0,0 +1,36 @@
export type TRendererType = "2d" | "webgl" | "webgl2" | "webgpu" | "html";
export type DrawObjectType = "rectangle-object" | "image-object" | "ellipse-object" | "text-object";
export interface IDrawObject extends IDrawBorderedRectangle {
readonly id: string;
readonly type: DrawObjectType;
color: string;
}
export interface IDrawRectangle {
x: number;
y: number;
width: number;
height: number;
angle: number;
}
export interface IDrawBorderedRectangle extends IDrawRectangle {
border: number;
borderColor: string;
}
export interface IScene {
objects: IDrawObject[];
selection?: IDrawRectangle;
spotlight: IDrawRectangle[];
background: string;
static: IDrawObject[];
}
export interface IRenderer {
readonly type: TRendererType;
holder: HTMLElement;
render(scene: IScene): Promise<void>;
}

6
lib/src/package.json Normal file
View file

@ -0,0 +1,6 @@
{
"name": "@gxc-solutions/renderer-base",
"version": "0.0.1",
"main": "index.js",
"author": "GXC Solutions"
}