Commit Graph

1011 Commits

Author SHA1 Message Date
Tim Schaub
7971ec1b3b Render geometries to a canvas 2013-01-07 01:42:31 -05:00
Tim Schaub
464be78a16 Satisfying compiler 2013-01-06 10:59:21 -07:00
Tim Schaub
39af56ecb3 Satisfying gjslint 2013-01-06 10:07:29 -07:00
Tim Schaub
6f929efeb3 Merge branch 'master' into vector 2013-01-06 09:37:34 -07:00
Tom Payne
cfaee15c9f Factor out color matrix generation, move color matrix into layer renderer 2013-01-05 12:30:18 +01:00
Tom Payne
8404142cec Avoid getting map twice 2013-01-05 12:18:42 +01:00
Tom Payne
d3a0f87438 Remove inadvertent double render 2013-01-05 12:18:35 +01:00
Tom Payne
118b233457 More strict matrix type 2013-01-05 12:17:37 +01:00
ahocevar
3c305db4a4 Canvas tile renderer - first cut
Untested and no styling
2013-01-04 18:47:33 +01:00
Tom Payne
7a36793776 Port DOM renderer to request render frame architecture 2013-01-03 14:51:15 +01:00
Éric Lemoine
51636ea0d1 Only appending tiles to the dom after load
A port of f46cdb4 and 4242ef40 from animation-frame branch.
2013-01-03 12:23:50 +01:00
Tom Payne
8c44dcf83a Add some WebGL renderer FIXMEs 2013-01-03 12:23:50 +01:00
Tom Payne
756792b8db Pass time to render functions and rename them to renderFrame_ 2013-01-03 12:23:50 +01:00
Tom Payne
783dfe0618 Port WebGL renderer to requestRenderFrame 2013-01-03 12:23:49 +01:00
Tom Payne
12099bab56 Implement @elemoine's requestRenderFrame architecture 2013-01-03 12:23:49 +01:00
Éric Lemoine
21f3f90ca6 Adjust hue, sat, and constrast in webgl renderer 2012-12-12 15:53:56 +01:00
Éric Lemoine
bccfccbf9d Merge pull request #84 from elemoine/84
DOM renderer tile artifacts on FF
2012-11-13 13:47:00 -08:00
Éric Lemoine
7b88f44a41 Keep track of tiles we're already listening on 2012-11-11 21:31:12 +01:00
Tom Payne
4dde0ac2b1 Remove tile change listeners when they have fired, thanks @fredj 2012-11-09 14:33:58 +01:00
Éric Lemoine
826505c6d4 Register a CHANGE listener even if tile is loading
This fixes an issue easily reproducible in the side-by-side example where the DOM renderer is not notified when tiles loaded by the WebGL renderer have been received.
2012-11-08 21:20:26 +01:00
Éric Lemoine
90e379782c Only appending tiles to the dom after load
A port of f46cdb4 to the current master. The tilelayer renderer can be simplified a bit by waiting to append tiles to the dom until they have loaded. Refs #84 and #33.
2012-11-08 20:03:07 +01:00
Tom Payne
7ee5c5777a Fix use of goog.nullFunction and goog.functions.NULL, thanks @elemoine (again) 2012-11-02 18:28:27 +01:00
Tom Payne
4d3726d183 Use goog.functions.NULL instead of goog.nullFunction, thanks @elemoine 2012-11-02 18:20:52 +01:00
Tom Payne
dfd495153d Make ol.renderer.Map behave like a null renderer, fixes #82
With this patch, creating a new ol.renderer.Map will return a map
renderer that does nothing.  Previously, it could cause assertion
failures.
2012-11-02 17:10:45 +01:00
Tom Payne
e5d39724c9 Give each source file a unique name 2012-10-26 11:25:26 +02:00
Tim Schaub
eef4eb0eea Merge pull request #61 from twpayne/z-sort-in-dom-renderer
Z sort in dom renderer
2012-10-17 21:24:40 -07:00
Tom Payne
8cb28a7217 Move WebGL support test into ol.webgl 2012-10-17 17:25:37 +02:00
Tom Payne
1d40b64db1 Move WebGL context creation into ol.webgl 2012-10-17 17:23:30 +02:00
Tom Payne
3e6d374859 Ensure z as object keys are sorted as numbers 2012-10-16 11:04:56 +02:00
Tom Payne
ed197f3cfe Revert "Two lessons learned"
This reverts commit f8462460bf.
2012-10-16 10:59:53 +02:00
Tom Payne
936584ceaa Use goog.array.map for browser compatability, thanks @AugustusKling 2012-10-10 13:49:01 +02:00
Tom Payne
ac8dd5db98 Fix sort problem identified by @tschaub in f8462460bf 2012-10-10 10:27:42 +02:00
Tim Schaub
f8462460bf Two lessons learned
Telling the compiler that object keys are numeric causes more harm
than good (see === comparison that could never be met though the
compiler didn't catch it).

Never use goog functions without reading the source first.  The
goog.array.sort method does nothing special sorting numeric strings
(so the zs array might be ['1', '10', '2'] here).
2012-10-09 23:31:38 -06:00
Tim Schaub
ce1b99cb56 Remove alt-z tiles when all tiles load at target z
The changes in a14a15159f made it so tiles
at alternate resolutions were not pruned when target tiles finished loading.
2012-10-09 22:56:37 -06:00
Tim Schaub
a14a15159f Simpler and more thorough tile pruning
The render method always generates a map of all tiles that should be drawn
(called tilesToDrawByZ).  This includes tiles at alternate resolutions, tiles
still loading, and tiles previously rendered.  At the end of the render
sequence we can simply remove all previously rendered tiles that aren't in
tilesToDrawByZ.  This provides an alternate solution to the problem described
in #53 and more.
2012-10-08 00:41:21 -06:00
Tim Schaub
2c2d40a53c Remove tiles outside rendered extent
To avoid having misplaced at alternate resolutions while zooming, all tiles
outside the rendered extent need to be removed from the dom (closes #53).
2012-10-07 23:47:47 -06:00
Tim Schaub
d6173a5aac Removing unused code 2012-10-07 22:57:09 -06:00
Tom Payne
d35df1d53b More detailed texture upload logging 2012-10-04 11:38:21 +02:00
Tom Payne
21ab556d2f Cope with layers being undefined 2012-10-04 11:38:21 +02:00
Tim Schaub
c120c03fb1 Properly maintain offset and origin while rotating
This brings equivalent behavior when rotating in both renderers.  Previously, offsets were maintained with style top/left.  Now a single transform handles the translation and rotation.  The scale3d function removes the separation between tiles.  The next step for the DOM renderer is to scale in this same transform.
2012-09-29 17:55:28 -06:00
Tom Payne
71e42b2448 Refactor build system
This rather large commit refactors the build system to solve a number of
problems:
- Object literal types are now declared in just one place
- There are no more circular dependencies
- There is no need for concealed subclasses in build-standalone mode

When building in standalone mode, you need to include the source in
build/src/external.  This declares object literal types as externs so
that their properties are not renamed.

When building with the application, you need to include the source in
build/src/internal.  This declares object literal types as typedefs so
that their properties can be renamed and removed.

Note also that ol.MapOptions has been merged into ol.Map, with some
renaming.
2012-09-29 11:51:53 +02:00
Tim Schaub
67bc677ecb Stick with radians 2012-09-29 01:37:54 +02:00
Tim Schaub
50bf2f015c Getting rid of lines between rotated tiles
Applying the scale3d trick just to get rid of small pixel gap between rotated tiles.  This will be reworked soon with additional use of transforms.
2012-09-29 01:33:50 +02:00
Tom Payne
e36169c936 Ignore all errors in when testing for WebGL 2012-09-28 21:36:03 +02:00
Tom Payne
2713addb33 More accurate WebGL support test, see issue #31 2012-09-28 20:05:14 +02:00
ahocevar
3d62b67172 Introducing ol.overlay.Overlay and an overlayContainer
ol.overlay.Overlay can be used to bind DOM elements to a
coordinate on the map. It has positioning options to support
e.g. popups or image markers that have an anchor at the bottom
and an unknown size.

The overlayContainer stops propagation on mousedown and
touchstart events, so clicks and gestures on overlays don't
trigger any MapBrowserEvent. To make this work reliably, we now
only fire dblclick in mapbrowserevent.js when there was a
previous mousedown or touchstart. The default container for
controls is now the overlayContainer.
2012-09-28 13:01:56 +02:00
Tim Schaub
6ed27779cc Rotation support for the dom renderer
Thanks @fredj for the inspiration.  This gives us initial rotation support.  It exposes some issues in the interactions that I'll address separately.  Closes #22.
2012-09-28 10:53:36 +02:00
Tom Payne
e3c3c13ac2 Use goog.vec.Mat4.rotateZ 2012-09-27 18:21:33 +02:00
Tim Schaub
981a40a994 Remove tiles that are still loading at alt z
When zooming to a new zoom level, we can immediately remove tiles from the previous level.  This (strongly) suggests not adding images to the container until they have actually loaded.
2012-09-27 17:46:23 +02:00
Tim Schaub
b8a69f0777 Adjusting layers pane only when necessary
We only want to adjust things that have to do with rendering (like the position of the layers panel) when actually rendering.  The handleXChange methods may be called more times than we can actually render, so we never want to do anything that touches the DOM there.  Instead, we have to keep track of the state at previous render and adjust the layers panel (or other) based on changes only when rendering.
2012-09-27 16:09:04 +02:00