home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / code / p_fracap.sit / MFracAppPalette.p < prev    next >
Text File  |  1988-08-17  |  4KB  |  117 lines

  1. {------------------------------------------------------------
  2. #
  3. #    Apple Macintosh Developer Technical Support
  4. #
  5. #    MacApp Color QuickDraw Palette Fractal Sample Application
  6. #
  7. #    FracAppPalette
  8. #
  9. #    FracAppPalette.p    -    Pascal Source
  10. #
  11. #    Copyright ⌐ 1988 Apple Computer, Inc.
  12. #    All rights reserved.
  13. #
  14. #    Versions:    1.0                        8/88
  15. #
  16. #    Components:    MFracAppPalette.p        August 1, 1988
  17. #                UFracAppPalette.p        August 1, 1988
  18. #                UFracAppPalette.inc1.p    August 1, 1988
  19. #                FracAppPalette.r        August 1, 1988
  20. #                FracAppPalette.make        August 1, 1988
  21. #
  22. #    The FracAppPalette program is a version of the FracApp program that is
  23. #    set up to be as compatible as possible.  To this end it uses the Palette
  24. #    Manager to set up the color environment.  It does not support color table
  25. #    animation.  It demonstrates how to use the Palette Manager for standard
  26. #    color use.  It shows how to create and use an offscreen gDevice w/ Port
  27. #    for special color useage, as well as how to CopyBits that data up to the
  28. #    screen to handle update events.  PICT files are read and written, using the
  29. #    quickdraw bottlenecks to minimize the use of memory.
  30. #            Written in MacApp Object Pascal code.
  31. #            Compatibility rating = 0, no known risks.
  32. #
  33. #    The program is a complete Macintosh application written in Object 
  34. #    Pascal using MacApp.  It supports multiple windows, calculations in the
  35. #    background under MultiFinder, use of the Palette Manager, reading and
  36. #    writing of PICT files using the bottlenecks, and shows how to calculate
  37. #    the Mandelbrot set.
  38. #
  39. #    There is a resource file that is necessary as well, to define the Menus, Window,
  40. #    Dialog, Color table, and Palette resources used in the program.
  41. #
  42. ------------------------------------------------------------}
  43. {FracAppPalette:
  44.     copyright 1988 by Bob.  All rights reserved.
  45.     February 1, 1988. 
  46.     Written by Bo3b Johnson of Developer Technical Support. }
  47.  
  48. PROGRAM FracAppPalette;
  49.  
  50. USES
  51.     {$LOAD MacIntf.LOAD}
  52.         MemTypes, QuickDraw, OSIntf, ToolIntf, PackIntf,
  53.     {$LOAD UMacApp.LOAD}
  54.         UObject, UList, UMacApp,
  55.     {$LOAD UBobLips.LOAD}
  56.         PaletteMgr, UPrinting,
  57.     {$LOAD}
  58.  
  59.     UFracAppPalette;
  60.  
  61.  
  62.  
  63. VAR
  64.     {The application object:}
  65.     gFracAppApplication:   TFracAppApplication;
  66.     error:    Integer;
  67.     
  68.  
  69. FUNCTION ForceEnvirons(minimumSystemVersion: INTEGER;
  70.                               minimumProcessor: INTEGER; needsFPU: BOOLEAN;
  71.                               needsColorQD: BOOLEAN;
  72.                               minimumATDrvrVersNum: INTEGER): BOOLEAN;
  73.  
  74.     VAR
  75.         error: OSErr;
  76.         theWorld: SysEnvRec;
  77.  
  78.     BEGIN
  79.         error := SysEnvirons(1,theWorld);
  80.         WITH theWorld DO
  81.             ForceEnvirons := (systemVersion >= minimumSystemVersion) AND
  82.                                   (processor >= minimumProcessor) AND (needsFPU >=
  83.                                   hasFPU) AND (needsColorQD >= hasColorQD) AND
  84.                                   (atDrvrVersNum >= minimumATDrvrVersNum);
  85.     END;
  86.  
  87.  
  88.     { Strange but true, you cannot compile this file with the 881 flag turned on,
  89.         or you will not be able to test for an 881 in the environment before you
  90.         crash, making it unacceptable for older machines.  }
  91.         
  92. BEGIN
  93.     {Initialize the Toolbox, making 8 calls to MoreMasters:}
  94.     InitToolbox(8);
  95.  
  96.         { The first thing we have to do is ensure that we can run in this environment.  
  97.             We must do a ForceEnvirons to avoid crashing needlessly on machines where
  98.             we have no color or 881.  The minimum system is 4.2 since we need the more
  99.             robust Palette Manager.  We don╒t use 020 code, but we require an FPU.  We
  100.             also require colorQD.  If we don╒t have the stuff we need, we will alert and
  101.             leave.  }
  102.      IF NOT ForceEnvirons($0420, envDontCare, TRUE, TRUE, envDontCare) THEN
  103.         Failure (kWrongMachine, 0);
  104.     
  105.     {Initialize the UPrinting unit:}
  106.     InitPrinting;
  107.  
  108.     {Allocate a new TFracAppApplication object:}
  109.     New(gFracAppApplication);
  110.  
  111.     {Initialize that new object:}
  112.     gFracAppApplication.IFracAppApplication(kFileType);
  113.  
  114.     {Run the application.  When it's done, exit.}
  115.     gFracAppApplication.Run;
  116. END.
  117.