Commit Graph

703 Commits

Author SHA1 Message Date
Tom
9dc96390fc update tests to skip fullscreen and certain drawer-related events 2023-11-29 19:04:27 -05:00
Tom
6b995c018b re-enable html drawer in drawer comparison demo; deal with merge conflict resolution issues 2023-11-29 17:35:49 -05:00
pearcetm
36d8b3d9ad
Merge branch 'master' into rotation-seams 2023-11-29 17:28:42 -05:00
Tom
c86158f0ca cleaning up changes 2023-11-29 16:46:14 -05:00
Aiosa
90ce0669c5 Add auto recognition of the need for tiledImage draw call. Fix ajax-headers test: did not finish because we don't call tile-loaded on cached tiles by default. 2023-11-27 12:12:54 +01:00
Aiosa
2c67860c61 Implement cache manipulation strategy: default copy on access if tile in the rendering process, remove 'canvas' type support, many bugfixes and new tests. 2023-11-26 21:32:26 +01:00
Aiosa
191ba39cbb Remove demo references to the modular renderer. 2023-11-21 20:53:06 +01:00
Aiosa
2a1090ffa8 Fix wrong test comparison. Add equality comparator to TileSource API. Return
deprecated support for getCompletionCallback. Turn on zombie cache if sources replaced & equal.
2023-11-19 16:14:28 +01:00
Aiosa
219049976c Add tests for zombie and data type conversion, ensure destructors are called.
Fix bugs (zombie was disabled on item replace, fix zombie cache system by separating to its own cache array). Fix CacheRecord destructor & dijkstra. Deduce cache only from originalCacheKey. Force explicit type declaration with types on users.
2023-11-18 20:16:35 +01:00
Aiosa
023a864a36
Merge branch 'openseadragon:master' into cache-overhaul-reviewed 2023-11-17 20:21:24 +01:00
Aiosa
6447009c18 Remove blend time from comparison demo (not functional). 2023-10-23 16:05:18 +02:00
Aiosa
cd9d340038 Removed date loader (will be handled by future OSD cache system). Attempt to use instanced rendering. Refactoring of the module. 2023-10-23 16:03:47 +02:00
Lutz Helm
5272cf092c Ensure descending size order also works for level 0 2023-10-10 14:04:31 +02:00
Aiosa
e3024deb46 Modular webgl2 drawer: fix small bugs. Add drawer IDs to demo page urls to allow refreshing/direct running 2023-09-26 15:31:43 +02:00
Aiosa
750d45be81 Implement asynchronous tile processing logic wrt. tile cache conversion. 2023-09-24 22:30:28 +02:00
Lutz Helm
5542ead48b Fix #2415, order IIIF sizes on tile source init 2023-09-19 09:55:53 +02:00
Aiosa
f01a7a4b3c Cache Overhaul for OpenSeadragon (areas to discuss marked with FIXME). 2023-09-08 08:47:43 +02:00
Ian Gilman
17cd6b51ce Changelog for #2387 and tweaks to its demo page 2023-08-08 09:39:45 -07:00
Tom
2fcdcc3f6a add attribution for rStats code 2023-08-01 12:20:13 -04:00
Tom
77b5766fa2 update drawerperformance demo 2023-07-31 15:48:29 -04:00
Peter
13955b0bf6 added demo with maxTilesPerFrame = 3 2023-07-31 10:14:27 +02:00
Tom
c77a7e7386 enhance performance demo. rename variables for clarity. 2023-07-28 17:49:24 -04:00
Aiosa
ca45e96142
Merge branch 'rotation-seams' into rotation-seams 2023-07-26 23:58:07 +02:00
Tom
1e37745764 sync webgldemodrawer with webgldrawer 2023-07-26 15:44:38 -04:00
Tom
f4ded1630f code cleanup 2023-07-26 15:42:18 -04:00
Aiosa
3c3842bdce Change comments TO DO -> TODO. Add automatic recognition of drawers. Matrix as an exposed class. 2023-07-26 20:01:26 +02:00
Tom
f510301922 add performance test demo page. reduce number of drawing calls drawing pipeline of webgl drawer. 2023-07-19 18:18:56 -04:00
Andrew Armbruster
be4d5ad7f7 Update grunt-contrib-qunit and extend FullScreen test
Update the package responsible for running tests, grunt-contrib-qunit.

The package change includes a significant bump to the puppeteer version used to run the tests (from v9 -> v19: https://github.com/gruntjs/grunt-contrib-qunit#release-history).

Running the tests with the newer puppeteer version leads to issues running the FullScreen test when run in the 'old'/current default headless mode (the test fails with a timeout).

Updating to the 'new' headless mode (eventually to be the default anyway), seems to allow the fullscreen request to succeed.

Thus, go ahead and extend the FullScreen test to verify the correct values for a successful request, as well as an additional step to exit fullscreen mode.
2023-07-16 13:10:56 +02:00
Tom
6feed0a68e Add clipping to demo. Update documentation and remove commented code. Change from get type to getType(). 2023-07-09 12:05:17 -04:00
Tom
048b43e196 remove forced transparency from images in drawercomparison demo. change from context2d naming to canvas. 2023-06-30 16:06:17 -04:00
Tom
cc412f0a20 add documentation; remove unnecessary deprecated code 2023-06-29 21:55:59 -04:00
Tom
3a5a738508 remove viewer.destroy() from some tests 2023-06-29 17:06:45 -04:00
Tom
83ec2bb1f0 tiled image opacity works now with no overlapping regions at tile borders 2023-06-29 16:41:45 -04:00
Tom
24c4d2d2bc Remove tile-drawn event and replace with tiled-image-drawn for webgl drawer, and update related tests. 2023-06-27 13:57:02 -04:00
Tom
2ec2c0f2c7 remove three.js and associated plugin renderer; fix demo 2023-06-26 21:44:03 -04:00
Tom
386ca85db8 implement native webgl renderer, and many associated changes related to drawing pipeline and testing 2023-06-26 21:29:08 -04:00
Tom
37b8ef9519 deprecate useCanvas option; add option for drawer and drawerOptions 2023-06-18 19:08:33 -04:00
Tom
2e248baf91 additional fixes to get tests to pass 2023-06-08 12:10:55 -07:00
Tom
354590a17a convert DrawerBase and drawer implementations to classes; add html drawer to the demo page 2023-06-07 12:42:16 -07:00
Tom
8fda8ceae7 re-enable sequence mode demo viewer 2023-06-07 10:16:21 -04:00
Tom
8fe6a5f6e6 merging remote 2023-06-07 10:14:58 -04:00
Tom
1bc93be3f2 update tile drawing logic 2023-06-06 19:37:24 -04:00
Tom
36084703f0 conditional usage of draw() vs event handlers depending on initialization context 2023-06-06 18:08:53 -04:00
Tom
2a0af48bc1 updates to threejsdrawer, bugxfixes/improvements 2023-06-06 18:08:30 -04:00
Tom
dab8a9a3cd move tile update logic back to TiledImage to keep drawing logic cleaner 2023-06-06 18:08:30 -04:00
Tom
2f3bef0865 split canvas from html rendering 2023-06-06 18:08:30 -04:00
Tom
467597e2c2 cleaning up drawer APIs 2023-06-06 18:08:30 -04:00
Tom
5eece7d73a fix cropping when viewer is rotated 2023-06-06 18:08:30 -04:00
Tom
69c4ccf33e revert debugging changes in overlay demo 2023-06-06 18:08:30 -04:00
Tom
5328761877 finished many implementation details and demo 2023-06-06 18:08:01 -04:00
Tom
f9ab63944b ThreeJSRenderer nearly complete, starting refactor of core to support plugin drawers. 2023-06-06 18:05:17 -04:00
Andrew Armbruster
c7df7be7f1 Catch rejected Promise on failed fullscreen request
Add a `catch()` rejection of request for fullscreen (standard Fullscreen API implementation), as well as fullscreen exit. For now there is no actual handling, but we send a message to the internal error channel.

Motivation: The fullscreen request was causing certain tests to fail when run with newer versions of QUnit (starting in 2.5.0), which now fails tests that have unhandled Promise rejections (as we did here).

The exit case is not currently covered by tests, but works the same way (also returns a promise).

See: https://fullscreen.spec.whatwg.org/#ref-for-dom-element-requestfullscreen%E2%91%A0
2023-05-28 14:15:55 +02:00
Andrew A
ad1179b9db Update to most recent QUnit
Update to most recent version of QUnit, which has been published under a new name for a while now.

Accordingly, replace the old package with the new one in both dependencies, as well as update references in test HTML files.
2023-05-27 13:16:28 +02:00
lcl45
7fb5744495 Resolved suggestions
- Avoid useless parameters _navigatorRotate since it already exists within the navigator;
- Automatically rotate the image in the demo page.
2023-05-24 08:45:15 +02:00
oro.niccolo
d897e5454f Added navigator's region rotation
When the "navigatorRotate" option is set to false, rotate the navigator's region accordigly to the image rotation.
2023-05-23 09:27:32 +02:00
Uwe Schmidt
6fd828974d Update navigator ajax headers 2023-05-12 21:46:16 +02:00
Uwe Schmidt
e51aa4a9c5 Refine setAjaxHeaders
- Allow null to clear headers (same as empty object)
- Add TiledImage._updateAjaxHeaders
- Add error message in case of invalid headers
2023-05-05 01:13:44 +02:00
Uwe Schmidt
182c11481e Add tests for setAjaxHeaders 2023-05-05 00:03:22 +02:00
Ian Gilman
b1274515aa Tiny basic.html tweak 2023-04-27 14:27:40 -07:00
Craig A. Berry
bff93af17e Handle XML embedded in tilesource JSON
The existing check for whether the tilesource data is XML or JSON
looks for a tag anywhere in the response content, which incorrectly
flags the content as XML in the case where it is really JSON with
XML embedded in it.

This commit corrects that problem by requiring the tag to occur as
the first non-whitespace part of the content. This is basically a
poor person's well-formedness check since well-formed XML cannot
have non-whitespace content outside of the root node.

N.B. While malformed XML content with non-whitespace characters
before the first element has been getting identified as XML, it
has not been getting parsed correctly.  With current parsing
infrastructure, the content has been getting replaced by a parsing
error message.  With more up-to-date parsing infrastructure, it
will throw an error.  Either way we're not losing anything by failing
to identify malformed XML as XML.

Addresses issue #2325.
2023-03-30 16:38:35 -05:00
Tom
8a4c95ef4b conditional usage of draw() vs event handlers depending on initialization context 2023-03-13 21:39:54 -04:00
Tom
6d1895364f updates to threejsdrawer, bugxfixes/improvements 2023-03-13 17:43:35 -04:00
Tom
ade59513df move tile update logic back to TiledImage to keep drawing logic cleaner 2023-03-13 15:56:04 -04:00
Tom
641951aaed split canvas from html rendering 2023-03-12 11:42:03 -04:00
Tom
6159ca7c7c cleaning up drawer APIs 2023-03-11 11:38:21 -05:00
Tom
a6e621b562 fix cropping when viewer is rotated 2023-03-06 14:29:39 -05:00
Tom
7c81d068e6 revert debugging changes in overlay demo 2023-03-05 16:12:30 -05:00
Tom
d1b8001adc finished many implementation details and demo 2023-03-05 16:08:32 -05:00
Tom
376ee38d3c ThreeJSRenderer nearly complete, starting refactor of core to support plugin drawers. 2023-02-21 18:59:40 -05:00
Aiosa
de00939d8d Revert async support and event breaking support in EventSource. 2023-01-21 09:00:24 +01:00
Aiosa
c8dbb2c757 Implement support for async function and promise type recognition with $.type. Add $.Promise proxy. Implement support for promises in EventSource. Implement ability to abort events as well as prioritize events. 2023-01-17 11:13:48 +01:00
Ian Gilman
1351ac018a
Merge pull request #2256 from pearcetm/resize-listener
work in progress about viewer resize behavior
2022-12-16 13:48:45 -08:00
Ian Gilman
3342b7880d
Merge pull request #2249 from pearcetm/rotated-constraints-fix
fixed viewport constraint behavior when viewer is rotated
2022-12-15 13:57:44 -08:00
Tom
564121428c removed polling vs resizeviewer option from demo 2022-12-14 11:31:12 -05:00
Tom
9daa8feec1 cleaning up changes; modified demo 2022-12-14 09:21:52 -05:00
Tom
9048abb05e Merge branch 'master' into resize-listener 2022-12-13 18:31:42 -05:00
Tom
69297c0181 Updated resize behavior 2022-12-13 16:49:23 -05:00
Ian Gilman
ae70c88e52
Merge pull request #2259 from openseadragon/ig-test
Fixed fullyLoaded test when run in browser
2022-12-12 15:26:44 -08:00
Ian Gilman
e6341ac1e0 Fixed fullyLoaded test when run in browser 2022-12-12 15:21:56 -08:00
Tom
e122f372ba enable all tests 2022-12-11 15:07:43 -05:00
Tom
48bcd75f1a fixed logic of dragNavigatorBackToCenter method 2022-12-11 14:47:52 -05:00
Tom
37a024f023 bugfix in getCenter during zoom animation 2022-12-10 07:02:16 -05:00
Tom
86c105beaa bugfix in getCenter during zoom animation 2022-12-10 06:57:53 -05:00
Tom
54af53cf4e work in progress about viewer resize behavior 2022-12-07 17:46:25 -05:00
Tom
524b42c778 demo update 2022-12-06 17:21:03 -05:00
Tom
757bf8690e fix Viewport._fixBounds to work with boundary constraints, and updated the demo page to show the behavior. 2022-12-06 16:42:13 -05:00
Tom
05997d359c reverted Viewport.setRotation, created Viewport.setRotationWithPivot 2022-12-05 19:38:46 -05:00
Tom
78c6295acf update unit tests 2022-12-02 22:08:15 -05:00
Ian Gilman
dfcfa4c02b Temporarily disabling navigator tests 2022-12-02 16:27:43 -08:00
Ian Gilman
77030096e4 Fixing test failures 2022-12-02 15:52:53 -08:00
John Reagan
8ef5270d7f #1970: Update unit test to check for changed url behavior 2022-12-02 10:32:11 -05:00
John Reagan
601160e9fb Add support for dynamic urls from tile source. Fixes #1970 2022-11-30 15:38:57 -05:00
Ian Gilman
d3ef767487
Merge pull request #2136 from jonasengelmann/master
Viewport rotation animation
2022-08-23 14:13:22 -07:00
jonasengelmann
5f50d9e59e reworked setRotation to allow all degree values 2022-08-22 15:34:29 +02:00
jonasengelmann
3cdd94e465 constrained rotation to shortest path 2022-06-29 19:47:26 +02:00
Aiosa
bb1755613e Merge branch 'master' of https://github.com/openseadragon/openseadragon into openseadragon-master
# Conflicts:
#	src/tiledimage.js
2022-06-28 14:11:02 +02:00
Jirka
8a2c998cb9 Finish on image job now accepts request argument. Further comments cleanup. Deprecation message for image property in tile loaded event. Removal of downloadTileFinish(). More robust aborting that cleans up an image properties when aborted (not done until now). 2022-05-04 15:16:13 +02:00
Jirka
d82fd35323 Fix comments on #2148: part 2. Better commens on the new TileSource API. Deprecation if 'tile-loaded' image event parameter. Unwrap ImageJob and add userData property. 2022-04-29 23:45:01 +02:00
Jirka
4f79f29238 Move cache creation, image downloading process and transparency deduction to the TileSource instance to allow custom data fetching, caching, processing. 2022-04-16 21:19:54 +02:00
Jirka
ec430779f4 Move open-failed error message to the handler, adjust test for the new message style. Add 'numberOfHandlers()' method for events. 2022-04-15 10:32:08 +02:00