File tree Expand file tree Collapse file tree
apps/typegpu-docs/src/examples/common Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -130,7 +130,19 @@ export function setupOrbitCamera(
130130 'wheel' ,
131131 ( event : WheelEvent ) => {
132132 event . preventDefault ( ) ;
133- zoomCamera ( event . deltaY ) ;
133+ let delta = event . deltaY ;
134+ // Normalize deltaY across input devices (touchpad vs mouse wheel).
135+ // Mouse wheel (deltaMode LINE) reports ~3 per notch; convert to pixels.
136+ // Touchpad (deltaMode PIXEL) reports small values directly.
137+ if ( event . deltaMode === WheelEvent . DOM_DELTA_LINE ) {
138+ delta *= 16 ;
139+ } else if ( event . deltaMode === WheelEvent . DOM_DELTA_PAGE ) {
140+ delta *= canvas . clientHeight ;
141+ }
142+ // Clamp to prevent large jumps from discrete mouse wheel notches
143+ // (Chrome reports deltaMode PIXEL with ~100 per mouse wheel notch).
144+ delta = Math . sign ( delta ) * Math . min ( Math . abs ( delta ) , 60 ) ;
145+ zoomCamera ( delta ) ;
134146 } ,
135147 { passive : false } ,
136148 ) ;
You can’t perform that action at this time.
0 commit comments