|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Treating the names inside the let-like form as just symbols caused
numerous bugs where a program would crash because it was trying to set
graphics state that was never defined due to the relevant module never
being imported. By changing with-graphics-state to require passing in
the <graphics-state-spec> object, much like how parameterize works
with parameter objects, it completely eliminates this type of bug. If
the module containing the spec variable isn't imported, there will be
an undefined variable error thrown early on.
Additionally, graphics state objects needed to have a stack added to
them to track previous values so that with-graphics-state could
restore them later. The old trick of using let to stash the previous
values no longer worked with the new macro implementation.
|