Skip to content

Commit 2e22798

Browse files
committed
fix: fix contribution of graphics
1 parent 48d35c2 commit 2e22798

File tree

15 files changed

+83
-165
lines changed

15 files changed

+83
-165
lines changed

packages/vrender-core/src/register-modules.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,6 @@ import { DefaultDrawContribution } from './render/contributions/render/draw-cont
3838
import { DefaultIncrementalDrawContribution } from './render/contributions/render/incremental-draw-contribution';
3939
import { DefaultRenderService } from './render/render-service';
4040
import { DefaultCanvasGroupRender } from './render/contributions/render/group-render';
41-
import { DefaultCanvasRectRender } from './render/contributions/render/rect-render';
42-
import { DefaultCanvasArcRender } from './render/contributions/render/arc-render';
43-
import { DefaultCanvasCircleRender } from './render/contributions/render/circle-render';
44-
import { DefaultCanvasLineRender } from './render/contributions/render/line-render';
45-
import { DefaultCanvasAreaRender } from './render/contributions/render/area-render';
46-
import { DefaultCanvasPathRender } from './render/contributions/render/path-render';
47-
import { DefaultCanvasTextRender } from './render/contributions/render/text-render';
48-
import { DefaultCanvasSymbolRender } from './render/contributions/render/symbol-render';
49-
import { DefaultCanvasPolygonRender } from './render/contributions/render/polygon-render';
50-
import { DefaultCanvasImageRender } from './render/contributions/render/image-render';
5141
import {
5242
DefaultBaseBackgroundRenderContribution,
5343
DefaultBaseInteractiveRenderContribution

packages/vrender-core/src/render/contributions/render/contributions/image-contribution-render.ts

Lines changed: 1 addition & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,15 @@
11
import type {
22
IGraphicAttribute,
33
IContext2d,
4-
IImage,
54
IThemeAttribute,
65
IImageRenderContribution,
76
IDrawContext,
8-
IBackgroundConfig,
9-
IGraphic,
107
IMarkAttribute
118
} from '../../../../interface';
12-
import { getTheme } from '../../../../graphic/theme';
13-
import {
14-
defaultBaseBackgroundRenderContribution,
15-
DefaultBaseBackgroundRenderContribution
16-
} from './base-contribution-render';
9+
import { defaultBaseBackgroundRenderContribution } from './base-contribution-render';
1710
import { BaseRenderContributionTime } from '../../../../common/enums';
18-
import { isNumber, isObject } from '@visactor/vutils';
19-
import { parsePadding } from '../../../../common/utils';
20-
import { createRectPath } from '../../../../common/shape/rect';
2111
import { DefaultRectRenderContribution } from './rect-contribution-render';
2212

23-
// export class DefaultImageBackgroundRenderContribution
24-
// extends DefaultBaseBackgroundRenderContribution
25-
// implements IImageRenderContribution
26-
// {
27-
// time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;
28-
29-
// drawShape(
30-
// graphic: IImage,
31-
// context: IContext2d,
32-
// x: number,
33-
// y: number,
34-
// doFill: boolean,
35-
// doStroke: boolean,
36-
// fVisible: boolean,
37-
// sVisible: boolean,
38-
// graphicAttribute: Required<IGraphicAttribute>,
39-
// drawContext: IDrawContext,
40-
// fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,
41-
// strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean
42-
// ) {
43-
// const {
44-
// background,
45-
// backgroundMode = graphicAttribute.backgroundMode,
46-
// backgroundFit = graphicAttribute.backgroundFit,
47-
// width,
48-
// height
49-
// } = graphic.attribute;
50-
// if (!background) {
51-
// return;
52-
// }
53-
54-
// if (!graphic.backgroundImg) {
55-
// if (isObject(background)) {
56-
// const {
57-
// stroke,
58-
// fill,
59-
// lineWidth = 1,
60-
// cornerRadius = 0,
61-
// expandX = 0,
62-
// expandY = 0
63-
// } = background as IBackgroundConfig;
64-
65-
// if (!stroke && !fill) {
66-
// return;
67-
// }
68-
69-
// context.beginPath();
70-
// const { x, y, width, height } = getActualPosition(graphic);
71-
// if (cornerRadius) {
72-
// createRectPath(context, x - expandX, y - expandY, width + expandX * 2, height + expandY * 2, cornerRadius);
73-
// } else {
74-
// context.rect(x - expandX, y - expandY, width + expandX * 2, height + expandY * 2);
75-
// }
76-
77-
// context.globalAlpha = 1;
78-
// if (fill) {
79-
// context.fillStyle = fill as string;
80-
// context.fill();
81-
// }
82-
83-
// if (stroke && lineWidth > 0) {
84-
// context.lineWidth = lineWidth;
85-
// context.strokeStyle = stroke as string;
86-
// context.stroke();
87-
// }
88-
// } else {
89-
// context.beginPath();
90-
// // const b = graphic.AABBBounds;
91-
// // image的背景不包括Bounds了
92-
// context.rect(x, y, width || 0, height || 0);
93-
// context.fillStyle = background as string;
94-
// context.globalAlpha = 1;
95-
// context.fill();
96-
// }
97-
// } else {
98-
// const res = graphic.resources.get(background as any);
99-
// if (res.state !== 'success' || !res.data) {
100-
// return;
101-
// }
102-
// context.save();
103-
// if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {
104-
// const groupAttribute = getTheme(graphic.parent).group;
105-
// const { scrollX = groupAttribute.scrollX, scrollY = groupAttribute.scrollY } = graphic.parent.attribute;
106-
// context.setTransformFromMatrix(graphic.parent.globalTransMatrix, true);
107-
// context.translate(scrollX, scrollY);
108-
// }
109-
// // context.clip();
110-
// const b = graphic.AABBBounds;
111-
// this.doDrawImage(context, res.data, b, backgroundMode, backgroundFit);
112-
// context.restore();
113-
// if (!graphic.transMatrix.onlyTranslate()) {
114-
// context.setTransformForCurrent();
115-
// }
116-
// }
117-
// }
118-
// }
119-
120-
// function getActualPosition(graphic: IGraphic) {
121-
// const boundsPadding = parsePadding(graphic.attribute.boundsPadding);
122-
// const bounds = graphic.AABBBounds;
123-
// let x = bounds.x1;
124-
// let y = bounds.y1;
125-
// let width = bounds.width();
126-
// let height = bounds.height();
127-
128-
// if (isNumber(boundsPadding)) {
129-
// x += boundsPadding;
130-
// y += boundsPadding;
131-
// width -= boundsPadding * 2;
132-
// height -= boundsPadding * 2;
133-
// } else {
134-
// x += boundsPadding[3];
135-
// y += boundsPadding[0];
136-
// width -= boundsPadding[1] + boundsPadding[3];
137-
// height -= boundsPadding[0] + boundsPadding[2];
138-
// }
139-
140-
// return {
141-
// x,
142-
// y,
143-
// width,
144-
// height
145-
// };
146-
// }
147-
14813
export class DefaultImageRenderContribution extends DefaultRectRenderContribution implements IImageRenderContribution {
14914
time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;
15015
useStyle: boolean = true;

packages/vrender-core/src/render/contributions/render/incremental-draw-contribution.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@ import type {
1111
import { DefaultAttribute } from '../../../graphic/config';
1212
import { DefaultDrawContribution } from './draw-contribution';
1313
import { SyncHook } from '../../../tapable';
14-
import { GraphicRender } from './symbol';
15-
import { DefaultIncrementalCanvasLineRender } from './incremental-line-render';
16-
import { DefaultIncrementalCanvasAreaRender } from './incremental-area-render';
14+
import { AreaIncrementalDrawContribution, GraphicRender, LineIncrementalDrawContribution } from './symbol';
1715
import { DrawItemInterceptor } from './draw-interceptor';
1816
import { foreachAsync } from '../../../common/sort';
19-
import { contributionRegistry } from '../../../common/registry';
17+
import { contributionRegistry, serviceRegistry } from '../../../common/registry';
2018

2119
enum STATUS {
2220
NORMAL = 0,
@@ -56,8 +54,8 @@ export class DefaultIncrementalDrawContribution extends DefaultDrawContribution
5654
getContributions: () => contributionRegistry.get<IDrawItemInterceptorContribution>(DrawItemInterceptor)
5755
} as IContributionProvider<IDrawItemInterceptorContribution>);
5856
super(defaultContributions, defaultDrawItemInterceptor);
59-
this.lineRender = lineRender || new DefaultIncrementalCanvasLineRender();
60-
this.areaRender = areaRender || new DefaultIncrementalCanvasAreaRender();
57+
this.lineRender = lineRender || serviceRegistry.get(LineIncrementalDrawContribution);
58+
this.areaRender = areaRender || serviceRegistry.get(AreaIncrementalDrawContribution);
6159
this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);
6260
this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);
6361
}

packages/vrender-core/src/render/contributions/render/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ export * from './symbol';
2020
export * from './contributions';
2121
export * from './utils';
2222
export * from './draw-interceptor';
23+
export * from './incremental-line-render';
24+
export * from './incremental-area-render';

packages/vrender-core/src/render/contributions/render/symbol.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
export const AreaIncrementalDrawContribution = Symbol.for('AreaIncrementalDrawContribution');
2+
export const LineIncrementalDrawContribution = Symbol.for('LineIncrementalDrawContribution');
13
export const IncrementalDrawContribution = Symbol.for('IncrementalDrawContribution');
24
export const ArcRender = Symbol.for('ArcRender');
35
export const Arc3dRender = Symbol.for('Arc3dRender');

packages/vrender-kits/src/register/register-arc.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import {
2+
AreaRenderContribution,
23
contributionRegistry,
4+
DefaultBaseInteractiveRenderContribution,
35
DefaultCanvasArcRender,
46
GraphicRender,
5-
registerArcGraphic
7+
registerArcGraphic,
8+
serviceRegistry
69
} from '@visactor/vrender-core';
710
import { browser } from './env';
811
import { registerCanvasArcPicker } from '../picker/contributions/canvas-picker/arc-module';
@@ -21,6 +24,7 @@ export function _registerArc() {
2124
registerMathArcPicker();
2225
}
2326

27+
contributionRegistry.register(AreaRenderContribution, serviceRegistry.get(DefaultBaseInteractiveRenderContribution));
2428
contributionRegistry.register(GraphicRender, new DefaultCanvasArcRender());
2529
}
2630

packages/vrender-kits/src/register/register-area.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import {
2+
AreaIncrementalDrawContribution,
3+
AreaRenderContribution,
24
contributionRegistry,
5+
DefaultBaseInteractiveRenderContribution,
36
DefaultCanvasAreaRender,
7+
DefaultIncrementalCanvasAreaRender,
48
GraphicRender,
5-
registerAreaGraphic
9+
registerAreaGraphic,
10+
serviceRegistry
611
} from '@visactor/vrender-core';
712
import { browser } from './env';
813
import { registerCanvasAreaPicker } from '../picker/contributions/canvas-picker/area-module';
@@ -19,7 +24,12 @@ function _registerArea() {
1924
} else {
2025
registerMathAreaPicker();
2126
}
27+
serviceRegistry.registerSingletonFactory(
28+
AreaIncrementalDrawContribution,
29+
() => new DefaultIncrementalCanvasAreaRender()
30+
);
2231

32+
contributionRegistry.register(AreaRenderContribution, serviceRegistry.get(DefaultBaseInteractiveRenderContribution));
2333
contributionRegistry.register(GraphicRender, new DefaultCanvasAreaRender());
2434
}
2535

packages/vrender-kits/src/register/register-circle.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import {
2+
CircleRenderContribution,
23
contributionRegistry,
4+
DefaultBaseInteractiveRenderContribution,
35
DefaultCanvasCircleRender,
46
GraphicRender,
5-
registerCircleGraphic
7+
registerCircleGraphic,
8+
serviceRegistry
69
} from '@visactor/vrender-core';
710
import { browser } from './env';
811
import { registerCanvasCirclePicker } from '../picker/contributions/canvas-picker/circle-module';
@@ -20,6 +23,10 @@ function _registerCircle() {
2023
registerMathCirclePicker();
2124
}
2225

26+
contributionRegistry.register(
27+
CircleRenderContribution,
28+
serviceRegistry.get(DefaultBaseInteractiveRenderContribution)
29+
);
2330
contributionRegistry.register(GraphicRender, new DefaultCanvasCircleRender());
2431
}
2532

packages/vrender-kits/src/register/register-image.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import {
22
contributionRegistry,
3+
DefaultBaseInteractiveRenderContribution,
34
DefaultCanvasImageRender,
45
GraphicRender,
5-
registerImageGraphic
6+
ImageRenderContribution,
7+
registerImageGraphic,
8+
serviceRegistry
69
} from '@visactor/vrender-core';
710
import { browser } from './env';
811
import { registerCanvasImagePicker } from '../picker/contributions/canvas-picker/image-module';
@@ -19,7 +22,7 @@ function _registerImage() {
1922
} else {
2023
registerMathImagePicker();
2124
}
22-
25+
contributionRegistry.register(ImageRenderContribution, serviceRegistry.get(DefaultBaseInteractiveRenderContribution));
2326
contributionRegistry.register(GraphicRender, new DefaultCanvasImageRender());
2427
}
2528

packages/vrender-kits/src/register/register-line.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import {
2+
DefaultIncrementalCanvasLineRender,
23
contributionRegistry,
34
DefaultCanvasLineRender,
45
GraphicRender,
5-
registerLineGraphic
6+
LineIncrementalDrawContribution,
7+
registerLineGraphic,
8+
serviceRegistry
69
} from '@visactor/vrender-core';
710
import { browser } from './env';
811
import { registerCanvasLinePicker } from '../picker/contributions/canvas-picker/line-module';
@@ -20,6 +23,11 @@ function _registerLine() {
2023
registerMathLinePicker();
2124
}
2225

26+
serviceRegistry.registerSingletonFactory(
27+
LineIncrementalDrawContribution,
28+
() => new DefaultIncrementalCanvasLineRender()
29+
);
30+
2331
contributionRegistry.register(GraphicRender, new DefaultCanvasLineRender());
2432
}
2533

0 commit comments

Comments
 (0)