# # File: DisplayMgr Release Notes # # Contains: xxx put contents here xxx # # Written by: xxx put writers here xxx # # Copyright: © 1993 by Apple Computer, Inc., all rights reserved. # # Change History (most recent first): # # <1> 3/25/93 IH first checked in # # DisplayMgr Release Notes First created on: 2/23/93 9:54:35 AM ----------------------------------------------------------•---------------------------------------------------------- 2/23/93 9:54:41 AM File: Displays.a,1 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Traps.a,83 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,1 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: Traps.h,19 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: SysPrivateEqu.a,72 Owner: Ian Hendry Project: MainProj∫Internal∫Asm∫ File: DisplaysPriv.h,1 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: ExpandMemPriv.h,55 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: BBSStartup,152 Owner: Ian Hendry Project: MainProj∫Make∫ File: Build,283 Owner: Ian Hendry Project: MainProj∫Make∫ File: SysObj.Make,503 Owner: Ian Hendry Project: MainProj∫Make∫ File: DisplayComponents.h,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.a,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: First Check in of Display Manager Files. The code is linked in and loaded via linked patch, but it is not called yet. > What was tested: Built system, made sure it booted. Played with system for a while. ----------------------------------------------------------•---------------------------------------------------------- 2/25/93 11:41:30 PM File: Displays.a,2 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,2 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: SysPrivateEqu.a,74 Owner: Ian Hendry Project: MainProj∫Internal∫Asm∫ File: DisplaysPriv.h,2 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: ExpandMemPriv.h,58 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: DisplayMgr.a,2 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,2 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Changed to reintegrate with ThinkC project. Cleaned up headers (removed unused data structures) and made code compatable with INIT version. > What was tested: Built and played with a system with and without init version running. ----------------------------------------------------------•---------------------------------------------------------- 3/1/93 7:18:59 PM File: BuildDisplayMgrInit,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrExtension.r,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: StartDisplayMgr.a,1 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Checked in files to build the display manager as a stand along linked patch init. The basic build instructions are as follows: # build the code for the system extension Build System -p -woInterface -init DisplayMgrINIT “DisplayMgr.o” ∑∑ “{Worksheet}” # add other resources to the extension “{DisplayMgr}BuildDisplayMgrInit” ∑∑ “{Worksheet}” The linked patch extension is “{sources}BuildResults:System:Display Manager” > What was tested: Build and tested. Linked patch installed correctly and is called. System builds and runs. ----------------------------------------------------------•---------------------------------------------------------- 3/5/93 4:04:04 PM File: Displays.a,3 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,3 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,1 Owner: Ian Hendry Project: MainProj∫Internal∫Asm∫ File: DisplaysPriv.h,3 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: BuildDisplayMgrInit,2 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.a,3 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrExtension.r,2 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Rolled in 2 QuickDraw patches and made more compatable with UltraDesk debugging override. There is still work to be done. I will be starting work on a modified monitors to move monitors on the fly. I may want to add patch to the PaintBehind too. Cleaned up the build. Changed suggested build line in “BuildDisplayMgrInit” Rearranged headers a little. Added “DisplaysPriv.a”. I will migrate more stuff to Private headers as time goes on. Open Issue: If I roll some changes into SuperMario ROMs, how do I use the linked patch mechanism to patch Cyclone (Mac III) ROMs but not PDM ROMs? > What was tested: Built and tried out with UltraDesk application. ----------------------------------------------------------•---------------------------------------------------------- 3/17/93 5:43:11 PM File: Displays.a,4 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,4 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,2 Owner: Ian Hendry Project: MainProj∫Internal∫Asm∫ File: DisplaysPriv.h,4 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: 'DisplayMgr ToDo,2' Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.a,8 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,3 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: • Add Pascal header file Displays.p. This file is just a shell and needs to be filled out with all the Display Manager calls. • Add ToDo file for Display Manager • Build a version of monitors control panel that moves monitors on the fly. • Changed many selectors. I moved many private calls into DisplaysPriv.h and DisplaysPriv.a as per Dean Yu’s suggestion. This will insure that the calls remain private. > What was tested: Build Extension and System versions. Both work. Called code from Monitors control panel and that worked. I need to test on a classic QD machine. ----------------------------------------------------------•---------------------------------------------------------- 3/24/93 1:51:51 AM File: Displays.a,5 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,5 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.h,5 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: 'DisplayMgr ToDo,3' Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.a,9 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,4 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Engineer: Ian Hendry 4-4737 (pager 322-7950) ------------------------- Build Instructions ------------------------- # To build a Reality System with Display Manager BBS installed: {Make}Build System -p -macsbugSymbols full ∑∑ “{Worksheet}” # To build a SuperMario ROM with Display Manager BBS installed: -- FILL THIS IN # To build a PsychicTV Gibbly with Display Manager: -- FILL THIS IN # To build a Reality System linked-patch Extension with Display Manager: {Make}Build System -p -macsbugSymbols full -init DisplayMgrINIT “DisplayMgr.o” “{Worksheet}” ; “{DisplayMgr}BuildDisplayMgrInit” ∑∑ “{Worksheet}” # To build a Reality System Process Manager Extension (see notes below): {Make}Build System ProcessMgrINIT -nolink -p -macsbugSymbols full ∑∑ “{Worksheet}” ------------------------- RELEASE NOTES ------------------------- I did not (yet) build with absolutely the latest sources. I will be doing an update and I will test this tomorrow. I am trying to produce better release notes. Any suggestions, please let me know (QM is best). You should also check the file “Display Manager ToDo” for addtional information (most of it is notes to myself, but some stuff may be interesting). Integrated Display Manager into Monitors control panel. Monitors can now move monitors, and move the menu bar without rebooting!!! You will need the latest Monitors that should be released in PyschicTV d6 (or get it from me directly) The PyschicTV d6 release needs extensive testing. Some calls are still not implemented correctly and some parameters will continue to change, but most of the underlying application compatibility issues should come out of this release. For example MPW window move incorrectly and my MPW Shell (?3.3a14?) notes that it got unknown appleevents. Display Manager now depends on process manager features NOT present in 7.1 (IPC calls). You must use a process manager init with the IPC calls in order to make any calls that depend on IPC under 7.1. At this time the process manager init is broken except on supermario ROMs (because a CheckResource patch was move to resource manager for supermario and is not built in the process manager init -- the patch is only present in supermario machines). ------------------------- TEST SUGGESTIONS ------------------------- Any changes to the main device force me to hammer ports and sometimes devices as well. The most involved change is setting the main device to a different display. Changing the menu bar forces me to walk the port list hammering ports, it forces me to change the cursor and it forces me to recalc the menu bar and set theGDevice in all applications. Check color cursors Test with background only applications running. Background Apps have no menu bars so I should not be calling _CalcMenuBar in any background applications. Right now I check if WWExists. An alternate stratgy would be to GetProcessInfo and check there (before the IPC call). What happens with the TSM application? Test with applications that are likely to pay careful attention to graphics such as: Paint programs (PhotoShop, MacPaint, MacCheese, etc) HyperCard Games Draw programs (Illustrator, Freehand, MacDraw, etc) ------------------------- CHANGES BY FILE ------------------------- FILE -- DisplaysPriv.h Added DMSetMainDisplay and RecalcMenuBar calls. FILE -- DisplayMgr.a Added and commented out DrawMenuBar patch to call RecalcMenuBar. This was my crack at making sure that the menu bar was recalculated for all applications. I changed this to a process manager IPC call. Added RecalcMenuBar call which calls _CalcMenuBar. If _CalcMenuBar is not available, then I call the MBDF directly. When we are guaranteed that _CalcMenuBar will be available, then I should make the MBDF call conditional to the INITVERSION Corrected some cut-and-paste name errors. Added selector for DMSetMainDisplay FILE -- DisplayMgr.c Changed update parameters to do more in device manipulation calls (DMAddDisplay etc) Added commented ideas for more palette-manager-friendly code changes in the future. Made DMSetMainDevice into a trap call (rather than in internal routine). Made changes and fixes. It seems to work fairly well now. I added quite a few comments to my code that plays with the ports. The only known problem is I cannot tell if a port is really a window and I may incorrectly handle windows that are exactly the size and position to cover the main device (games?). I can be more conservative if I have to (see comments in code). Added Process Manager IPC code to set the gdevices in all processes when the main device changes. Fixed DM_RedrawAll to calc regions so windows are currectly updated. I am still working on this stuff do find out exactly what I need to do. Cleaned out unused defines and changed #includes at top of file to be the standard format. FILE -- Displays.h Added DMSetMainDisplay call. FILE -- Displays.a Added macros for some display manager calls (including DMSetMainDisplay) > What was tested: Build System and tested using new version of monitors. I was able to move monitors around and change the menu bar monitor without rebooting. Offscreen windows came back onscreen. I traced the IPC call to FileShare (a background only app) and noted that I did not attempt to recalc the menu bar in this applicaiton. I tried changing menubar monitors at various combinations of depths (esp direct to indexed). All seemed to work. ----------------------------------------------------------•---------------------------------------------------------- 3/24/93 8:24:22 PM File: DisplayMgr.c,5 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Fix reentrancy problem in Desktop drawing code. I will need to conditionalize it for when there is no FIllRgn/FillCRgn patches (ie in ROM). > What was tested: Build System and verified that it no longer screwed up desk drawing. ----------------------------------------------------------•---------------------------------------------------------- 3/25/93 9:07:13 PM File: BuildDisplayMgrInit,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayComponents.h,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: 'DisplayMgr Release Notes,1' Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: 'DisplayMgr ToDo,1' Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.a,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrExtension.r,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: StartDisplayMgr.a,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Check in Display Manager > What was tested: Not in build scripts but builds under reality. ----------------------------------------------------------•---------------------------------------------------------- 3/31/93 5:01:21 PM File: DisplaysPriv.a,2 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: MenuMgrPriv.a,2 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,2 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: MenuMgrPriv.h,4 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: MainCode.Make,4 Owner: Ian Hendry Project: SuperMarioProj∫Make∫ File: RISC.make,23 Owner: Ian Hendry Project: SuperMarioProj∫Make∫ File: Universal.make,11 Owner: Ian Hendry Project: SuperMarioProj∫Make∫ File: DisplayMgr.c,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: Toolbox.make,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫ File: WindowMgr.a,27 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫WindowMgr∫ Radar bug: > Release notes for this change: Check in Display Manager to build. Check in fix to have standardequates build follow the FastROMTraps automatically (Script CreateStdEquAOptions parses the feature set to determine how to set the Standard equates flags). I added this to only to Universal.Make and RISC.make. Display Manager is included in RISC builds and available on Universal Builds. > What was tested: Did full builds of Universal and PDM. ----------------------------------------------------------•---------------------------------------------------------- 3/31/93 5:52:57 PM File: DispTable.a,44 Owner: Ian Hendry Project: SuperMarioProj∫OS∫ File: DisplayMgr.a,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Set Display Manager Trap in DispTable.a (conditional with hasDisplayMgr). Forgot to check in DisplayMgr.a with last checkin. > What was tested: Build RISC and Universal ROMs with hasDisplayMgr true and false. Tested Universal ROMs. All seems well. ----------------------------------------------------------•---------------------------------------------------------- 4/8/93 7:38:52 PM File: DisplayMgr.a,3 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,4 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.make,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,1 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: This version of Display Manager supports resolution flipping, moving monitors and moving the menu bar! Requires at Monitors Control panel at least “PsychicTV 1.0d6c1” and a video driver that support the switchMode control call. Created a new file DisplayMgrUtils.c to put utility calls in. DisplayMgr.c was getting a little long. Now on to alpha?!! > What was tested: Built and tested on PDM (only video driver to date that has the new switchmode control call). Tested switching to a new mode when current depth are not available in new mode. I do not have a multi-monitor system at the moment, so I may have broken moving monitors on the fly or moving the menu bar on the fly. ----------------------------------------------------------•---------------------------------------------------------- 5/28/93 4:07:36 PM File: Displays.a,3 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: Displays.h,3 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,3 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,4 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,4 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,5 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1081805,1086363 > Release notes for this change: Pre-alpha freeze check-in. This code fixes the 1081805,1086363 and a number of unreported bugs that I found while preparing for alpha. I fixed some patches that run on 68K machines. Several selectors have moved to the private range and so I reordered the public ones. In order to not confuse older version of finder and monitors, the gestalt selector for display manager has changed from ‘udsk’ to ‘dply’. That way new code doesn’t see old code and old code doesn’t see new. There was a persistent multiple monitor bug that would (if you worked at it) crash your system. It depended on moving displays and then waving the cursor as the display manager rearranged the displays. I think I have this fixed, but I will keep an eye on it. I also changed the interfaces a little to simplify walking ALL display (including inactive ones). > What was tested: I have been building and testing with this code for some time. I spend yesterday and today really hammering on it on both 68K and PDM machines. It seems to be holding up well, but I will be continuing my testing and bug fixes. ----------------------------------------------------------•---------------------------------------------------------- 6/1/93 4:38:51 PM File: DisplayMgr.c,7 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.make,3 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,3 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Alpha code checkin. This checkin is the first alpha candidate for PDM display manager. Some functionality does not work in all cases but, given the limitations of PDM video, it works for the basic cases available on PDM. > What was tested: Tested on PDM (was unable to test multi monitor code with my test build, but I did not change that code). Used monitors to switch modes and everything looked good. ----------------------------------------------------------•---------------------------------------------------------- 6/22/93 2:54:45 AM File: SonoraDeclVideo.r,11 Owner: Ian Hendry Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫ File: SonoraDriver.a,14 Owner: Ian Hendry Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫ File: Video.h,4 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.h,6 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,6 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,8 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,4 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Checkin for PDM A2 engineering build on 6/22/93. ROM timing tables now working. I will still need to finalize the contents of the tables with the results of a 6/23 meeting. Display modes can be flagged as “doesn’t need confirmation”. Monitors does not ask the user to verify mode switches to those “safe” modes. Driver can also return information about the connection including that ALL modes are safe. This is for devices that KNOW that all the modes are safe. Saves changing decl ROMs to include a table of timings. I expect the portables to use this feature for 640x400 mode switches. Also (hopefully) fixed pesky, occasional cursor-crash on mode switches. Fix not required for alpha. Down side to this fix is that the cursor is reset (0, 0) on mode switches. I will need to figure out exactly what is going on here. > What was tested: Built ROM and tested on PDM. Mode switches to 13” & 16” modes don’t require confirmation. Switches to VGA and 12” modes do. Tested that “all modes safe” flag works. Tried and failed to reproduce cursor crash. I now know that the mouse position is outside of the pinrect at the time the cursor is drawn. ----------------------------------------------------------•---------------------------------------------------------- 6/25/93 9:42:42 AM File: SonoraDriver.a,15 Owner: Ian Hendry Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫ File: Displays.a,5 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: Displays.h,5 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,5 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,7 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.c,9 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Changed DMAddDisplay to add device to devicelist and DMRemoveDisplay to remove device from devicelist. Added some new calls to support DMAddDisplay, DMRemoveDisplay and smart monitors (see header and forthcoming ERS). Changed the display manager to clear get connection and get timing calls (rather than the driver). This was Mike Puckett’s suggestion. It makes it so if you add fields, old drivers don’t set only some of the fields. > What was tested: Build and tested ROM on PDM. Mode switching still worked. I to work with Max to be sure that DMAddDisplay and DMRemoveDisplay work. ----------------------------------------------------------•---------------------------------------------------------- 6/25/93 11:58:49 AM File: DisplayMgr.c,10 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,5 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Changing initialization of driver caused some information to be cleared. Causes monitors to always ask for confirmation. I also noted that my declRom look up always seemed to work even though I was doing it wrong.... so I fixed it. > What was tested: Built ROM and tested on PDM. Mode switches no longer require confirmation. ----------------------------------------------------------•---------------------------------------------------------- 7/2/93 4:51:24 PM File: GestaltEqu.h,15 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DepVideoEqu.a,47 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: PPCInit.c,6 Owner: Ian Hendry Project: SuperMarioProj∫OS∫PPC∫ File: InitItt.c,19 Owner: Ian Hendry Project: SuperMarioProj∫OS∫SCSIMgr4pt3∫ File: ThingManager.c,14 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫ComponentMgr∫ File: ThingManagerDisp.a,4 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫ComponentMgr∫ File: ThingManagerDispatcher.a,3 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫ComponentMgr∫ File: DisplayMgr.c,11 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: > Release notes for this change: Reality update: Fix gestalt calls to use new prototype (not code change just type declarations). Partially updated gestalt header file (except I did not move the error declarations that should probably be in Errors.h and I did not change the formatting differences). > What was tested: Build and tested. Found one technically incorrect declaration (but implemented correctly in assmbler. Other than that everything seems to work fine. ----------------------------------------------------------•---------------------------------------------------------- 8/4/93 12:10:45 PM File: Displays.a,8 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: GestaltEqu.a,72 Owner: Ian Hendry Project: MainProj∫Interfaces∫AIncludes∫ File: Displays.h,10 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: GestaltEqu.h,84 Owner: Ian Hendry Project: MainProj∫Interfaces∫CIncludes∫ File: GestaltEqu.p,69 Owner: Ian Hendry Project: MainProj∫Interfaces∫PInterfaces∫ File: DisplaysPriv.a,7 Owner: Ian Hendry Project: MainProj∫Internal∫Asm∫ File: DisplaysPriv.h,11 Owner: Ian Hendry Project: MainProj∫Internal∫C∫ File: DisplayMgr.a,13 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,12 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrCompatibility.c,2 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,4 Owner: Ian Hendry Project: MainProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.make,4 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1101633,1098397,1101795,1101636 > Release notes for this change: Fixed a number of compatibility bugs (1101633,1098397,1101795,1101636). I investigated a number of strategies for application compatibility when the main display changed to a different monitor. The problem was that there were alway incompatibilities with some applications and/or performance penalties. New Implementation: Exchange the contents the old main device and the new main device so that cached handles still behave correctly. There is no performance penalty and (so far) no application incompatibilities beyond those introduced by the change in size. I dicussed all these solutions with Kon Othmer and we both feel this is the base strategy. The only problem is that this implementation breaks the connection between a phsyical monitor and its gDevice. Rejected implementations:   (1) changing the lo-mem MainDevice field (apps cache this value),   (2) introducing a dummy device in the device list that MainDevice points to and shadowing and disabling the real main device such that caching MainDevice handle works (some apps had problems and performance suffered because QD always take the multidevice case, and boot code assumes that all devices in the device list are active screen devices and therefore ‘scrn’ resources are invalid if it finds an extra device),   (3) introducing a dummy device BEFORE the device list and pointed MainDevice at it. Fixed the boot problems and the performance hit, but broke applications that assume MainDevice is in device list (including MicroSoft Excel). Added compatibility model. Conditionally compiled fixes in a separate file with some guildlines for making sure these fixes can be turned off. The CloseView compatilbility fix is the only one in use. WARNING: WARNING: As of this check in, you must use either Pre-Display Manager Monitors CP or WARNING: Psychic TV A4 Monitors CP. The API changed slightly to clean up the interface WARNING: and intermediate versions will crash. WARNING: > What was tested: Built and tested extension. Margarita regressed most of the existing bugs and things seemed to working. ----------------------------------------------------------•---------------------------------------------------------- 8/4/93 4:07:22 PM File: Displays.a,6 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: GestaltEqu.a,19 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: Displays.h,6 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: GestaltEqu.h,18 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: GestaltEqu.p,10 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫PInterfaces∫ File: DisplaysPriv.a,6 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,8 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,7 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,12 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.make,5 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,6 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1101633,1098397,1101795,1101636,1102280 > Release notes for this change: Fixed a number of compatibility bugs (1101633,1098397,1101795,1101636,1102280). I investigated a number of strategies for compatibility when the main display changed to a different monitor. The problem was that there were alway incompatibilities with some applications and/or performance penalties. New Implementation: Exchange the contents the old main device and the new main device so that cached handles still behave correctly. There is no performance penalty and (so far) no application incompatibilities beyond those introduced by the change in size. I dicussed all these solutions with Kon Othmer and we both feel this is the base strategy. The only problem is that this implementation breaks the connection between a phsyical monitor and its gDevice. Rejected implementations:   (1) changing the lo-mem MainDevice field (apps cache this value),   (2) introducing a dummy device in the device list that MainDevice points to and shadowing and disabling the real main device such that caching MainDevice handle works (some apps had problems and performance suffered because QD always take the multidevice case, and boot code assumes that all devices in the device list are active screen devices and therefore ‘scrn’ resources are invalid if it finds an extra device),   (3) introducing a dummy device BEFORE the device list and pointed MainDevice at it. Fixed the boot problems and the performance hit, but broke applications that assume MainDevice is in device list (including MicroSoft Excel). Added compatibility model. Conditionally compiled fixes in a separate file with some guildlines for making sure these fixes can be turned off. The CloseView compatilbility fix is the only one in use. WARNING: WARNING: As of this check in, you must use either Pre-Display Manager Monitors CP or WARNING: Psychic TV A4 Monitors CP. The API changed slightly to clean up the interface WARNING: and intermediate versions will crash. WARNING: > What was tested: Built and tested extension with Reality sources. Margarita regressed most of the existing bugs and things seemed to work. I updated SuperMario from reality and built and tested resolution flipping and new version of monitors on PDM. Everything seems fine. ----------------------------------------------------------•---------------------------------------------------------- 8/16/93 9:18:14 PM File: Displays.a,7 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: Displays.h,7 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,7 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,10 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,9 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,13 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrCompatibility.c,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,7 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1099391 > Release notes for this change: Synced to latest Reality changes. Fixed Apple event notification bugs where applications were getting events they did not know how to handle and were putting up error messages. Fixed apple event notification to return pre/post information on display states. Fixed notification to procptrs for extensions. Removed some preliminary data structures that are not used in DM 1.0. Support QuickDraw GX. > What was tested: Built and ran. Checked mode switches. ----------------------------------------------------------•---------------------------------------------------------- 8/26/93 9:38:54 PM File: Displays.h,8 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: Processes.h,2 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.h,11 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.c,15 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,8 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1108969 > Release notes for this change: Checked in first try at making Display Manager registration calls usable before the process manager loads. Rearranged some defines to where they belong. Move apple event declarations to Displays.h and move display manager size bit to Processes.h. Laid ground work for Res-Ind QD in AppleEvent. > What was tested: Built and verified ROM still worked on PDM and mode switching was working. ----------------------------------------------------------•---------------------------------------------------------- 9/2/93 2:34:10 AM File: StartBoot.a,52 Owner: Ian Hendry Project: SuperMarioProj∫OS∫StartMgr∫ File: DisplayMgr.c,16 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1108969, 1106433 > Release notes for this change: 1108969: Made sure that notification was available at init time. This means changing StartBoot.a to call initialize me in the ROM version and it means having no process manager dependencies. I also make sure I am using the system heap when I allocate apple events. I switched the code to assume that registered notification procs are responsible for disposing their own apple events. 1106433: I fixed my use of CopyPixMap so that I no longer count on QuickDraw to do the right thing with nil color tables. I cleaned up the code a little around there so I am not making bad assumptions about ports. > What was tested: 1106433: Built and tested on PDM running NQD extension provided by Shannon to determine that a) if I make the CopyPixMap call with a nil color table it works (although it returns an error) and b) that I no longer use a nil color table and so I get no error at all. 1108969: Built a small test tool extension that registers itself at init time and dumps the apple events from display manager. The tool can also remove notification procs. I checked that the procs are correctly installed, that notification happens, that removal works. I checked that removing all the procs works, that removing some of the procs works, that installing one proc works, that installing multiple procs works. Everything seeems cool now. ----------------------------------------------------------•---------------------------------------------------------- 9/2/93 10:48:27 PM File: DisplayMgr.c,17 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1101633 > Release notes for this change: Fix SetMainDevice for Canvas. Canvas has a custom color table on a screen port. I was blasting their port CTable with the CTable from the new main device. This was bad because Canvas (correctly) assumed that it owned the color table and wrote over it. Since I replaced their huge CTable with a small one, they killed their heap. I will now correctly restore custom port CTables. > What was tested: Built 68k extension and tested with Canvas. Everything worked fine. ----------------------------------------------------------•---------------------------------------------------------- 9/10/93 11:33:52 AM File: DisplaysPriv.a,9 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: CrsrDevPriv.h,2 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplaysPriv.h,12 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,10 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,18 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.make,8 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,9 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ Radar bug: #1110418, 1105959 > Release notes for this change: Fixed cursor crash and dispose monitor bugs. > What was tested: Built and heavily tested ROM version using A5e7. Looking for cursor bug. ----------------------------------------------------------•---------------------------------------------------------- 11/5/93 10:01:42 AM File: Displays.a,9 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫AIncludes∫ File: Displays.h,10 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: Quickdraw.h,6 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: SysEqu.h,5 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: Video.h,6 Owner: Ian Hendry Project: SuperMarioProj∫Interfaces∫CIncludes∫ File: DisplaysPriv.a,11 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫Asm∫ File: DisplaysPriv.h,14 Owner: Ian Hendry Project: SuperMarioProj∫Internal∫C∫ File: DisplayMgr.a,12 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgr.c,20 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrOverlap.c,2 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: DisplayMgrUtils.c,11 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫DisplayMgr∫ File: MenuMgr.a,20 Owner: Ian Hendry Project: SuperMarioProj∫Toolbox∫MenuMgr∫ Radar bug: > Release notes for this change: Rolled in Excelsior changes for PDM ROM. > What was tested: Built and booted a RISC ROM on coldfusion. ----------------------------------------------------------•----------------------------------------------------------