Making it so the Canvas renderer does not draw features with display "none" or those with geometries outside the renderer extent. p=me,ahocevar r=erilem (closes #3224)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11881 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2011-04-06 15:35:24 +00:00
parent 89639a12bb
commit d711e36ed6
2 changed files with 79 additions and 6 deletions

View File

@@ -138,12 +138,15 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
drawFeature: function(feature, style) {
var rendered;
if (feature.geometry) {
style = style || feature.style;
style = this.applyDefaultSymbolizer(style);
this.features[feature.id] = [feature, style];
rendered = true;
this.pendingRedraw = true;
style = this.applyDefaultSymbolizer(style || feature.style);
// don't render if display none or feature outside extent
rendered = (style.display !== "none") &&
feature.geometry.getBounds().intersectsBounds(this.extent);
if (rendered) {
// keep track of what we have rendered for redraw
this.features[feature.id] = [feature, style];
this.pendingRedraw = true;
}
}
if (this.pendingRedraw && !this.locked) {
this.redraw();