\r\n \u003CTresCanvas v-bind=\"gl\">\r\n \u003CTresPerspectiveCamera :position=\"[5, 5, 5]\" />\r\n \u003CCameraControls\r\n v-bind=\"controlsState\"\r\n ref=\"controlsRef\"\r\n :make-default=\"makeDefault\"\r\n @change=\"onChange\"\r\n @start=\"onStart\"\r\n @end=\"onEnd\"\r\n />\r\n \r\n```\r\n \r\n \r\nThat means every time these emits would be expected to fire once, they're fired 100 times:\r\n\r\n```\r\nfunction addEventListeners() {\r\n useEventListener(controlsRef.value as any, 'update', () => {\r\n emit('change', controlsRef.value)\r\n invalidateOnDemand()\r\n })\r\n useEventListener(controlsRef.value as any, 'controlend', () => emit('end', controlsRef.value))\r\n useEventListener(controlsRef.value as any, 'controlstart', () => emit('start', controlsRef.value))\r\n}\r\n```\r\n\r\nThe problem is the anonymous functions:\r\n\r\nNote: If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an addEventListener call, the second function will also be added to the list of event listeners for that target.\r\n\r\nIndeed, anonymous functions are not identical even if defined using the same unchanging source-code called repeatedly, even if in a loop.\r\n\r\nRepeatedly defining the same unnamed function in such cases can be problematic. (See Memory issues, below.)\r\n\r\nhttps://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\nMDN Web Docs\r\n[EventTarget: addEventListener() method - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)\r\nThe addEventListener() method of the EventTarget interface\r\nsets up a function that will be called whenever the specified event is delivered to the target.\r\n\r\n### Reproduction\r\n\r\nN/A\r\n\r\n### Steps to reproduce\r\n\r\n_No response_\r\n\r\n### System Info\r\n\r\n_No response_\r\n\r\n### Used Package Manager\r\n\r\nnpm\r\n\r\n### Code of Conduct\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/Tresjs/cientos/issues) that reports the same bug to avoid creating a duplicate.\r\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[2906,2909],{"name":2907,"color":2908},"bug","d73a4a",{"name":2910,"color":2911},"p3-minor-bug","F28C37",457,"useEventListener bug in controls","2024-07-24T06:42:25Z","https://github.com/Tresjs/cientos/issues/457",0.73851895,{"description":2918,"labels":2919,"number":2923,"owner":2863,"repository":2924,"state":2865,"title":2925,"updated_at":2926,"url":2927,"score":2928},"Atm the docs don't have search functionality, as we grow on features, it's important to have it\n\nhttps://vitepress.dev/reference/default-theme-search",[2920],{"name":2921,"color":2922},"docs","0075ca",152,"tres","Add Algolia Search to docs","2024-03-28T11:19:27Z","https://github.com/Tresjs/tres/issues/152",0.74132097,{"description":2930,"labels":2931,"number":2935,"owner":2863,"repository":2936,"state":2865,"title":2937,"updated_at":2938,"url":2939,"score":2940},"Inspiration \r\n\r\nhttps://codepen.io/prisoner849/pen/poNXPyv\r\n\r\n\r\n",[2932],{"name":2933,"color":2934},"demo","CAC7AC",84,"lab","Light Bloom example","2023-12-15T13:49:28Z","https://github.com/Tresjs/lab/issues/84",0.7474343,{"description":2942,"labels":2943,"number":2949,"owner":2863,"repository":2924,"state":2865,"title":2950,"updated_at":2951,"url":2952,"score":2953},"### Description\n\nWebGPU [Three.js r171](https://github.com/mrdoob/three.js/releases) has been released and it’s a major milestone for WebGPU integration with third-party libraries such as React Three Fiber and bundlers like Vite or Next.js. We can now do this with zero configuration:\r\n\r\nThree.js Vanilla Three.js\r\n\r\n```ts\r\nimport * as THREE from 'three'\r\nimport { WebGPURenderer } from 'three/webgpu'\r\n \r\nconst renderer = new WebGPURenderer()\r\n```\r\n\r\nR3F\r\n\r\n```ts\r\nimport { Canvas } from '@react-three/fiber'\r\nimport { WebGPURenderer } from 'three/webgpu'\r\n \r\n\u003CCanvas gl={canvas => new WebGPURenderer({ canvas })}>\r\n```\n\n### Suggested solution\n\nEnable a `renderer` prop to override the renderer, restricted to canvas-based WebGL/WebGPU renderers.\r\n\r\n```vue\r\n\u003Cscript setup>\r\nimport { WebGPURenderer } from 'three/webgpu'\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n \u003CTresCanvas :renderer=\"WebGPURenderer\" />\r\n\u003C/template>\r\n```\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[2944,2945,2946],{"name":2857,"color":2858},{"name":2860,"color":2861},{"name":2947,"color":2948},"v5","EFC959",883,"WebGPU support","2025-02-06T09:35:42Z","https://github.com/Tresjs/tres/issues/883",0.7500927,{"description":2955,"labels":2956,"number":2957,"owner":2863,"repository":2864,"state":2865,"title":2958,"updated_at":2959,"url":2960,"score":2961},"### Describe the bug\n\nFollow up for this [Discussion](https://github.com/orgs/Tresjs/discussions/755).\r\n\r\ntl;dr: I tried extending Trackball Controls according to the documentation for extending Orbit Controls, however it didn't work. Confirmed to be a bug with Cientos, so I made this issue.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/tresjs-minimal-reproduction-vev5jt?file=src%2Fcomponents%2FTheExperience.vue\n\n### Steps to reproduce\n\nExtend trackball controls like how you would with orbit controls as mentioned in the TresJS docs\n\n### System Info\n\n```shell\nSystem:\r\n OS: Linux 5.0 undefined\r\n CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz\r\n Memory: 0 Bytes / 0 Bytes\r\n Shell: 1.0 - /bin/jsh\r\n Binaries:\r\n Node: 18.20.3 - /usr/local/bin/node\r\n Yarn: 1.22.19 - /usr/local/bin/yarn\r\n npm: 10.2.3 - /usr/local/bin/npm\r\n pnpm: 8.15.6 - /usr/local/bin/pnpm\r\n npmPackages:\r\n @tresjs/cientos: 3.9.0 => 3.9.0 \r\n @tresjs/core: 4.0.2 => 4.0.2 \r\n vite: ^5.3.2 => 5.3.2\n```\n\n\n### Used Package Manager\n\npnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/Tresjs/cientos/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],453,"Trackball Controls not extending properly","2024-09-03T13:00:59Z","https://github.com/Tresjs/cientos/issues/453",0.7584798,{"description":2963,"labels":2964,"number":2967,"owner":2863,"repository":2864,"state":2865,"title":2968,"updated_at":2969,"url":2970,"score":2971},"### Description\r\n\r\nAs a dev using TresJS, I would like to have an abstraction for [Drag Controls](https://threejs.org/docs/#examples/en/controls/DragControls)\r\n\r\n\r\n\r\n### Suggested solution\r\n\r\nSimilar to https://github.com/pmndrs/drei?tab=readme-ov-file#dragcontrols\r\nhttps://threejs.org/examples/?q=drag#misc_controls_drag\r\n\r\n\r\n### Alternative\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/cientos/issues) that reports the same bug to avoid creating a duplicate.",[2965,2966],{"name":2857,"color":2858},{"name":2860,"color":2861},455,"Drag Controls","2024-11-27T10:47:00Z","https://github.com/Tresjs/cientos/issues/455",0.758485,{"description":2973,"labels":2974,"number":2982,"owner":2863,"repository":2936,"state":2865,"title":2983,"updated_at":2984,"url":2985,"score":2986},"Inspire on https://madewithvuejs.com/",[2975,2976,2979],{"name":2933,"color":2934},{"name":2977,"color":2978},"showcase","FBF307",{"name":2980,"color":2981},"v4","A0E697",88,"Add option for external showcases","2024-01-04T17:02:27Z","https://github.com/Tresjs/lab/issues/88",0.76026464,["Reactive",2988],{},["Set"],["ShallowReactive",2991],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fkB0xW2qE2gl8-18XW-UopBkoZSz1jLpk6JavQOKQ54M":-1},"/Tresjs/tres/542"]