Add skeleton for webgl immediate renderer

This commit is contained in:
Antoine Abt
2014-01-02 14:41:21 +01:00
parent 2342f83a48
commit 1142d55565
3 changed files with 115 additions and 3 deletions

View File

@@ -91,7 +91,6 @@ ol.render.Box.prototype.disposeInternal = function() {
* @private
*/
ol.render.Box.prototype.handleMapPostCompose_ = function(event) {
this.geometry_ = this.createGeometry_();
var style = this.style_;
goog.asserts.assert(!goog.isNull(style));
var render = event.getRender();
@@ -148,5 +147,6 @@ ol.render.Box.prototype.setCoordinates =
function(startCoordinate, endCoordinate) {
this.startCoordinate_ = startCoordinate;
this.endCoordinate_ = endCoordinate;
this.geometry_ = this.createGeometry_();
this.requestMapRenderFrame_();
};

View File

@@ -0,0 +1,109 @@
goog.provide('ol.render.webgl.Immediate');
/**
* @constructor
* @implements {ol.render.IRender}
* @param {ol.webgl.Context} context Context.
* @param {number} pixelRatio Pixel ratio.
* @struct
*/
ol.render.webgl.Immediate = function(context, pixelRatio) {
};
/**
* @param {ol.Feature} feature Feature.
* @param {ol.style.Style} style Style.
*/
ol.render.webgl.Immediate.prototype.drawFeature = function(feature, style) {
};
/**
* @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry
* collection.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawGeometryCollectionGeometry =
function(geometryCollectionGeometry, data) {
};
/**
* @param {ol.geom.Point} pointGeometry Point geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawPointGeometry =
function(pointGeometry, data) {
};
/**
* @param {ol.geom.LineString} lineStringGeometry Line string geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawLineStringGeometry =
function(lineStringGeometry, data) {
};
/**
* @param {ol.geom.MultiLineString} multiLineStringGeometry
* MultiLineString geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawMultiLineStringGeometry =
function(multiLineStringGeometry, data) {
};
/**
* @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawMultiPointGeometry =
function(multiPointGeometry, data) {
};
/**
* @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawMultiPolygonGeometry =
function(multiPolygonGeometry, data) {
};
/**
* @param {ol.geom.Polygon} polygonGeometry Polygon geometry.
* @param {Object} data Opaque data object.
*/
ol.render.webgl.Immediate.prototype.drawPolygonGeometry =
function(polygonGeometry, data) {
};
/**
* @param {ol.style.Fill} fillStyle Fill style.
* @param {ol.style.Stroke} strokeStyle Stroke style.
*/
ol.render.webgl.Immediate.prototype.setFillStrokeStyle =
function(fillStyle, strokeStyle) {
};
/**
* @param {ol.style.Image} imageStyle Image style.
*/
ol.render.webgl.Immediate.prototype.setImageStyle = function(imageStyle) {
};
/**
* @param {ol.style.Text} textStyle Text style.
*/
ol.render.webgl.Immediate.prototype.setTextStyle = function(textStyle) {
};

View File

@@ -20,6 +20,7 @@ goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.render.Event');
goog.require('ol.render.EventType');
goog.require('ol.render.webgl.Immediate');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.webgl.ImageLayer');
goog.require('ol.renderer.webgl.Layer');
@@ -282,10 +283,12 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) {
ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ =
function(type, frameState) {
var map = this.getMap();
var context = this.getContext();
if (map.hasListener(type)) {
var context = this.getContext();
var render = new ol.render.webgl.Immediate(context,
frameState.devicePixelRatio);
var composeEvent = new ol.render.Event(
type, map, null, frameState, null, context);
type, map, render, frameState, null, context);
map.dispatchEvent(composeEvent);
}
};