[cells-devel] Fwd: [Openmcl-devel] The Miracle of opengl-ffi.lisp Astounds Newby!

Kenneth Tilton ktilton at nyc.rr.com
Thu Nov 11 13:18:56 UTC 2004


Just in case there are any OS X heavyweights out there who grok the 
Cocoa thing, Frank and I are engaged in a pitched battle with Apple 
Glut, OpenMCL, Emacs, Aqua, Cocoa, and I am probably leaving someone 
out. :)

Begin forwarded message:

> From: Hamilton Link <hamlink at comcast.net>
> Date: November 10, 2004 11:08:13 PM EST
> To: Kenneth Tilton <ktilton at nyc.rr.com>
> Cc: openmcl-devel at clozure.com
> Subject: Re: [Openmcl-devel] The Miracle of opengl-ffi.lisp Astounds 
> Newby!
>
>
> On Nov 10, 2004, at 4:36 PM, Kenneth Tilton wrote:
>
>> Platform: Mikel Evins's Lisp in a box, aka OpenMCL and Slime and Emacs
>>
>> OK, the good news is that a significant amount of Cello has been 
>> ported to OS X/OpenMCL. If I could only manage to build ImageMagick 
>> and crucially the Wand API therein I think we could pop the cork.
>>
>> But that is not why I am here. We observe that when the demo in 
>> opengl-ffi.lisp runs, the menubar changes to "Simple OpenGL Example" 
>> or some such and some standard menu iems appear.
>>
>> <ogl.lisp>
>>
>> That example was great because it got us going with calling Apple's 
>> Glut just to get a window open. ie, We borrowed liberally from that 
>> code and have been borrowing more to try to solve this problem:
>>
>> The Cello window appears but the menu bar stays as Emacs's.
>
> This is what I'd expect.
>
> Emacs is its own program, and is forking off the lisp program and 
> talking to it by attaching to its stdio. When the cocoa environment 
> gets fired up, the lisp program is turning from a command-line app 
> into a more aqua-ish app, and makes its own windows in that context. 
> You should, for example, see a lisp doc item appear when the cocoa 
> stuff is loaded, and if you click on the opengl window you should end 
> up changing the window focus and thus the foremost app, and the 
> openmcl menubar should appear. Switching back to emacs will get its 
> menubar back. This is essentially identical to running openmcl/cocoa 
> from the terminal, and switching between the terminal program's window 
> (which holds a command line view of the lisp program) and the aqua 
> view of lisp once cocoa is started.
>
> Mind you this artifact of the transition from unix app to aqua app 
> might be worth noting somewhere in the docs... I think we have or were 
> going to have an FAQ? Dan?
>
>
> And if you'd like a more extensive opengl example, where glut is used 
> less (um, not at all actually iirc), look in the ccl/examples/rubix 
> directory. Yes, looking now I made it use a NSOpenGLView and handle 
> mouse events etc. through that view, and dispensed with glut entirely. 
> It's more cocoa-friendly. When I first did the serpinski's gasket 
> example (in opengl-ffi.lisp) it was using glut through the normal FFI, 
> and I don't know if it ever got ported to the cocoa APIs, although I 
> seem to recall GB taking a crack at it.
>
> But anyway yeah, look at the rubix example. It's way better. And feel 
> free to ask questions, to the list preferably, about the cocoa bridge 
> or NSOpenGLView. Mind you that I may send you to the Cocoa docs for 
> some things.
>
> And if you want to make code look like anything, emulate the rubix 
> example! It's much newer and it built on lessons learned from 
> opengl-ffi.
>
> h
>
>>
>> Another contrast between opengl-ffi.lisp and Cello is that the former 
>> gets key events and the latter does not. (This sounds like the same 
>> thing to me, but anyway....)
>>
>> Frank is slowly making the Cello demo look more and more like 
>> OpenGL-ffi's trying to make it work, while I am slowly replacing code 
>> in OpenGL-ffi trying to make it fail. That should pay off eventually, 
>> but I thought I would drop in here to see if anyone knew by what 
>> magic opengl-ffi was getting the menu bar and key events.
>>
>> btw, my guess is there some mystery about OS X we are missing, not 
>> OpenMCL, but I thought I would cover all the bases just in case my 
>> guessqork is off.
>>
>> kenny
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 4302 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cells-devel/attachments/20041111/4e4a9419/attachment.bin>


More information about the cells-devel mailing list