Add functions to WebGL Immediate API
This commit is contained in:
@@ -65,6 +65,18 @@ ol.render.webgl.Immediate = function(context, center, resolution, rotation, size
|
|||||||
*/
|
*/
|
||||||
this.imageStyle_ = null;
|
this.imageStyle_ = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {ol.style.Fill}
|
||||||
|
*/
|
||||||
|
this.fillStyle_ = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {ol.style.Stroke}
|
||||||
|
*/
|
||||||
|
this.strokeStyle_ = null;
|
||||||
|
|
||||||
};
|
};
|
||||||
ol.inherits(ol.render.webgl.Immediate, ol.render.VectorContext);
|
ol.inherits(ol.render.webgl.Immediate, ol.render.VectorContext);
|
||||||
|
|
||||||
@@ -77,6 +89,7 @@ ol.inherits(ol.render.webgl.Immediate, ol.render.VectorContext);
|
|||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.webgl.Immediate.prototype.setStyle = function(style) {
|
ol.render.webgl.Immediate.prototype.setStyle = function(style) {
|
||||||
|
this.setFillStrokeStyle(style.getFill(), style.getStroke());
|
||||||
this.setImageStyle(style.getImage());
|
this.setImageStyle(style.getImage());
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -94,12 +107,27 @@ ol.render.webgl.Immediate.prototype.drawGeometry = function(geometry) {
|
|||||||
case ol.geom.GeometryType.POINT:
|
case ol.geom.GeometryType.POINT:
|
||||||
this.drawPoint(/** @type {ol.geom.Point} */ (geometry), null);
|
this.drawPoint(/** @type {ol.geom.Point} */ (geometry), null);
|
||||||
break;
|
break;
|
||||||
|
case ol.geom.GeometryType.LINE_STRING:
|
||||||
|
this.drawLineString(/** @type {ol.geom.LineString} */ (geometry), null);
|
||||||
|
break;
|
||||||
|
case ol.geom.GeometryType.POLYGON:
|
||||||
|
this.drawPolygon(/** @type {ol.geom.Polygon} */ (geometry), null);
|
||||||
|
break;
|
||||||
case ol.geom.GeometryType.MULTI_POINT:
|
case ol.geom.GeometryType.MULTI_POINT:
|
||||||
this.drawMultiPoint(/** @type {ol.geom.MultiPoint} */ (geometry), null);
|
this.drawMultiPoint(/** @type {ol.geom.MultiPoint} */ (geometry), null);
|
||||||
break;
|
break;
|
||||||
|
case ol.geom.GeometryType.MULTI_LINE_STRING:
|
||||||
|
this.drawMultiLineString(/** @type {ol.geom.MultiLineString} */ (geometry), null);
|
||||||
|
break;
|
||||||
|
case ol.geom.GeometryType.MULTI_POLYGON:
|
||||||
|
this.drawMultiPolygon(/** @type {ol.geom.MultiPolygon} */ (geometry), null);
|
||||||
|
break;
|
||||||
case ol.geom.GeometryType.GEOMETRY_COLLECTION:
|
case ol.geom.GeometryType.GEOMETRY_COLLECTION:
|
||||||
this.drawGeometryCollection(/** @type {ol.geom.GeometryCollection} */ (geometry), null);
|
this.drawGeometryCollection(/** @type {ol.geom.GeometryCollection} */ (geometry), null);
|
||||||
break;
|
break;
|
||||||
|
case ol.geom.GeometryType.CIRCLE:
|
||||||
|
this.drawCircle(/** @type {ol.geom.Circle} */ (geometry), null);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ol.DEBUG && console.assert(false, 'Unsupported geometry type: ' + type);
|
ol.DEBUG && console.assert(false, 'Unsupported geometry type: ' + type);
|
||||||
}
|
}
|
||||||
@@ -179,9 +207,128 @@ ol.render.webgl.Immediate.prototype.drawMultiPoint = function(geometry, data) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.drawLineString = function(geometry, data) {
|
||||||
|
var context = this.context_;
|
||||||
|
var replayGroup = new ol.render.webgl.ReplayGroup(1, this.extent_);
|
||||||
|
var replay = /** @type {ol.render.webgl.LineStringReplay} */ (
|
||||||
|
replayGroup.getReplay(0, ol.render.ReplayType.LINE_STRING));
|
||||||
|
replay.setFillStrokeStyle(null, this.strokeStyle_);
|
||||||
|
replay.drawLineString(geometry, data);
|
||||||
|
replay.finish(context);
|
||||||
|
var opacity = 1;
|
||||||
|
var skippedFeatures = {};
|
||||||
|
var featureCallback;
|
||||||
|
var oneByOne = false;
|
||||||
|
replay.replay(this.context_, this.center_, this.resolution_, this.rotation_,
|
||||||
|
this.size_, this.pixelRatio_, opacity, skippedFeatures, featureCallback,
|
||||||
|
oneByOne);
|
||||||
|
replay.getDeleteResourcesFunction(context)();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.drawMultiLineString = function(geometry, data) {
|
||||||
|
var context = this.context_;
|
||||||
|
var replayGroup = new ol.render.webgl.ReplayGroup(1, this.extent_);
|
||||||
|
var replay = /** @type {ol.render.webgl.LineStringReplay} */ (
|
||||||
|
replayGroup.getReplay(0, ol.render.ReplayType.LINE_STRING));
|
||||||
|
replay.setFillStrokeStyle(null, this.strokeStyle_);
|
||||||
|
replay.drawMultiLineString(geometry, data);
|
||||||
|
replay.finish(context);
|
||||||
|
var opacity = 1;
|
||||||
|
var skippedFeatures = {};
|
||||||
|
var featureCallback;
|
||||||
|
var oneByOne = false;
|
||||||
|
replay.replay(this.context_, this.center_, this.resolution_, this.rotation_,
|
||||||
|
this.size_, this.pixelRatio_, opacity, skippedFeatures, featureCallback,
|
||||||
|
oneByOne);
|
||||||
|
replay.getDeleteResourcesFunction(context)();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.drawPolygon = function(geometry, data) {
|
||||||
|
var context = this.context_;
|
||||||
|
var replayGroup = new ol.render.webgl.ReplayGroup(1, this.extent_);
|
||||||
|
var replay = /** @type {ol.render.webgl.PolygonReplay} */ (
|
||||||
|
replayGroup.getReplay(0, ol.render.ReplayType.POLYGON));
|
||||||
|
replay.setFillStrokeStyle(this.fillStyle_, this.strokeStyle_);
|
||||||
|
replay.drawPolygon(geometry, data);
|
||||||
|
replay.finish(context);
|
||||||
|
var opacity = 1;
|
||||||
|
var skippedFeatures = {};
|
||||||
|
var featureCallback;
|
||||||
|
var oneByOne = false;
|
||||||
|
replay.replay(this.context_, this.center_, this.resolution_, this.rotation_,
|
||||||
|
this.size_, this.pixelRatio_, opacity, skippedFeatures, featureCallback,
|
||||||
|
oneByOne);
|
||||||
|
replay.getDeleteResourcesFunction(context)();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.drawMultiPolygon = function(geometry, data) {
|
||||||
|
var context = this.context_;
|
||||||
|
var replayGroup = new ol.render.webgl.ReplayGroup(1, this.extent_);
|
||||||
|
var replay = /** @type {ol.render.webgl.PolygonReplay} */ (
|
||||||
|
replayGroup.getReplay(0, ol.render.ReplayType.POLYGON));
|
||||||
|
replay.setFillStrokeStyle(this.fillStyle_, this.strokeStyle_);
|
||||||
|
replay.drawMultiPolygon(geometry, data);
|
||||||
|
replay.finish(context);
|
||||||
|
var opacity = 1;
|
||||||
|
var skippedFeatures = {};
|
||||||
|
var featureCallback;
|
||||||
|
var oneByOne = false;
|
||||||
|
replay.replay(this.context_, this.center_, this.resolution_, this.rotation_,
|
||||||
|
this.size_, this.pixelRatio_, opacity, skippedFeatures, featureCallback,
|
||||||
|
oneByOne);
|
||||||
|
replay.getDeleteResourcesFunction(context)();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.drawCircle = function(geometry, data) {
|
||||||
|
var context = this.context_;
|
||||||
|
var replayGroup = new ol.render.webgl.ReplayGroup(1, this.extent_);
|
||||||
|
var replay = /** @type {ol.render.webgl.CircleReplay} */ (
|
||||||
|
replayGroup.getReplay(0, ol.render.ReplayType.CIRCLE));
|
||||||
|
replay.setFillStrokeStyle(this.fillStyle_, this.strokeStyle_);
|
||||||
|
replay.drawCircle(geometry, data);
|
||||||
|
replay.finish(context);
|
||||||
|
var opacity = 1;
|
||||||
|
var skippedFeatures = {};
|
||||||
|
var featureCallback;
|
||||||
|
var oneByOne = false;
|
||||||
|
replay.replay(this.context_, this.center_, this.resolution_, this.rotation_,
|
||||||
|
this.size_, this.pixelRatio_, opacity, skippedFeatures, featureCallback,
|
||||||
|
oneByOne);
|
||||||
|
replay.getDeleteResourcesFunction(context)();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.webgl.Immediate.prototype.setImageStyle = function(imageStyle) {
|
ol.render.webgl.Immediate.prototype.setImageStyle = function(imageStyle) {
|
||||||
this.imageStyle_ = imageStyle;
|
this.imageStyle_ = imageStyle;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.render.webgl.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) {
|
||||||
|
this.fillStyle_ = fillStyle;
|
||||||
|
this.strokeStyle_ = strokeStyle;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user