[R-SIG-Mac] rgl window problem
Duncan Murdoch
murdoch at stats.uwo.ca
Wed Dec 6 19:22:38 CET 2006
On 12/6/2006 11:10 AM, Simon Urbanek wrote:
> On Dec 6, 2006, at 9:08 AM, Duncan Murdoch wrote:
>
>> On 12/6/2006 8:43 AM, roger koenker wrote:
>>> I've recently installed rgl on a:
>>>
>>> R version 2.5.0 Under development (unstable) (2006-09-10 r39242)
>>> powerpc-apple-darwin8.7.0
>>>
>>> system, from source and everything seemed to be ok, the package
>>> loads without complaints, however trying to run any of the examples
>>> produces the usual window, but no plotting occurs. The window
>>> is blank, and moving the cursor over the window gives the dreaded
>>> spinning pinwheel of cluelessness.
>>>
>>> Can anyone suggest a strategy for further diagnosis?
>>
>> This sounds as though you are running from the console rather than
>> R.app, but have built rgl (or downloaded a copy built) to use AGL
>> in Carbon rather than X11. That doesn't work. AGL calls only work
>> from R.app.
>>
>> If someone knows a nice run-time test for whether Carbon will work
>> I'd put it in to at least give a meaningful error message. I'd
>> really prefer it to fall back to trying X11 in that case, but that
>> looks much harder: for an OSX newbie like me, I think the AGL/X11
>> decision needs to be done at link time, not run time. (On Windows
>> I'd load the appropriate OpenGL .dll when the package loaded, and
>> do all the calls indirectly. But I don't know how to do this on OSX.)
>>
>
> This works analogously - you can use dlopen as on other unix
> platforms (this is what R does) for the indirect calls. I assume that
> you need to load different code for each UI anyway, so you can make
> that separation at any level, it doesn't have to be the GL level. You
> could, for example, compile two libs for rgl and load the
> corresponding one in First.Lib or friends. That IMHO the most simple
> solution and it works on any platform.
That's a great suggestion, much easier than what I was thinking. Thanks!
Duncan
>> If my assumption in the first paragraph is wrong, please let me
>> know. And if "Carbon" is the wrong name for the graphics system
>> that supports the standard Mac GUI and AGL, I wouldn't mind hearing
>> that either.
>>
>
> Carbon = compatibility library for OS9 code to work in OS X
> Cocoa = OO application environment for programming for Mac OS X
> Aqua = name of user interface used in Mac OS X
> Quartz = graphics system in Mac OS X based of PDF drawing model (also
> the name of the R graphics device that uses that system)
> R.app = name of the Mac OS X GUI
>
> Strictly speaking AGL is a part of Cocoa, but what you want to detect
> is the R.app GUI. In fact this is not the entire story, because you
> wouldn't mind using AGL if some Cocoa program links R, so
> using .Platform$GUI for that seems reasonable enough (yes, AQUA here
> actually means Cocoa).
>
> In R we have a mess, because "Aqua" was the name of an ancient
> attempt for an OS X GUI that we scraped long time ago. Unfortunately
> the name "aqua" is still in R for historical reasons and it is used
> in several distinct meanings (somewhere it means Mac OS X platform,
> elsewhere it means Cocoa,...), none of them being actually Aqua. (I
> was trying to fix it before, but there is a lot of ancient code still
> wedged in) - however, I hope this mess will go away in time for 2.5.0.
>
> Cheers,
> Simon
>
More information about the R-SIG-Mac
mailing list