Add render test for immediate render with pixel ratio 2
This commit is contained in:
BIN
test/rendering/cases/immediate-pixel-ratio/expected.png
Normal file
BIN
test/rendering/cases/immediate-pixel-ratio/expected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
76
test/rendering/cases/immediate-pixel-ratio/main.js
Normal file
76
test/rendering/cases/immediate-pixel-ratio/main.js
Normal file
@@ -0,0 +1,76 @@
|
||||
import VectorLayer from '../../../../src/ol/layer/Vector.js';
|
||||
import VectorSource from '../../../../src/ol/source/Vector.js';
|
||||
import {Feature, Map, View} from '../../../../src/ol/index.js';
|
||||
import {Fill, Icon, Stroke, Style, Text} from '../../../../src/ol/style.js';
|
||||
import {LineString, MultiPoint, Point} from '../../../../src/ol/geom.js';
|
||||
import {getVectorContext} from '../../../../src/ol/render.js';
|
||||
|
||||
const coordinates = [
|
||||
[50, -200, 0],
|
||||
[200, -200, 0],
|
||||
[100, -50, 0],
|
||||
];
|
||||
const img = new Image();
|
||||
img.src =
|
||||
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDIwIDIwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48cGF0aCBkPSJtIDEwIDEwIDEwdiAtMTBoIiAvPjwvc3ZnPg==';
|
||||
const point = new MultiPoint(coordinates);
|
||||
const pointStyle = new Style({
|
||||
image: new Icon({
|
||||
img: img,
|
||||
size: [10, 10],
|
||||
imgSize: [10, 10],
|
||||
}),
|
||||
});
|
||||
const line = new LineString(coordinates);
|
||||
const lineStyle = new Style({
|
||||
stroke: new Stroke({
|
||||
color: 'red',
|
||||
width: 40,
|
||||
lineCap: 'square',
|
||||
lineJoin: 'round',
|
||||
lineDash: [30, 100],
|
||||
lineDashOffset: 5,
|
||||
}),
|
||||
text: new Text({
|
||||
text: '--- T e s t ___',
|
||||
placement: 'point',
|
||||
fill: new Fill({
|
||||
color: 'green',
|
||||
}),
|
||||
font: '50px Ubuntu',
|
||||
stroke: new Stroke({
|
||||
color: 'blue',
|
||||
width: 10,
|
||||
lineCap: 'butt',
|
||||
lineDash: [10, 5],
|
||||
lineDashOffset: 4,
|
||||
}),
|
||||
}),
|
||||
});
|
||||
|
||||
const vector = new VectorLayer({
|
||||
source: new VectorSource({
|
||||
features: [new Feature(new Point([-20, -20]))],
|
||||
}),
|
||||
});
|
||||
|
||||
vector.on('postrender', function (evt) {
|
||||
const context = getVectorContext(evt);
|
||||
context.setStyle(lineStyle);
|
||||
context.drawGeometry(line);
|
||||
|
||||
context.setStyle(pointStyle);
|
||||
context.drawGeometry(point);
|
||||
});
|
||||
|
||||
new Map({
|
||||
target: 'map',
|
||||
layers: [vector],
|
||||
view: new View({
|
||||
center: [256 / 2, -256 / 2],
|
||||
resolution: 1,
|
||||
devicePixelRatio: 2,
|
||||
}),
|
||||
});
|
||||
|
||||
render();
|
||||
Reference in New Issue
Block a user