Adjust the mode-switching code to provide smoother transitions.

This leaves the SHR screen active throughout the mode switch.
This commit is contained in:
Stephen Heumann 2016-09-28 23:22:16 -05:00
parent 26037d8c62
commit a11e065a35
2 changed files with 8 additions and 6 deletions

View File

@ -124,16 +124,18 @@ static void ChangeResolution(int rez) {
return; /* Already in right mode, so don't change things */
}
/* Perform the basic procedure described in IIgs TN #4 */
/* Perform the basic procedure described in IIgs TN #4,
* with some adjustments to provide a smoother transition.
*/
CloseAllNDAs();
QDAuxShutDown();
SetMasterSCB(masterSCB | 0x100); /* To leave SHR screen active */
QDShutDown();
if (dpSpace == NULL)
dpSpace = NewHandle(0x0300, userid(),
attrLocked|attrFixed|attrNoCross|attrBank, 0x00000000);
QDStartUp((Word) *dpSpace, (rez == 640) ? 0xC087 : 0xC000, 0, userid());
QDStartUp((Word) *dpSpace, (rez == 640) ? 0xC187 : 0xC100, 0, userid());
/* SCB 0x87 gives 640 mode with our custom gray palette */
GrafOff();
QDAuxStartUp();
ClampMouse(0, (rez == 640) ? 639 : 319, 0, 199);
HomeMouse();
@ -143,7 +145,6 @@ static void ChangeResolution(int rez) {
MenuNewRes();
CtlNewRes();
RefreshDesktop(NULL);
GrafOn();
/* Position new connection window at default location for new mode */
if (rez == 320) {

View File

@ -124,13 +124,14 @@ void DoConnect (void) {
SysBeep();
goto errorReturn;
}
CloseConnectStatusWindow();
DoClose(newConnWindow);
InitVNCWindow();
CloseConnectStatusWindow();
InitCursor();
DoClose(newConnWindow);
DisableMItem(fileNewConnection);
myEvent.wmTaskMask = 0x001D79FE; /* don't let TaskMaster process keys */