@gjsify/webgl 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -6
- package/lib/esm/canvas-webgl-widget.js +116 -0
- package/lib/esm/html-canvas-element.js +31 -50
- package/lib/esm/index.js +7 -0
- package/lib/esm/index.spec.js +629 -120
- package/lib/esm/test-utils.js +87 -0
- package/lib/esm/test.js +5 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/webgl-active-info.js +2 -2
- package/lib/esm/webgl-buffer.js +2 -3
- package/lib/esm/webgl-context-attributes.js +2 -3
- package/lib/esm/webgl-framebuffer.js +3 -4
- package/lib/esm/webgl-program.js +2 -3
- package/lib/esm/webgl-query.js +15 -0
- package/lib/esm/webgl-renderbuffer.js +2 -3
- package/lib/esm/webgl-rendering-context.js +105 -101
- package/lib/esm/webgl-sampler.js +15 -0
- package/lib/esm/webgl-shader-precision-format.js +2 -3
- package/lib/esm/webgl-shader.js +2 -3
- package/lib/esm/webgl-sync.js +15 -0
- package/lib/esm/webgl-texture.js +2 -3
- package/lib/esm/webgl-transform-feedback.js +15 -0
- package/lib/esm/webgl-uniform-location.js +2 -3
- package/lib/esm/webgl-vertex-array-object.js +21 -0
- package/lib/esm/webgl2-rendering-context.js +591 -0
- package/lib/esm/webgl2.spec.js +578 -0
- package/lib/types/canvas-webgl-widget.d.ts +509 -0
- package/lib/types/extensions/ext-blend-minmax.d.ts +2 -2
- package/lib/types/extensions/ext-texture-filter-anisotropic.d.ts +2 -2
- package/lib/types/extensions/oes-element-index-unit.d.ts +2 -2
- package/lib/types/extensions/oes-standard-derivatives.d.ts +2 -2
- package/lib/types/extensions/oes-texture-float-linear.d.ts +2 -2
- package/lib/types/extensions/oes-texture-float.d.ts +2 -2
- package/lib/types/extensions/stackgl-destroy-context.d.ts +3 -3
- package/lib/types/extensions/stackgl-resize-drawing-buffer.d.ts +3 -3
- package/lib/types/html-canvas-element.d.ts +19 -30
- package/lib/types/index.d.ts +7 -0
- package/lib/types/test-utils.d.ts +45 -0
- package/lib/types/types/extension.d.ts +2 -2
- package/lib/types/utils.d.ts +14 -15
- package/lib/types/webgl-active-info.d.ts +1 -2
- package/lib/types/webgl-buffer.d.ts +5 -6
- package/lib/types/webgl-context-attributes.d.ts +1 -2
- package/lib/types/webgl-framebuffer.d.ts +4 -5
- package/lib/types/webgl-program.d.ts +4 -5
- package/lib/types/webgl-query.d.ts +7 -0
- package/lib/types/webgl-renderbuffer.d.ts +4 -5
- package/lib/types/webgl-rendering-context.d.ts +15 -12
- package/lib/types/webgl-sampler.d.ts +7 -0
- package/lib/types/webgl-shader-precision-format.d.ts +1 -2
- package/lib/types/webgl-shader.d.ts +4 -5
- package/lib/types/webgl-sync.d.ts +7 -0
- package/lib/types/webgl-texture-unit.d.ts +3 -3
- package/lib/types/webgl-texture.d.ts +6 -7
- package/lib/types/webgl-transform-feedback.d.ts +7 -0
- package/lib/types/webgl-uniform-location.d.ts +3 -4
- package/lib/types/webgl-vertex-array-object.d.ts +9 -0
- package/lib/types/webgl-vertex-attribute.d.ts +5 -5
- package/lib/types/webgl2-rendering-context.d.ts +124 -0
- package/package.json +27 -26
- package/prebuilds/linux-aarch64/Gwebgl-0.1.typelib +0 -0
- package/prebuilds/linux-aarch64/libgwebgl.so +0 -0
- package/prebuilds/linux-x86_64/Gwebgl-0.1.typelib +0 -0
- package/prebuilds/linux-x86_64/libgwebgl.so +0 -0
- package/lib/cjs/@types/glsl-tokenizer/index.d.js +0 -0
- package/lib/cjs/extensions/ext-blend-minmax.js +0 -18
- package/lib/cjs/extensions/ext-texture-filter-anisotropic.js +0 -18
- package/lib/cjs/extensions/oes-element-index-unit.js +0 -14
- package/lib/cjs/extensions/oes-standard-derivatives.js +0 -17
- package/lib/cjs/extensions/oes-texture-float-linear.js +0 -14
- package/lib/cjs/extensions/oes-texture-float.js +0 -14
- package/lib/cjs/extensions/stackgl-destroy-context.js +0 -12
- package/lib/cjs/extensions/stackgl-resize-drawing-buffer.js +0 -12
- package/lib/cjs/html-canvas-element.js +0 -70
- package/lib/cjs/index.js +0 -18
- package/lib/cjs/index.spec.js +0 -146
- package/lib/cjs/linkable.js +0 -50
- package/lib/cjs/test.js +0 -3
- package/lib/cjs/types/constructor.js +0 -0
- package/lib/cjs/types/extension.js +0 -0
- package/lib/cjs/types/index.js +0 -5
- package/lib/cjs/types/typed-array.js +0 -0
- package/lib/cjs/types/webgl-constants.js +0 -0
- package/lib/cjs/types/webgl-context-attribute-options.js +0 -0
- package/lib/cjs/utils.js +0 -212
- package/lib/cjs/webgl-active-info.js +0 -10
- package/lib/cjs/webgl-buffer.js +0 -18
- package/lib/cjs/webgl-context-attributes.js +0 -24
- package/lib/cjs/webgl-drawing-buffer-wrapper.js +0 -10
- package/lib/cjs/webgl-framebuffer.js +0 -109
- package/lib/cjs/webgl-program.js +0 -26
- package/lib/cjs/webgl-renderbuffer.js +0 -24
- package/lib/cjs/webgl-rendering-context.js +0 -3343
- package/lib/cjs/webgl-shader-precision-format.js +0 -11
- package/lib/cjs/webgl-shader.js +0 -23
- package/lib/cjs/webgl-texture-unit.js +0 -12
- package/lib/cjs/webgl-texture.js +0 -22
- package/lib/cjs/webgl-uniform-location.js +0 -15
- package/lib/cjs/webgl-vertex-attribute.js +0 -147
- package/meson.build +0 -39
- package/src/test/app.vala +0 -60
- package/src/ts/@types/glsl-tokenizer/index.d.ts +0 -18
- package/src/ts/extensions/angle-instanced-arrays.ts.off +0 -232
- package/src/ts/extensions/ext-blend-minmax.ts +0 -18
- package/src/ts/extensions/ext-texture-filter-anisotropic.ts +0 -18
- package/src/ts/extensions/oes-element-index-unit.ts +0 -14
- package/src/ts/extensions/oes-standard-derivatives.ts +0 -17
- package/src/ts/extensions/oes-texture-float-linear.ts +0 -14
- package/src/ts/extensions/oes-texture-float.ts +0 -14
- package/src/ts/extensions/oes-vertex-array-object.ts.off +0 -128
- package/src/ts/extensions/stackgl-destroy-context.ts +0 -12
- package/src/ts/extensions/stackgl-resize-drawing-buffer.ts +0 -14
- package/src/ts/extensions/webgl-draw-buffers.ts.off +0 -107
- package/src/ts/html-canvas-element.ts +0 -98
- package/src/ts/index.spec.ts +0 -186
- package/src/ts/index.ts +0 -21
- package/src/ts/linkable.ts +0 -55
- package/src/ts/test.ts +0 -6
- package/src/ts/types/constructor.ts +0 -3
- package/src/ts/types/extension.ts +0 -3
- package/src/ts/types/index.ts +0 -26
- package/src/ts/types/typed-array.ts +0 -1
- package/src/ts/types/webgl-constants.ts +0 -300
- package/src/ts/types/webgl-context-attribute-options.ts +0 -12
- package/src/ts/utils.ts +0 -266
- package/src/ts/webgl-active-info.ts +0 -13
- package/src/ts/webgl-buffer.ts +0 -21
- package/src/ts/webgl-context-attributes.ts +0 -24
- package/src/ts/webgl-drawing-buffer-wrapper.ts +0 -10
- package/src/ts/webgl-framebuffer.ts +0 -133
- package/src/ts/webgl-program.ts +0 -30
- package/src/ts/webgl-renderbuffer.ts +0 -28
- package/src/ts/webgl-rendering-context.ts +0 -4050
- package/src/ts/webgl-shader-precision-format.ts +0 -12
- package/src/ts/webgl-shader.ts +0 -29
- package/src/ts/webgl-texture-unit.ts +0 -16
- package/src/ts/webgl-texture.ts +0 -27
- package/src/ts/webgl-uniform-location.ts +0 -18
- package/src/ts/webgl-vertex-attribute.ts +0 -169
- package/src/vala/handle-types.vala +0 -23
- package/src/vala/webgl-rendering-context-base.vala +0 -1265
- package/src/vala/webgl-rendering-context.vala +0 -265
- package/src/vapi/epoxy.vapi +0 -14558
- package/src/vapi/glesv2.vapi +0 -670
- package/test.gjs.js +0 -39972
- package/test.gjs.js.meta.json +0 -1
- package/tmp/.tsbuildinfo +0 -1
- package/tsconfig.json +0 -38
- package/tsconfig.types.json +0 -7
package/package.json
CHANGED
|
@@ -1,54 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/webgl",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "WebGL module for Gjs",
|
|
5
|
-
"main": "lib/cjs/index.js",
|
|
6
5
|
"module": "lib/esm/index.js",
|
|
7
6
|
"types": "lib/types/index.d.ts",
|
|
8
7
|
"type": "module",
|
|
9
8
|
"exports": {
|
|
10
9
|
".": {
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
"default": "./lib/esm/index.js"
|
|
14
|
-
},
|
|
15
|
-
"require": {
|
|
16
|
-
"types": "./lib/types/index.d.ts",
|
|
17
|
-
"default": "./lib/cjs/index.js"
|
|
18
|
-
}
|
|
10
|
+
"types": "./lib/types/index.d.ts",
|
|
11
|
+
"default": "./lib/esm/index.js"
|
|
19
12
|
}
|
|
20
13
|
},
|
|
14
|
+
"files": [
|
|
15
|
+
"lib",
|
|
16
|
+
"prebuilds"
|
|
17
|
+
],
|
|
18
|
+
"gjsify": {
|
|
19
|
+
"prebuilds": "prebuilds"
|
|
20
|
+
},
|
|
21
21
|
"scripts": {
|
|
22
|
-
"clear": "rm -rf lib tmp build test.gjs.
|
|
23
|
-
"
|
|
22
|
+
"clear": "rm -rf lib tmp build test.gjs.mjs tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo || exit 0",
|
|
23
|
+
"check": "tsc --noEmit",
|
|
24
24
|
"init:meson": "meson setup build .",
|
|
25
25
|
"init:meson:wipe": "yarn init:meson --wipe",
|
|
26
|
-
"build": "yarn
|
|
26
|
+
"build": "yarn build:meson && yarn build:gjsify && yarn build:types",
|
|
27
27
|
"build:gjsify": "gjsify build --library 'src/ts/**/*.{ts,js}'",
|
|
28
28
|
"build:meson": "yarn init:meson && meson compile -C build",
|
|
29
|
-
"build:types": "tsc
|
|
29
|
+
"build:types": "tsc",
|
|
30
|
+
"build:prebuilds": "yarn build:meson && mkdir -p prebuilds/linux-x86_64 && cp build/libgwebgl.so build/Gwebgl-0.1.typelib prebuilds/linux-x86_64/",
|
|
30
31
|
"build:test": "gjsify build src/ts/test.ts --app gjs --outfile test.gjs.js",
|
|
31
|
-
"test": "yarn
|
|
32
|
-
"test:gjs": "
|
|
32
|
+
"test": "yarn build:gjsify && yarn build:test && yarn test:gjs",
|
|
33
|
+
"test:gjs": "gjsify run test.gjs.js"
|
|
33
34
|
},
|
|
34
35
|
"keywords": [
|
|
35
36
|
"gjs",
|
|
36
37
|
"WebGL"
|
|
37
38
|
],
|
|
38
39
|
"devDependencies": {
|
|
39
|
-
"@gjsify/cli": "^0.0
|
|
40
|
-
"@gjsify/unit": "^0.0
|
|
41
|
-
"@types/
|
|
42
|
-
"
|
|
40
|
+
"@gjsify/cli": "^0.1.0",
|
|
41
|
+
"@gjsify/unit": "^0.1.0",
|
|
42
|
+
"@types/bit-twiddle": "^1.0.3",
|
|
43
|
+
"@types/node": "^25.5.0",
|
|
44
|
+
"typescript": "^6.0.2"
|
|
43
45
|
},
|
|
44
46
|
"dependencies": {
|
|
45
|
-
"@girs/
|
|
46
|
-
"@girs/
|
|
47
|
-
"@girs/gtk-4.0": "4.10.4-3.1.0",
|
|
47
|
+
"@girs/gjs": "^4.0.0-beta.42",
|
|
48
|
+
"@girs/gtk-4.0": "^4.22.1-4.0.0-beta.42",
|
|
48
49
|
"@girs/gwebgl-0.1": "^0.1.0-3.1.0",
|
|
49
|
-
"@gjsify/
|
|
50
|
-
"@gjsify/
|
|
51
|
-
"@
|
|
50
|
+
"@gjsify/dom-elements": "^0.1.0",
|
|
51
|
+
"@gjsify/event-bridge": "^0.1.0",
|
|
52
|
+
"@gjsify/utils": "^0.1.0",
|
|
52
53
|
"bit-twiddle": "^1.0.2",
|
|
53
54
|
"glsl-tokenizer": "^2.1.5"
|
|
54
55
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
class EXTBlendMinMax {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.MIN_EXT = 32775;
|
|
4
|
-
this.MAX_EXT = 32776;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
function getEXTBlendMinMax(context) {
|
|
8
|
-
let result = null;
|
|
9
|
-
const exts = context.getSupportedExtensions();
|
|
10
|
-
if (exts && exts.indexOf("EXT_blend_minmax") >= 0) {
|
|
11
|
-
result = new EXTBlendMinMax();
|
|
12
|
-
}
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
export {
|
|
16
|
-
EXTBlendMinMax,
|
|
17
|
-
getEXTBlendMinMax
|
|
18
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
class EXTTextureFilterAnisotropic {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.TEXTURE_MAX_ANISOTROPY_EXT = 34046;
|
|
4
|
-
this.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
function getEXTTextureFilterAnisotropic(context) {
|
|
8
|
-
let result = null;
|
|
9
|
-
const exts = context.getSupportedExtensions();
|
|
10
|
-
if (exts && exts.indexOf("EXT_texture_filter_anisotropic") >= 0) {
|
|
11
|
-
result = new EXTTextureFilterAnisotropic();
|
|
12
|
-
}
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
export {
|
|
16
|
-
EXTTextureFilterAnisotropic,
|
|
17
|
-
getEXTTextureFilterAnisotropic
|
|
18
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
class OESElementIndexUint {
|
|
2
|
-
}
|
|
3
|
-
function getOESElementIndexUint(context) {
|
|
4
|
-
let result = null;
|
|
5
|
-
const exts = context.getSupportedExtensions();
|
|
6
|
-
if (exts && exts.indexOf("OES_element_index_uint") >= 0) {
|
|
7
|
-
result = new OESElementIndexUint();
|
|
8
|
-
}
|
|
9
|
-
return result;
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
OESElementIndexUint,
|
|
13
|
-
getOESElementIndexUint
|
|
14
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class OESStandardDerivatives {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
function getOESStandardDerivatives(context) {
|
|
7
|
-
let result = null;
|
|
8
|
-
const exts = context.getSupportedExtensions();
|
|
9
|
-
if (exts && exts.indexOf("OES_standard_derivatives") >= 0) {
|
|
10
|
-
result = new OESStandardDerivatives();
|
|
11
|
-
}
|
|
12
|
-
return result;
|
|
13
|
-
}
|
|
14
|
-
export {
|
|
15
|
-
OESStandardDerivatives,
|
|
16
|
-
getOESStandardDerivatives
|
|
17
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
class OESTextureFloatLinear {
|
|
2
|
-
}
|
|
3
|
-
function getOESTextureFloatLinear(context) {
|
|
4
|
-
let result = null;
|
|
5
|
-
const exts = context.getSupportedExtensions();
|
|
6
|
-
if (exts && exts.indexOf("OES_texture_float_linear") >= 0) {
|
|
7
|
-
result = new OESTextureFloatLinear();
|
|
8
|
-
}
|
|
9
|
-
return result;
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
OESTextureFloatLinear,
|
|
13
|
-
getOESTextureFloatLinear
|
|
14
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
class OESTextureFloat {
|
|
2
|
-
}
|
|
3
|
-
function getOESTextureFloat(context) {
|
|
4
|
-
let result = null;
|
|
5
|
-
const exts = context.getSupportedExtensions();
|
|
6
|
-
if (exts && exts.indexOf("OES_texture_float") >= 0) {
|
|
7
|
-
result = new OESTextureFloat();
|
|
8
|
-
}
|
|
9
|
-
return result;
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
OESTextureFloat,
|
|
13
|
-
getOESTextureFloat
|
|
14
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
class STACKGLDestroyContext {
|
|
2
|
-
constructor(ctx) {
|
|
3
|
-
this.destroy = ctx.destroy.bind(ctx);
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
function getSTACKGLDestroyContext(ctx) {
|
|
7
|
-
return new STACKGLDestroyContext(ctx);
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
STACKGLDestroyContext,
|
|
11
|
-
getSTACKGLDestroyContext
|
|
12
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
class STACKGLResizeDrawingBuffer {
|
|
2
|
-
constructor(ctx) {
|
|
3
|
-
this.resize = ctx.resize.bind(ctx);
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
function getSTACKGLResizeDrawingBuffer(ctx) {
|
|
7
|
-
return new STACKGLResizeDrawingBuffer(ctx);
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
STACKGLResizeDrawingBuffer,
|
|
11
|
-
getSTACKGLResizeDrawingBuffer
|
|
12
|
-
};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { warnNotImplemented, notImplemented } from "@gjsify/utils";
|
|
2
|
-
import { GjsifyWebGLRenderingContext } from "./webgl-rendering-context.js";
|
|
3
|
-
class GjsifyHTMLCanvasElement {
|
|
4
|
-
constructor(gtkGlArea) {
|
|
5
|
-
this.gtkGlArea = gtkGlArea;
|
|
6
|
-
}
|
|
7
|
-
_getGlArea() {
|
|
8
|
-
return this.gtkGlArea;
|
|
9
|
-
}
|
|
10
|
-
/** Gets the height of a canvas element on a document. */
|
|
11
|
-
get height() {
|
|
12
|
-
return this.gtkGlArea.get_allocated_height();
|
|
13
|
-
}
|
|
14
|
-
get clientHeight() {
|
|
15
|
-
return this.height;
|
|
16
|
-
}
|
|
17
|
-
/** Sets the height of a canvas element on a document. */
|
|
18
|
-
set height(_height) {
|
|
19
|
-
warnNotImplemented("GjsifyHTMLCanvasElement.set_height");
|
|
20
|
-
}
|
|
21
|
-
/** Gets the width of a canvas element on a document. */
|
|
22
|
-
get width() {
|
|
23
|
-
return this.gtkGlArea.get_allocated_width();
|
|
24
|
-
}
|
|
25
|
-
/** Sets the width of a canvas element on a document. */
|
|
26
|
-
set width(_width) {
|
|
27
|
-
warnNotImplemented("GjsifyHTMLCanvasElement.set_width");
|
|
28
|
-
}
|
|
29
|
-
get clientWidth() {
|
|
30
|
-
return this.width;
|
|
31
|
-
}
|
|
32
|
-
captureStream(_frameRequestRate) {
|
|
33
|
-
notImplemented("HTMLCanvasElement.captureStream");
|
|
34
|
-
return new MediaStream();
|
|
35
|
-
}
|
|
36
|
-
getContext(contextId, options) {
|
|
37
|
-
switch (contextId) {
|
|
38
|
-
case "webgl":
|
|
39
|
-
if (this._webgl) {
|
|
40
|
-
return this._webgl;
|
|
41
|
-
}
|
|
42
|
-
this._webgl = new GjsifyWebGLRenderingContext(this, options);
|
|
43
|
-
return this._webgl;
|
|
44
|
-
default:
|
|
45
|
-
warnNotImplemented(`GjsifyHTMLCanvasElement.getContext("${contextId}")`);
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
toBlob(_callback, _type, _quality) {
|
|
50
|
-
notImplemented("HTMLCanvasElement.toBlob");
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.
|
|
54
|
-
* @param _type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
|
|
55
|
-
*/
|
|
56
|
-
toDataURL(_type, _quality) {
|
|
57
|
-
notImplemented("HTMLCanvasElement.toDataURL");
|
|
58
|
-
return "";
|
|
59
|
-
}
|
|
60
|
-
addEventListener(_type, _listener, _options) {
|
|
61
|
-
notImplemented("HTMLCanvasElement.addEventListener");
|
|
62
|
-
}
|
|
63
|
-
removeEventListener(_type, _listener, _options) {
|
|
64
|
-
notImplemented("HTMLCanvasElement.removeEventListener");
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
export {
|
|
68
|
-
GjsifyHTMLCanvasElement,
|
|
69
|
-
GjsifyHTMLCanvasElement as HTMLCanvasElement
|
|
70
|
-
};
|
package/lib/cjs/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import "@girs/gjs";
|
|
2
|
-
import "@girs/gio-2.0";
|
|
3
|
-
import "@girs/gtk-4.0";
|
|
4
|
-
export * from "./html-canvas-element.js";
|
|
5
|
-
export * from "./webgl-active-info.js";
|
|
6
|
-
export * from "./webgl-buffer.js";
|
|
7
|
-
export * from "./webgl-context-attributes.js";
|
|
8
|
-
export * from "./webgl-drawing-buffer-wrapper.js";
|
|
9
|
-
export * from "./webgl-framebuffer.js";
|
|
10
|
-
export * from "./webgl-program.js";
|
|
11
|
-
export * from "./webgl-renderbuffer.js";
|
|
12
|
-
export * from "./webgl-rendering-context.js";
|
|
13
|
-
export * from "./webgl-shader-precision-format.js";
|
|
14
|
-
export * from "./webgl-shader.js";
|
|
15
|
-
export * from "./webgl-texture-unit.js";
|
|
16
|
-
export * from "./webgl-texture.js";
|
|
17
|
-
export * from "./webgl-uniform-location.js";
|
|
18
|
-
export * from "./webgl-vertex-attribute.js";
|
package/lib/cjs/index.spec.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "@gjsify/unit";
|
|
2
|
-
import { HTMLCanvasElement } from "@gjsify/webgl";
|
|
3
|
-
import GLib from "@girs/glib-2.0";
|
|
4
|
-
import Gtk from "@girs/gtk-4.0";
|
|
5
|
-
import Gio from "@girs/gio-2.0";
|
|
6
|
-
const GL_CONSTANT_NAMES = ["ACTIVE_ATTRIBUTES", "ACTIVE_TEXTURE", "ACTIVE_UNIFORMS", "ALIASED_LINE_WIDTH_RANGE", "ALIASED_POINT_SIZE_RANGE", "ALPHA", "ALPHA_BITS", "ALWAYS", "ARRAY_BUFFER", "ARRAY_BUFFER_BINDING", "ATTACHED_SHADERS", "BACK", "BLEND", "BLEND_COLOR", "BLEND_DST_ALPHA", "BLEND_DST_RGB", "BLEND_EQUATION", "BLEND_EQUATION_ALPHA", "BLEND_EQUATION_RGB", "BLEND_SRC_ALPHA", "BLEND_SRC_RGB", "BLUE_BITS", "BOOL", "BOOL_VEC2", "BOOL_VEC3", "BOOL_VEC4", "BROWSER_DEFAULT_WEBGL", "BUFFER_SIZE", "BUFFER_USAGE", "BYTE", "CCW", "CLAMP_TO_EDGE", "COLOR_ATTACHMENT0", "COLOR_BUFFER_BIT", "COLOR_CLEAR_VALUE", "COLOR_WRITEMASK", "COMPILE_STATUS", "COMPRESSED_TEXTURE_FORMATS", "CONSTANT_ALPHA", "CONSTANT_COLOR", "CONTEXT_LOST_WEBGL", "CULL_FACE", "CULL_FACE_MODE", "CURRENT_PROGRAM", "CURRENT_VERTEX_ATTRIB", "CW", "DECR", "DECR_WRAP", "DELETE_STATUS", "DEPTH_ATTACHMENT", "DEPTH_BITS", "DEPTH_BUFFER_BIT", "DEPTH_CLEAR_VALUE", "DEPTH_COMPONENT", "DEPTH_COMPONENT16", "DEPTH_FUNC", "DEPTH_RANGE", "DEPTH_STENCIL", "DEPTH_STENCIL_ATTACHMENT", "DEPTH_TEST", "DEPTH_WRITEMASK", "DITHER", "DONT_CARE", "DST_ALPHA", "DST_COLOR", "DYNAMIC_DRAW", "ELEMENT_ARRAY_BUFFER", "ELEMENT_ARRAY_BUFFER_BINDING", "EQUAL", "FASTEST", "FLOAT", "FLOAT_MAT2", "FLOAT_MAT3", "FLOAT_MAT4", "FLOAT_VEC2", "FLOAT_VEC3", "FLOAT_VEC4", "FRAGMENT_SHADER", "FRAMEBUFFER", "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", "FRAMEBUFFER_BINDING", "FRAMEBUFFER_COMPLETE", "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", "FRAMEBUFFER_UNSUPPORTED", "FRONT", "FRONT_AND_BACK", "FRONT_FACE", "FUNC_ADD", "FUNC_REVERSE_SUBTRACT", "FUNC_SUBTRACT", "GENERATE_MIPMAP_HINT", "GEQUAL", "GREATER", "GREEN_BITS", "HIGH_FLOAT", "HIGH_INT", "IMPLEMENTATION_COLOR_READ_FORMAT", "IMPLEMENTATION_COLOR_READ_TYPE", "INCR", "INCR_WRAP", "INT", "INT_VEC2", "INT_VEC3", "INT_VEC4", "INVALID_ENUM", "INVALID_FRAMEBUFFER_OPERATION", "INVALID_OPERATION", "INVALID_VALUE", "INVERT", "KEEP", "LEQUAL", "LESS", "LINEAR", "LINEAR_MIPMAP_LINEAR", "LINEAR_MIPMAP_NEAREST", "LINES", "LINE_LOOP", "LINE_STRIP", "LINE_WIDTH", "LINK_STATUS", "LOW_FLOAT", "LOW_INT", "LUMINANCE", "LUMINANCE_ALPHA", "MAX_COMBINED_TEXTURE_IMAGE_UNITS", "MAX_CUBE_MAP_TEXTURE_SIZE", "MAX_FRAGMENT_UNIFORM_VECTORS", "MAX_RENDERBUFFER_SIZE", "MAX_TEXTURE_IMAGE_UNITS", "MAX_TEXTURE_SIZE", "MAX_VARYING_VECTORS", "MAX_VERTEX_ATTRIBS", "MAX_VERTEX_TEXTURE_IMAGE_UNITS", "MAX_VERTEX_UNIFORM_VECTORS", "MAX_VIEWPORT_DIMS", "MEDIUM_FLOAT", "MEDIUM_INT", "MIRRORED_REPEAT", "NEAREST", "NEAREST_MIPMAP_LINEAR", "NEAREST_MIPMAP_NEAREST", "NEVER", "NICEST", "NONE", "NOTEQUAL", "NO_ERROR", "ONE", "ONE_MINUS_CONSTANT_ALPHA", "ONE_MINUS_CONSTANT_COLOR", "ONE_MINUS_DST_ALPHA", "ONE_MINUS_DST_COLOR", "ONE_MINUS_SRC_ALPHA", "ONE_MINUS_SRC_COLOR", "OUT_OF_MEMORY", "PACK_ALIGNMENT", "POINTS", "POLYGON_OFFSET_FACTOR", "POLYGON_OFFSET_FILL", "POLYGON_OFFSET_UNITS", "RED_BITS", "RENDERBUFFER", "RENDERBUFFER_ALPHA_SIZE", "RENDERBUFFER_BINDING", "RENDERBUFFER_BLUE_SIZE", "RENDERBUFFER_DEPTH_SIZE", "RENDERBUFFER_GREEN_SIZE", "RENDERBUFFER_HEIGHT", "RENDERBUFFER_INTERNAL_FORMAT", "RENDERBUFFER_RED_SIZE", "RENDERBUFFER_STENCIL_SIZE", "RENDERBUFFER_WIDTH", "RENDERER", "REPEAT", "REPLACE", "RGB", "RGB565", "RGB5_A1", "RGBA", "RGBA4", "SAMPLER_2D", "SAMPLER_CUBE", "SAMPLES", "SAMPLE_ALPHA_TO_COVERAGE", "SAMPLE_BUFFERS", "SAMPLE_COVERAGE", "SAMPLE_COVERAGE_INVERT", "SAMPLE_COVERAGE_VALUE", "SCISSOR_BOX", "SCISSOR_TEST", "SHADER_TYPE", "SHADING_LANGUAGE_VERSION", "SHORT", "SRC_ALPHA", "SRC_ALPHA_SATURATE", "SRC_COLOR", "STATIC_DRAW", "STENCIL_ATTACHMENT", "STENCIL_BACK_FAIL", "STENCIL_BACK_FUNC", "STENCIL_BACK_PASS_DEPTH_FAIL", "STENCIL_BACK_PASS_DEPTH_PASS", "STENCIL_BACK_REF", "STENCIL_BACK_VALUE_MASK", "STENCIL_BACK_WRITEMASK", "STENCIL_BITS", "STENCIL_BUFFER_BIT", "STENCIL_CLEAR_VALUE", "STENCIL_FAIL", "STENCIL_FUNC", "STENCIL_INDEX8", "STENCIL_PASS_DEPTH_FAIL", "STENCIL_PASS_DEPTH_PASS", "STENCIL_REF", "STENCIL_TEST", "STENCIL_VALUE_MASK", "STENCIL_WRITEMASK", "STREAM_DRAW", "SUBPIXEL_BITS", "TEXTURE", "TEXTURE0", "TEXTURE1", "TEXTURE10", "TEXTURE11", "TEXTURE12", "TEXTURE13", "TEXTURE14", "TEXTURE15", "TEXTURE16", "TEXTURE17", "TEXTURE18", "TEXTURE19", "TEXTURE2", "TEXTURE20", "TEXTURE21", "TEXTURE22", "TEXTURE23", "TEXTURE24", "TEXTURE25", "TEXTURE26", "TEXTURE27", "TEXTURE28", "TEXTURE29", "TEXTURE3", "TEXTURE30", "TEXTURE31", "TEXTURE4", "TEXTURE5", "TEXTURE6", "TEXTURE7", "TEXTURE8", "TEXTURE9", "TEXTURE_2D", "TEXTURE_BINDING_2D", "TEXTURE_BINDING_CUBE_MAP", "TEXTURE_CUBE_MAP", "TEXTURE_CUBE_MAP_NEGATIVE_X", "TEXTURE_CUBE_MAP_NEGATIVE_Y", "TEXTURE_CUBE_MAP_NEGATIVE_Z", "TEXTURE_CUBE_MAP_POSITIVE_X", "TEXTURE_CUBE_MAP_POSITIVE_Y", "TEXTURE_CUBE_MAP_POSITIVE_Z", "TEXTURE_MAG_FILTER", "TEXTURE_MIN_FILTER", "TEXTURE_WRAP_S", "TEXTURE_WRAP_T", "TRIANGLES", "TRIANGLE_FAN", "TRIANGLE_STRIP", "UNPACK_ALIGNMENT", "UNPACK_COLORSPACE_CONVERSION_WEBGL", "UNPACK_FLIP_Y_WEBGL", "UNPACK_PREMULTIPLY_ALPHA_WEBGL", "UNSIGNED_BYTE", "UNSIGNED_INT", "UNSIGNED_SHORT", "UNSIGNED_SHORT_4_4_4_4", "UNSIGNED_SHORT_5_5_5_1", "UNSIGNED_SHORT_5_6_5", "VALIDATE_STATUS", "VENDOR", "VERSION", "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", "VERTEX_ATTRIB_ARRAY_ENABLED", "VERTEX_ATTRIB_ARRAY_NORMALIZED", "VERTEX_ATTRIB_ARRAY_POINTER", "VERTEX_ATTRIB_ARRAY_SIZE", "VERTEX_ATTRIB_ARRAY_STRIDE", "VERTEX_ATTRIB_ARRAY_TYPE", "VERTEX_SHADER", "VIEWPORT", "ZERO"];
|
|
7
|
-
var index_spec_default = async () => {
|
|
8
|
-
let app;
|
|
9
|
-
let win;
|
|
10
|
-
let glArea;
|
|
11
|
-
let canvas;
|
|
12
|
-
let ctx;
|
|
13
|
-
if (GLib.getenv("CI") || GLib.getenv("GITHUB_ACTIONS") || GLib.getenv("TRAVIS") || GLib.getenv("CIRCLECI") || GLib.getenv("GITLAB_CI")) {
|
|
14
|
-
console.info("Skipping webgl tests on CI");
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const initApp = async () => {
|
|
18
|
-
Gtk.init();
|
|
19
|
-
app = new Gtk.Application({
|
|
20
|
-
application_id: "gjsify.webgl.index.spec.ts",
|
|
21
|
-
flags: Gio.ApplicationFlags.FLAGS_NONE
|
|
22
|
-
});
|
|
23
|
-
const p = new Promise((resolve) => {
|
|
24
|
-
app.connect("activate", () => {
|
|
25
|
-
resolve(app);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
win = new Gtk.ApplicationWindow(app);
|
|
29
|
-
win.set_default_size(800, 600);
|
|
30
|
-
app.run([]);
|
|
31
|
-
return p;
|
|
32
|
-
};
|
|
33
|
-
const initGLArea = async () => {
|
|
34
|
-
glArea = new Gtk.GLArea({});
|
|
35
|
-
const p = new Promise((resolve, reject) => {
|
|
36
|
-
glArea.connect("realize", () => {
|
|
37
|
-
glArea.make_current();
|
|
38
|
-
const error = glArea.get_error();
|
|
39
|
-
if (error) {
|
|
40
|
-
reject(error);
|
|
41
|
-
}
|
|
42
|
-
resolve(glArea);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
glArea.set_use_es(true);
|
|
46
|
-
glArea.set_has_depth_buffer(true);
|
|
47
|
-
glArea.set_has_stencil_buffer(true);
|
|
48
|
-
glArea.set_required_version(3, 2);
|
|
49
|
-
win.set_child(glArea);
|
|
50
|
-
win.present();
|
|
51
|
-
return p;
|
|
52
|
-
};
|
|
53
|
-
await describe("Gtk.ApplicationWindow", async () => {
|
|
54
|
-
await it("should be able to create a new instance", async () => {
|
|
55
|
-
app = await initApp();
|
|
56
|
-
expect(app).toBeDefined();
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
await describe("Gtk.GLArea", async () => {
|
|
60
|
-
await it("should be able to create a new instance", async () => {
|
|
61
|
-
glArea = await initGLArea();
|
|
62
|
-
expect(glArea).toBeDefined();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
await describe("HTMLCanvasElement", async () => {
|
|
66
|
-
await it("should be defined", async () => {
|
|
67
|
-
expect(HTMLCanvasElement).toBeDefined();
|
|
68
|
-
});
|
|
69
|
-
await it("should be able to create a new instance", async () => {
|
|
70
|
-
expect(() => {
|
|
71
|
-
canvas = new HTMLCanvasElement(glArea);
|
|
72
|
-
}).not.toThrow();
|
|
73
|
-
expect(canvas).toBeDefined();
|
|
74
|
-
});
|
|
75
|
-
await it("should be able to get a webgl context", async () => {
|
|
76
|
-
expect(() => {
|
|
77
|
-
ctx = canvas.getContext("webgl");
|
|
78
|
-
}).not.toThrow();
|
|
79
|
-
expect(ctx).toBeDefined();
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
await describe("WebGLRenderingContext", async () => {
|
|
83
|
-
await it("should have defined WebGL constants", async () => {
|
|
84
|
-
for (const GL_CONSTANT_NAME of GL_CONSTANT_NAMES) {
|
|
85
|
-
const constant = ctx?.[GL_CONSTANT_NAME];
|
|
86
|
-
console.log(GL_CONSTANT_NAME, constant);
|
|
87
|
-
expect(typeof constant).toBe("number");
|
|
88
|
-
if (GL_CONSTANT_NAME === "NONE" || GL_CONSTANT_NAME === "ZERO" || GL_CONSTANT_NAME === "NO_ERROR" || GL_CONSTANT_NAME === "POINTS") {
|
|
89
|
-
expect(constant === 0).toBeTruthy();
|
|
90
|
-
} else {
|
|
91
|
-
expect(constant > 0).toBeTruthy();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
await describe("Gwebgl.WebGLRenderingContext", async () => {
|
|
97
|
-
await it("getParameterb should return a boolean", async () => {
|
|
98
|
-
const res = ctx?._native.getParameterb(ctx?.BLEND);
|
|
99
|
-
console.log("res", res);
|
|
100
|
-
expect(typeof res).toBe("boolean");
|
|
101
|
-
});
|
|
102
|
-
await it("getParameterbv should return an array of boolean", async () => {
|
|
103
|
-
const results = ctx?._native.getParameterbv(ctx?.COLOR_WRITEMASK, 16);
|
|
104
|
-
console.log("results", results);
|
|
105
|
-
expect(Array.isArray(results)).toBeTruthy();
|
|
106
|
-
if (Array.isArray(results)) {
|
|
107
|
-
for (const res of results) {
|
|
108
|
-
expect(typeof res).toBe("boolean");
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
await it("getParameterf should return a float number", async () => {
|
|
113
|
-
const result = ctx?._native.getParameterf(ctx?.SAMPLE_COVERAGE_VALUE);
|
|
114
|
-
console.log("result", result);
|
|
115
|
-
expect(typeof result).toBe("number");
|
|
116
|
-
});
|
|
117
|
-
await it("getParameterfv should return an array of float numbers", async () => {
|
|
118
|
-
const results = ctx?._native.getParameterfv(ctx?.DEPTH_RANGE, 8);
|
|
119
|
-
console.log("results", results);
|
|
120
|
-
expect(Array.isArray(results)).toBeTruthy();
|
|
121
|
-
if (Array.isArray(results)) {
|
|
122
|
-
for (const res of results) {
|
|
123
|
-
expect(typeof res).toBe("number");
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
await it("getParameteri should return a integer number", async () => {
|
|
128
|
-
const result = ctx?._native.getParameteri(ctx?.ARRAY_BUFFER_BINDING);
|
|
129
|
-
console.log("result", result);
|
|
130
|
-
expect(typeof result).toBe("number");
|
|
131
|
-
});
|
|
132
|
-
await it("getParameteriv should return an array of integer numbers", async () => {
|
|
133
|
-
const results = ctx?._native.getParameteriv(ctx?.MAX_VIEWPORT_DIMS, 8);
|
|
134
|
-
console.log("results", results, typeof results);
|
|
135
|
-
expect(Array.isArray(results)).toBeTruthy();
|
|
136
|
-
if (Array.isArray(results)) {
|
|
137
|
-
for (const res of results) {
|
|
138
|
-
expect(typeof res).toBe("number");
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
export {
|
|
145
|
-
index_spec_default as default
|
|
146
|
-
};
|
package/lib/cjs/linkable.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
class Linkable {
|
|
2
|
-
constructor(_) {
|
|
3
|
-
this._ = 0;
|
|
4
|
-
this._references = [];
|
|
5
|
-
this._refCount = 0;
|
|
6
|
-
this._pendingDelete = false;
|
|
7
|
-
this._binding = 0;
|
|
8
|
-
this._ = _;
|
|
9
|
-
this._references = [];
|
|
10
|
-
this._refCount = 0;
|
|
11
|
-
this._pendingDelete = false;
|
|
12
|
-
this._binding = 0;
|
|
13
|
-
}
|
|
14
|
-
_link(b) {
|
|
15
|
-
this._references.push(b);
|
|
16
|
-
b._refCount += 1;
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
_unlink(b) {
|
|
20
|
-
let idx = this._references.indexOf(b);
|
|
21
|
-
if (idx < 0) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
while (idx >= 0) {
|
|
25
|
-
this._references[idx] = this._references[this._references.length - 1];
|
|
26
|
-
this._references.pop();
|
|
27
|
-
b._refCount -= 1;
|
|
28
|
-
b._checkDelete();
|
|
29
|
-
idx = this._references.indexOf(b);
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
_linked(b) {
|
|
34
|
-
return this._references.indexOf(b) >= 0;
|
|
35
|
-
}
|
|
36
|
-
_checkDelete() {
|
|
37
|
-
if (this._refCount <= 0 && this._pendingDelete && this._ !== 0) {
|
|
38
|
-
while (this._references.length > 0) {
|
|
39
|
-
this._unlink(this._references[0]);
|
|
40
|
-
}
|
|
41
|
-
this._performDelete();
|
|
42
|
-
this._ = 0;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
_performDelete() {
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export {
|
|
49
|
-
Linkable
|
|
50
|
-
};
|
package/lib/cjs/test.js
DELETED
|
File without changes
|
|
File without changes
|
package/lib/cjs/types/index.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|