Skip to content

Commit ac758ce

Browse files
fix: replace deprecated Clock with Timer
Port of mrdoob/three.js#32793. THREE.Clock has been deprecated in favor of THREE.Timer, which requires an explicit update() call before reading the delta. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f7fe1af commit ac758ce

2 files changed

Lines changed: 10 additions & 7 deletions

File tree

src/objects/Water2.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {
2-
Clock,
2+
Timer,
33
Color,
44
Matrix4,
55
Mesh,
@@ -190,7 +190,7 @@ const Water2 = /* @__PURE__ */ (() => {
190190
const cycle = 0.15 // a cycle of a flow map phase
191191
const halfCycle = cycle * 0.5
192192
const textureMatrix = new Matrix4()
193-
const clock = new Clock()
193+
const timer = new Timer()
194194

195195
// internal components
196196

@@ -278,7 +278,7 @@ const Water2 = /* @__PURE__ */ (() => {
278278
}
279279

280280
function updateFlow() {
281-
const delta = clock.getDelta()
281+
const delta = timer.getDelta()
282282
const config = scope.material.uniforms['config']
283283

284284
config.value.x += flowSpeed * delta // flowMapOffset0
@@ -299,6 +299,7 @@ const Water2 = /* @__PURE__ */ (() => {
299299
//
300300

301301
this.onBeforeRender = function (renderer, scene, camera) {
302+
timer.update()
302303
updateTextureMatrix(camera)
303304
updateFlow()
304305

src/postprocessing/EffectComposer.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Clock, LinearFilter, RGBAFormat, NoBlending, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three'
1+
import { Timer, LinearFilter, RGBAFormat, NoBlending, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three'
22
import { CopyShader } from '../shaders/CopyShader'
33
import { ShaderPass } from './ShaderPass'
44
import { MaskPass, ClearMaskPass } from './MaskPass'
@@ -16,7 +16,7 @@ class EffectComposer<TRenderTarget extends WebGLRenderTarget = WebGLRenderTarget
1616
public renderToScreen: boolean
1717
public passes: Pass[] = []
1818
public copyPass: Pass
19-
public clock: Clock
19+
public timer: Timer
2020

2121
constructor(renderer: WebGLRenderer, renderTarget?: TRenderTarget) {
2222
this.renderer = renderer
@@ -68,7 +68,7 @@ class EffectComposer<TRenderTarget extends WebGLRenderTarget = WebGLRenderTarget
6868
// @ts-ignore
6969
this.copyPass.material.blending = NoBlending
7070

71-
this.clock = new Clock()
71+
this.timer = new Timer()
7272
}
7373

7474
public swapBuffers(): void {
@@ -108,8 +108,10 @@ class EffectComposer<TRenderTarget extends WebGLRenderTarget = WebGLRenderTarget
108108
public render(deltaTime?: number): void {
109109
// deltaTime value is in seconds
110110

111+
this.timer.update()
112+
111113
if (deltaTime === undefined) {
112-
deltaTime = this.clock.getDelta()
114+
deltaTime = this.timer.getDelta()
113115
}
114116

115117
const currentRenderTarget = this.renderer.getRenderTarget()

0 commit comments

Comments
 (0)