[Openmcl-devel] iSight progress

Ron Garret ron at awun.net
Wed Jan 30 08:12:05 PST 2008

On Jan 29, 2008, at 11:25 PM, R. Matthew Emerson wrote:

> On Jan 30, 2008, at 12:35 AM, Ron Garret wrote:
>> (setf qcv (make-instance 'ns:q-c-view))
> It might not matter in this case, but NSView and subclasses need to  
> be initialized with initWithFrame:.  Something like:
> (setf qcv (make-instance 'ns:q-c-view :with-frame (ns:make-ns-rect 0  
> 0 100 100)))

Doesn't seem to make a difference one way or the other.  I think  
QCViews size themselves automatically based on the composition they  
are rendering and/or the window they are in.

>> (#/loadCompositionFromFile: qcv #@"Cam.qtz")
>> (#/startRendering qcv)
>> (#/setContentView: w qcv)
> If I put in (#/setAutostartsRendering: qcv t) and then minimize and  
> restore the window, it shows the live camera view.

How odd.  That works for me too.  Doesn't seem like a good long-term  
solution though.

>> (setf bmrep (#/bitmapImageRepForCachingDisplayInRect:
>>            qcv
>>            (ns:make-ns-rect 0 0 300 200)))
>> Now whenever I do this:
>> (#/cacheDisplayInRect:toBitmapImageRep: qcv (ns:make-ns-rect 0 0  
>> 300 200)
>>                                       bmrep)
> Does -[QCView createSnapshotImageOfType:] work any better?  Since QC  
> is drawing to an OpenGL context, maybe the NSView method doesn't do  
> the job.

I haven't tried that yet, but I did try snapshotImage.  When I didn't  
have the live image working, snapshotImage actually worked (in  
conjunction with calling cacheDisplayInRect:toBitmapImageRep: to force  
the image to update.  It was weird -- there was a two-frame delay  
between calling cacheDisplayInRect:toBitmapImageRep: and having that  
image show up as the result of calling snapshotImage.

But when I tried calling snapshotImage while live update was running  
it froze my Mac (even the cursor froze) and required a reboot.  :-(

Another bit of weirdness: sometimes calling (objc:load-framework  
"Quartz" :quartz) causes MCL to enter a spin cycle (i.e. the SBBOD  
shows up and I have to force-quit).  This problem is intermittent, but  
seem to happen only when I evaluate the form from a Hemlock window.


More information about the Openmcl-devel mailing list