A short week
Last week, I finished implementing the direct-copy mode for our Macintosh window
manager. Now, with the Director engine, there is no intermediate blitting onto a
screen
surface that is then copied to the physical screen. This restored
transition speed and avoided duplicate work on every frame. Here’s the opening
of Spaceship Warlock with the new interface and transitions:
For a while I was stuck on implementing border transparency without an
intermediate surface, but @sev helpfully reminded me of
g_system->lockScreen()
, which no longer has performance issues on some
systems.
I also looked at several long-standing bugs this week. As @djsrv probably noted,
in investigating one we discovered that the goto
Lingo should not run the
exitFrame
event. In the opening scene of Majestic, the two middle bitmap
text channels previously held the mouse-over highlighting for “Restore Old Game”
and “Exit” in the main menu. Clicking “Start New Game” went to the correct
place, but not before the main menu’s exitFrame
event disabled visibility of
those channels again. Now, though, everything looks right:
Tomorrow, it will be time to figure out why the cursor implementation I made doesn’t work with Majestic… and also why the bitmap cursor in Chop Suey still has a strange flashing behaviour.