v0.2.55
v0.2.55 — 연산방식 (CPU/GPU) 설정 추가
GPU 3 모드
- (
auto/high-performance/low-power): Three.js Canvas 의gl.powerPreference로 즉시 반영. Canvas 의key가 변경되어 remount → 새 WebGL 컨텍스트 생성.
CPU 모드
- (
cpu): Electronapp.disableHardwareAcceleration()호출. 반드시 ready 전에 호출되어야 하므로 userData/compute-mode.txt 에 영속 → 다음 부팅 시 main process 가 읽음 → 사용자에게 재시작 필요 안내.
CUDA
- 브라우저/Electron 컨텍스트 직접 지원 불가 (UI 에 명시).
구현 (5 단계)
- *1. settingsStore**
ComputeModetype +computeMode: ComputeMode필드 + DEFAULTS + save 포함.- *2. main process — userData 영속 + boot 시 적용**
- 신규
electron/utils/computeMode.ts: readComputeModeAtBoot(getPath)— userData/compute-mode.txt 읽음. invalid 면 'auto' fallback.saveComputeMode(getPath, mode)— atomic write (tmp → rename).electron/main.ts: 모든 import 이후, app.whenReady 전에readComputeModeAtBoot호출 → 'cpu' 면 즉시app.disableHardwareAcceleration().- *3. IPC 채널 —
system:setComputeMode** handlers.ts:IPC.setComputeMode추가, handler 가saveComputeMode호출.preload.ts:viewwork.setComputeMode({ mode })노출.- *4. Canvas powerPreference 적용**
Scene3D.tsx:gl.powerPreferencehardcoded 'high-performance' →webglPowerPref동적. Canvaskey={theme}→key={theme-webglPowerPref}로 remount 트리거.WebGLGraph2D.tsx: 동일 패턴 적용. 이전엔 powerPreference 없었음 → 신규 추가 + key remount.- *5. UI — SettingsModal Performance 탭**
- 신규 "연산방식 (그래픽 가속)" Section + 4개 radio 옵션. 각 옵션에 label + 설명 + selected 시 accent border.
- onChange:
setSetting({ computeMode })+ IPCsetComputeMode호출 (영속). - 안내 문구: GPU 모드는 즉시 반영, CPU 모드는 재시작 필요, CUDA 미지원.
변경 파일
src/store/settingsStore.ts— type + field + DEFAULTS + save.electron/utils/computeMode.ts(신규) — read/save 헬퍼.electron/main.ts— boot 시 read + disableHardwareAcceleration.electron/ipc/handlers.ts— IPC.setComputeMode + handler + dispose.electron/preload.ts— IPC 정의 + API expose.src/components/Visualizer3D/Scene3D.tsx— gl.powerPreference 동적 + key remount.src/components/Visualizer2D/WebGLGraph2D.tsx— 동일 패턴.src/components/Layout/SettingsModal.tsx— Performance 탭 UI.package.json0.2.54 → 0.2.55.
검증
npx tsc --noEmitexit=0npm run build성공 — renderer 10.12s, 번들 3,466.06 kB.
사용자 확인
- 설정 → 성능 탭 → "연산방식 (그래픽 가속)" 섹션에서 4 옵션 중 선택.
- GPU 모드 변경 → Canvas remount → 새 powerPreference 반영 (즉시).
- CPU 모드 → 재시작 후
[ViewWork] compute-mode = cpu → hardware acceleration disabled로그 확인. - 모든 설정은 localStorage + userData/compute-mode.txt 양쪽에 영속.
- --
📦 GitHub 릴리스 노트: v0.2.55