Cedar Graphics Overview
Principles and Concepts
Interfaces and Implementation
Status and Plans
Principles
Low level display facilities
powerful but primitive
primary client is Documents
Wide variety of raster display devices
displays, printers
different resolutions
bitmap, gray, color
Display-independent interface
geometric abstractions
world coordinate system
color specification
display-independent implementation
Floating point representation
wide range
device resolution
user coordinates
high precision
performance
Concepts
The Pipeline
Map, Reduce, Clip, Render
transducer: doesn’t retain objects
Display Context
virtual display
state
display procedures
Drawing things
lines, areas, paths
text, fonts
current position
Mapping
world => device
user => world => device
user => device
Clipping, Boxing
Interfaces
Client (most stable)
Graphics
AltoDevice, PressDevice, etc.
Device implementor
simple shapes
fill color / image
Internal (most volatile)
Mapper, Reducer, Clipper
useful to other graphics software
Implementation
The pipeline
Client
Mapper
Path / Reducer
Clipper
Patches
Edges
Device
Object style
Pipe interface
advantages
uniform interface
plug-compatible modules
disadvantages
allocation expense
superclassing is difficult
LOOPHOLEs (use REF ANY?)
Status
Why is it so slow?
Clipper
Devices: Alto, Press
Text: well... still messy
Images: AIS, bitmaps
Plans
Use REFs; safe interface
Moving to Pilot: REALs, BitBlt, font files
Unify path specification for lines and areas
Color vs. PaintingFunction/Texture
Persistent pipelines
Simpler device interface
Integration of images
Move text outside