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

16
.editorconfig Normal file
View file

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

33
.gitignore vendored Normal file
View file

@ -0,0 +1,33 @@
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
**/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# System files
.DS_Store
Thumbs.db
playground/gxc-canvas-viewer/**/*.*

19
.prettierignore Normal file
View file

@ -0,0 +1,19 @@
## file extensions
*.*
!*.scss
!*.css
!*.js
!*.json
!*.jsx
!*.less
!*.md
!*.mdx
!*.ts
!*.tsx
!*.yml
# ignore
node_modules/**/*.*
documentation/**/*.*
dist/**/*.*
coverage/**/*.*

9
.prettierrc Normal file
View file

@ -0,0 +1,9 @@
{
"bracketSpacing": true,
"printWidth": 140,
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"useTabs": false,
"endOfLine": "auto"
}

0
README.md Normal file
View file

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"
}

0
package.json Normal file
View file