Results 12 issues of John Hoffer

Closes issue #912 Calling `createHashHistory` with `hashRoot=""` replicates the lost `hashType="noslash"` from `history@4`. This PR is to address [issue #8459](https://github.com/remix-run/react-router/issues/8459) and [issue #7703](https://github.com/remix-run/react-router/issues/7703) of [react-router](https://github.com/remix-run/react-router/). ### Update Until this PR...

The release of `history@5` lost the ability to navigate a `HashHistory` without a slash in the hash (like `#1/2/3` instead of `#/1/2/3`) due to a missing `hashType` option to `createHashHistory`....

Closes issue #920. I've just added two new test sequences that call `push` and `replace` with objects rather than strings.

## Expected behavior Tests should ensure `history.push` and `history.replace` work with `to: Partial`. ## Actual behavior All test sequences only test with `to: string`. ## Details This seems to be...

## Expected behavior Tests should ensure `window.location` is correctly modified. ## Actual behavior Test sequences only test against `history.location` ## Details For `HashHistory`, "window.location" and "history" should be related as...

This resolves issue #347. The `_bulkReadable` function detects when a single read should match an IFD buffer byte-for-byte. Instead of extracting every single pixel individually, this PR copies the IFD...

### What I observe **For each loaded tile**, [this line in _readRaster](https://github.com/geotiffjs/geotiff.js/blob/b4e64639708940cac15c435e99b918e1771b083b/src/geotiffimage.js#L495) copies every image pixel from the tile buffer one-by-one. Each of our tiles (1024px by 1024px) therefore call...

We now copy the rendered canvas before any application of shaders. Then, all shaders take the original rendered canvas as input for every subsequent update to the tiles. This allows...

We assign a single width and height to the OpenSedragonGL instance [whenever a tiledImage is opened](https://github.com/thejohnhoffer/viaWebGL/blob/master/tools/openSeadragonGL.js#L55)