mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-09-12 10:58:32 +00:00
refactor(h3d-carve-6): move N-section material builders to src/materials.js
Extract TXT_STYLES + 13 material builder functions (txtMat, pinchHarmonicMat,
naturalHarmonicMat, palmMuteXSpriteMat, fretHandMuteXSpriteMat, muteXMat,
triMat, bendChevronMat, darkenHex, slideArrowMat, _meshMatForGhostFretDigit,
_spriteMat2MeshMat) and pool() from screen.js N-section into:
plugins/highway_3d/src/materials.js (createMaterialBuilders factory)
screen.js drops ~600 lines (15302→14705).
Surprises vs plan §4:
• DI is 4 params { getT, getTxtCache, techMatCache, techMeshMatClones } not 1
• _syncOpenStringPitchLabels cluster excluded (20+ factory-scope deps)
• _techMatCache stays in screen.js factory scope for teardown .values()/.clear()
Beyond-subst (4):
1. Factory wrapper createMaterialBuilders({...})
2. T → const T = getT() inside each function body (live accessor)
3. txtCache[k] → const cache = getTxtCache(); cache[k]
4. _techMatCache/_techMeshMatClones → DI param names techMatCache/techMeshMatClones
Tests: 16 new class-killer tests in highway_3d_materials.test.js;
pool warm tests retargeted to src/materials.js; panel_controls stub added.
Full suite: 1246/1248 pass (2 pre-existing: network + nut-labels).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014uZ169yfoFYArXz962g7KW
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
733d772154
commit
e6b2f86068
@@ -104,6 +104,14 @@ function loadHighway3dStatics() {
|
||||
createBgControl: () => ({
|
||||
_pcAcquire() {}, _pcRelease() {},
|
||||
}),
|
||||
// h3d-carve-6: material builders moved to src/materials.js.
|
||||
createMaterialBuilders: () => ({
|
||||
txtMat() {}, pinchHarmonicMat() {}, naturalHarmonicMat() {},
|
||||
palmMuteXSpriteMat() {}, fretHandMuteXSpriteMat() {}, muteXMat() {},
|
||||
triMat() {}, bendChevronMat() {}, darkenHex: (hex) => hex, slideArrowMat() {},
|
||||
_meshMatForGhostFretDigit() {}, _spriteMat2MeshMat() {},
|
||||
pool: () => ({ get() {}, reset() {}, warm() { return this; } }),
|
||||
}),
|
||||
};
|
||||
vm.createContext(sandbox);
|
||||
vm.runInContext(instrumented, sandbox, { filename: SCREEN_JS });
|
||||
|
||||
Reference in New Issue
Block a user