|
Magic Mailing List |
|
From: R. Timothy Edwards (tim AT stravinsky DOT jhuapl.edu) Date: Thu Jul 10 2003 - 17:34:54 EDT
Dear Stefan,
The one question I have an answer for is why the CIF view of the 3D
layout comes out flat. This is because the CIF rendering must be
defined in the tech file in the "cifoutput" section, and it's only
defined right now for the scmos.tech file that comes with the magic
distribution. It's fairly easy to put the section in, though. It's
required because magic only has styles defined for magic layers, not
for CIF layers. The "render" keyword in the "cifoutput" section
matches drawing styles to each CIF layer. The syntax is:
render <CIF-layer> <style> <height> <thickness>
Where height and thickness can be floating-point. They are essentially
dimensionless, as the numbers are only used for display. As an example,
the values from scmos.tech are:
render CWN 12 -0.2 0.2
render CAA 2 -0.15 0.15
render CPG 1 0.025 0.05
render CEL 14 0.1 0.05
render CCC 19 0.0 0.2
render CCA 19 0.0 0.2
render CCP 19 0.075 0.125
render CMF 20 0.2 0.05
render CVA 19 0.25 0.05
render CMS 21 0.3 0.05
------------------
As for the other weirdnesses, they could be the fault of OS X's OpenGL
driver, although I wouldn't swear that I haven't done something
incorrect which just happens to work with the Matrox and NVidia drivers.
Right now, that's 2 out of 3. I'll go downstairs in a moment and see
what Cygwin thinks of it, if I can get it to compile. That will be a
4th datapoint. One thing to check---what happens if the 3d window
doesn't overlap the layout window? Some video cards like to have a
single rectangle to render into, and if the rendering area is non-
rectangular, as when the window is partially overlapped by another,
then the rendering goes through another layer of processing. This is
all done by glX, the rather clumsy interface between X11 and OpenGL.
The freezing up condition I have seen before, and suspect I have a
race condition in the code which I have not yet tracked down.
As for the toolbar, that's yet another thing, involving so-called
"off-screen rendering" functions in OpenGL. OpenGL renders into a
pixmap instead of directly to the screen, and then the pixmap is
rendered normally by X11. There are various ways for this to go
wrong, too, and I've already come across one video driver which
didn't do it right, and made the developers fix it.
Regards,
Tim
|
|
|
|