Alternatively, run the tight event loop using jconsole.

On Sun, Nov 29, 2020, 9:59 AM Raul Miller <rauldmil...@gmail.com> wrote:

> Rather than an explicit polling loop, I would recommend using the
> sys_timer mechanism --
> https://code.jsoftware.com/wiki/Guides/Window_Driver/Command_Reference
>
> --
> Raul
>
> On Sat, Nov 28, 2020 at 8:52 PM Thomas McGuire <tmcguir...@gmail.com>
> wrote:
> >
> > Have you come up with a way to handle SDL events?
> >
> > I was able to read events but if I set up a polling loop I ran into
> problems with J not getting time for handling
> > Its own user events. I made some attempts to use wd ‘msgs’ from the
> window driver but was unsuccessful.
> >
> > Tom McGuire
> >
> > > On Nov 27, 2020, at 1:36 PM, emacstheviking <obji...@gmail.com> wrote:
> > >
> > > that took a few seconds to sink in but..yes, I see now.
> > >
> > > On Fri, 27 Nov 2020 at 16:46, bill lam <bbill....@gmail.com> wrote:
> > >
> > >> Well done!
> > >>
> > >> Sometimes I found it easier to read if negative index are used,
> > >>
> > >> 'rw rh' =. _2 _1 dmva sdl_getrenderoutputsize appr;(_1);(_1)
> > >>
> > >> On Sat, Nov 28, 2020, 12:19 AM emacstheviking <obji...@gmail.com>
> wrote:
> > >>
> > >>> Final more J-like solution to my problem, thanks bill Iam for the
> > >> nudge...
> > >>>
> > >>> dmva =: 4 : '''''&$ each (x{y)'
> > >>>
> > >>> This allows me to specify the actual array positions I want
> de-arrayed /
> > >>> scalerised and feels much more natural in use as I can now specify
> any
> > >>> number of positions and of course re-order things too. Probably the
> only
> > >>> improvement now is the name!
> > >>>
> > >>> 'rw rh' =. 2 3 dmva sdl_getrenderoutputsize appr;(_1);(_1)
> > >>>
> > >>> I appreciate that ''$ is only producing scales because the first
> atom of
> > >> my
> > >>> array contains a scalar. I think. !
> > >>> Thanks all once again,
> > >>> Sean.
> > >>>
> > >>>
> > >>> On Fri, 27 Nov 2020 at 13:05, bill lam <bbill....@gmail.com> wrote:
> > >>>
> > >>>> probably your width and height are not scalar but singleton array.
> you
> > >>> can
> > >>>> check them with monad $ .
> > >>>>
> > >>>> On Fri, Nov 27, 2020, 8:00 PM emacstheviking <obji...@gmail.com>
> > >> wrote:
> > >>>>
> > >>>>> Given these working external function declarations:
> > >>>>>
> > >>>>> SDL_GetWindowSize n x *i *i
> > >>>>> SDL_GetRendererOutputSize n x *i *i
> > >>>>> SDL_CreateRGBSurface > x i i i i i i i i
> > >>>>>
> > >>>>> then these two calls:
> > >>>>>
> > >>>>> 'ww wh'=:2}.sdl_getwindowsize appw;(,_1);(,_1)
> > >>>>> 'rw rh'=:2}.sdl_getrendereroutputsize appr;(,_1);(,_1)
> > >>>>>
> > >>>>> work and produce values of 1024 for ww and rw, and 768 for wh and
> rh
> > >>>>> respectively, as expected.
> > >>>>> However, when creating the rgb surface it raises a domain error
> and I
> > >>>> have
> > >>>>> been tearing my hair out to understand why.
> > >>>>> I have posted the full code at the end of this plea for help and
> > >>>>> enlightenment.
> > >>>>>
> > >>>>> args=.0;width;height;32;16bff0000;16bff00;16bff;16bff000000
> > >>>>> smoutput args
> > >>>>> sfc=: sdl_creatergbsurface args
> > >>>>>
> > >>>>> cder''
> > >>>>> 6 1
> > >>>>>
> > >>>>> yet calling it with literals or even the extracted 'y' value (a
> boxed
> > >>>>> dimension):
> > >>>>> args=.0;1024;768;32;16bff0000;16bff00;16bff;16bff000000. NB. works
> > >>>>> args=.0;width;height;32;16bff0000;16bff00;16bff;16bff000000. NB.
> > >> works
> > >>>>>
> > >>>>> I have used 3!:0 to examine the type, it is 4 (integer) in all
> cases
> > >>>>> (ww,wh,rw,rh,width,height), ruling out those errors.
> > >>>>> Thanks,
> > >>>>> Sean. :|
> > >>>>>
> > >>>>> -- full code ---
> > >>>>>
> > >>>>> ugo =: 3 : 0
> > >>>>> NB. testing out domain errors around sdl_creatergbsurface...
> > >>>>> args =. SCREEN_X_MAX;SCREEN_Y_MAX
> > >>>>> scrw =. SCREEN_X_MAX
> > >>>>> scrh =. SCREEN_Y_MAX
> > >>>>> sdlprep scrw;scrh
> > >>>>> cairoprep''
> > >>>>> urun''
> > >>>>> uend^:y ''
> > >>>>> )
> > >>>>>
> > >>>>> sdlprep =: 3 : 0
> > >>>>> 'width height'=. y
> > >>>>> sdl_init SDL_INIT_EVERYTHING
> > >>>>> appw=:sdl_createwindow 'test window';0;0
> > >>>>> ;width;height;SDL_WINDOW_SHOWN+SDL_WINDOW_ALLOW_HIGHDPI
> > >>>>> appr=:sdl_createrenderer appw;_1
> > >>>>> ;SDL_RENDERER_ACCELERATED+SDL_RENDERER_PRESENTVSYNC
> > >>>>> 'ww wh'=:2}.sdl_getwindowsize appw;(,_1);(,_1)
> > >>>>> 'rw rh'=:2}.sdl_getrendereroutputsize appr;(,_1);(,_1)
> > >>>>> cxm=: rw % ww
> > >>>>> cym=: rh % wh
> > >>>>> smoutput 'window: ', (":appw), 'renderer:', (":appr)
> > >>>>> smoutput 'requested width:',(":width),' height:',(":height)
> > >>>>> smoutput 'render width: ',(":rw),' height:',(":rh)
> > >>>>> smoutput 'window width: ',(":ww),' height:',(":wh)
> > >>>>> smoutput 'x/y multipliers:',(":cxm),'/',(":cym)
> > >>>>> NB. This needs to be endian-aware at some point
> > >>>>> smoutput (": (width = rw))
> > >>>>> args=.0;width;height;32;16bff0000;16bff00;16bff;16bff000000
> > >>>>> smoutput args
> > >>>>> sfc=: sdl_creatergbsurface args
> > >>>>> NB. Practice structures. PACKING!!! Show printable format name
> > >>>>> pFormat=._3 ic memr (sfc+8),0,8 NB. sdl_surface->format
> > >>>>> format=._2 ic memr pFormat,0,4 NB. sdl_surface->format->format
> > >>>>> smoutput 'pixel format:',(psz sdl_getpixelformatname format)
> > >>>>> EMPTY
> > >>>>> )
> > >>>>>
> > >> ----------------------------------------------------------------------
> > >>>>> For information about J forums see
> > >> http://www.jsoftware.com/forums.htm
> > >>>>>
> > >>>>
> ----------------------------------------------------------------------
> > >>>> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >>>>
> > >>>
> ----------------------------------------------------------------------
> > >>> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >>>
> > >> ----------------------------------------------------------------------
> > >> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >>
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to