Eric,

I am sorry about all that detail, but I could not simplify it more.
Thanks for your comment.

On Wed, Sep 16, 2009 at 8:47 AM, Eric Iverson <[email protected]> wrote:
> I haven't read your message in detail so am shooting from the hip. If by
> 'graphics handle' you mean the implicit target of gl2 commands then all you
> need to do is be sure to set the implicit target as required.

I don't know how to set the implicit target, but I think the first
line in the "paint" verb (wd'psel opengl;pactive') is attempting to do
so. Is that what you mean? I worry that some additional qhwnd(c or p
or ?) may be required, too. So, yes, I am asking for more help,
please.


>
> This can be done with appropriate use of wd command psel and gl command
> glsel. If this sounds interesting, but isn't sufficient info, please ask for
> more.
>
> On Wed, Sep 16, 2009 at 3:29 AM, Brian Schott <[email protected]>wrote:
>
>> This question has been plaguing me for some time as you can
>> see from the date on the link below. I have been trying to
>> revise my turtle graphics simulation with some frustration
>> over losing the isigraph's handle. The problem I am having
>> may be related to the issue explained by Eric Iverson in the
>> following quote taken from the following link, but I cannot
>> be sure because I even lose the handle with a single
>> instruction if the instruction contains a for. loop that is
>> long enough.
>>
>> http://www.jsoftware.com/pipermail/beta/2006-June/001297.html
>>
>> "gl2 and gl3 commands have an implicit target isigraph. When
>> the host calls the paint handler the correct isigraph is
>> automatically selected as the target. If you are going to be
>> switching between windows and calling the paint handler
>> manually then you have to make sure the isigraph is
>> selected. The easiest way to do this is to get its handle
>> when it is created and then do a glsel handle as required."
>>
>> The verb "try" is basically a for. loop.
>>
>> try =: monad define
>>  for. i. y do.
>>   �...@pickone@? 144
>>  end.
>> )
>>
>> go =: monad define
>>  GS_CLEARCOLOR=: y
>>  paint''
>> )
>>
>> On my Mac, if I load the script below and then in the .ijx
>> window type "try 100", then I will have lost the handle of
>> the graphic window.  Otoh, if I type "try 9" (a smaller
>> iteration count of 9), then I do not lose the handle unless
>> I have been issuing lots of "try ..."'s in one session -- in
>> that case, because of some cumulative effect, I sometimes
>> begin to lose the handle, too.
>>
>> This may be a Java issue or a Mac issue, not a Windows
>> issue. I cannot test in the Windows environment.
>>
>> The way I know I have lost the graphics handle is that I
>> cannot use the keystroke commands like F5, F6, and arrow
>> keys to reorient the graphic window. Another indication is
>> that I cannot press the Esc key to close the graphics
>> window, even though the mouse can click on the close button
>> to close the graphic window.
>>
>> I am listing the entire script below. It contains two
>> versions of the "paint" verb: a very simple version that
>> does not produce any graphic object, and a slightly more
>> detailed "paint" verb. Both paint's produce the problem I
>> have mentioned, the simpler paint just takes longer to lose
>> its handle.
>>
>> The script is basically a slightly embellished version of
>> the systems standalone gldemo script at
>> ~system/examples/graphics/opengl/demo/glviews.ijs
>>
>> Please copy and paste the script below into an ijs window
>> and then press Ctrl-W to load it.
>> Then type "try 100" into the ijx window and watch the
>> background color change (100 times).
>> Then try some keyboard alterations, like press F5 or i or an
>> arrow key.
>> If you see the graphic change, then your system has not
>> (yet?) lost graphics handle, and you might increase 100 to
>> 300, for example, and retry the keyboard alterations.
>> (Btw, you will only see the graphic image change with the
>> second "paint", because there is nothing to change with the
>> first "paint". The only way I know to test the first
>> "paint" is to try to close the graphics window with a
>> keystroke instead of the mouse.)
>>
>> So.... my questions are:
>>
>>        Is this a Mac/Java problem only?
>>
>>        Is this problem correctable with Eric's
>> recommendation above, and if so, how can his recommendation
>> be added to my script?
>>
>>        Is this a bug?
>>
>> Thanks, in advance,
>>
>>  --
>>
>> (B=)
>>
>> ****************************************************
>> require 'opengl'
>> NB. cocurrent 'gldemo'
>> coinsert 'jzopenglutil'
>>
>> gsetdefaults''
>>
>> OPENGL=: 0 : 0
>> pc opengl;
>> xywh 0 0 200 150;cc g isigraph opengl rightmove bottommove;
>> pas 0 0;
>> rem form end;
>> )
>>
>> opengl_run=: 3 : 0
>> wd OPENGL
>> ogl=: '' conew 'jzopengl'
>> wd'pshow;'
>> )
>>
>> opengl_close=: 3 : 0
>> destroy__ogl''
>> ogl=: ''
>> wd 'pclose'
>> )
>>
>> opengl_cancel=: opengl_close
>>
>> NB.
>> =========================================================
>> NB. cups surface - colored by height
>>
>> j=. steps _2.4 2.4 35
>> f=. (5: * ] % ^...@+&*:)"0/~
>> CUPS=: 1.4*gsfit11 gsmakexyz (];];f) j
>>
>> j=. (1r4"_ ,. |. ,. ]) _2}.8}. gsint01 16
>> CUPCLR=: j gshue gsfit01 {:"1 CUPS
>>
>> ".COLORTABLE
>>
>> gsetdefaults''
>> GS_CLEARCOLOR=: IVORY
>>
>> pickone =: COLORTABLE&(13 : '".>{.;:y{x')
>>
>> try =: monad define
>>  for. i. y do.
>>   �...@pickone@? 144
>>  end.
>> )
>>
>> go =: monad define
>>  GS_CLEARCOLOR=: y
>>  paint''
>> )
>>
>> paint=: 3 : 0     NB. even this paint fails with "try 100"
>>  NB. glsel 'g'
>>  wd'psel opengl;pactive'
>>  gsinit ''
>>    gsclearcolor GS_CLEARCOLOR
>>    gsfini''
>> )
>>
>>
>> paint=: 3 : 0
>>  NB. glsel 'g'
>>  wd'psel opengl;pactive'
>>  if. gsinit GS_LIGHT do.
>>      gsdrawsurface2 makelist 1 CUPS;CUPCLR
>>    end.
>>    gsclearcolor GS_CLEARCOLOR
>>    glCallList 1
>>    gsfini''
>> )
>>
>>
>> NB.
>> =========================================================
>> opengl_g_paint=: paint
>> opengl_g_char=: gschar
>> opengl_default=: gsdefault
>>
>> NB.
>> =========================================================
>> opengl_run''
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
(B=) <-----my sig
Brian Schott
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to