Skip to content

Commit aa6ac7a

Browse files
wang1212google-labs-jules[bot]Alexzjtyunchen.wygithub-actions[bot]
authored
Release (#2115)
* chore: fix docs dependency version exception * Remove rbush dependency (#2113) * refactor: remove rbush dependency Removes the `rbush` dependency and all related logic from the codebase. This includes: - Deleting the `RBushNode` component. - Removing `rbush` logic from `CanvasRendererPlugin` and `SelectablePlugin`. - Updating documentation to remove mentions of `rbush`. * fix(lint): fix linting errors Removes unused imports from `CanvasRendererPlugin.ts` and fixes a Prettier error. * chore: fix lint error --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: wang1212 <mrwang1212@126.com> * chore: add changeset * perf: batch update attributes (#2001) * perf: batch update attributes * perf: batch update attributes * 0.0.1-0 * chore: add changeset * chore: revert change --------- Co-authored-by: yunchen.wy <yunchen.wy@antgroup.com> Co-authored-by: wang1212 <mrwang1212@126.com> * chore(release): bump version (#2114) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: huiyu.zjt <Alexzjt@users.noreply.github.com> Co-authored-by: yunchen.wy <yunchen.wy@antgroup.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 1d8ebd8 commit aa6ac7a

File tree

71 files changed

+359
-148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+359
-148
lines changed

packages/g-canvas/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# @antv/g-canvas
22

3+
## 2.2.0
4+
5+
### Minor Changes
6+
7+
- 00d08e9: refactor: remove legacy code
8+
9+
### Patch Changes
10+
11+
- Updated dependencies [00d08e9]
12+
- Updated dependencies [8df267d]
13+
- @antv/g-lite@2.7.0
14+
315
## 2.1.0
416

517
### Minor Changes

packages/g-canvas/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-canvas",
3-
"version": "2.1.0",
3+
"version": "2.2.0",
44
"description": "A renderer implemented by Canvas 2D API",
55
"keywords": [
66
"antv",

packages/g-canvas/src/plugins/canvas-renderer/CanvasRendererPlugin.ts

Lines changed: 10 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,14 @@
11
import type {
22
DisplayObject,
3-
FederatedEvent,
4-
RBushNodeAABB,
53
RenderingPlugin,
6-
RBush,
74
RenderingPluginContext,
85
ContextService,
96
CanvasContext,
107
GlobalRuntime,
118
ParsedBaseStyleProps,
129
CSSRGB,
1310
} from '@antv/g-lite';
14-
import {
15-
AABB,
16-
CanvasEvent,
17-
CustomEvent,
18-
ElementEvent,
19-
Shape,
20-
Node,
21-
} from '@antv/g-lite';
11+
import { AABB, CanvasEvent, CustomEvent, Shape, Node } from '@antv/g-lite';
2212
import { mat4, vec3 } from 'gl-matrix';
2313
import { isNil } from '@antv/util';
2414
import type { CanvasRendererPluginOptions } from './interfaces';
@@ -49,17 +39,10 @@ export class CanvasRendererPlugin implements RenderingPlugin {
4939

5040
private pathGeneratorFactory: Plugin['context']['pathGeneratorFactory'];
5141

52-
/**
53-
* RBush used in dirty rectangle rendering
54-
*/
55-
private rBush: RBush<RBushNodeAABB>;
56-
5742
constructor(
5843
private canvasRendererPluginOptions: CanvasRendererPluginOptions, // private styleRendererFactory: Record<Shape, StyleRenderer>,
5944
) {}
6045

61-
private removedRBushNodeAABBs: RBushNodeAABB[] = [];
62-
6346
private renderQueue: DisplayObject[] = [];
6447

6548
#renderState: RenderState = {
@@ -90,7 +73,6 @@ export class CanvasRendererPlugin implements RenderingPlugin {
9073
camera,
9174
renderingService,
9275
renderingContext,
93-
rBushRoot,
9476
// @ts-ignore
9577
pathGeneratorFactory,
9678
} = this.context;
@@ -100,42 +82,14 @@ export class CanvasRendererPlugin implements RenderingPlugin {
10082
config.renderer.getConfig().enableDirtyCheck = false;
10183
config.renderer.getConfig().enableDirtyRectangleRendering = false;
10284

103-
this.rBush = rBushRoot;
10485
this.pathGeneratorFactory = pathGeneratorFactory;
10586

10687
const contextService =
10788
context.contextService as ContextService<CanvasRenderingContext2D>;
10889

10990
const canvas = renderingContext.root.ownerDocument.defaultView;
11091

111-
const handleUnmounted = (e: FederatedEvent) => {
112-
const object = e.target as DisplayObject;
113-
114-
// remove r-bush node
115-
// @ts-ignore
116-
const { rBushNode } = object;
117-
118-
if (rBushNode?.aabb) {
119-
// save removed aabbs for dirty-rectangle rendering later
120-
this.removedRBushNodeAABBs.push(rBushNode.aabb);
121-
}
122-
};
123-
124-
const handleCulled = (e: FederatedEvent) => {
125-
const object = e.target as DisplayObject;
126-
// @ts-ignore
127-
const { rBushNode } = object;
128-
129-
if (rBushNode.aabb) {
130-
// save removed aabbs for dirty-rectangle rendering later
131-
this.removedRBushNodeAABBs.push(rBushNode.aabb);
132-
}
133-
};
134-
13592
renderingService.hooks.init.tap(CanvasRendererPlugin.tag, () => {
136-
canvas.addEventListener(ElementEvent.UNMOUNTED, handleUnmounted);
137-
canvas.addEventListener(ElementEvent.CULLED, handleCulled);
138-
13993
// clear fullscreen
14094
const dpr = contextService.getDPR();
14195
const { width, height } = config;
@@ -151,10 +105,7 @@ export class CanvasRendererPlugin implements RenderingPlugin {
151105
});
152106

153107
renderingService.hooks.destroy.tap(CanvasRendererPlugin.tag, () => {
154-
canvas.removeEventListener(ElementEvent.UNMOUNTED, handleUnmounted);
155-
canvas.removeEventListener(ElementEvent.CULLED, handleCulled);
156108
this.renderQueue = [];
157-
this.removedRBushNodeAABBs = [];
158109
this.#renderState = {
159110
restoreStack: [],
160111
prevObject: null,
@@ -286,25 +237,12 @@ export class CanvasRendererPlugin implements RenderingPlugin {
286237
renderByZIndex(renderingContext.root, context);
287238
}
288239
// console.timeEnd('renderByZIndex');
289-
290-
this.removedRBushNodeAABBs = [];
291240
} else {
292241
// console.log('canvas renderer next...', this.renderQueue);
293242
// merge removed AABB
294243
const dirtyRenderBounds = this.safeMergeAABB(
295244
this.mergeDirtyAABBs(this.renderQueue),
296-
...this.removedRBushNodeAABBs.map(({ minX, minY, maxX, maxY }) => {
297-
const aabb = new AABB();
298-
aabb.setMinMax(
299-
// vec3.fromValues(minX, minY, 0),
300-
// vec3.fromValues(maxX, maxY, 0),
301-
[minX, minY, 0],
302-
[maxX, maxY, 0],
303-
);
304-
return aabb;
305-
}),
306245
);
307-
this.removedRBushNodeAABBs = [];
308246

309247
if (AABB.isEmpty(dirtyRenderBounds)) {
310248
this.renderQueue = [];
@@ -374,7 +312,15 @@ export class CanvasRendererPlugin implements RenderingPlugin {
374312
}
375313

376314
// search objects intersect with dirty rectangle
377-
const dirtyObjects = this.searchDirtyObjects(dirtyRenderBounds);
315+
const [minX, minY] = dirtyRenderBounds.getMin();
316+
const [maxX, maxY] = dirtyRenderBounds.getMax();
317+
const dirtyObjects =
318+
renderingContext.root.ownerDocument.elementsFromBBox(
319+
minX,
320+
minY,
321+
maxX,
322+
maxY,
323+
);
378324

379325
// do rendering
380326
dirtyObjects
@@ -712,20 +658,6 @@ export class CanvasRendererPlugin implements RenderingPlugin {
712658
return aabb;
713659
}
714660

715-
private searchDirtyObjects(dirtyRectangle: AABB): DisplayObject[] {
716-
// search in r-tree, get all affected nodes
717-
const [minX, minY] = dirtyRectangle.getMin();
718-
const [maxX, maxY] = dirtyRectangle.getMax();
719-
const rBushNodes = this.rBush.search({
720-
minX,
721-
minY,
722-
maxX,
723-
maxY,
724-
});
725-
726-
return rBushNodes.map(({ displayObject }) => displayObject);
727-
}
728-
729661
private saveDirtyAABB(object: DisplayObject) {
730662
const { renderable } = object;
731663
if (!renderable.dirtyRenderBounds) {

packages/g-canvaskit/CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# @antv/g-canvaskit
22

3+
## 1.1.1
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [00d08e9]
8+
- Updated dependencies [8df267d]
9+
- @antv/g-canvas@2.2.0
10+
- @antv/g-lite@2.7.0
11+
312
## 1.1.0
413

514
### Minor Changes

packages/g-canvaskit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-canvaskit",
3-
"version": "1.1.0",
3+
"version": "1.1.1",
44
"description": "A renderer implemented by CanvasKit",
55
"keywords": [
66
"antv",

packages/g-lite/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-lite
22

3+
## 2.7.0
4+
5+
### Minor Changes
6+
7+
- 00d08e9: refactor: remove legacy code
8+
- 8df267d: feat: add experimental api `setAttributes`
9+
310
## 2.6.0
411

512
### Minor Changes

packages/g-lite/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-lite",
3-
"version": "2.6.0",
3+
"version": "2.7.0",
44
"description": "A core module for rendering engine implements DOM API.",
55
"keywords": [
66
"antv",

packages/g-lite/src/components/RBushNode.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
export * from './Cullable';
22
export * from './Geometry';
3-
export * from './RBushNode';
43
export * from './Renderable';
54
export * from './Sortable';
65
export * from './Transform';

packages/g-lite/src/css/interfaces.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ export interface PropertyParseOptions {
131131
forceUpdateGeometry: boolean;
132132
usedAttributes: string[];
133133
memoize: boolean;
134+
/**
135+
* @experimental
136+
*/
137+
skipDispatchAttrModifiedEvent?: boolean;
134138
}
135139

136140
export interface StyleValueRegistry {

0 commit comments

Comments
 (0)