()
| 136 | if (!options.autoInit) return; |
| 137 | |
| 138 | const init = async () => { |
| 139 | try { |
| 140 | // Initialize engine with primary canvas (first viewport) |
| 141 | await initializeEngine(options.canvasId); |
| 142 | setState((prev) => ({ ...prev, initialized: true, error: null })); |
| 143 | |
| 144 | // Register this viewport |
| 145 | if (!viewportRegisteredRef.current) { |
| 146 | engineRef.current.registerViewport(options.viewportId, options.canvasId); |
| 147 | engineRef.current.setViewportConfig( |
| 148 | options.viewportId, |
| 149 | options.showGrid ?? true, |
| 150 | options.showGizmos ?? true |
| 151 | ); |
| 152 | viewportRegisteredRef.current = true; |
| 153 | } |
| 154 | |
| 155 | // Start stats update interval |
| 156 | if (!statsIntervalRef.current) { |
| 157 | statsIntervalRef.current = window.setInterval(() => { |
| 158 | const stats = engineRef.current.getStats(); |
| 159 | setState((prev) => ({ |
| 160 | ...prev, |
| 161 | fps: stats.fps, |
| 162 | drawCalls: stats.drawCalls, |
| 163 | spriteCount: stats.spriteCount |
| 164 | })); |
| 165 | }, 100); |
| 166 | } |
| 167 | } catch (error) { |
| 168 | console.error('Failed to initialize engine | 引擎初始化失败:', error); |
| 169 | setState((prev) => ({ |
| 170 | ...prev, |
| 171 | error: error instanceof Error ? error.message : String(error) |
| 172 | })); |
| 173 | } |
| 174 | }; |
| 175 | |
| 176 | init(); |
| 177 |
no test coverage detected