Skip to content

Commit d8119bc

Browse files
committed
Merge branch 'renderer'
2 parents d8b4db1 + cedc756 commit d8119bc

18 files changed

+62
-1394
lines changed

packages/maptalks/src/core/util/draw.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import PointExtent from '../../geo/PointExtent';
33
import { isGradient } from './style';
44
import { isNumber } from './common';
55
import Canvas from '../Canvas';
6-
import { ResourceCache } from '../../renderer/layer/CanvasRenderer'
7-
import { BBOX } from './bbox';
6+
import { ResourceCache } from '../../renderer/layer/LayerAbstractRenderer'
87

98
export function drawImageMarker(ctx: CanvasRenderingContext2D, image, point, symbol) {
109
let w = symbol && symbol['markerWidth'];
@@ -23,7 +22,7 @@ export function getImage(resources: ResourceCache, url: string) {
2322
return img || null;
2423
}
2524

26-
export function drawVectorMarker(ctx: CanvasRenderingContext2D, point, symbol, resources: ResourceCache, bbox?: BBOX) {
25+
export function drawVectorMarker(ctx: CanvasRenderingContext2D, point, symbol, resources: ResourceCache) {
2726
const strokeAndFill = translateMarkerLineAndFill(symbol);
2827
const style = symbol,
2928
markerType = style['markerType'].toLowerCase(),
@@ -45,8 +44,7 @@ export function drawVectorMarker(ctx: CanvasRenderingContext2D, point, symbol, r
4544

4645
const width = style['markerWidth'],
4746
height = style['markerHeight'],
48-
lineWidth = style['markerLineWidth'] || 0,
49-
hLineWidth = lineWidth / 2;
47+
hLineWidth = style['markerLineWidth'] / 2;
5048
if (markerType === 'ellipse') {
5149
//ellipse default
5250
Canvas.ellipse(ctx, point, width / 2, height / 2, height / 2, lineOpacity, fillOpacity);
@@ -87,14 +85,6 @@ export function drawVectorMarker(ctx: CanvasRenderingContext2D, point, symbol, r
8785
} else {
8886
throw new Error('unsupported markerType: ' + markerType);
8987
}
90-
if (bbox) {
91-
//record marker bbox if need
92-
const { x, y } = point;
93-
bbox[0] = x - width / 2 - lineWidth;
94-
bbox[1] = y - height / 2 - lineWidth;
95-
bbox[2] = x + width / 2 + lineWidth;
96-
bbox[3] = y + height / 2 + lineWidth;
97-
}
9888
return ctx.canvas;
9989
}
10090

packages/maptalks/src/core/util/marker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Point from '../../geo/Point';
66
import PointExtent from '../../geo/PointExtent';
77
import Size from '../../geo/Size';
88
import { type MarkerType } from './draw'
9-
import { ResourceCache } from '../../renderer/layer/CanvasRenderer'
9+
import { ResourceCache } from '../../renderer/layer/LayerAbstractRenderer'
1010

1111
export const DEFAULT_MARKER_SYMBOLS = {
1212
markerWidth: 10,

packages/maptalks/src/geometry/ext/Geometry.Drag.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Handler from '../../handler/Handler';
66
import Geometry from '../Geometry';
77
import DragHandler from '../../handler/Drag';
88
import { ConnectorLine } from '../ConnectorLine';
9-
import { ResourceCache } from '../../renderer/layer/CanvasRenderer';
9+
import { ResourceCache } from '../../renderer/layer/LayerAbstractRenderer';
1010
import Point from '../../geo/Point';
1111
import Coordinate from '../../geo/Coordinate';
1212

packages/maptalks/src/layer/ImageLayer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Browser from '../core/Browser';
44
import Point from '../geo/Point';
55
import ImageGLRenderable from '../renderer/layer/ImageGLRenderable';
66
import CanvasRenderer from '../renderer/layer/CanvasRenderer';
7-
import { ResourceCache } from '../renderer/layer/CanvasRenderer';
7+
import { ResourceCache } from '../renderer/layer/LayerAbstractRenderer';
88
import Extent from '../geo/Extent';
99
import Layer, { LayerOptionsType } from './Layer';
1010
import { PointExtent } from '../geo';

packages/maptalks/src/renderer/edit/EditHandle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Eventable from '../../core/Eventable';
22
import Class from '../../core/Class';
33
import Point, { type PointJson } from '../../geo/Point';
4-
import { ResourceCache } from '../layer/CanvasRenderer';
4+
import { ResourceCache } from '../layer/LayerAbstractRenderer';
55
import { drawVectorMarker } from '../../core/util/draw';
66
import { isNil } from '../../core/util/';
77
import { getSymbolHash } from '../../core/util';

packages/maptalks/src/renderer/geometry/CollectionPainter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import PointExtent from '../../geo/PointExtent';
33
import { BBOX, getDefaultBBOX, resetBBOX, setBBOX, validateBBOX } from '../../core/util/bbox';
44
import Painter from './Painter';
55
import Extent from '../../geo/Extent';
6-
import { ResourceCache } from '../layer/CanvasRenderer';
6+
import { ResourceCache } from '../layer/LayerAbstractRenderer';
77
import { Geometries } from '../../geometry'
88

99
const TEMP_EXTENT = new PointExtent();

packages/maptalks/src/renderer/geometry/Painter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { BBOX, getDefaultBBOX, resetBBOX, setBBOX, validateBBOX } from '../../co
1111
import Map from '../../map/Map'
1212
import { DebugSymbolizer } from './symbolizers';
1313
import Extent from '../../geo/Extent';
14-
import { ResourceCache } from '../layer/CanvasRenderer';
14+
import { ResourceCache } from '../layer/LayerAbstractRenderer';
1515
import type { WithUndef } from '../../types/typings';
1616
import { Geometries } from '../../geometry'
1717

packages/maptalks/src/renderer/geometry/symbolizers/CanvasSymbolizer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isArrayHasData, isNumber } from '../../../core/util';
22
import { loadGeoSymbol, isFunctionDefinition, interpolated, } from '../../../core/mapbox';
33
import Symbolizer from './Symbolizer';
44
import Canvas from '../../../core/Canvas';
5-
import { ResourceCache } from '../../layer/CanvasRenderer';
5+
import { ResourceCache } from '../../layer/LayerAbstractRenderer';
66

77
/**
88
*所有基于 HTML5 Canvas2D 的symbolizer类

packages/maptalks/src/renderer/geometry/symbolizers/ImageMarkerSymbolizer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Canvas from '../../../core/Canvas';
88
import PointSymbolizer from './PointSymbolizer';
99
import { Geometry } from '../../../geometry';
1010
import Painter from '../Painter';
11-
import { ResourceCache } from '../../layer/CanvasRenderer';
11+
import { ResourceCache } from '../../layer/LayerAbstractRenderer';
1212
const TEMP_SIZE = new Size(1, 1);
1313
const TEMP_EXTENT = new PointExtent();
1414

packages/maptalks/src/renderer/geometry/symbolizers/VectorMarkerSymbolizer.ts

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,11 @@ import { getDefaultVAlign, getDefaultHAlign, DEFAULT_MARKER_SYMBOLS } from '../.
1212
import { Geometry } from '../../../geometry';
1313
import Painter from '../Painter';
1414
import { Extent } from '../../../geo';
15-
import { ResourceCache } from '../../layer/CanvasRenderer';
16-
import { getDefaultBBOX, resetBBOX } from '../../../core/util/bbox';
15+
import { ResourceCache } from '../../layer/LayerAbstractRenderer';
1716

1817
const MARKER_SIZE: [number, number] = [0, 0];
1918
const TEMP_EXTENT = new PointExtent();
2019
const DEFAULT_ANCHOR = new Point(0, 0);
21-
const TEMP_BBOX = getDefaultBBOX();
2220

2321
export default class VectorMarkerSymbolizer extends PointSymbolizer {
2422
//@internal
@@ -68,16 +66,14 @@ export default class VectorMarkerSymbolizer extends PointSymbolizer {
6866
this.geometry.getLayer().getMask() === this.geometry ||
6967
this._dynamic ||
7068
this.geometry.getLayer().options['cacheVectorOnCanvas'] === false) {
71-
//动态样式或者不缓存,function-type style, or not cache vector on canvas
72-
this._drawMarkersWithDynamic(ctx, cookedPoints, resources);
69+
this._drawMarkers(ctx, cookedPoints, resources);
7370
} else {
7471
this._drawMarkersWithCache(ctx, cookedPoints, resources);
7572
}
7673
}
7774

78-
//rename to _drawMarkersWithDynamic
7975
//@internal
80-
_drawMarkersWithDynamic(ctx: CanvasRenderingContext2D, cookedPoints: any[], resources: ResourceCache) {
76+
_drawMarkers(ctx: CanvasRenderingContext2D, cookedPoints: any[], resources: ResourceCache) {
8177
for (let i = cookedPoints.length - 1; i >= 0; i--) {
8278
let point = cookedPoints[i];
8379
const size = calVectorMarkerSize(MARKER_SIZE, this.style);
@@ -94,17 +90,13 @@ export default class VectorMarkerSymbolizer extends PointSymbolizer {
9490
this.rotations.push(rad);
9591
}
9692

97-
const bbox = this._drawVectorMarker(ctx, point, resources);
93+
this._drawVectorMarker(ctx, point, resources);
9894
if (origin) {
9995
ctx.restore();
10096
this._setBBOX(ctx, extent.xmin, extent.ymin, extent.xmax, extent.ymax);
10197
} else {
102-
if (bbox) {
103-
this._setBBOX(ctx, bbox[0], bbox[1], bbox[2], bbox[3]);
104-
} else {
105-
const { x, y } = point;
106-
this._setBBOX(ctx, x, y, x + width, y + height);
107-
}
98+
const { x, y } = point;
99+
this._setBBOX(ctx, x, y, x + width, y + height);
108100
}
109101
}
110102
}
@@ -211,21 +203,15 @@ export default class VectorMarkerSymbolizer extends PointSymbolizer {
211203

212204
//@internal
213205
_drawVectorMarker(ctx: CanvasRenderingContext2D, point: Point, resources: ResourceCache) {
214-
resetBBOX(TEMP_BBOX);
215-
drawVectorMarker(ctx, point, this.style, resources, TEMP_BBOX);
216-
return TEMP_BBOX;
206+
drawVectorMarker(ctx, point, this.style, resources);
217207
}
218208

219209
getFixedExtent(): PointExtent {
220-
// const isDynamic = this.isDynamicSize();
221-
// const w = this.style.markerWidth;
222-
// const h = this.style.markerHeight;
223-
// this._fixedExtent = this._fixedExtent || new PointExtent();
224-
// return getVectorMarkerFixedExtent(this._fixedExtent, this.style, isDynamic ? [128, 128 * (w === 0 ? 1 : h / w)] : null);
225-
210+
const isDynamic = this.isDynamicSize();
211+
const w = this.style.markerWidth;
212+
const h = this.style.markerHeight;
226213
this._fixedExtent = this._fixedExtent || new PointExtent();
227-
return getVectorMarkerFixedExtent(this._fixedExtent, this.style, null);
228-
214+
return getVectorMarkerFixedExtent(this._fixedExtent, this.style, isDynamic ? [128, 128 * (w === 0 ? 1 : h / w)] : null);
229215
}
230216

231217
translate(): any {

0 commit comments

Comments
 (0)