ddd
This commit is contained in:
parent
0a343ecbc5
commit
c3a6f5ff37
80 changed files with 2512 additions and 1625 deletions
|
|
@ -1,14 +1,16 @@
|
|||
'use strict';
|
||||
const {assert,functionSource,app,css}=require('./helpers/app-source');
|
||||
const {assert,functionSource,app,css,buildMeta}=require('./helpers/app-source');
|
||||
const fs=require('fs'),path=require('path'),frameScheduler=fs.readFileSync(path.join(__dirname,'../client/input/frame-scheduler.js'),'utf8');
|
||||
for(const name of ['scheduleBoardDragFrame','queueCameraInteraction','scheduleWorldOverview','schedulePresenceRender','scheduleReactionRender']){
|
||||
const source=functionSource(name);
|
||||
if(name==='queueCameraInteraction')assert(source.includes('CAMERA_DISPLAY_WATCHDOG_MS')&&source.includes('cancelAnimationFrame')&&source.includes('clearTimeout'),'Camera missed-vsync fallback does not cancel its paired scheduler');
|
||||
else if(name==='scheduleBoardDragFrame')assert(source.includes('DRAG_DISPLAY_WATCHDOG_MS')&&source.includes('cancelAnimationFrame')&&source.includes('clearTimeout'),'Pickup missed-vsync fallback does not cancel its paired scheduler');
|
||||
if(name==='queueCameraInteraction')assert(source.includes('cameraInteractionScheduler.push')&&frameScheduler.includes('clearArmed()'),'Camera missed-vsync fallback does not cancel its paired scheduler');
|
||||
else if(name==='scheduleBoardDragFrame')assert(source.includes('requestFrame')&&frameScheduler.includes('clearArmed()'),'Pickup missed-vsync fallback does not cancel its paired scheduler');
|
||||
else if(name!=='scheduleWorldOverview')assert(!source.includes('setTimeout('),`${name} still double-throttles through setTimeout plus requestAnimationFrame`);
|
||||
assert(source.includes('requestAnimationFrame'),`${name} must remain frame-synchronized`);
|
||||
if(name==='scheduleBoardDragFrame'||name==='queueCameraInteraction')assert(frameScheduler.includes('requestFrame(step)'),`${name} must use the shared frame-synchronized lane`);
|
||||
else assert(source.includes('requestAnimationFrame'),`${name} must remain frame-synchronized`);
|
||||
}
|
||||
const minimap=functionSource('scheduleMinimap');
|
||||
assert(minimap.includes("classList?.contains?.('is-interacting')"),'Minimap must not repaint during an active gesture');
|
||||
assert(minimap.includes("interactionActive('overview')"),'Minimap must not repaint during an active gesture');
|
||||
const overview=functionSource('drawWorldOverview');
|
||||
assert(functionSource('positionCachedWorldOverview').includes('overviewCanvas.style.transform'),'Overview panning must move the cached bitmap as a compositor layer');
|
||||
assert(functionSource('scheduleWorldOverview').includes('requestIdleCallback'),'Overview cache rebuilds must be deferred to idle time');
|
||||
|
|
@ -18,8 +20,8 @@ const camera=functionSource('applyCamera');
|
|||
assert(camera.includes('translate3d('),'Nearby field panning must use a compositor transform');
|
||||
assert(camera.includes('shiftOnlineLayersForCamera'),'Online canvases must move without full repaint during camera gestures');
|
||||
assert(camera.includes('minimapDirty=true'),'Camera movement must mark, not immediately repaint, the minimap');
|
||||
assert(functionSource('boardPlayHudVisible').includes('hudBoardId===b?.id'),'Selected-board HUD persistence changed unexpectedly');
|
||||
assert(css.includes('#viewport.panning::after{display:none}'),'Full-screen vignette must be suppressed while panning');
|
||||
assert(functionSource('boardPlayHudVisible').includes('hudBoardId===b?.id')&&functionSource('activateBoardPointerDrag').includes('activateBoardHud(b)'),'Persistent manipulated-board HUD gating changed unexpectedly');
|
||||
assert(!css.includes('#viewport.panning::after{display:none}')&&!css.includes('#world.camera-interacting'),'Panning still activates an automatic lightweight visual mode');
|
||||
assert(css.includes('#presenceCanvas,#reactionCanvas{transform-origin:0 0'),'Online canvases are not compositor-ready');
|
||||
assert(app.includes("const APP_VERSION='47.77'"),'Application version was not advanced');
|
||||
console.log('v47.77 compositor frame-pipeline regression test passed');
|
||||
assert(buildMeta.APP_VERSION==='47.83','Application version was not advanced');
|
||||
console.log('v47.83 compositor frame-pipeline regression test passed');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue