New render event API (non functional yet)

This commit is contained in:
ahocevar
2018-11-15 13:22:06 +01:00
committed by Tim Schaub
parent f90efac131
commit 6c0b3f773b
6 changed files with 58 additions and 22 deletions

View File

@@ -2,7 +2,7 @@
* @module ol/render
*/
import {DEVICE_PIXEL_RATIO} from './has.js';
import {create as createTransform, scale as scaleTransform} from './transform.js';
import {apply as applyTransform, create as createTransform, scale as scaleTransform} from './transform.js';
import CanvasImmediateRenderer from './render/canvas/Immediate.js';
@@ -77,3 +77,27 @@ export function toContext(context, opt_options) {
const transform = scaleTransform(createTransform(), pixelRatio, pixelRatio);
return new CanvasImmediateRenderer(context, pixelRatio, extent, transform, 0);
}
/**
* Gets a vector context for drawing to
* @param {import("./render/Event.js").default} event Render event.
*/
export function getVectorContext(event) {
const frameState = event.frameState;
return new CanvasImmediateRenderer(
event.context, frameState.pixelRatio, frameState.extent,
event.pixelTransform, frameState.viewState.rotation);
}
/**
* Gets the pixel of the event's canvas context from the map viewport's css pixel
* @param {import("./render/Event.js").default} event Render event.
* @param {import("./pixel.js").Pixel} pixel Css pixel relative to the top-left
* corner of the map viewport.
* @api
*/
export function getPixelFromPixel(event, pixel) {
const result = pixel.slice(0);
applyTransform(event.pixelTransform, pixel);
return result;
}