[OpenLayers-Commits] r11590 - sandbox/ahocevar/renderer-ng
commits-20090109 at openlayers.org
commits-20090109 at openlayers.org
Tue Mar 1 03:36:24 EST 2011
Author: ahocevar
Date: 2011-03-01 00:36:23 -0800 (Tue, 01 Mar 2011)
New Revision: 11590
Removed:
sandbox/ahocevar/renderer-ng/patch.diff
Log:
removing accidently committed file
Deleted: sandbox/ahocevar/renderer-ng/patch.diff
===================================================================
--- sandbox/ahocevar/renderer-ng/patch.diff 2011-02-28 22:02:50 UTC (rev 11589)
+++ sandbox/ahocevar/renderer-ng/patch.diff 2011-03-01 08:36:23 UTC (rev 11590)
@@ -1,355 +0,0 @@
-Index: tests/speed/vector-renderers.html
-===================================================================
---- tests/speed/vector-renderers.html (revision 10646)
-+++ tests/speed/vector-renderers.html (working copy)
-@@ -1,4 +1,5 @@
--<html xmlns="http://www.w3.org/1999/xhtml">
-+<!DOCTYPE html>
-+<html>
- <head>
- <title>Vector Features Performance Test</title>
- <style type="text/css">
-@@ -17,10 +18,10 @@
- map = new OpenLayers.Map('map', {
- eventListeners: {
- movestart: function() {
-- console.time("move");
-+ window.console && console.time && console.time("move");
- },
- moveend: function() {
-- console.timeEnd("move");
-+ window.console && console.timeEnd && console.timeEnd("move");
- }
- }
- });
-@@ -34,10 +35,10 @@
- renderers: renderer,
- eventListeners: {
- beforefeaturesadded: function() {
-- console.time("addFeatures");
-+ window.console && console.time && console.time("addFeatures");
- },
- featuresadded: function() {
-- console.timeEnd("addFeatures");
-+ window.console && console.timeEnd && console.timeEnd("addFeatures");
- }
- }
- });
-Index: lib/OpenLayers/Renderer.js
-===================================================================
---- lib/OpenLayers/Renderer.js (revision 10646)
-+++ lib/OpenLayers/Renderer.js (working copy)
-@@ -124,6 +124,28 @@
- }
- },
-
-+ rescale: function(div, features) {
-+ if (features) {
-+ for (var i=0, len=features.length; i<len; i++) {
-+ this.locked = (i !== (len - 1));
-+ this.drawFeature(features[i]);
-+ }
-+ }
-+ },
-+
-+ reposition: function(div) {
-+ this.root.style.visibility = "hidden";
-+
-+ div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
-+ div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
-+ var extent = this.map.getExtent();
-+ coordSysUnchanged = this.setExtent(extent, false);
-+
-+ this.root.style.visibility = "visible";
-+
-+ return coordSysUnchanged;
-+ },
-+
- /**
- * Method: setSize
- * Sets the size of the drawing surface.
-Index: lib/OpenLayers/Renderer/NG.js
-===================================================================
---- lib/OpenLayers/Renderer/NG.js (revision 10646)
-+++ lib/OpenLayers/Renderer/NG.js (working copy)
-@@ -49,21 +49,39 @@
- },
-
- /**
-- * Method: setDimensions
-- * To be extended by subclasses
-+ * Method: rescale
-+ * To be called and extended by subclasses
- *
- * Parameters:
- * div - {DOMElement}
- */
-- setDimensions: function(div) {
-- var extent = this.map.getExtent();
-+ rescale: function(div, features) {
-+ // maxExtent might have changed, e.g. by switching to a new base layer
- var maxExtent = this.map.getMaxExtent().scale(this.ratio);
- this.setExtent(maxExtent, true);
-+
-+ var extent = this.map.getExtent();
- var res = this.getResolution();
- var left = parseFloat(div.parentNode.style.left);
- var top = parseFloat(div.parentNode.style.top);
- div.style.left = (maxExtent.left - extent.left) / res - left;
- div.style.top = (extent.top - maxExtent.top) / res - top;
-+
-+ if (features) {
-+ var nodes = this.vectorRoot.childNodes;
-+ // update styles for the new resolution
-+ for (var i=0, len=nodes.length; i<len; ++i) {
-+ this.setStyle(nodes[i]);
-+ }
-+ var textNodes = this.textRoot.childNodes;
-+ var label;
-+ for (var i=0, len=textNodes.length; i<len; ++i) {
-+ var label = textNodes[i];
-+ this.drawText(label, label._style,
-+ new OpenLayers.Geometry.Point(label._x, label._y)
-+ );
-+ }
-+ }
- },
-
- /**
-Index: lib/OpenLayers/Renderer/SVG.js
-===================================================================
---- lib/OpenLayers/Renderer/SVG.js (revision 10646)
-+++ lib/OpenLayers/Renderer/SVG.js (working copy)
-@@ -61,6 +61,8 @@
- * See https://bugs.webkit.org/show_bug.cgi?id=33322
- */
- supportUse: null,
-+
-+ unrenderedFeatureCache: null,
-
- /**
- * Constructor: OpenLayers.Renderer.SVG
-@@ -79,6 +81,7 @@
- this.isGecko = (navigator.userAgent.toLowerCase().indexOf("gecko/") != -1);
-
- this.symbolMetrics = {};
-+ this.unrenderedFeatureCache = {};
- },
-
- /**
-@@ -164,6 +167,42 @@
- }
- },
-
-+ rescale: function(div, features) {
-+ this.unrenderedFeatureCache = {};
-+ OpenLayers.Renderer.Elements.prototype.rescale.apply(this, arguments);
-+ },
-+
-+ reposition: function(div) {
-+ var coordSysUnchanged = OpenLayers.Renderer.Elements.prototype.reposition.apply(this, arguments);
-+
-+ // Force a reflow on gecko based browsers to prevent jump/flicker.
-+ // This seems to happen on only certain configurations; it was originally
-+ // noticed in FF 2.0 and Linux.
-+ if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
-+ div.scrollLeft = div.scrollLeft;
-+ }
-+
-+ if(!coordSysUnchanged) {
-+ var featureCache;
-+ for (var id in this.unrenderedFeatureCache) {
-+ featureCache = this.undrenderedFeatureCache[id];
-+ if (this.drawFeature(featureCache.feature, featureCache.style)) {
-+ delete this.unrenderedFeatureCache[id];
-+ };
-+ }
-+ }
-+ },
-+
-+ drawFeature: function(feature, style) {
-+ var drawn = OpenLayers.Renderer.Elements.prototype.drawFeature.apply(this, arguments);
-+ if (!drawn) {
-+ this.unrenderedFeatureCache[feature.id] = {
-+ feature: feature,
-+ style: style
-+ };
-+ }
-+ },
-+
- /**
- * Method: translate
- * Transforms the SVG coordinate system
-Index: lib/OpenLayers/Renderer/SVG2.js
-===================================================================
---- lib/OpenLayers/Renderer/SVG2.js (revision 10646)
-+++ lib/OpenLayers/Renderer/SVG2.js (working copy)
-@@ -77,23 +77,16 @@
- * {Boolean} Whether or not the browser supports the SVG2 renderer
- */
- supported: function() {
-- var webkit = navigator.userAgent.match("AppleWebKit/([0-9]*)");
-- var gecko = navigator.userAgent.match("Gecko/([0-9]*)");
-- return ((webkit.length > 0 && webkit[1] >= 533) ||
-- (gecko.length > 0 && gecko[1] >= "20100722"));
-+ var svgFeature = "http://www.w3.org/TR/SVG11/feature#";
-+ return (document.implementation &&
-+ (document.implementation.hasFeature("org.w3c.svg", "1.0") ||
-+ document.implementation.hasFeature(svgFeature + "SVG", "1.1") ||
-+ document.implementation.hasFeature(svgFeature + "BasicStructure", "1.1") ));
- },
-
-- /**
-- * Method: setDimensions
-- *
-- * Parameters:
-- * div - {DOMElement}
-- */
-- setDimensions: function(div) {
-- OpenLayers.Renderer.NG.prototype.setDimensions.apply(this, arguments);
-+ setExtent: function(extent, resolutionChanged) {
-+ OpenLayers.Renderer.NG.prototype.setExtent.apply(this, arguments);
-
-- var res = this.getResolution();
--
- var width = this.extent.getWidth();
- var height = this.extent.getHeight();
-
-@@ -106,22 +99,10 @@
-
- this.rendererRoot.setAttributeNS(null, "viewBox", extentString);
-
-+ var res = this.getResolution();
- this.rendererRoot.setAttributeNS(null, "width", width / res);
- this.rendererRoot.setAttributeNS(null, "height", height / res);
-
-- // update styles for the new resolution
-- var nodes = this.vectorRoot.childNodes;
-- for (var i=0, len=nodes.length; i<len; ++i) {
-- this.setStyle(nodes[i]);
-- }
-- var textNodes = this.textRoot.childNodes;
-- var label;
-- for (var i=0, len=textNodes.length; i<len; ++i) {
-- var label = textNodes[i];
-- this.drawText(label, label._style,
-- new OpenLayers.Geometry.Point(label._x, label._y)
-- );
-- }
- },
-
- /**
-Index: lib/OpenLayers/Layer/Vector.js
-===================================================================
---- lib/OpenLayers/Layer/Vector.js (revision 10646)
-+++ lib/OpenLayers/Layer/Vector.js (working copy)
-@@ -215,12 +215,6 @@
- */
- geometryType: null,
-
-- /**
-- * Property: drawn
-- * {Boolean} Whether the Vector Layer features have been drawn yet.
-- */
-- drawn: false,
--
- /**
- * Constructor: OpenLayers.Layer.Vector
- * Create a new vector layer
-@@ -301,7 +295,6 @@
- }
- this.renderer = null;
- this.geometryType = null;
-- this.drawn = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
- },
-
-@@ -426,7 +419,7 @@
- * map - {<OpenLayers.Map>}
- */
- removeMap: function(map) {
-- this.drawn = false;
-+ this.renderer.clear();
- if(this.strategies) {
- var strategy, i, len;
- for(i=0, len=this.strategies.length; i<len; i++) {
-@@ -466,46 +459,15 @@
- moveTo: function(bounds, zoomChanged, dragging) {
- OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
-
-- var ng = (this.renderer instanceof OpenLayers.Renderer.NG);
-- if (ng) {
-- (!this.drawn || zoomChanged) && this.renderer.setDimensions(this.div);
-- } else {
-- var coordSysUnchanged = true;
--
-- if (!dragging) {
-- this.renderer.root.style.visibility = "hidden";
--
-- this.div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
-- this.div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
-- var extent = this.map.getExtent();
-- coordSysUnchanged = this.renderer.setExtent(extent, zoomChanged);
--
-- this.renderer.root.style.visibility = "visible";
--
-- // Force a reflow on gecko based browsers to prevent jump/flicker.
-- // This seems to happen on only certain configurations; it was originally
-- // noticed in FF 2.0 and Linux.
-- if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
-- this.div.scrollLeft = this.div.scrollLeft;
-- }
--
-- if(!zoomChanged && coordSysUnchanged) {
-- for(var i in this.unrenderedFeatures) {
-- var feature = this.unrenderedFeatures[i];
-- this.drawFeature(feature);
-- }
-- }
-- }
-+ if (zoomChanged) {
-+ // different scale
-+ this.renderer.rescale(this.div);
- }
-- if (!this.drawn || (!ng && (zoomChanged || !coordSysUnchanged))) {
-- this.drawn = true;
-- var feature;
-- for(var i=0, len=this.features.length; i<len; i++) {
-- this.renderer.locked = (i !== (len - 1));
-- feature = this.features[i];
-- this.drawFeature(feature);
-- }
-- }
-+
-+ if (!this.dragging) {
-+ // on moveend
-+ this.renderer.reposition(this.div);
-+ }
- },
-
- /**
-@@ -774,11 +736,6 @@
- * style - {String | Object} Named render intent or full symbolizer object.
- */
- drawFeature: function(feature, style) {
-- // don't try to draw the feature with the renderer if the layer is not
-- // drawn itself
-- if (!this.drawn) {
-- return
-- }
- if (typeof style != "object") {
- if(!style && feature.state === OpenLayers.State.DELETE) {
- style = "delete";
-@@ -790,11 +747,7 @@
- }
- }
-
-- if (!this.renderer.drawFeature(feature, style)) {
-- this.unrenderedFeatures[feature.id] = feature;
-- } else {
-- delete this.unrenderedFeatures[feature.id];
-- };
-+ this.renderer.drawFeature(feature, style);
- },
-
- /**
More information about the Commits
mailing list