@gjsify/webgl 0.10.0 → 0.12.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/lib/esm/webgl-bridge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{HTMLCanvasElement as e}from"./html-canvas-element.js";import{notifyElementResize as t}from"@gjsify/dom-elements";import n from"gi://GObject";import r from"gi://GLib?version=2.0";import i from"gi://Gtk?version=4.0";import{attachEventControllers as a}from"@gjsify/event-bridge";import{Event as o}from"@gjsify/dom-events";const s=n.registerClass({GTypeName:`GjsifyWebGLBridge`},class WebGLBridge extends i.GLArea{constructor(n){super(n),this._canvas=null,this._readyCallbacks=[],this._resizeCallbacks=[],this._renderTag=null,this._tickCallbackId=null,this._frameCallback=null,this._frameCallbackId=0,this._nextFrameId=1,this._timeOrigin=r.get_monotonic_time(),this.set_use_es(!0),this.set_required_version(3,2),this.set_has_depth_buffer(!0),this.set_has_stencil_buffer(!0),a(this,()=>this._canvas,{captureKeys:!0}),this._tickCallbackId=this.add_tick_callback((e,t)=>(this._frameCallback!==null&&this.queue_render(),r.SOURCE_CONTINUE));let i=this.connect(`render`,()=>{this.disconnect(i),this.make_current(),this._canvas=new e(this);{let e=globalThis;e.document?.body&&e.document.body.appendChild(this._canvas)}this._canvas.getContext(`webgl2`);let t=this._canvas.getContext(`webgl`);if(t){for(let e of this._readyCallbacks)e(this._canvas,t);this._readyCallbacks=[]}return this._renderTag=this.connect(`render`,e=>{
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{HTMLCanvasElement as e}from"./html-canvas-element.js";import{notifyElementResize as t}from"@gjsify/dom-elements";import n from"gi://GObject";import r from"gi://GLib?version=2.0";import i from"gi://Gtk?version=4.0";import{attachEventControllers as a}from"@gjsify/event-bridge";import{Event as o}from"@gjsify/dom-events";const s=n.registerClass({GTypeName:`GjsifyWebGLBridge`},class WebGLBridge extends i.GLArea{constructor(n){super(n),this._canvas=null,this._readyCallbacks=[],this._resizeCallbacks=[],this._renderTag=null,this._tickCallbackId=null,this._frameCallback=null,this._lastFrameCallback=null,this._lastFrameTime=0,this._replaying=!1,this._frameCallbackId=0,this._nextFrameId=1,this._timeOrigin=r.get_monotonic_time(),this.set_use_es(!0),this.set_required_version(3,2),this.set_has_depth_buffer(!0),this.set_has_stencil_buffer(!0),a(this,()=>this._canvas,{captureKeys:!0}),this._tickCallbackId=this.add_tick_callback((e,t)=>(this._frameCallback!==null&&this.queue_render(),r.SOURCE_CONTINUE));let i=this.connect(`render`,()=>{this.disconnect(i),this.make_current(),this._canvas=new e(this);{let e=globalThis;e.document?.body&&e.document.body.appendChild(this._canvas)}this._canvas.getContext(`webgl2`);let t=this._canvas.getContext(`webgl`);if(t){for(let e of this._readyCallbacks)e(this._canvas,t);this._readyCallbacks=[]}return this._renderTag=this.connect(`render`,e=>{let t=(r.get_monotonic_time()-this._timeOrigin)/1e3;if(this._frameCallback!==null){globalThis.__GJSIFY_DEBUG_RAF===!0&&console.log(`[rAF] frame callback fires t=${t.toFixed(1)}`);let e=this._frameCallback;this._frameCallback=null,this._frameCallbackId=0,this._lastFrameCallback=e,this._lastFrameTime=t,e(t)}else if(this._lastFrameCallback!==null){this._replaying=!0;try{this._lastFrameCallback(this._lastFrameTime)}finally{this._replaying=!1}}return!0}),!0});this.connect(`resize`,()=>{let e=this.get_allocated_width(),n=this.get_allocated_height();this._canvas&&(this._canvas.dispatchEvent(new o(`resize`)),t(this._canvas,e,n));for(let t of this._resizeCallbacks)t(e,n);this._frameCallback&&this.requestAnimationFrame(this._frameCallback)}),this.connect(`unrealize`,()=>{this._renderTag!==null&&(this.disconnect(this._renderTag),this._renderTag=null),this._tickCallbackId!==null&&(this.remove_tick_callback(this._tickCallbackId),this._tickCallbackId=null),this._frameCallback=null,this._lastFrameCallback=null,this._lastFrameTime=0,this._replaying=!1,this._canvas=null})}get canvas(){return this._canvas}onReady(e){if(this._canvas){let t=this._canvas.getContext(`webgl`);if(t){e(this._canvas,t);return}}this._readyCallbacks.push(e)}onWebGLReady(e){this.onReady(e)}onResize(e){this._resizeCallbacks.push(e)}requestAnimationFrame(e){let t=this._nextFrameId++;return this._replaying?t:(this._frameCallback=e,this._frameCallbackId=t,this.queue_render(),t)}cancelAnimationFrame(e){e!==0&&e===this._frameCallbackId&&(this._frameCallback=null,this._frameCallbackId=0,this._lastFrameCallback=null,this._lastFrameTime=0)}installGlobals(){let e=globalThis;e.requestAnimationFrame=e=>this.requestAnimationFrame(e),e.cancelAnimationFrame=e=>this.cancelAnimationFrame(e);let t=this._timeOrigin;e.performance={now:()=>(r.get_monotonic_time()-t)/1e3,timeOrigin:Date.now()}}});export{s as WebGLBridge};
|
|
@@ -31,6 +31,9 @@ export declare const WebGLBridge: {
|
|
|
31
31
|
_renderTag: number | null;
|
|
32
32
|
_tickCallbackId: number | null;
|
|
33
33
|
_frameCallback: FrameRequestCallback | null;
|
|
34
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
35
|
+
_lastFrameTime: number;
|
|
36
|
+
_replaying: boolean;
|
|
34
37
|
_frameCallbackId: number;
|
|
35
38
|
_nextFrameId: number;
|
|
36
39
|
_timeOrigin: number;
|
|
@@ -513,6 +516,9 @@ export declare const WebGLBridge: {
|
|
|
513
516
|
_renderTag: number | null;
|
|
514
517
|
_tickCallbackId: number | null;
|
|
515
518
|
_frameCallback: FrameRequestCallback | null;
|
|
519
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
520
|
+
_lastFrameTime: number;
|
|
521
|
+
_replaying: boolean;
|
|
516
522
|
_frameCallbackId: number;
|
|
517
523
|
_nextFrameId: number;
|
|
518
524
|
_timeOrigin: number;
|
|
@@ -995,6 +1001,9 @@ export declare const WebGLBridge: {
|
|
|
995
1001
|
_renderTag: number | null;
|
|
996
1002
|
_tickCallbackId: number | null;
|
|
997
1003
|
_frameCallback: FrameRequestCallback | null;
|
|
1004
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
1005
|
+
_lastFrameTime: number;
|
|
1006
|
+
_replaying: boolean;
|
|
998
1007
|
_frameCallbackId: number;
|
|
999
1008
|
_nextFrameId: number;
|
|
1000
1009
|
_timeOrigin: number;
|
|
@@ -1477,6 +1486,9 @@ export declare const WebGLBridge: {
|
|
|
1477
1486
|
_renderTag: number | null;
|
|
1478
1487
|
_tickCallbackId: number | null;
|
|
1479
1488
|
_frameCallback: FrameRequestCallback | null;
|
|
1489
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
1490
|
+
_lastFrameTime: number;
|
|
1491
|
+
_replaying: boolean;
|
|
1480
1492
|
_frameCallbackId: number;
|
|
1481
1493
|
_nextFrameId: number;
|
|
1482
1494
|
_timeOrigin: number;
|
|
@@ -1959,6 +1971,9 @@ export declare const WebGLBridge: {
|
|
|
1959
1971
|
_renderTag: number | null;
|
|
1960
1972
|
_tickCallbackId: number | null;
|
|
1961
1973
|
_frameCallback: FrameRequestCallback | null;
|
|
1974
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
1975
|
+
_lastFrameTime: number;
|
|
1976
|
+
_replaying: boolean;
|
|
1962
1977
|
_frameCallbackId: number;
|
|
1963
1978
|
_nextFrameId: number;
|
|
1964
1979
|
_timeOrigin: number;
|
|
@@ -2441,6 +2456,9 @@ export declare const WebGLBridge: {
|
|
|
2441
2456
|
_renderTag: number | null;
|
|
2442
2457
|
_tickCallbackId: number | null;
|
|
2443
2458
|
_frameCallback: FrameRequestCallback | null;
|
|
2459
|
+
_lastFrameCallback: FrameRequestCallback | null;
|
|
2460
|
+
_lastFrameTime: number;
|
|
2461
|
+
_replaying: boolean;
|
|
2444
2462
|
_frameCallbackId: number;
|
|
2445
2463
|
_nextFrameId: number;
|
|
2446
2464
|
_timeOrigin: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/webgl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "WebGL module for Gjs",
|
|
5
5
|
"module": "lib/esm/index.js",
|
|
6
6
|
"types": "lib/types/index.d.ts",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"WebGL"
|
|
46
46
|
],
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@gjsify/cli": "^0.
|
|
49
|
-
"@gjsify/unit": "^0.
|
|
48
|
+
"@gjsify/cli": "^0.12.0",
|
|
49
|
+
"@gjsify/unit": "^0.12.0",
|
|
50
50
|
"@types/bit-twiddle": "^1.0.3",
|
|
51
51
|
"@types/node": "^25.9.2",
|
|
52
52
|
"typescript": "^6.0.3"
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"@girs/gjs": "4.0.4",
|
|
57
57
|
"@girs/gtk-4.0": "4.23.0-4.0.4",
|
|
58
58
|
"@girs/gwebgl-0.1": "0.1.0-4.0.0-rc.5",
|
|
59
|
-
"@gjsify/dom-elements": "^0.
|
|
60
|
-
"@gjsify/dom-events": "^0.
|
|
61
|
-
"@gjsify/event-bridge": "^0.
|
|
62
|
-
"@gjsify/utils": "^0.
|
|
59
|
+
"@gjsify/dom-elements": "^0.12.0",
|
|
60
|
+
"@gjsify/dom-events": "^0.12.0",
|
|
61
|
+
"@gjsify/event-bridge": "^0.12.0",
|
|
62
|
+
"@gjsify/utils": "^0.12.0",
|
|
63
63
|
"bit-twiddle": "^1.0.2",
|
|
64
64
|
"glsl-tokenizer": "^2.1.5"
|
|
65
65
|
},
|