[Scummvm-tracker] [ScummVM :: Bugs] #15978: ASYLUM: Sanitarium always blits fullscreen rectangles

ScummVM :: Bugs trac at scummvm.org
Mon Apr 27 08:21:48 UTC 2026


#15978: ASYLUM: Sanitarium always blits fullscreen rectangles
------------------------+-----------------------------
Reporter:  mikrosk      |       Owner:  (none)
    Type:  defect       |      Status:  new
Priority:  normal       |   Component:  Engine: Asylum
 Version:               |  Resolution:
Keywords:  performance  |        Game:  Sanitarium
------------------------+-----------------------------
Comment (by mikrosk):

 I have briefly looked into this -- this is not a case of wrongly
 calculated dirty rects or something similar.

 Asylum's Scene::drawScene() (engines/asylum/views/scene.cpp:2517) runs on
 every screen-update tick and unconditionally re-blits the room background
 as its first action - Screen::draw(_ws->backgroundImage, 0, Point(-xLeft,
 -yTop), kDrawFlagNone, false) at scene.cpp:2531. With colorKey=false this
 resolves to a plain memcpy of the visible viewport into the back buffer,
 after which actors, objects and the cursor are drawn on top, and
 copyBackBufferToScreen() pushes the whole back buffer to
 OSystem::copyRectToScreen().

 A fix would need to change the drawing model (preserve the previous
 composited frame and only repaint the bbox of moved actors.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15978#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list