From 2d2f50426ea23f219e6dfc64980e7c068d96ecf0 Mon Sep 17 00:00:00 2001 From: Ib Green Date: Mon, 2 Jan 2017 14:33:26 -0800 Subject: [PATCH] Working tests --- package.json | 4 +- src/core/model.js | 13 +++++-- src/{ => deprecated}/scenegraph/group.js | 2 +- src/{ => deprecated}/scenegraph/index.js | 0 src/{ => deprecated}/scenegraph/object-3d.js | 4 +- src/{ => deprecated}/scenegraph/pick.js | 4 +- src/{ => deprecated}/scenegraph/scene.js | 4 +- src/experimental/shader-modules/README.md | 2 - .../shader-modules/fp64/test-old/index.js | 5 +-- src/experimental/shader-modules/fp64/test.js | 4 +- src/experimental/shader-modules/test.js | 2 +- .../shader-tools/assemble-shaders.js | 3 +- .../shader-tools/register-shaders.js | 2 +- .../shaders/default-fragment.glsl | 39 ++++++------------- src/experimental/shaders/default-vertex.glsl | 14 ++++++- src/index.js | 15 +++---- src/io/test/read-image.js | 4 +- src/webgl/index.js | 5 ++- src/webgl/program.js | 12 +----- test/browser.js | 12 +----- test/core/index.js | 0 test/electron.js | 9 +---- .../geometry-spec.js | 2 +- test/geometry/index.js | 1 + test/headless-nowebgl.js | 2 +- test/headless.js | 12 +----- .../import-spec.js => imports.spec.js} | 5 +-- test/index-webgl-dependent-tests.js | 5 +++ test/index-webgl-independent-tests.js | 5 +++ test/{io-spec => io}/index.js | 0 test/{io-spec => io}/read-texture.js | 5 +-- test/utils/index.js | 1 + .../utils-spec.js => utils/utils.spec.js} | 2 +- test/webgl-independent/index.js | 8 ---- test/webgl/buffer.spec.js | 7 +--- test/webgl/context-no-headless.spec.js | 4 +- test/webgl/context.spec.js | 4 +- test/webgl/draw.spec.js | 6 +-- test/webgl/framebuffer.spec.js | 2 +- test/webgl/helpers/query-manager.spec.js | 3 +- test/webgl/program.spec.js | 4 +- test/webgl/renderbuffer.spec.js | 2 +- test/webgl/texture.spec.js | 4 +- test/webgl/timer-query.spec.js | 2 +- test/webgl/uniforms.spec.js | 5 +-- test/webgl/vertex-array-object.spec.js | 7 ++-- test/webgl/vertex-attributes.spec.js | 6 +-- 47 files changed, 111 insertions(+), 152 deletions(-) rename src/{ => deprecated}/scenegraph/group.js (97%) rename src/{ => deprecated}/scenegraph/index.js (100%) rename src/{ => deprecated}/scenegraph/object-3d.js (97%) rename src/{ => deprecated}/scenegraph/pick.js (94%) rename src/{ => deprecated}/scenegraph/scene.js (98%) delete mode 100644 test/core/index.js rename test/{webgl-independent => geometry}/geometry-spec.js (98%) create mode 100644 test/geometry/index.js rename test/{webgl-independent/import-spec.js => imports.spec.js} (84%) create mode 100644 test/index-webgl-dependent-tests.js create mode 100644 test/index-webgl-independent-tests.js rename test/{io-spec => io}/index.js (100%) rename test/{io-spec => io}/read-texture.js (92%) create mode 100644 test/utils/index.js rename test/{webgl-independent/utils-spec.js => utils/utils.spec.js} (93%) delete mode 100644 test/webgl-independent/index.js diff --git a/package.json b/package.json index 34332efaa..7d252dd07 100644 --- a/package.json +++ b/package.json @@ -80,11 +80,11 @@ "precommit": "npm test", "publish-prod": "npm run build && npm run test-fast && npm publish", "publish-beta": "npm run build && npm run test-fast && npm publish --tag beta", - "test": "npm run lint && npm run build-dist && npm run test-headless && npm run test-headless-nowebgl", + "test": "npm run lint && npm run build-dist && npm run test-headless-nowebgl && npm run test-headless", "test-fast": "npm run lint && npm run test-headless && npm run test-headless-nowebgl", "test-headless": "babel-node --include='' test/headless.js | faucet", "test-headless-nowebgl": "babel-node --include='' test/headless-nowebgl.js | faucet", - "test-browser": "budo test/browser.js:build/test-bundle.js --dir test --live --open --port 3001 --watch-glob '**/*.{html,css,js,glsl}' -- -t babelify", + "test-browser": "npm run build-watch && budo test/browser.js:build/test-bundle.js --dir test --live --open --port 3001 --watch-glob '**/*.{html,css,js,glsl}' -- -t babelify", "test-electron": "browserify test/electron.js | testron | faucet", "profile-disc": "browserify src/bundle.js --full-paths -t babelify -t brfs-babel | discify --open", "start": "npm run build-watch && budo dist/bundle.js:dist/lumagl.js --live --open --port 3000 --watch-glob '**/*.{html,css,js,glsl}' -- -t brfs-babel" diff --git a/src/core/model.js b/src/core/model.js index bbe514f90..a70729b7a 100644 --- a/src/core/model.js +++ b/src/core/model.js @@ -6,9 +6,10 @@ import { GL, Buffer, Program, draw, checkUniformValues, getUniformsTable, WebGLRenderingContext } from '../webgl'; -import Object3D from '../scenegraph/object-3d'; +import Object3D from '../deprecated/scenegraph/object-3d'; import {log, formatValue} from '../utils'; import Geometry from './geometry'; +import {SHADERS} from '../experimental/shaders'; import assert from 'assert'; const MSG_INSTANCED_PARAM_DEPRECATED = `\ @@ -41,8 +42,9 @@ export default class Model extends Object3D { init({ program, gl = null, - vs = null, - fs = null, + vs = SHADERS.vs, + fs = SHADERS.fs, + defaultUniforms, geometry, material = null, textures, @@ -64,6 +66,11 @@ export default class Model extends Object3D { // assert(program || program instanceof Program); assert(geometry instanceof Geometry, 'Model needs a geometry'); + // Assign default uniforms if any of the default shaders is being used + if (vs === SHADERS.vs || fs === SHADERS.fs && defaultUniforms === undefined) { + defaultUniforms = SHADERS.defaultUniforms; + } + // set a custom program per o3d this.program = program || new Program(gl, {vs, fs}); assert(this.program instanceof Program, 'Model needs a program'); diff --git a/src/scenegraph/group.js b/src/deprecated/scenegraph/group.js similarity index 97% rename from src/scenegraph/group.js rename to src/deprecated/scenegraph/group.js index 5343b4a0c..dcb59c51c 100644 --- a/src/scenegraph/group.js +++ b/src/deprecated/scenegraph/group.js @@ -1,5 +1,5 @@ import Object3D from './object-3d'; -import {Mat4} from '../deprecated'; +import {Mat4} from '../math'; import assert from 'assert'; export default class Group extends Object3D { diff --git a/src/scenegraph/index.js b/src/deprecated/scenegraph/index.js similarity index 100% rename from src/scenegraph/index.js rename to src/deprecated/scenegraph/index.js diff --git a/src/scenegraph/object-3d.js b/src/deprecated/scenegraph/object-3d.js similarity index 97% rename from src/scenegraph/object-3d.js rename to src/deprecated/scenegraph/object-3d.js index 049f38f42..1ed3312b5 100644 --- a/src/scenegraph/object-3d.js +++ b/src/deprecated/scenegraph/object-3d.js @@ -1,6 +1,6 @@ -import {Vec3, Mat4} from '../deprecated'; +import {uid} from '../../utils'; +import {Vec3, Mat4} from '../math'; import assert from 'assert'; -import {uid} from '../utils'; export default class Object3D { diff --git a/src/scenegraph/pick.js b/src/deprecated/scenegraph/pick.js similarity index 94% rename from src/scenegraph/pick.js rename to src/deprecated/scenegraph/pick.js index 92d6d10f9..f278093ed 100644 --- a/src/scenegraph/pick.js +++ b/src/deprecated/scenegraph/pick.js @@ -1,8 +1,8 @@ // TODO - this is the new picking for deck.gl /* eslint-disable max-statements, no-try-catch */ /* global window */ -import {GL, glContextWithState, Framebuffer} from '../webgl'; -import {assertWebGLContext} from '../webgl/webgl-checks'; +import {GL, glContextWithState, Framebuffer} from '../../webgl'; +import {assertWebGLContext} from '../../webgl/webgl-checks'; import Group from './group'; import assert from 'assert'; diff --git a/src/scenegraph/scene.js b/src/deprecated/scenegraph/scene.js similarity index 98% rename from src/scenegraph/scene.js rename to src/deprecated/scenegraph/scene.js index 19bf11faf..919affe9f 100644 --- a/src/scenegraph/scene.js +++ b/src/deprecated/scenegraph/scene.js @@ -1,9 +1,9 @@ // Scene Object management and rendering /* eslint-disable max-statements, no-try-catch */ -import * as config from '../core/config'; +import * as config from '../../core/config'; import {Vector3} from '../math'; -import {merge} from '../utils'; +import {merge} from '../../utils'; import Group from './group'; import {pickModels} from './pick'; import assert from 'assert'; diff --git a/src/experimental/shader-modules/README.md b/src/experimental/shader-modules/README.md index b23b3b5e3..2530f80c1 100644 --- a/src/experimental/shader-modules/README.md +++ b/src/experimental/shader-modules/README.md @@ -19,8 +19,6 @@ gl_FragColor = fog_filterColor(gl_FragColor); gl_FragColor = picking_filterColor(gl_FragColor); ``` -This would then depend on - ## Uniforms Modules usually have uniforms. These are automatically included in the glsl diff --git a/src/experimental/shader-modules/fp64/test-old/index.js b/src/experimental/shader-modules/fp64/test-old/index.js index d5847e751..9f72def8d 100644 --- a/src/experimental/shader-modules/fp64/test-old/index.js +++ b/src/experimental/shader-modules/fp64/test-old/index.js @@ -19,7 +19,6 @@ // THE SOFTWARE. /* eslint-disable camelcase */ -/* global document */ import {Buffer, createGLContext, Program} from '../../../../webgl'; import {assembleShaders} from '../../../shader-tools'; import {readFileSync} from 'fs'; @@ -65,7 +64,7 @@ const TEST_CASES = { return { uniforms: { a: float0_vec2, - b: float1_vec2, + b: float1_vec2 }, line: `(${float0_vec2}) - (${float1_vec2})`, result: float_ref @@ -210,7 +209,7 @@ function initializeGL(canvas) { gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); if (!gl.getExtension('OES_texture_float')) { - console.error('no floating point texture support!'); + // console.error('no floating point texture support!'); throw new Error('no floating point texture support!'); } diff --git a/src/experimental/shader-modules/fp64/test.js b/src/experimental/shader-modules/fp64/test.js index 0940c7825..a0b6dfb07 100644 --- a/src/experimental/shader-modules/fp64/test.js +++ b/src/experimental/shader-modules/fp64/test.js @@ -63,7 +63,7 @@ const TEST_CASES = { return { uniforms: { a: float0_vec2, - b: float1_vec2, + b: float1_vec2 }, line: `(${float0_vec2}) - (${float1_vec2})`, result: float_ref @@ -207,7 +207,7 @@ function initializeGL(canvas) { gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); if (!gl.getExtension('OES_texture_float')) { - console.error('no floating point texture support!'); + // console.error('no floating point texture support!'); throw new Error('no floating point texture support!'); } diff --git a/src/experimental/shader-modules/test.js b/src/experimental/shader-modules/test.js index 07bdf6ebd..b08ff4521 100644 --- a/src/experimental/shader-modules/test.js +++ b/src/experimental/shader-modules/test.js @@ -1 +1 @@ -import './fp64/test'; +// import './fp64/test'; diff --git a/src/experimental/shader-tools/assemble-shaders.js b/src/experimental/shader-tools/assemble-shaders.js index 8b792b8d4..6c87f1d69 100644 --- a/src/experimental/shader-tools/assemble-shaders.js +++ b/src/experimental/shader-tools/assemble-shaders.js @@ -75,8 +75,9 @@ function assembleShader(gl, { assert(shaderModule, 'shader module is not defined'); } const moduleSource = shaderModule[type]; - assembledSource += ` + assembledSource += `\ // BEGIN SHADER MODULE ${moduleName} +#define MODULE_${moduleName.toUpperCase()} ${moduleSource} // END SHADER MODULE ${moduleName}`; } diff --git a/src/experimental/shader-tools/register-shaders.js b/src/experimental/shader-tools/register-shaders.js index 2263c8baf..538b738f2 100644 --- a/src/experimental/shader-tools/register-shaders.js +++ b/src/experimental/shader-tools/register-shaders.js @@ -20,7 +20,7 @@ export function registerShaderModules(shaderModuleList) { export function getShaderModule(moduleName) { const shaderModule = shaderModules[moduleName]; if (!shaderModule) { - console.log(`${moduleName} not in registered modules:`, shaderModules); + // console.log(`${moduleName} not in registered modules:`, shaderModules); assert(false, `Unknown shader module ${moduleName}`); } return shaderModule; diff --git a/src/experimental/shaders/default-fragment.glsl b/src/experimental/shaders/default-fragment.glsl index 67c662d92..96f303da0 100644 --- a/src/experimental/shaders/default-fragment.glsl +++ b/src/experimental/shaders/default-fragment.glsl @@ -4,40 +4,25 @@ precision highp float; #endif -// texture configs -uniform bool hasTexture1; -uniform sampler2D sampler1; -uniform bool hasTextureCube1; -uniform samplerCube samplerCube1; - -// picking configs -uniform bool enablePicking; -uniform bool hasPickingColors; -uniform vec3 pickColor; - - // varyings varying vec4 vColor; -varying vec4 vPickingColor; -varying vec2 vTexCoord; -varying vec3 lightWeighting; -varying vec3 vReflection; -varying vec4 vNormal; vec4 main(){ - // set color from texture - if (!hasTexture1) { - gl_FragColor = vColor; - } else { - gl_FragColor = vec4(texture2D(sampler1, vec2(vTexCoord.s, vTexCoord.t)); - } + gl_FragColor = vec4(1., 0., 0., 1.); +#ifdef MODULE_MATERIAL + gl_FragColor = material_filterColor(gl_FragColor); +#endif + +#ifdef MODULE_LIGHTING gl_FragColor = lighting_filterColor(gl_FragColor); +#endif - // handle fog - if (hasFog) { - gl_FragColor = fog_filterColor(gl_FragColor); - } +#ifdef MODULE_FOG + gl_FragColor = fog_filterColor(gl_FragColor); +#endif +#ifdef MODULE_PICKING gl_FragColor = picking_getColor(gl_FragColor) +#endif } diff --git a/src/experimental/shaders/default-vertex.glsl b/src/experimental/shaders/default-vertex.glsl index 7f9c3a2c0..f8366eb3c 100644 --- a/src/experimental/shaders/default-vertex.glsl +++ b/src/experimental/shaders/default-vertex.glsl @@ -4,15 +4,25 @@ attribute vec3 positions; attribute vec3 normals; attribute vec4 colors; -attribute vec4 pickingColors; attribute vec2 texCoords; +attribute vec4 pickingColors; void main(void) { + +#ifdef MODULE_MATERIAL + material_setDiffuseColor(colors); + material_setDiffuseTextureCoordinates(texCoords); +#endif + +#ifdef MODULE_LIGHTING lighting_setPositionAndNormal(positions, normals); lighting_apply_light(positions); lighting_apply_reflection(positions); +#endif - vTexCoord = texCoords; +#ifdef MODULE_PICKING + picking_setPickingColor(pickingColors); +#endif gl_Position = projectionMatrix * worldMatrix * vec4(positions, 1.0); } diff --git a/src/index.js b/src/index.js index 300cb277e..321d7e5ea 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,10 @@ // Export core modules for luma.gl -export * from './webgl'; export * from './math'; -export * from './scenegraph'; +export * from './webgl'; export * from './core'; -import * as webgl from './webgl'; import * as math from './math'; -import * as scenegraph from './scenegraph'; +import * as webgl from './webgl'; import * as core from './core'; // Export support modules for luma.gl @@ -20,6 +18,8 @@ import * as io from './io'; import * as experimental from './experimental'; // TODO - deprecated +export * from './deprecated/scenegraph'; +import * as scenegraph from './deprecated/scenegraph'; import {default as Shaders} from './deprecated/shaderlib'; import {default as Fx} from './addons/fx'; import * as deprecated from './deprecated'; @@ -31,17 +31,18 @@ export * from './deprecated'; import luma from './globals'; Object.assign(luma, - webgl, math, - scenegraph, + geometry, + + webgl, core, - geometry, io, experimental, // Deprecated + scenegraph, deprecated, Shaders, {Fx} diff --git a/src/io/test/read-image.js b/src/io/test/read-image.js index a0643c333..88637f6f5 100644 --- a/src/io/test/read-image.js +++ b/src/io/test/read-image.js @@ -1,5 +1,5 @@ -import '../../../src/headless'; -import {loadImage} from '../../../src/io'; +import '../../../headless'; +import {loadImage} from '../../../dist/io'; import test from '../../setup'; /* eslint-disable quotes */ diff --git a/src/webgl/index.js b/src/webgl/index.js index b1eab7f0a..b9963531b 100644 --- a/src/webgl/index.js +++ b/src/webgl/index.js @@ -5,6 +5,10 @@ // Higher level abstractions can be built on these classes export * from './webgl'; +// WebGL context functions and helpers +export * from './context'; +export {isWebGLContext, isWebGL2Context} from './webgl-checks'; + // WebGL1 objects export {default as Buffer} from './buffer'; export {default as Shader, VertexShader, FragmentShader} from './shader'; @@ -21,7 +25,6 @@ export {VertexAttributes}; export {default as TimerQuery} from './timer-query'; // Functions -export * from './context'; export * from './draw'; export * from './uniforms'; diff --git a/src/webgl/program.js b/src/webgl/program.js index 2c2eadff3..22864aa9b 100644 --- a/src/webgl/program.js +++ b/src/webgl/program.js @@ -5,7 +5,6 @@ import Buffer from './buffer'; import Texture from './texture'; import {parseUniformName, getUniformSetter} from './uniforms'; import {VertexShader, FragmentShader} from './shader'; -import {SHADERS} from '../experimental'; import {log, uid} from '../utils'; import assert from 'assert'; @@ -41,20 +40,13 @@ export default class Program { /* eslint-disable max-statements */ constructor(gl, { id, - vs = SHADERS.vs, - fs = SHADERS.fs, + vs, + fs, defaultUniforms, handle } = {}) { assertWebGLContext(gl); - // Assign default uniforms if any of the default shaders is being used - if (vs === SHADERS.vs || fs === SHADERS.fs && - defaultUniforms === undefined - ) { - defaultUniforms = SHADERS.defaultUniforms; - } - // Create shaders if needed this.vs = typeof vs === 'string' ? new VertexShader(gl, vs) : vs; this.fs = typeof vs === 'string' ? new FragmentShader(gl, fs) : fs; diff --git a/test/browser.js b/test/browser.js index 2bfcf3d3d..b27afee38 100644 --- a/test/browser.js +++ b/test/browser.js @@ -1,13 +1,5 @@ require('babel-polyfill'); require('tap-browser-color')(); -require('./webgl-independent'); -require('./webgl'); - -require('./core'); - -// deprecated -require('../src/deprecated/test'); - -// experimental -require('../src/experimental/test'); +require('./index-webgl-independent-tests'); +require('./index-webgl-dependent-tests'); diff --git a/test/core/index.js b/test/core/index.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/electron.js b/test/electron.js index 1f2cbeb0c..499855beb 100644 --- a/test/electron.js +++ b/test/electron.js @@ -1,10 +1,3 @@ require('babel-polyfill'); -require('./webgl-independent'); -require('./webgl'); - -// experimental -require('../src/experimental/test'); - -// deprecated -require('../src/deprecated/test'); +require('./index-webgl-dependent-tests'); diff --git a/test/webgl-independent/geometry-spec.js b/test/geometry/geometry-spec.js similarity index 98% rename from test/webgl-independent/geometry-spec.js rename to test/geometry/geometry-spec.js index 142633c8d..2fd2d16fc 100644 --- a/test/webgl-independent/geometry-spec.js +++ b/test/geometry/geometry-spec.js @@ -2,7 +2,7 @@ import { ConeGeometry, CubeGeometry, CylinderGeometry, IcoSphereGeometry, PlaneGeometry, SphereGeometry -} from '../../src/headless'; +} from '../../headless'; import test from 'tape-catch'; const GEOMETRY_TESTS = [ diff --git a/test/geometry/index.js b/test/geometry/index.js new file mode 100644 index 000000000..83a56d28d --- /dev/null +++ b/test/geometry/index.js @@ -0,0 +1 @@ +import './geometry-spec.js'; diff --git a/test/headless-nowebgl.js b/test/headless-nowebgl.js index cb75a64f9..b4c2f2dde 100644 --- a/test/headless-nowebgl.js +++ b/test/headless-nowebgl.js @@ -6,4 +6,4 @@ require('babel-polyfill'); // Quick test that webgl independent code works require('./webgl/context-no-headless.spec'); -require('./webgl-independent'); +require('./index-webgl-independent-tests'); diff --git a/test/headless.js b/test/headless.js index 85a2ec3c5..48eedd56d 100644 --- a/test/headless.js +++ b/test/headless.js @@ -2,14 +2,4 @@ require('source-map-support').install(); require('babel-core/register'); require('babel-polyfill'); -// require('./webgl-independent'); -require('./webgl'); -// require('./node-dependent'); - -require('./core'); - -// experimental -require('../src/experimental/test'); - -// deprecated -require('../src/deprecated/test'); +require('./index-webgl-dependent-tests'); diff --git a/test/webgl-independent/import-spec.js b/test/imports.spec.js similarity index 84% rename from test/webgl-independent/import-spec.js rename to test/imports.spec.js index e277cb4bd..20a9818c7 100644 --- a/test/webgl-independent/import-spec.js +++ b/test/imports.spec.js @@ -1,7 +1,4 @@ -import { - createGLContext, Program, - loadFiles, loadTextures -} from '../../'; +import {createGLContext, Program, loadFiles, loadTextures} from '../index'; import test from 'tape-catch'; test('LumaGL#imports are defined', t => { diff --git a/test/index-webgl-dependent-tests.js b/test/index-webgl-dependent-tests.js new file mode 100644 index 000000000..10d3f8a27 --- /dev/null +++ b/test/index-webgl-dependent-tests.js @@ -0,0 +1,5 @@ +// Imports tests for all modules that depend on webgl +import './webgl'; +import '../dist/io/test'; +import '../dist/deprecated/test'; +import '../dist/experimental/test'; diff --git a/test/index-webgl-independent-tests.js b/test/index-webgl-independent-tests.js new file mode 100644 index 000000000..4344a9a4f --- /dev/null +++ b/test/index-webgl-independent-tests.js @@ -0,0 +1,5 @@ +// Imports tests for all modules that do not depend on WebGL +import './imports.spec'; +import './utils'; +import './geometry'; +import '../dist/math/test'; diff --git a/test/io-spec/index.js b/test/io/index.js similarity index 100% rename from test/io-spec/index.js rename to test/io/index.js diff --git a/test/io-spec/read-texture.js b/test/io/read-texture.js similarity index 92% rename from test/io-spec/read-texture.js rename to test/io/read-texture.js index a6b5da162..3e7012b92 100644 --- a/test/io-spec/read-texture.js +++ b/test/io/read-texture.js @@ -1,7 +1,6 @@ import test from 'blue-tape'; -import {createGLContext, Program, Texture2D, Buffer} - from '../../../src/headless'; -import {loadImage} from '../../../src/io'; +import {createGLContext, Program, Texture2D, Buffer} from '../../../headless'; +import {loadImage} from '../../../io'; const DATA_URL = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAA Bytg0kAAAAFElEQVQIW2P8z/D/PwMDAwMjjAEAQOwF/W1Dp54AAAAASUVORK5CYII=`; diff --git a/test/utils/index.js b/test/utils/index.js new file mode 100644 index 000000000..7e1b8d86c --- /dev/null +++ b/test/utils/index.js @@ -0,0 +1 @@ +import './utils.spec'; diff --git a/test/webgl-independent/utils-spec.js b/test/utils/utils.spec.js similarity index 93% rename from test/webgl-independent/utils-spec.js rename to test/utils/utils.spec.js index 81cbb5ff1..4e7d39351 100644 --- a/test/webgl-independent/utils-spec.js +++ b/test/utils/utils.spec.js @@ -1,4 +1,4 @@ -import {merge, splat, noop, uid} from '../../src/utils'; +import {merge, splat, noop, uid} from '../../dist/utils'; import test from 'tape-catch'; test('Utils#merge', t => { diff --git a/test/webgl-independent/index.js b/test/webgl-independent/index.js deleted file mode 100644 index 87abf27b5..000000000 --- a/test/webgl-independent/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import './import-spec.js'; - -import '../../src/math/test'; - -import './utils-spec.js'; -import './geometry-spec.js'; - -import '../../src/io/test'; diff --git a/test/webgl/buffer.spec.js b/test/webgl/buffer.spec.js index 8b5f63c3e..15ef95f9a 100644 --- a/test/webgl/buffer.spec.js +++ b/test/webgl/buffer.spec.js @@ -1,5 +1,4 @@ -import {createGLContext, Buffer} from '../../src/headless'; -import {isWebGLContext} from '../../src/webgl/webgl-checks'; +import {createGLContext, Buffer, isWebGLContext} from '../../headless'; import test from 'tape-catch'; const fixture = { @@ -30,9 +29,7 @@ test('WebGL#Buffer constructor/delete', t => { test('WebGL#Buffer bind/unbind', t => { const {gl} = fixture; - let buffer; - - buffer = new Buffer(gl) + const buffer = new Buffer(gl) .bind() .unbind() .delete(); diff --git a/test/webgl/context-no-headless.spec.js b/test/webgl/context-no-headless.spec.js index 845fba662..c73e8f33b 100644 --- a/test/webgl/context-no-headless.spec.js +++ b/test/webgl/context-no-headless.spec.js @@ -1,6 +1,6 @@ -// NOTE: Headless must not be included in this file -import {createGLContext, Program, webGLTypesAvailable} from '../../src'; import test from 'tape-catch'; +// NOTE: `headless.js` must not be included in this file +import {createGLContext, Program, webGLTypesAvailable} from '../../index'; test('LumaGL#imports are defined', t => { t.ok(typeof Program === 'function', 'Program is defined'); diff --git a/test/webgl/context.spec.js b/test/webgl/context.spec.js index af7bf9753..36d04333f 100644 --- a/test/webgl/context.spec.js +++ b/test/webgl/context.spec.js @@ -1,7 +1,5 @@ -const {createGLContext, glGetDebugInfo} = require('../../src/headless'); -const {isWebGLContext} = require('../../src/webgl/webgl-checks'); - const test = require('tape-catch'); +const {createGLContext, glGetDebugInfo, isWebGLContext} = require('../../headless'); test('WebGL#headless context creation', t => { const gl = createGLContext(); diff --git a/test/webgl/draw.spec.js b/test/webgl/draw.spec.js index c3ac6afaf..cb0371110 100644 --- a/test/webgl/draw.spec.js +++ b/test/webgl/draw.spec.js @@ -1,12 +1,12 @@ -import {createGLContext, Program} from '../../src/headless'; -import {isWebGLContext} from '../../src/webgl/webgl-checks'; import test from 'tape-catch'; +import {createGLContext, Program, isWebGLContext} from '../../headless'; +import {SHADERS} from '../../experimental'; test('WebGL#draw', t => { const gl = createGLContext(); t.ok(isWebGLContext(gl), 'Created gl context'); - const program = new Program(gl); + const program = new Program(gl, SHADERS); t.ok(program instanceof Program, 'Program construction successful'); t.end(); diff --git a/test/webgl/framebuffer.spec.js b/test/webgl/framebuffer.spec.js index 4c4cf3a41..67c8c41a4 100644 --- a/test/webgl/framebuffer.spec.js +++ b/test/webgl/framebuffer.spec.js @@ -1,5 +1,5 @@ -import {createGLContext, Framebuffer} from '../../src/headless'; import test from 'tape-catch'; +import {createGLContext, Framebuffer} from '../../headless'; const fixture = { gl: createGLContext() diff --git a/test/webgl/helpers/query-manager.spec.js b/test/webgl/helpers/query-manager.spec.js index 97a25f621..e8345d7a2 100644 --- a/test/webgl/helpers/query-manager.spec.js +++ b/test/webgl/helpers/query-manager.spec.js @@ -1,6 +1,5 @@ import test from 'tape-catch'; -import queryManager - from '../../../src/webgl/helpers/query-manager'; +import queryManager from '../../../src/webgl/helpers/query-manager'; test('WebGL helpers#queryManager', t => { t.ok(queryManager, 'Imported correctly'); diff --git a/test/webgl/program.spec.js b/test/webgl/program.spec.js index 3fd79fef1..f8c04a6dd 100644 --- a/test/webgl/program.spec.js +++ b/test/webgl/program.spec.js @@ -1,6 +1,6 @@ -import {createGLContext, Program, Buffer} from '../../src/headless'; -import {SHADERS} from '../../src/experimental'; import test from 'tape-catch'; +import {createGLContext, Program, Buffer} from '../../headless'; +import {SHADERS} from '../../experimental'; const fixture = { gl: createGLContext() diff --git a/test/webgl/renderbuffer.spec.js b/test/webgl/renderbuffer.spec.js index 3459500ce..e48f0ec73 100644 --- a/test/webgl/renderbuffer.spec.js +++ b/test/webgl/renderbuffer.spec.js @@ -1,5 +1,5 @@ -import {createGLContext, Renderbuffer} from '../../src/headless'; import test from 'tape-catch'; +import {createGLContext, Renderbuffer} from '../../headless'; const fixture = { gl: createGLContext() diff --git a/test/webgl/texture.spec.js b/test/webgl/texture.spec.js index 02368c509..8e8ed5460 100644 --- a/test/webgl/texture.spec.js +++ b/test/webgl/texture.spec.js @@ -1,12 +1,10 @@ import test from 'tape-catch'; -import {createGLContext, Texture2D, Buffer} from '../../src/headless'; +import {createGLContext, Texture2D} from '../../dist/headless'; const fixture = { gl: createGLContext() }; -const BUFFER_DATA = new Float32Array([0, 1, 0, -1, -1, 0, 1, -1, 0]); - test('WebGL#Texture2D construct/delete', t => { const {gl} = fixture; diff --git a/test/webgl/timer-query.spec.js b/test/webgl/timer-query.spec.js index 7f0dd6f22..0c696cb5b 100644 --- a/test/webgl/timer-query.spec.js +++ b/test/webgl/timer-query.spec.js @@ -1,6 +1,6 @@ /* eslint-disable max-len, max-statements */ import test from 'tape-catch'; -import {createGLContext, poll, TimerQuery} from '../../src/headless'; +import {createGLContext, poll, TimerQuery} from '../../dist/headless'; const fixture = { gl: createGLContext() diff --git a/test/webgl/uniforms.spec.js b/test/webgl/uniforms.spec.js index bfc27ecdf..7fac4c14d 100644 --- a/test/webgl/uniforms.spec.js +++ b/test/webgl/uniforms.spec.js @@ -1,10 +1,9 @@ /* eslint-disable no-inline-comments */ +import test from 'tape-catch'; import { createGLContext, Program, Buffer, Texture, Texture2D, TextureCube, checkUniformValues -} from '../../src/headless'; - -import test from 'tape-catch'; +} from '../../headless'; const gl = createGLContext(); diff --git a/test/webgl/vertex-array-object.spec.js b/test/webgl/vertex-array-object.spec.js index 86a6ed4b8..8a731240c 100644 --- a/test/webgl/vertex-array-object.spec.js +++ b/test/webgl/vertex-array-object.spec.js @@ -1,8 +1,7 @@ -/* eslint-disable max-len */ -import {createGLContext} from '../../src/headless'; -import {VertexArrayObject} from '../../src/webgl'; - import test from 'tape-catch'; +import {createGLContext} from '../../headless'; +import {VertexArrayObject} from '../../dist/webgl'; + const fixture = { gl: createGLContext() diff --git a/test/webgl/vertex-attributes.spec.js b/test/webgl/vertex-attributes.spec.js index 18ac44269..6ea0c62a6 100644 --- a/test/webgl/vertex-attributes.spec.js +++ b/test/webgl/vertex-attributes.spec.js @@ -1,8 +1,6 @@ /* eslint-disable max-len */ -import {createGLContext, VertexAttributes} from '../../src/headless'; -import {WebGL2RenderingContext} from '../../src/webgl/webgl-types'; - import test from 'tape-catch'; +import {createGLContext, VertexAttributes, isWebGL2Context} from '../../headless'; test('WebGL#VertexAttributes#enable', t => { const gl = createGLContext(); @@ -37,7 +35,7 @@ test('WebGL#VertexAttributes#enable', t => { test('WebGL#VertexAttributes#WebGL2 support', t => { const gl = createGLContext({webgl2: true}); - if (!(gl instanceof WebGL2RenderingContext)) { + if (!isWebGL2Context(gl)) { t.comment('- WebGL2 NOT ENABLED: skipping tests'); t.end(); return;