mirror of
https://github.com/gpujs/gpu.js.git
synced 2025-12-08 20:35:56 +00:00
fix: texture.renderRawOutput to use existing framebuffer, or make it so it can be deleted fix: glKernelString to handle the framebuffer from texture.renderRawOutput fix: WebGLKernelArray.checkSize so display error for all three scenarios 1. width too big 2. height too big 3. width and height too big
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
const { assert, skip, test, module: describe, only } = require('qunit');
|
|
const { webGLKernelValueMaps } = require('../../../../../src');
|
|
|
|
describe('internal: WebGLKernelValueSingleArray');
|
|
|
|
test('.constructor() checks too large height', () => {
|
|
const mockKernel = {
|
|
constructor: {
|
|
features: { maxTextureSize: 1 },
|
|
},
|
|
validate: true,
|
|
};
|
|
assert.throws(() => {
|
|
const row = new Float32Array(5);
|
|
new webGLKernelValueMaps.single.static.Array(row, {
|
|
kernel: mockKernel,
|
|
name: 'test',
|
|
type: 'Array',
|
|
origin: 'user',
|
|
tactic: 'speed',
|
|
onRequestContextHandle: () => 1,
|
|
onRequestTexture: () => null,
|
|
onRequestIndex: () => 1
|
|
});
|
|
}, new Error('Argument texture height of 2 larger than maximum size of 1 for your GPU'));
|
|
});
|
|
|
|
test('.constructor() checks ok height & width', () => {
|
|
const mockKernel = {
|
|
constructor: {
|
|
features: { maxTextureSize: 4 },
|
|
},
|
|
validate: true,
|
|
setUniform3iv: () => {},
|
|
setUniform2iv: () => {},
|
|
setUniform1i: () => {},
|
|
};
|
|
const mockContext = {
|
|
activeTexture: () => {},
|
|
bindTexture: () => {},
|
|
texParameteri: () => {},
|
|
pixelStorei: () => {},
|
|
texImage2D: () => {},
|
|
};
|
|
const v = new webGLKernelValueMaps.single.static.Array([1,2], {
|
|
kernel: mockKernel,
|
|
name: 'test',
|
|
type: 'Array',
|
|
origin: 'user',
|
|
tactic: 'speed',
|
|
context: mockContext,
|
|
onRequestContextHandle: () => 1,
|
|
onRequestTexture: () => null,
|
|
onRequestIndex: () => 1
|
|
});
|
|
assert.equal(v.constructor.name, 'WebGLKernelValueSingleArray');
|
|
});
|