Skip to content

refactor(galacean): replace @ts-ignore with @ts-expect-error and modernize loop#3059

Open
luo2430 wants to merge 1 commit into
galacean:dev/2.0from
luo2430:refactor/galacean
Open

refactor(galacean): replace @ts-ignore with @ts-expect-error and modernize loop#3059
luo2430 wants to merge 1 commit into
galacean:dev/2.0from
luo2430:refactor/galacean

Conversation

@luo2430

@luo2430 luo2430 commented Jul 2, 2026

Copy link
Copy Markdown
  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

Summary by CodeRabbit

  • Refactor

    • Improved internal TypeScript type handling and cleanup in startup and shader registration code.
    • Simplified core registration logic for more consistent initialization.
  • Chores

    • Replaced generic TypeScript suppression comments with more precise checks for safer maintenance.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Jul 2, 2026
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 4a52bf00-4920-42ac-9702-e170e037ffab

📥 Commits

Reviewing files that changed from the base of the PR and between bc87faf and 2124c78.

📒 Files selected for processing (2)
  • packages/galacean/src/ShaderPool.ts
  • packages/galacean/src/index.ts
✅ Files skipped from review due to trivial changes (1)
  • packages/galacean/src/ShaderPool.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/galacean/src/index.ts

Walkthrough

This PR updates TypeScript suppression comments from @ts-ignore to @ts-expect-error in ShaderPool.ts and index.ts, and refactors core-class registration in index.ts to iterate Object.entries(CoreObjects) with destructuring instead of a for...in loop.

Changes

TS Suppression and Registration Cleanup

Layer / File(s) Summary
ShaderPool suppression updates
packages/galacean/src/ShaderPool.ts
Changes @ts-ignore to @ts-expect-error for internal precompiled shader creation and feedback varyings access, with updated comments.
Index registration refactor and suppression update
packages/galacean/src/index.ts
Removes an unused @ts-ignore, refactors core-class registration to use Object.entries with destructured [key, value], and changes the SystemInfo._initialize() suppression to @ts-expect-error.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Poem

Ignore no more, I proudly declare,
Expect the error, precise and rare! 🐰
Entries now dance in pairs so neat,
No stray keys lost beneath my feet,
A tidy warren, code complete. 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main refactor: replacing @ts-ignore with @ts-expect-error and modernizing the loop.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@luo2430 luo2430 marked this pull request as draft July 2, 2026 00:15
@codecov

codecov Bot commented Jul 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.98%. Comparing base (721b42a) to head (2124c78).

Additional details and impacted files
@@             Coverage Diff             @@
##           dev/2.0    #3059      +/-   ##
===========================================
+ Coverage    79.37%   79.98%   +0.61%     
===========================================
  Files          903      903              
  Lines       100632   100762     +130     
  Branches     11260    11250      -10     
===========================================
+ Hits         79879    80597     +718     
+ Misses       20569    19987     -582     
+ Partials       184      178       -6     
Flag Coverage Δ
unittests 79.98% <100.00%> (+0.61%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@luo2430

luo2430 commented Jul 2, 2026

Copy link
Copy Markdown
Author

变基变错了

@luo2430 luo2430 force-pushed the refactor/galacean branch from bc87faf to 2124c78 Compare July 2, 2026 00:24
@luo2430 luo2430 marked this pull request as ready for review July 2, 2026 00:26
@luo2430

luo2430 commented Jul 2, 2026

Copy link
Copy Markdown
Author

@GuoLei1990

@GuoLei1990 GuoLei1990 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

总结

纯机械化现代化改动,packages/galacean/src/ 两文件:① @ts-ignore@ts-expect-error(3 处,目标均为已确认 @internal 成员:Shader._createFromPrecompiled / ShaderPass._feedbackVaryings / SystemInfo._initialize);② 删除 version 上方的死 //@ts-ignore;③ for (let key in CoreObjects)for (const [key, value] of Object.entries(CoreObjects))。方向正确,是净改进。LGTM,无 P0/P1/P2。

注:本 PR 的 CodeRabbit 自动摘要(谈 canvas sizing)是早前一次错误变基的残留(作者亦评论「变基变错了」)。当前 tip 2124c783 父提交 = 721b42a8c(dev/2.0 tip),单 commit 只改 2 文件、共 +6 -6已干净重基,与摘要描述无关,按实际 diff 审查。

问题

无阻塞问题。逐条已核:

  • @ts-expect-error 迁移(3 处) — 严格优于 @ts-ignore@ts-ignore 静默吞掉该行任何未来错误(包括无关错误),@ts-expect-error 自校验——若该行不再报错,tsc 会以 "Unused directive" 失败。三处目标成员均带 /** @internal */,跨包(packages/galacean@galacean/engine-core 的 stripped .d.ts)访问确实报错 → 三条 directive 均为 used。CI build(macOS/ubuntu/windows 三平台 tsc)+ lint + e2e 4/4 全绿,实证无死 directive。

  • version 上的 //@ts-ignore — 正确。export const version = + 反引号 __buildVersion 反引号 是合法 template-literal string(rollup.config.js:80 构建期 replace 成 pkgJson.version),该行本就无 TS 错误,原 //@ts-ignore 是死 directive,删除干净。

  • for...inObject.entries — 语义等价。CoreObjects 是 module namespace object([[Prototype]] 为 null、无继承可枚举属性、key 顺序 spec 固定),且 Loader.registerClass 是顺序无关的注册填充。与本仓 #3058 同作者同款已验证改动一致。

简化建议

无。改动本身即是简化,代码更干净。

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (4)
tests/vitest.config.ts (1)

17-34: 🩺 Stability & Availability | 🔵 Trivial

Confirm intent of disabling screenshot capture on failures.

screenshotFailures: false removes a useful diagnostic artifact for debugging failed browser tests in CI. If this was purely to reduce CI I/O/storage rather than fix a workflow bug, it's worth flagging that future failures (including flaky UI/canvas ones introduced by this refactor) will be harder to triage without screenshots.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/vitest.config.ts` around lines 17 - 34, The browser test config
currently disables failure screenshots in the vitest browser setup, which
removes a useful debug artifact. Review the browser config in vitest.config.ts
and either restore screenshot capture for failures or make the disablement
conditional/documented if it is intentional for CI cost reasons. Keep the change
scoped to the browser test settings under test.browser, including
screenshotFailures and the Playwright instance config.
tests/src/rhi-webgl/WebGLEngine.test.ts (2)

105-150: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider splitting this large multi-assertion test.

This single it block exercises default observer attachment, scale reuse, pending-resize pump (both applied and skipped cases), setResolution locking + validation, and destroy cleanup. Splitting into focused tests would make failures easier to localize.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/src/rhi-webgl/WebGLEngine.test.ts` around lines 105 - 150, The single
WebGLEngine.test.ts case is doing too many unrelated assertions, making failures
hard to pinpoint. Split the current “canvas auto resize” test in
WebGLEngine.test into smaller focused tests around WebGLEngine.create,
setAutoResolution, _pumpPendingResize, setResolution, and destroy so each
behavior (observer attachment, resize application/skip, fixed resolution,
validation, cleanup) is validated independently.

160-176: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Weak assertion for disableAutoResize effect.

expect(webCanvas.width).toBeGreaterThan(0) (Line 172-173) passes trivially since the canvas's default width/height are already non-zero, regardless of whether disableAutoResize correctly locked the current size. Asserting an exact expected value (e.g. matching a stubbed clientWidth/clientHeight after a pump, or the canvas's known default dimensions) would better validate the forwarding behavior described in WebGLEngine.disableAutoResize (canvas.setResolution(canvas.width, canvas.height)).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/src/rhi-webgl/WebGLEngine.test.ts` around lines 160 - 176, The
WebGLEngine test for disableAutoResize is too weak because checking that
webCanvas.width/height are greater than zero does not prove the forwarded resize
behavior. Update the assertion in WebGLEngine.test around
WebGLEngine.enableAutoResize and WebGLEngine.disableAutoResize to verify the
canvas was locked to the expected current size after disabling auto resize,
using a concrete expected value derived from the canvas state or stubbed
clientWidth/clientHeight rather than a non-zero check. This should still confirm
the _resizeObserver is removed while validating the setResolution(current size)
path.
e2e/case/gltf-blendshape.ts (1)

22-25: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Non-integer resolution passed to setResolution.

window.innerWidth * SystemInfo.devicePixelRatio can yield a fractional value, unlike the auto-resize path in WebCanvas._pumpPendingResize which explicitly rounds pixel dimensions before calling _setSize. Passing a float here is accepted by setResolution's validation (only checks finiteness and positivity), but the resulting fractional value will be silently truncated by the browser's canvas width/height setters, causing a slight inconsistency with the rounding behavior used elsewhere.

🔧 Suggested fix for consistency
   engine.canvas.setResolution(
-    window.innerWidth * SystemInfo.devicePixelRatio,
-    window.innerHeight * SystemInfo.devicePixelRatio
+    Math.round(window.innerWidth * SystemInfo.devicePixelRatio),
+    Math.round(window.innerHeight * SystemInfo.devicePixelRatio)
   );
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/case/gltf-blendshape.ts` around lines 22 - 25, The explicit canvas sizing
in gltf-blendshape.ts is passing fractional pixel dimensions into
engine.canvas.setResolution, which differs from the rounded sizing used in
WebCanvas._pumpPendingResize. Update the call site to round the computed width
and height before invoking setResolution, using the same pixel-dimension
handling as the auto-resize path so the resolution stays consistent across both
code paths.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/src/device-restore.ts`:
- Line 28: Guard the optional `GLTFResource.animations` before accessing the
first clip in `device-restore.ts`; `animator?.play(...)` already handles a
missing animator, but `animations![0]` can still crash when there are no clips.
Update the `animator?.play` call site to check that `animations` exists and has
at least one entry before indexing, using the existing `animations` and
`animator` symbols to keep the logic safe.

In `@packages/core/src/Canvas.ts`:
- Around line 35-41: Canvas.setResolution currently accepts finite positive
decimals, but the backing canvas size used by WebCanvas._onSizeChanged must be
integer pixels. Update setResolution in Canvas to either reject non-integer
width/height or normalize them before calling _setSize, and keep the
validation/error message aligned with the new rule.

In `@packages/rhi-webgl/src/WebCanvas.ts`:
- Around line 49-61: The auto-resolution path in setAutoResolution currently
accepts invalid or tiny scale values and can pass 0, NaN, or sub-1 dimensions
through to _pumpPendingResize/_setSize without the validation that
Canvas.setResolution normally provides. Add validation for the scale argument in
setAutoResolution and ensure the computed width/height are rounded and clamped
to a minimum of 1 before they reach _setSize, including the same safeguard in
the resize application path used by _pumpPendingResize.

In `@packages/rhi-webgl/src/WebGLEngine.ts`:
- Around line 51-53: The enableAutoResize method in WebGLEngine currently
accepts pixelRatio but ignores it, breaking existing callers that pass a value
like 0.5. Update enableAutoResize(pixelRatio?) to preserve the deprecated
argument by translating it into the new DPR-based resolution behavior when
present, while keeping the default auto-resize path for undefined values. Make
the fix in WebGLEngine.enableAutoResize and ensure the canvas resolution setup
still works correctly with both old pixelRatio callers and the new automatic
model.

---

Nitpick comments:
In `@e2e/case/gltf-blendshape.ts`:
- Around line 22-25: The explicit canvas sizing in gltf-blendshape.ts is passing
fractional pixel dimensions into engine.canvas.setResolution, which differs from
the rounded sizing used in WebCanvas._pumpPendingResize. Update the call site to
round the computed width and height before invoking setResolution, using the
same pixel-dimension handling as the auto-resize path so the resolution stays
consistent across both code paths.

In `@tests/src/rhi-webgl/WebGLEngine.test.ts`:
- Around line 105-150: The single WebGLEngine.test.ts case is doing too many
unrelated assertions, making failures hard to pinpoint. Split the current
“canvas auto resize” test in WebGLEngine.test into smaller focused tests around
WebGLEngine.create, setAutoResolution, _pumpPendingResize, setResolution, and
destroy so each behavior (observer attachment, resize application/skip, fixed
resolution, validation, cleanup) is validated independently.
- Around line 160-176: The WebGLEngine test for disableAutoResize is too weak
because checking that webCanvas.width/height are greater than zero does not
prove the forwarded resize behavior. Update the assertion in WebGLEngine.test
around WebGLEngine.enableAutoResize and WebGLEngine.disableAutoResize to verify
the canvas was locked to the expected current size after disabling auto resize,
using a concrete expected value derived from the canvas state or stubbed
clientWidth/clientHeight rather than a non-zero check. This should still confirm
the _resizeObserver is removed while validating the setResolution(current size)
path.

In `@tests/vitest.config.ts`:
- Around line 17-34: The browser test config currently disables failure
screenshots in the vitest browser setup, which removes a useful debug artifact.
Review the browser config in vitest.config.ts and either restore screenshot
capture for failures or make the disablement conditional/documented if it is
intentional for CI cost reasons. Keep the change scoped to the browser test
settings under test.browser, including screenshotFailures and the Playwright
instance config.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: fb7f47a0-2b91-4536-b7f2-38bcf351119e

📥 Commits

Reviewing files that changed from the base of the PR and between 721b42a and bc87faf.

⛔ Files ignored due to path filters (7)
  • tests/src/core/2d/text/__screenshots__/TextRenderer.test.ts/TextRenderer-bounds-1.png is excluded by !**/*.png
  • tests/src/core/__screenshots__/Sprite.test.ts/Sprite-get-set-size-1.png is excluded by !**/*.png
  • tests/src/core/__screenshots__/SpriteMask.test.ts/SpriteMask--render-1.png is excluded by !**/*.png
  • tests/src/core/__screenshots__/SpriteMask.test.ts/SpriteMask-get-set-size-1.png is excluded by !**/*.png
  • tests/src/core/__screenshots__/SpriteRenderer.test.ts/SpriteRenderer--render-1.png is excluded by !**/*.png
  • tests/src/core/__screenshots__/SpriteRenderer.test.ts/SpriteRenderer-get-set-size-1.png is excluded by !**/*.png
  • tests/src/core/audio/__screenshots__/AudioSource.test.ts/AudioSource-load-1.png is excluded by !**/*.png
📒 Files selected for processing (122)
  • e2e/case/.initPostProcessEnv.ts
  • e2e/case/animator-additive.ts
  • e2e/case/animator-blendShape-quantization.ts
  • e2e/case/animator-blendShape.ts
  • e2e/case/animator-crossfade.ts
  • e2e/case/animator-customAnimationClip.ts
  • e2e/case/animator-customBlendShape.ts
  • e2e/case/animator-event.ts
  • e2e/case/animator-multiSubMeshBlendShape.ts
  • e2e/case/animator-play-backwards.ts
  • e2e/case/animator-play-beforeActive.ts
  • e2e/case/animator-play.ts
  • e2e/case/animator-reuse.ts
  • e2e/case/animator-stateMachine.ts
  • e2e/case/animator-stateMachineScript.ts
  • e2e/case/camera-fxaa.ts
  • e2e/case/camera-opaque-texture.ts
  • e2e/case/camera-ssao.ts
  • e2e/case/canvas-transparency.ts
  • e2e/case/gltf-blendshape.ts
  • e2e/case/gltf-meshopt.ts
  • e2e/case/gpu-instancing-auto-batch.ts
  • e2e/case/gpu-instancing-custom-data.ts
  • e2e/case/material-LUT.ts
  • e2e/case/material-blendMode.ts
  • e2e/case/material-blinn-phong.ts
  • e2e/case/material-pbr-clearcoat.ts
  • e2e/case/material-pbr-specular.ts
  • e2e/case/material-pbr.ts
  • e2e/case/material-shader.ts
  • e2e/case/material-shaderReplacement.ts
  • e2e/case/material-unlit.ts
  • e2e/case/material-white-furnace.ts
  • e2e/case/multi-camera-no-clear.ts
  • e2e/case/multi-scene-clear.ts
  • e2e/case/multi-scene-no-clear.ts
  • e2e/case/particleRenderer-burst-cycles.ts
  • e2e/case/particleRenderer-customShader.ts
  • e2e/case/particleRenderer-dream.ts
  • e2e/case/particleRenderer-emissive.ts
  • e2e/case/particleRenderer-emit-billboard-stretched.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-3d-rotation-life-seperate.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-3d-rotation.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-rotation-life-seperate.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-rotation-life.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-rotation-world.ts
  • e2e/case/particleRenderer-emit-mesh-cone-scale-rotation.ts
  • e2e/case/particleRenderer-emit-mesh-cone.ts
  • e2e/case/particleRenderer-emit-mesh-no-shape-world.ts
  • e2e/case/particleRenderer-emit-mesh-no-shape.ts
  • e2e/case/particleRenderer-emit-mesh-rotation-life-curve.ts
  • e2e/case/particleRenderer-fire.ts
  • e2e/case/particleRenderer-force.ts
  • e2e/case/particleRenderer-horizontal-billboard.ts
  • e2e/case/particleRenderer-limitVelocity.ts
  • e2e/case/particleRenderer-noise.ts
  • e2e/case/particleRenderer-rateOverDistance.ts
  • e2e/case/particleRenderer-shape-mesh.ts
  • e2e/case/particleRenderer-shape-transform.ts
  • e2e/case/particleRenderer-sub-emitter.ts
  • e2e/case/particleRenderer-textureSheetAnimation.ts
  • e2e/case/physx-collision-group.ts
  • e2e/case/physx-collision.ts
  • e2e/case/physx-customUrl.ts
  • e2e/case/physx-deferred-contact.ts
  • e2e/case/physx-mesh-collider-data.ts
  • e2e/case/physx-mesh-collider.ts
  • e2e/case/primitive-capsule.ts
  • e2e/case/primitive-cone.ts
  • e2e/case/primitive-cuboid.ts
  • e2e/case/primitive-cylinder.ts
  • e2e/case/primitive-plane.ts
  • e2e/case/primitive-sphere.ts
  • e2e/case/primitive-torus.ts
  • e2e/case/shader-mrt.ts
  • e2e/case/shader-renderState.ts
  • e2e/case/shadow-basic.ts
  • e2e/case/shadow-transparent.ts
  • e2e/case/spriteMask-customStencil.ts
  • e2e/case/text-character-spacing.ts
  • e2e/case/text-typed.ts
  • e2e/case/texture-R8G8.ts
  • e2e/case/texture-hdr-ktx2.ts
  • e2e/case/texture-hdr.ts
  • e2e/case/texture-sRGB-KTX2.ts
  • e2e/case/trailRenderer-basic.ts
  • e2e/case/ui-batch-order.ts
  • examples/src/CSS-DOM.ts
  • examples/src/buffer-mesh-independent.ts
  • examples/src/buffer-mesh-instance.ts
  • examples/src/buffer-mesh-interleaved.ts
  • examples/src/device-restore.ts
  • examples/src/gltf-loader.ts
  • examples/src/gpu-instancing-auto-batch.ts
  • examples/src/gpu-instancing-custom-data.ts
  • examples/src/paricle-emit-mesh.ts
  • examples/src/project-loader.ts
  • examples/src/screenshot.ts
  • examples/src/shader-01-basic-shader.ts
  • examples/src/shader-02-render-state.ts
  • examples/src/shader-03-ui-script.ts
  • examples/src/shader-04-multi-pass.ts
  • examples/src/shader-05-advance.ts
  • examples/src/ui-batch-massive.ts
  • packages/core/src/Canvas.ts
  • packages/galacean/src/ShaderPool.ts
  • packages/galacean/src/index.ts
  • packages/rhi-webgl/src/WebCanvas.ts
  • packages/rhi-webgl/src/WebGLEngine.ts
  • packages/rhi-webgl/src/WebGLGraphicDevice.ts
  • tests/src/core/Camera.test.ts
  • tests/src/core/input/InputManager.test.ts
  • tests/src/rhi-webgl/WebCanvas.test.ts
  • tests/src/rhi-webgl/WebGLEngine.test.ts
  • tests/src/ui/Image.test.ts
  • tests/src/ui/Text.test.ts
  • tests/src/ui/UICanvas.test.ts
  • tests/src/ui/UIEvent.test.ts
  • tests/src/ui/UIGroup.test.ts
  • tests/src/ui/UIInteractive.test.ts
  • tests/src/ui/UITransform.test.ts
  • tests/vitest.config.ts
💤 Files with no reviewable changes (15)
  • examples/src/ui-batch-massive.ts
  • examples/src/CSS-DOM.ts
  • examples/src/screenshot.ts
  • examples/src/shader-02-render-state.ts
  • examples/src/buffer-mesh-independent.ts
  • examples/src/shader-05-advance.ts
  • examples/src/shader-04-multi-pass.ts
  • examples/src/gpu-instancing-custom-data.ts
  • examples/src/shader-01-basic-shader.ts
  • examples/src/gpu-instancing-auto-batch.ts
  • examples/src/gltf-loader.ts
  • examples/src/shader-03-ui-script.ts
  • examples/src/buffer-mesh-interleaved.ts
  • examples/src/project-loader.ts
  • examples/src/buffer-mesh-instance.ts

Comment thread examples/src/device-restore.ts Outdated
Comment thread packages/core/src/Canvas.ts Outdated
Comment thread packages/rhi-webgl/src/WebCanvas.ts Outdated
Comment thread packages/rhi-webgl/src/WebGLEngine.ts Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants