maplibre-gl
Version:
BSD licensed community fork of mapbox-gl, a WebGL interactive maps library
123 lines (98 loc) • 3.05 kB
text/typescript
import {mat4} from 'gl-matrix';
import Context from '../gl/context';
import {
Uniform1i,
Uniform1f,
Uniform2f,
Uniform3f,
Uniform4f,
UniformMatrix4f
} from './uniform_binding';
describe('Uniform Binding', () => {
test('Uniform1i', () => {
// test counts ensure we don't call the gl.uniform* setters more than expected
expect.assertions(4);
const context = {
gl: {
uniform1i: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new Uniform1i(context, 0);
expect(u.current).toBe(0);
u.set(1);
expect(u.current).toBe(1);
u.set(1);
u.set(2);
});
test('Uniform1f', () => {
expect.assertions(4);
const context = {
gl: {
uniform1f: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new Uniform1f(context, 0);
expect(u.current).toBe(0);
u.set(1);
expect(u.current).toBe(1);
u.set(1);
u.set(2);
});
test('Uniform2f', () => {
expect.assertions(4);
const context = {
gl: {
uniform2f: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new Uniform2f(context, 0);
expect(u.current).toEqual([0, 0]);
u.set([1, 1]);
expect(u.current).toEqual([1, 1]);
u.set([1, 1]);
u.set([1, 2]);
});
test('Uniform3f', () => {
expect.assertions(4);
const context = {
gl: {
uniform3f: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new Uniform3f(context, 0);
expect(u.current).toEqual([0, 0, 0]);
u.set([1, 1, 1]);
expect(u.current).toEqual([1, 1, 1]);
u.set([1, 1, 1]);
u.set([1, 1, 2]);
});
test('Uniform4f', () => {
expect.assertions(4);
const context = {
gl: {
uniform4f: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new Uniform4f(context, 0);
expect(u.current).toEqual([0, 0, 0, 0]);
u.set([1, 1, 1, 1]);
expect(u.current).toEqual([1, 1, 1, 1]);
u.set([1, 1, 1, 1]);
u.set([2, 1, 1, 1]);
});
test('UniformMatrix4f', () => {
expect.assertions(4);
const context = {
gl: {
uniformMatrix4fv: () => { expect(true).toBeTruthy(); }
}
} as any as Context;
const u = new UniformMatrix4f(context, 0);
const ident = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] as mat4;
expect(u.current).toEqual(new Float32Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]));
u.set(ident);
expect(u.current).toEqual(ident);
u.set(ident);
u.set([2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
});
});