bloody-engine 1.1.5 → 1.1.7
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/dist/node/index.js +89 -36
- package/dist/node/src/core/grahpic-device.d.ts +2 -1
- package/dist/node/src/core/grahpic-device.d.ts.map +1 -1
- package/dist/node/src/platforms/node/node-context.d.ts +1 -1
- package/dist/node/src/platforms/node/node-context.d.ts.map +1 -1
- package/dist/node/src/platforms/node/webgl-extensions.d.ts +32 -0
- package/dist/node/src/platforms/node/webgl-extensions.d.ts.map +1 -0
- package/dist/node/src/rendering/batch-renderer.d.ts.map +1 -1
- package/dist/node/src/rendering/hybrid-renderer.d.ts +2 -1
- package/dist/node/src/rendering/hybrid-renderer.d.ts.map +1 -1
- package/dist/node/src/rendering/instanced-renderer.d.ts +2 -1
- package/dist/node/src/rendering/instanced-renderer.d.ts.map +1 -1
- package/dist/node/src/rendering/rendering-context.d.ts +2 -1
- package/dist/node/src/rendering/rendering-context.d.ts.map +1 -1
- package/dist/node/src/rendering/ring-buffer.d.ts +6 -2
- package/dist/node/src/rendering/ring-buffer.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/node/index.js
CHANGED
|
@@ -42,19 +42,27 @@ class NodeRenderingContext {
|
|
|
42
42
|
this.glContext.flush();
|
|
43
43
|
}
|
|
44
44
|
isWebGL2() {
|
|
45
|
-
|
|
45
|
+
const glAny = this.glContext;
|
|
46
|
+
const hasWebGL2Features = glAny.drawBuffers !== void 0 && glAny.getBufferSubData !== void 0;
|
|
47
|
+
if (!hasWebGL2Features && glAny.getSupportedExtensions) {
|
|
48
|
+
const extensions = glAny.getSupportedExtensions();
|
|
49
|
+
return extensions.includes("WEBGL_draw_buffers");
|
|
50
|
+
}
|
|
51
|
+
return hasWebGL2Features;
|
|
46
52
|
}
|
|
47
53
|
supportsInstancing() {
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
const glAny = this.glContext;
|
|
55
|
+
const hasDirectMethods = glAny.drawArraysInstanced !== void 0 && glAny.vertexAttribDivisor !== void 0;
|
|
56
|
+
if (hasDirectMethods) {
|
|
57
|
+
return true;
|
|
50
58
|
}
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
if (glAny.getSupportedExtensions) {
|
|
60
|
+
const extensions = glAny.getSupportedExtensions();
|
|
61
|
+
return extensions.includes("ANGLE_instanced_arrays");
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
53
64
|
}
|
|
54
65
|
getWebGL2Context() {
|
|
55
|
-
if (!this.isWebGL2()) {
|
|
56
|
-
throw new Error("WebGL2 context not available");
|
|
57
|
-
}
|
|
58
66
|
return this.glContext;
|
|
59
67
|
}
|
|
60
68
|
/**
|
|
@@ -333,6 +341,7 @@ class GraphicsDevice {
|
|
|
333
341
|
/**
|
|
334
342
|
* Get WebGL2 context (for advanced features)
|
|
335
343
|
* Throws if WebGL2 is not available
|
|
344
|
+
* Returns 'any' to support Node.js environments where WebGL2RenderingContext type may not be defined
|
|
336
345
|
*/
|
|
337
346
|
getWebGL2Context() {
|
|
338
347
|
return this.context.getWebGL2Context();
|
|
@@ -2756,7 +2765,11 @@ class GPUBasedSpriteBatchRenderer {
|
|
|
2756
2765
|
this.maxQuads = maxQuads;
|
|
2757
2766
|
this.tileSize = tileSize;
|
|
2758
2767
|
this.zScale = zScale;
|
|
2759
|
-
|
|
2768
|
+
const glAny = gl;
|
|
2769
|
+
this.resolution = {
|
|
2770
|
+
width: glAny.canvas?.width || glAny.drawingBufferWidth || 800,
|
|
2771
|
+
height: glAny.canvas?.height || glAny.drawingBufferHeight || 600
|
|
2772
|
+
};
|
|
2760
2773
|
this.depthSorter = new DepthSorter({ cellSize: spatialCellSize });
|
|
2761
2774
|
const totalFloats = maxQuads * this.verticesPerQuad * this.floatsPerVertex;
|
|
2762
2775
|
this.vertexData = new Float32Array(totalFloats);
|
|
@@ -3055,13 +3068,14 @@ class RingBuffer {
|
|
|
3055
3068
|
this.frameIndex = 0;
|
|
3056
3069
|
this.fenceSync = null;
|
|
3057
3070
|
this.pendingFrames = [];
|
|
3071
|
+
this.useFallbackMode = false;
|
|
3072
|
+
this.fallbackBuffer = null;
|
|
3058
3073
|
this.ALIGNMENT = 256;
|
|
3059
3074
|
this.FRAME_COUNT = 3;
|
|
3060
|
-
if (!(options.gl instanceof WebGL2RenderingContext)) {
|
|
3061
|
-
throw new Error("RingBuffer requires WebGL2 context");
|
|
3062
|
-
}
|
|
3063
3075
|
this.gl = options.gl;
|
|
3064
3076
|
this.size = options.size;
|
|
3077
|
+
const glAny = options.gl;
|
|
3078
|
+
this.useFallbackMode = typeof glAny.mapBufferRange !== "function";
|
|
3065
3079
|
this.buffer = this.gl.createBuffer();
|
|
3066
3080
|
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffer);
|
|
3067
3081
|
this.gl.bufferData(
|
|
@@ -3069,19 +3083,22 @@ class RingBuffer {
|
|
|
3069
3083
|
this.size,
|
|
3070
3084
|
options.usage ?? this.gl.DYNAMIC_DRAW
|
|
3071
3085
|
);
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3086
|
+
if (this.useFallbackMode) {
|
|
3087
|
+
this.fallbackBuffer = new Float32Array(this.size / 4);
|
|
3088
|
+
} else {
|
|
3089
|
+
const MAP_WRITE_BIT2 = 2;
|
|
3090
|
+
const MAP_PERSISTENT_BIT2 = 64;
|
|
3091
|
+
const MAP_COHERENT_BIT2 = 128;
|
|
3092
|
+
const flags = MAP_WRITE_BIT2 | MAP_PERSISTENT_BIT2 | MAP_COHERENT_BIT2;
|
|
3093
|
+
this.mappedPtr = glAny.mapBufferRange(
|
|
3094
|
+
this.gl.ARRAY_BUFFER,
|
|
3095
|
+
0,
|
|
3096
|
+
this.size,
|
|
3097
|
+
flags
|
|
3098
|
+
);
|
|
3099
|
+
if (!this.mappedPtr) {
|
|
3100
|
+
throw new Error("Failed to map ring buffer persistently");
|
|
3101
|
+
}
|
|
3085
3102
|
}
|
|
3086
3103
|
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
|
|
3087
3104
|
}
|
|
@@ -3109,7 +3126,7 @@ class RingBuffer {
|
|
|
3109
3126
|
const region = {
|
|
3110
3127
|
offset: this.writeOffset,
|
|
3111
3128
|
size: alignedSize,
|
|
3112
|
-
view: new Float32Array(this.mappedPtr, this.writeOffset / 4, byteSize / 4),
|
|
3129
|
+
view: this.useFallbackMode ? this.fallbackBuffer.subarray(this.writeOffset / 4, this.writeOffset / 4 + byteSize / 4) : new Float32Array(this.mappedPtr, this.writeOffset / 4, byteSize / 4),
|
|
3113
3130
|
frameIndex: this.frameIndex
|
|
3114
3131
|
};
|
|
3115
3132
|
this.writeOffset += alignedSize;
|
|
@@ -3121,6 +3138,18 @@ class RingBuffer {
|
|
|
3121
3138
|
*/
|
|
3122
3139
|
advanceFrame() {
|
|
3123
3140
|
const glAny = this.gl;
|
|
3141
|
+
if (this.useFallbackMode && this.fallbackBuffer) {
|
|
3142
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffer);
|
|
3143
|
+
this.gl.bufferSubData(this.gl.ARRAY_BUFFER, 0, this.fallbackBuffer);
|
|
3144
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
|
|
3145
|
+
}
|
|
3146
|
+
if (!glAny.fenceSync) {
|
|
3147
|
+
this.frameIndex++;
|
|
3148
|
+
if (this.writeOffset > this.size * 0.9) {
|
|
3149
|
+
this.writeOffset = 0;
|
|
3150
|
+
}
|
|
3151
|
+
return;
|
|
3152
|
+
}
|
|
3124
3153
|
const SYNC_GPU_COMMANDS_COMPLETE = 37143;
|
|
3125
3154
|
this.fenceSync = glAny.fenceSync(SYNC_GPU_COMMANDS_COMPLETE, 0);
|
|
3126
3155
|
if (!this.fenceSync) {
|
|
@@ -3219,6 +3248,29 @@ class RingBuffer {
|
|
|
3219
3248
|
this.gl.deleteBuffer(this.buffer);
|
|
3220
3249
|
}
|
|
3221
3250
|
}
|
|
3251
|
+
function getInstancingMethods(gl) {
|
|
3252
|
+
if (gl.drawArraysInstanced && gl.vertexAttribDivisor) {
|
|
3253
|
+
return {
|
|
3254
|
+
drawArraysInstanced: gl.drawArraysInstanced.bind(gl),
|
|
3255
|
+
drawElementsInstanced: gl.drawElementsInstanced?.bind(gl) || gl.drawArraysInstanced.bind(gl),
|
|
3256
|
+
vertexAttribDivisor: gl.vertexAttribDivisor.bind(gl)
|
|
3257
|
+
};
|
|
3258
|
+
}
|
|
3259
|
+
const ext = gl.getExtension("ANGLE_instanced_arrays");
|
|
3260
|
+
if (ext) {
|
|
3261
|
+
const drawArrays = ext.drawArraysInstanced || ext._drawArraysInstanced;
|
|
3262
|
+
const drawElements = ext.drawElementsInstanced || ext._drawElementsInstanced;
|
|
3263
|
+
const divisor = ext.vertexAttribDivisor || ext._vertexAttribDivisor;
|
|
3264
|
+
if (drawArrays && divisor) {
|
|
3265
|
+
return {
|
|
3266
|
+
drawArraysInstanced: drawArrays.bind(ext),
|
|
3267
|
+
drawElementsInstanced: drawElements?.bind(ext) || drawArrays.bind(ext),
|
|
3268
|
+
vertexAttribDivisor: divisor.bind(ext)
|
|
3269
|
+
};
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3272
|
+
return null;
|
|
3273
|
+
}
|
|
3222
3274
|
class InstancedRenderer {
|
|
3223
3275
|
constructor(gl, shader, options = {}) {
|
|
3224
3276
|
this.texture = null;
|
|
@@ -3226,9 +3278,11 @@ class InstancedRenderer {
|
|
|
3226
3278
|
this.depthTestEnabled = true;
|
|
3227
3279
|
this.lastFrameDrawCalls = 0;
|
|
3228
3280
|
this.lastFrameInstanceCount = 0;
|
|
3229
|
-
|
|
3230
|
-
|
|
3281
|
+
const methods = getInstancingMethods(gl);
|
|
3282
|
+
if (!methods) {
|
|
3283
|
+
throw new Error("InstancedRenderer requires WebGL2 context with instancing support (ANGLE_instanced_arrays)");
|
|
3231
3284
|
}
|
|
3285
|
+
this.instancingMethods = methods;
|
|
3232
3286
|
this.gl = gl;
|
|
3233
3287
|
this.shader = shader;
|
|
3234
3288
|
this.maxInstances = options.maxInstances ?? 1e4;
|
|
@@ -3427,7 +3481,7 @@ class InstancedRenderer {
|
|
|
3427
3481
|
}
|
|
3428
3482
|
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.instanceBufferWebGL);
|
|
3429
3483
|
this.setupInstanceAttributes(region.offset);
|
|
3430
|
-
this.
|
|
3484
|
+
this.instancingMethods.drawArraysInstanced(
|
|
3431
3485
|
this.gl.TRIANGLES,
|
|
3432
3486
|
0,
|
|
3433
3487
|
6,
|
|
@@ -3442,42 +3496,41 @@ class InstancedRenderer {
|
|
|
3442
3496
|
setupInstanceAttributes(offset) {
|
|
3443
3497
|
const stride = this.instanceStride * 4;
|
|
3444
3498
|
const baseOffset = offset;
|
|
3445
|
-
const glAny = this.gl;
|
|
3446
3499
|
const gridAttr = this.shader.getAttributeLocation("aGridPosition");
|
|
3447
3500
|
if (gridAttr !== -1) {
|
|
3448
3501
|
this.gl.enableVertexAttribArray(gridAttr);
|
|
3449
3502
|
this.gl.vertexAttribPointer(gridAttr, 2, this.gl.FLOAT, false, stride, baseOffset);
|
|
3450
|
-
|
|
3503
|
+
this.instancingMethods.vertexAttribDivisor(gridAttr, 1);
|
|
3451
3504
|
}
|
|
3452
3505
|
const zAttr = this.shader.getAttributeLocation("aZPosition");
|
|
3453
3506
|
if (zAttr !== -1) {
|
|
3454
3507
|
this.gl.enableVertexAttribArray(zAttr);
|
|
3455
3508
|
this.gl.vertexAttribPointer(zAttr, 1, this.gl.FLOAT, false, stride, baseOffset + 2 * 4);
|
|
3456
|
-
|
|
3509
|
+
this.instancingMethods.vertexAttribDivisor(zAttr, 1);
|
|
3457
3510
|
}
|
|
3458
3511
|
const colorAttr = this.shader.getAttributeLocation("aColor");
|
|
3459
3512
|
if (colorAttr !== -1) {
|
|
3460
3513
|
this.gl.enableVertexAttribArray(colorAttr);
|
|
3461
3514
|
this.gl.vertexAttribPointer(colorAttr, 4, this.gl.FLOAT, false, stride, baseOffset + 3 * 4);
|
|
3462
|
-
|
|
3515
|
+
this.instancingMethods.vertexAttribDivisor(colorAttr, 1);
|
|
3463
3516
|
}
|
|
3464
3517
|
const texAttr = this.shader.getAttributeLocation("aTexIndex");
|
|
3465
3518
|
if (texAttr !== -1) {
|
|
3466
3519
|
this.gl.enableVertexAttribArray(texAttr);
|
|
3467
3520
|
this.gl.vertexAttribPointer(texAttr, 1, this.gl.FLOAT, false, stride, baseOffset + 7 * 4);
|
|
3468
|
-
|
|
3521
|
+
this.instancingMethods.vertexAttribDivisor(texAttr, 1);
|
|
3469
3522
|
}
|
|
3470
3523
|
const uvOffsetAttr = this.shader.getAttributeLocation("aUVOffset");
|
|
3471
3524
|
if (uvOffsetAttr !== -1) {
|
|
3472
3525
|
this.gl.enableVertexAttribArray(uvOffsetAttr);
|
|
3473
3526
|
this.gl.vertexAttribPointer(uvOffsetAttr, 2, this.gl.FLOAT, false, stride, baseOffset + 8 * 4);
|
|
3474
|
-
|
|
3527
|
+
this.instancingMethods.vertexAttribDivisor(uvOffsetAttr, 1);
|
|
3475
3528
|
}
|
|
3476
3529
|
const sizeAttr = this.shader.getAttributeLocation("aSize");
|
|
3477
3530
|
if (sizeAttr !== -1) {
|
|
3478
3531
|
this.gl.enableVertexAttribArray(sizeAttr);
|
|
3479
3532
|
this.gl.vertexAttribPointer(sizeAttr, 2, this.gl.FLOAT, false, stride, baseOffset + 10 * 4);
|
|
3480
|
-
|
|
3533
|
+
this.instancingMethods.vertexAttribDivisor(sizeAttr, 1);
|
|
3481
3534
|
}
|
|
3482
3535
|
}
|
|
3483
3536
|
/**
|
|
@@ -73,7 +73,8 @@ export declare class GraphicsDevice {
|
|
|
73
73
|
/**
|
|
74
74
|
* Get WebGL2 context (for advanced features)
|
|
75
75
|
* Throws if WebGL2 is not available
|
|
76
|
+
* Returns 'any' to support Node.js environments where WebGL2RenderingContext type may not be defined
|
|
76
77
|
*/
|
|
77
|
-
getWebGL2Context():
|
|
78
|
+
getWebGL2Context(): any;
|
|
78
79
|
}
|
|
79
80
|
//# sourceMappingURL=grahpic-device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grahpic-device.d.ts","sourceRoot":"","sources":["../../../../src/core/grahpic-device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;gBAEtB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IASzC;;OAEG;IACH,YAAY,IAAI,qBAAqB;IAIrC;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIhD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAInE;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IASlE;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B
|
|
1
|
+
{"version":3,"file":"grahpic-device.d.ts","sourceRoot":"","sources":["../../../../src/core/grahpic-device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;gBAEtB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IASzC;;OAEG;IACH,YAAY,IAAI,qBAAqB;IAIrC;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIhD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAInE;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IASlE;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;;;OAIG;IACH,gBAAgB,IAAI,GAAG;CAGxB"}
|
|
@@ -24,7 +24,7 @@ export declare class NodeRenderingContext implements RenderingContext {
|
|
|
24
24
|
dispose(): void;
|
|
25
25
|
isWebGL2(): boolean;
|
|
26
26
|
supportsInstancing(): boolean;
|
|
27
|
-
getWebGL2Context():
|
|
27
|
+
getWebGL2Context(): any;
|
|
28
28
|
/**
|
|
29
29
|
* Read the current framebuffer contents as RGBA pixel data
|
|
30
30
|
* Used for capturing frames for display or saving
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-context.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/node/node-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAE3C;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAS;gBAEf,OAAO,EAAE,uBAAuB;IAiB5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU3C,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIhD,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASnE,OAAO,IAAI,IAAI;IAKf,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"node-context.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/node/node-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAE3C;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAS;gBAEf,OAAO,EAAE,uBAAuB;IAiB5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU3C,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIhD,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASnE,OAAO,IAAI,IAAI;IAKf,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI,OAAO;IAiBnB,kBAAkB,IAAI,OAAO;IAqB7B,gBAAgB,IAAI,GAAG;IAMvB;;;OAGG;IACH,UAAU,IAAI,UAAU;CAazB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebGL Extension Helper for Node.js
|
|
3
|
+
*
|
|
4
|
+
* headless-gl provides WebGL2 features through extensions rather than
|
|
5
|
+
* direct context methods. This helper provides unified access to both.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Get instancing extension methods
|
|
9
|
+
* Returns either direct methods or ANGLE_instanced_arrays extension
|
|
10
|
+
* Handles both standard names and headless-gl's underscored names
|
|
11
|
+
*/
|
|
12
|
+
export declare function getInstancingMethods(gl: any): {
|
|
13
|
+
drawArraysInstanced: Function;
|
|
14
|
+
drawElementsInstanced: Function;
|
|
15
|
+
vertexAttribDivisor: Function;
|
|
16
|
+
} | null;
|
|
17
|
+
/**
|
|
18
|
+
* Check if instancing is available
|
|
19
|
+
*/
|
|
20
|
+
export declare function hasInstancingSupport(gl: any): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get WebGL2 buffer mapping methods
|
|
23
|
+
* Returns either direct methods or checks for extension support
|
|
24
|
+
*/
|
|
25
|
+
export declare function getBufferMappingMethods(gl: any): {
|
|
26
|
+
mapBufferRange: Function;
|
|
27
|
+
unmapBuffer: Function;
|
|
28
|
+
fenceSync: Function;
|
|
29
|
+
clientWaitSync: Function;
|
|
30
|
+
deleteSync: Function;
|
|
31
|
+
} | null;
|
|
32
|
+
//# sourceMappingURL=webgl-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-extensions.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/node/webgl-extensions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,GAAG,GAAG;IAC7C,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,qBAAqB,EAAE,QAAQ,CAAC;IAChC,mBAAmB,EAAE,QAAQ,CAAC;CAC/B,GAAG,IAAI,CA4BP;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,GAAG,GAAG;IAChD,cAAc,EAAE,QAAQ,CAAC;IACzB,WAAW,EAAE,QAAQ,CAAC;IACtB,SAAS,EAAE,QAAQ,CAAC;IACpB,cAAc,EAAE,QAAQ,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC;CACtB,GAAG,IAAI,CAeP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/batch-renderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"batch-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/batch-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,8 @@ export declare class HybridRenderer {
|
|
|
46
46
|
private frameCount;
|
|
47
47
|
private lastFpsCheck;
|
|
48
48
|
private performanceHistory;
|
|
49
|
-
constructor(gl:
|
|
49
|
+
constructor(gl: any, // Accept 'any' for Node.js compatibility
|
|
50
|
+
instancedShader: Shader, batchShader: Shader, options?: HybridRendererOptions);
|
|
50
51
|
/**
|
|
51
52
|
* Add a sprite for rendering
|
|
52
53
|
* Automatically determines which renderer to use
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/hybrid-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,OAAO,CAKb;IAGF,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,kBAAkB,CAAgB;gBAGxC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"hybrid-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/hybrid-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,OAAO,CAKb;IAGF,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,kBAAkB,CAAgB;gBAGxC,EAAE,EAAE,GAAG,EAAE,yCAAyC;IAClD,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B;IAuBrC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAsB3C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAIvC;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAKzC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK3C;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAuBrC;;OAEG;IACH,UAAU,IAAI,aAAa;IAI3B;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/C;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -58,6 +58,7 @@ export declare class InstancedRenderer {
|
|
|
58
58
|
private gl;
|
|
59
59
|
private shader;
|
|
60
60
|
private texture;
|
|
61
|
+
private instancingMethods;
|
|
61
62
|
private positionBuffer;
|
|
62
63
|
private uvBuffer;
|
|
63
64
|
private instanceBuffer;
|
|
@@ -71,7 +72,7 @@ export declare class InstancedRenderer {
|
|
|
71
72
|
private zScale;
|
|
72
73
|
private lastFrameDrawCalls;
|
|
73
74
|
private lastFrameInstanceCount;
|
|
74
|
-
constructor(gl:
|
|
75
|
+
constructor(gl: any, shader: Shader, options?: InstancedRendererOptions);
|
|
75
76
|
/**
|
|
76
77
|
* Create static quad geometry (shared across all instances)
|
|
77
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instanced-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/instanced-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"instanced-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/instanced-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,CAAC,EAAE,MAAM,CAAC;IACV,8BAA8B;IAC9B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,kBAAkB;IAClB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAcD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;IAGvC,OAAO,CAAC,iBAAiB,CAGvB;IAGF,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAe;IAG/B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAc;IAGzC,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,sBAAsB,CAAa;gBAGzC,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,wBAA6B;IAqCxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAIzC;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAerC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAQ1B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA0D9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4CnB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqD/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,UAAU,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAO1D;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}
|
|
@@ -58,8 +58,9 @@ export interface RenderingContext {
|
|
|
58
58
|
supportsInstancing(): boolean;
|
|
59
59
|
/**
|
|
60
60
|
* Get WebGL2 context (throws if not WebGL2)
|
|
61
|
+
* Returns 'any' to support Node.js environments where WebGL2RenderingContext type may not be defined
|
|
61
62
|
*/
|
|
62
|
-
getWebGL2Context():
|
|
63
|
+
getWebGL2Context(): any;
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Context creation options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendering-context.d.ts","sourceRoot":"","sources":["../../../../src/rendering/rendering-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,qBAAqB,CAAC;IAEjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C;;OAEG;IACH,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEpE;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC;IAEpB;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC;IAE9B
|
|
1
|
+
{"version":3,"file":"rendering-context.d.ts","sourceRoot":"","sources":["../../../../src/rendering/rendering-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,qBAAqB,CAAC;IAEjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C;;OAEG;IACH,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEpE;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC;IAEpB;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC;IAE9B;;;OAGG;IACH,gBAAgB,IAAI,GAAG,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAE3C;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -30,8 +30,8 @@ export interface RingBufferRegion {
|
|
|
30
30
|
export interface RingBufferOptions {
|
|
31
31
|
/** Buffer size in bytes (should be multiple of frame size * 3) */
|
|
32
32
|
size: number;
|
|
33
|
-
/** WebGL2 rendering context */
|
|
34
|
-
gl:
|
|
33
|
+
/** WebGL2 rendering context (accepts 'any' for Node.js compatibility) */
|
|
34
|
+
gl: any;
|
|
35
35
|
/** Usage hint (DYNAMIC_DRAW for frequent updates) */
|
|
36
36
|
usage?: number;
|
|
37
37
|
/** Enable triple buffering (default true) */
|
|
@@ -42,6 +42,8 @@ export interface RingBufferOptions {
|
|
|
42
42
|
*
|
|
43
43
|
* Circular buffer with persistent mapping for efficient GPU streaming.
|
|
44
44
|
* Uses triple buffering to avoid CPU-GPU synchronization points.
|
|
45
|
+
*
|
|
46
|
+
* Falls back to regular buffer updates if persistent mapping is not available.
|
|
45
47
|
*/
|
|
46
48
|
export declare class RingBuffer {
|
|
47
49
|
private gl;
|
|
@@ -53,6 +55,8 @@ export declare class RingBuffer {
|
|
|
53
55
|
private frameIndex;
|
|
54
56
|
private fenceSync;
|
|
55
57
|
private pendingFrames;
|
|
58
|
+
private useFallbackMode;
|
|
59
|
+
private fallbackBuffer;
|
|
56
60
|
private readonly ALIGNMENT;
|
|
57
61
|
private readonly FRAME_COUNT;
|
|
58
62
|
constructor(options: RingBufferOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/ring-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,YAAY,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/ring-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,YAAY,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,EAAE,EAAE,GAAG,CAAC;IACR,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,IAAI,CAAS;IAGrB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAsB;IAG3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA6B;IAGnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;gBAErB,OAAO,EAAE,iBAAiB;IA6CtC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAwCnD;;;OAGG;IACH,YAAY,IAAI,IAAI;IAqDpB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAmBb;;;OAGG;IACH,SAAS,IAAI,WAAW;IAIxB;;;OAGG;IACH,gBAAgB,IAAI,WAAW,GAAG,IAAI;IAItC;;;OAGG;IACH,OAAO,IAAI,IAAI;CA0BhB"}
|