From 02ce2f4becc513218afecd8cfdb0fc31227389fc Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 4 Jun 2019 13:23:12 +0200 Subject: [PATCH 1/2] Use compose function from ol/transform --- src/ol/webgl/Helper.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ol/webgl/Helper.js b/src/ol/webgl/Helper.js index 1b03a5fa0d..d9c2c8d638 100644 --- a/src/ol/webgl/Helper.js +++ b/src/ol/webgl/Helper.js @@ -10,11 +10,11 @@ import {clear} from '../obj.js'; import {ARRAY_BUFFER, ELEMENT_ARRAY_BUFFER, TEXTURE_2D, TEXTURE_WRAP_S, TEXTURE_WRAP_T} from '../webgl.js'; import ContextEventType from '../webgl/ContextEventType.js'; import { + compose as composeTransform, create as createTransform, reset as resetTransform, rotate as rotateTransform, - scale as scaleTransform, - translate as translateTransform + scale as scaleTransform } from '../transform.js'; import {create, fromTransform} from '../vec/mat4.js'; import WebGLPostProcessingPass from './PostProcessingPass.js'; @@ -691,10 +691,12 @@ class WebGLHelper extends Disposable { const center = frameState.viewState.center; resetTransform(transform); - scaleTransform(transform, 2 / (resolution * size[0]), 2 / (resolution * size[1])); - rotateTransform(transform, -rotation); - translateTransform(transform, -center[0], -center[1]); - + composeTransform(transform, + 0, 0, + 2 / (resolution * size[0]), 2 / (resolution * size[1]), + -rotation, + -center[0], -center[1] + ); return transform; } From 91d49b26b5e06adf822aa68368b53a9708479294 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 4 Jun 2019 14:00:39 +0200 Subject: [PATCH 2/2] Round the transform values in makeProjectionTransform test --- test/spec/ol/webgl/helper.test.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/spec/ol/webgl/helper.test.js b/test/spec/ol/webgl/helper.test.js index 39fb1a2d68..c474941c60 100644 --- a/test/spec/ol/webgl/helper.test.js +++ b/test/spec/ol/webgl/helper.test.js @@ -213,7 +213,10 @@ describe('ol.webgl.WebGLHelper', function() { scaleTransform(expected, scaleX, scaleY); rotateTransform(expected, -frameState.viewState.rotation); translateTransform(expected, -frameState.viewState.center[0], -frameState.viewState.center[1]); - expect(h.makeProjectionTransform(frameState, given)).to.eql(expected); + + h.makeProjectionTransform(frameState, given); + + expect(given.map(val => val.toFixed(15))).to.eql(expected.map(val => val.toFixed(15))); }); });