[plt-scheme] 204.6
The exp-tagged code in CVS for MrEd and MzScheme is now version 204.6.
The change for this version is improved OpenGL support: the 'gl flag is
no longer necessary for enabling OpenGL drawing to a canvas%, and
OpenGL can be used to render to an offscreen bitmap.
The `configure' script and makefiles have also changed considerably,
but the difference should be barely noticeable. For --enable-shared
builds (--enable-shared is now the preferred name for --enable-dynlib),
the version number is embedded in the dynamic-library name.
Changes:
* Changed canvas% so that 'gl style is no longer needed
to enable OpenGL drawing in the canvas.
* Added a `get-gl-context' method to dc<%>, which returns a
gl-context<%> for canvas and bitmap DCs (#f otherwise).
The new gl-context<%> provides `call-as-current', `swap-buffers',
and `ok?' methods.
Only one GL context can be selected at a time (globally in MrEd),
and the `call-as-current' method blocks until it can obtain a lock
that represents the current context. An uncooperative thread can
starve other OpenGL-drawing threads by grabbing the lock and
blocking (but killing such a thread releases the lock). Furthermore,
except under Mac OS, a GL context is not protected from interference
by unfriendly threads, which can issue OpenGL commands without
setting the context.
MrEd still provides no OpenGL support other than managing the
drawing context. Use (lib "sgl.ss" "sgl") or another such extension
to render images.
See the documentation for more information.
* Changed the `with-gl-context' method of canvas% to use
`call-as-current' for its gl-context<%>. The difference from the old
behavior is that context setting is serialized across all
eventspaces.
* Added `application-file-handler', useful only under Mac OS.
* The `configure' script now properly handles environment variables
such as CPPFLAGS and LDFLAGS (i.e., the ones listed with --help).
* When configured to create shared libraries (via --enable-shared or
its synonym, --enable-dynlib), the Makefiles generate
libmzscheme-<version>.so, etc.
Users of --enable-shared and the CVSed code should beware of
accumulating old libraries (just like Mac OS X users of the CVSed
code).
* The `configure' script uses the latest version of libtool.
Upgrading was painful, and in the end it didn't solve any problems
for me. But maybe someone will benefit.
Matthew