From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Date: Sat, 21 Jun 2003 06:33:24 -0600 Subject: [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