Skip to content

Commit

Permalink
Simplify and optimize state tracking (#1293)
Browse files Browse the repository at this point in the history
  • Loading branch information
tsherif authored Nov 19, 2019
1 parent 0e923a8 commit 4070147
Show file tree
Hide file tree
Showing 20 changed files with 674 additions and 817 deletions.
19 changes: 0 additions & 19 deletions docs/api-reference/gltools/parameter-setting.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,12 @@ luma.gl simplifies the usage of WebGL parameters by providing a unified API for
In addition, state queries are done towards cached values and are thus much faster than working directly with the WebGL API, where synchronous WebGL queries can be a performance bottleneck.

The following functions are provided:
* `getParameter` - Returns the value(s) of a GL context parameter
* `getParameters` - Returns the values of some or all GL context parameters
* `setParameters` - Sets a the value(s) of the specified GL context parameters
* `resetParameters` - Resets all gl context parameters to default values

## Usage

Get a global parameter value using a WebGL GLenum
```js
const value = getParameter(gl, gl.DEPTH_TEST);
```

Set a global parameter value using a WebGL GLenum
```js
const value = setParameters(gl, {
Expand All @@ -38,19 +32,6 @@ const values = getParameters(gl);

## Functions

### getParameter

Gets the value(s) of a single gl context parameter.

```js
getParameter(gl, pname)
```

* `gl` {WebGLRenderingContext} - context
* `pname` {GLenum} - parameter name, a GL parameter constant
Returns {*} - value(s) of this parameter


### getParameters

Gets the values of a gl context parameter.
Expand Down
2 changes: 1 addition & 1 deletion docs/api-reference/gltools/with-parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const returnValue = withParameters(gl, {
}, () = {
// execute code with new parameters temporarily applied
program.draw(...);
...
// ...
// parameters will be restored even the function throws an exception
if (...) {
throw new Error('Exception after setting parameters');
Expand Down
3 changes: 2 additions & 1 deletion docs/upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ The module structure has been significantly changed for v8.0 with the intention
- @luma.gl/main has been removed. Use individual modules instead.
- `Multipass` classes have been removed.
- Seer support has been removed.
- Timeline and Keyframes have been moved from @luma.gl/addons to @luma.gl/engine
- Timeline and Keyframes have been moved from @luma.gl/addons to @luma.gl/engine.
- `getParameter` and `setParameter` have been removed. Use `getParamters` and `setParameters` instead.


## Upgrading from v7.2 to v7.3
Expand Down
5 changes: 1 addition & 4 deletions modules/core/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,9 @@ export {
export {
trackContextState,
resetParameters,
getParameter,
getParameters,
setParameter,
setParameters,
withParameters,
getModifiedParameters
withParameters
} from '@luma.gl/gltools';

// WEBGL1 OBJECTS/FUNCTIONS
Expand Down
4 changes: 2 additions & 2 deletions modules/engine/test/transform/transform.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {Transform} from '@luma.gl/engine';
import test from 'tape-catch';
import {fixture} from 'test/setup';
import GL from '@luma.gl/constants';
import {setParameters, getParameter} from '@luma.gl/gltools';
import {setParameters, getParameters} from '@luma.gl/gltools';

const VS = `\
#version 300 es
Expand Down Expand Up @@ -1350,7 +1350,7 @@ test('WebGL#Transform run (custom parameters)', t => {
const outTexData = transform.getData({packed: true});
t.deepEqual(outTexData, expectedData, `${name} Transform should write correct data into Texture`);

t.ok(getParameter(gl2, GL.BLEND) === true, 'Parameters are properly set');
t.ok(getParameters(gl2, [GL.BLEND])[GL.BLEND] === true, 'Parameters are properly set');

setParameters(gl2, {blend: false});

Expand Down
16 changes: 4 additions & 12 deletions modules/gltools/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,15 @@ export {default as polyfillContext} from './polyfill/polyfill-context';

// unified parameter APIs
export {
getParameter,
getParameters,
setParameter,
setParameters,
resetParameters,
getModifiedParameters
} from './state-tracker/unified-parameter-api/unified-parameter-api';

export {
// Support function style parameter keys
setParameters // TODO - setParameter should also support function style keys?
} from './state-tracker/unified-parameter-api/set-parameters';
withParameters
} from './state-tracker/unified-parameter-api';

// state tracking
export {
default as trackContextState,
pushContextState,
popContextState
} from './state-tracker/state-tracking/track-context-state';

export {withParameters} from './state-tracker/state-tracking/with-parameters';
} from './state-tracker/track-context-state';
6 changes: 0 additions & 6 deletions modules/gltools/src/state-tracker/state-tracking/index.js

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 4070147

Please sign in to comment.