home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.mac.programmer
- Path: sparky!uunet!think.com!spool.mu.edu!agate!iat.holonet.net!bwilliam
- From: bwilliam@iat.holonet.net (Bill Williams)
- Subject: Re: Curves in QuickDraw GX
- Message-ID: <Bzp7x4.90D@iat.holonet.net>
- Organization: HoloNet National Internet Access BBS: 510-704-1058/modem
-
-
- References: <PERM.92Dec18142818@groucho.csd.uu.se>
- Date: Wed, 23 Dec 1992 06:12:38 GMT
- Lines: 251
-
- From the center of my handwritten notes regarding Quickdraw GX as presented
- at Apples May 92 WWDC....
-
- "The spline routines are used with inset and an outset values to create
- "fat" splines, the two outer edges are different splines (derivitive
- curves) that approach cubic order complexity, but are not, and can be
- converted back to the original very quickly (Rob Johnson, a math prof
- from UCLA invented fast transformation algorithms for all QD GX spline
- calculations, and is now an apple QD GX contributor)"
-
-
- For those interested heres a bunch of my other observations as recorded that
- week intact and without changes......
-
-
-
- Beyond QuickDraw : the next generation in imaging
- Given by Cary Clark - graphics team leader and author of color fonts, and
- old 3D quickdraw.
-
- The introduction of several discussions of Apples COMPLETE REPLACEMENT of
- QuickDraw with a near clone of Adobe DisplayPostscript called QuickDraw
- GX. Its code name was Skia ("Skee-ah"). It is a geometry (object) based
- graphics model.
-
- It is nearly finished and will be available three different ways (end user
- $$, distributable license, and eventually free inclusion in a future
- system release).
-
- Wow, wow, wow. It is definitely NOT as fast as display postscript, but in
- many ways it seemed faster. Work started in 1988 before DisplayPostscript
- was shown publicly. It is of course completely device independent, and its
- output files when printing, even after customization for a specific device
- at spool initiation ARE DEVICE INDEPENDENT AT ALL TIMES. Final printed
- output devices may be raster devices, vector devices (plotter) or
- Postscript devices.
-
- No words or tokens are used in the imaging model, there is no server
- level, instead it appears as good-old-fashioned quickdraw to a normal
- programmer except that all geometries are based on 32 bit values and
- sometimes 64 bit values. (A fixed point is assumed when some values are used)
-
- Unlike DisplayPostscript floating point values and computations are NOT
- used. This is a negative trait.
-
- Also unlike postscript, YOU MAY NOT SEND CODE OF ANYKIND TO THE OUTPUT
- SPOOLED IMAGE. Thus the author of "Jag" was told that his anti-aliasing
- product has no value because the effects of his product EXCEPT AS DEVICE
- DEPENDENT BITMAPS cannot be sent through the spooler and therefore should
- not be integrated into QD GX. The reason: THE GOAL OF QD GX IS TO MATCH
- THE SCREEN TO THE PRINTED OUTPUT. No code encapsulation is permitted. This
- is a good intention, but not providing spoolable code (as with PostScript)
- is a negative trait.
-
- Like DisplayPostscript, QD GX is a single pixel color model, and
- anti-aliasing and ramping is not supported. This is not to be confused
- with the pleasing types of blending fills that it does support.
-
-
- You may mix Quickdraw commands interspersed with QuickDraw GX without too
- much effort. Unfortunately, if you do, you must be careful to use a CASE
- SENSITIVE LANGUAGE such as Modula-2, C, C++ because there is a RPointS and
- a RpointS as well as QuickDraws RRectS and the new QuickDraw GXUs RrectS.
- Though on one slide I saw the word RrectangleS instead of rect, so I
- assume in Pascal they have a RgxPointS and a RrectangleS redefinition.
-
- It does everything that display postscript does and a few extra things
- (such as placing pictures at joins of two lines).
-
- It has the AMAZING benefit of using the highly optimizable quadratic
- spline for all curve and path operations. Though it cannot draw a circle.
- (I am not joking, strictly speaking, MANY of QuickDraw GX primitives are
- actually "libraries" outside of the lower lever QuickDraw GX.) I think
- drawcircle is a library routine. The spline routines are used with inset
- and an outset values to create "fat" splines, the two outer edges are
- different splines (derivitive curves) that approach cubic order
- complexity, but are not, and can be converted back to the original very
- quickly (Rob Johnson, a math prof from UCLA invented fast transformation
- algorithms for all QD GX spline calculations, and is now an apple QD GX
- contributor)
-
- I got the feeling that "shapes", not paths or spline derived curves, were
- used for all of the very fast animated demos presented (50 demos). I
- believe that "shapes" do NOT possess splines but rather are decomposed
- curves defined solely of small straight line segments. This is for speed
- speed speed. The programmer gets to define the segmentation parameters used.
-
- Shapes are defined by fixed point, to prevent degradation after any series
- of permanent transformations.
-
- The system supports a three-D transformation matrix with many library
- routines to help set the matrix parameters. Two values in the Matrix are
- unconventionally used for storage of variables meant for perspective
- distortion. (QD GX has no three dimensional routines, and the
- unconventional usage does not affect the non-existent "z" data)
- It has tons of layered transformation matrices at many layers before the
- final image is drawn and seems at most times to be a full blown 3D imaging
- model... but it isn't.
-
- The matrix routines support fast skew, distort, and rotation (including
- bitmaps)
-
- Patterns are now two parts, pattern data and "color shade" are separate
- identities.
-
- There are still no pixel locations in QuickDraw, points have always been
- an abstraction and still are.... but programmers must be cautious to shift
- all position info to convert all points into fixed point math to avoid
- unwanted locations.
-
- The new more accurate pixel locations allow much more exact vector line
- rotation even on 72 point monitors. The effect needs to be dynamic to
- discern the enhancement though.
-
- It supports compressed "infinite-precision" BitMap regions, very nice
- results were obtained in the demos.
-
- TrueType and Adobe type 1 fonts (under ATM) are EXACTLY EQUAL in usage in
- QD GX, neither has any preferential treatment in ANY WAY.
-
- Font families have meaning now in the menu interface (like Adobe's Type
- Reunion already does)
-
- The new font support is almost as complete as postscripts with some
- amazing differences. Primarily the ability to use different fancy fonts
- based on the characters adjacent to the font. Some astoundingly beautiful
- effects were shown with a slightly altered Zapf Chancery. Letters on the
- ends of words had bold sweeping flourishes, and capital letters at the
- beginning of words had long sweeping tails under the adjacent characters.
- WOW. Apple said they are commissioning a company to create a special "Old
- English" font for them.
-
- A new Adobe Illustrator (version NIA 3.2) was shown that swapped back and
- forth between QD and QD GX. It had a GODDAMN STUPID PREVIEW MODE as it
- always has on systems that do not have built in display postscript,
- because of the nature of the program. The absolute horrifying restriction
- was only observed by me and other people that may have seen the
- "No-preview-mode-crap" NeXT version of Adobe Illustrator. Man, what an
- application not to show as a demo!
-
- QD GX is a large set of different new technologies, especially for
- printing. A kinder gentler series of major changes in printer interfaces
- would make most people very happy. It is MUCH less cluttered, and far more
- restricted without probing. A control panel much like system 6's "general"
- is used to access third party extensions. In fact it is so simple a new
- menu item is defined by apple called "Print One Copy". Note the lack of
- "ellipses" (...). That's right it does what it says no questions asked.
- The audience clapped.
-
- A printer "Finder" was created to manage spooling. It has as many features
- as the real finder in several ways. Plus it appears to be part of the
- Finder. WOW.
-
- Plotters are supported.
-
- Hit detection for mouse clicks as well as animated object collision is a
- major part of QD GX. Including accurate hit detection after all those
- layers of skewing, distorting, rotating, etcetera.... WOW. This is even
- better than the NeXT (one of the NeXT's few limitations from what I recall
- is a "lighter" hit detection system.
-
- Multiple color spaces are supported (even within one image!!!!!!!!!)
-
- It supports all the cool stuff color Postscript (2) does for dithering,
- screen rotation (arbitrary angles), etc.
-
- It supports viewports in a VERY ABSTRACT MANNER. a port can be a three-d
- is view any where in a space and can be displayed in a arbitrary shaped
- region anywhere on a device including MULTIPLE VIEWS OR THE SAME SCENE AT
- THE SAME TIME. The multiple views can all have different color depths and
- pixel resolutions, and dithering, and screening, and be somewhere on the
- same device!
-
- Unlike postscript it supports RTL LTR and vertical languages, unlike
- Postscript it can be used to support indic and arabic languages where the
- characters change dramatically based on there position and neighboring
- glyphs. Arabic, Chinese and others where shown.
-
- Like Postscript, the fonts can be filled, set on paths, stretched, etc.
- etc. etc. Including bizarre text effects as seen with many Postscript
- programs.
-
- Users can specify weights directly in their applications (make it 10%
- bolder, etc.)!
-
- Oliver Steele wrote some AMAZING high speed graphics demos that showcased
- QD GX and two of them, "deflection angle" and "velocity lines" are
- definite collector items.
-
- Like postscript, a path drawing a line cannot be truly "dashed". Like
- postscript the beginning and the ending of a path can have special
- endcaps. Endcaps are allowed to be "negative" (erasing)
-
- QD GX supports multiple monitors. Apple acknowledged that Radius invented
- multiple monitor drawing first, not them or anyone else in the industry.
-
- You cannot crash QDGX when its many many debugging options are enabled.
-
- QD GX uses ZERO BYTES OF APPLICATION HEAP and stores all its structures in
- its own very special heap structures. It uses almost no Macintosh
- routines. It does not ever use the memory manager. It cannot run out of
- memory if disk space is available.
-
- Disk is used as memory FOR ANY AND ALL OPERATIONS! QDGX can work on
- immense bitmaps, far larger than supportable in RAM. Sadly, Cary Clark
- calls this "backing store" instead of "virtual memory" because he likes
- anal retentive 1967 IBM mainframe buzzwords.
-
- QD GX has a special debugger, BUT THEY WERE NOT ALLOWED TO SHOW IT. Odd.
- very odd.
-
- No recalculations are made in QD GX, it has lots of optimization
- strategies of all kinds (as does display postscript) but unlike its
- competitor, it can warn the user if wasteful code is being generated. Plus
- it never calculates any intermediate variable that is not eventually
- actually needed! If true I am impressed! It would be almost psychic-ware.
-
- It runs (theoretically) in system 6, but needs 7.0 for printing of any kind.
-
- The famous QD pattern scrolling bug (user preference?) is now selectable
- by programmer, patterns can be fixed or positional.
-
- No assembly (very little) is used. Because they are greedy opportunistic
- pigs that are thinking of saving time porting it again and again
- naturally, but I feel that when 250,000 Motorola boxes from Apple ship per
- month they can afford to hire a few real programmers. GEEZ! Never in my
- life have I heard someone brag that almost none of their GRAPHICS ROUTINES
- are written in assembly.
-
-
- MAJOR LIMITATION: all views and bitmaps based on pixels can have more than
- 32K pixels per square side. EVER. But amazingly, QD GX will "butt-end"
- giant bitmaps through the system and accurately align and join them (even
- through translation, and distortion) so that you can extract and
- manipulate portions of them. In effect an INFINITE SIZED bitmap can be
- processed. (A satellite imaging company in the audience asked the question
- because all their photos have more than 32,000 pixels per side!)
-
- Source code was handed out. An unprecedented amount of libraries and
- source code will be available before and after QD GX's debut.
-
- ============================================================
-
-
- Whew! I have countless other pages of opinions and rambling drivel
- covering many other sessions at the WWDC written in the same manner if
- anyone is interested in my remarks on other Apple technologies.
-
- Bill Williams (NOT familiar with QuickDraw GX yet)
-
-
-