[squeak-dev] OpenGL morphic issue with "embedd in window"

Lawson English lenglish5 at cox.net
Mon Apr 19 23:21:03 UTC 2010


Ross Boylan wrote:
> On Sun, 2010-04-18 at 18:28 -0700, Lawson English wrote:
>   
>> Jeroen has been helping me more than a bit with learning how to use 
>> OpenGL with squeak, but I've hit a stumbling block I can't quite get 
>> around and Jereon has been busy lately:
>>
>>
>> when I put an OGLMoprh in a window via the menu, the close box 
>> apparently doesn't delete the morph the same way as it does via using 
>> the x-halo (without embedding)
>>
>> The x-halo sends a delete directly to the OGLMorph which sends 
>> OpenGL>>destroy.
>>
>>
>> However, the window's close box AND the window's x-halo apparently do 
>> things a tiny bit differently.
>>
>> The window disappears, and the OpenGL context becomes unselectable, but 
>> stays around.
>>
>> If I send openInWorld to the original OGLMorph, it becomes active again 
>> and the x-halo of  OGLMorph will still do the OpenGL>>destroy on the 
>> context.
>>     
> I just ran into a similar situation; whether it is similar enough is for
> you to judge.  I have a manager class that opens 2 Morphs; when one of
> them (a SystemWindow) is killed I wanted the other one killed as well.
>
> I made my manager the model of the SystemWindow morph.  When the
> SystemWindow is destroyed, it sends #windowIsClosing to its model (i.e.,
> my manager).  The manager can implement #windowIsClosing to delete the
> other Morph.
>
> This may or may not be an advisable use of the model mechanism, but it
> seems to work.
>
> Ross
>
>
>   

OK, so still confused. I had hoped I could figure out what you meant 
concerning adding a morph to the SystemWindow but I can't figure out 
where/how to do so.

bertf on #squeak pointed this out to me

http://www.lazarevic.de/download/squeak/OpenGLMorph37.3.cs


tried to do things via >>outOfWorld and >>intoWorld   but of course, not 
sure what I'm doing there, either...


Lawson




More information about the Squeak-dev mailing list