That could be a bug, or maybe a side effect of the design. Would you mind opening an issue on github for us to look into later?
Thanks, John. > On Nov 29, 2015, at 6:10 AM, Sankaranarayanan Viswanathan > <rationalrev...@gmail.com> wrote: > >> On 11/29/15 7:22 PM, Jon Harper wrote: >> There's an image-gadget implementation from images.viewer, maybe you >> should start from that and expand to get all the functionnality you >> need ? >> >> IN: scratchpad >> "resource:./misc/icons/factor_48...@2x.png" <image-gadget> gadget. >> "resource:./misc/icons/factor_48...@2x.png" <image-gadget> "image" >> open-window >> >> Jon >> >> >> On Sun, Nov 29, 2015 at 1:37 PM, Sankaranarayanan Viswanathan >> <rationalrev...@gmail.com> wrote: >>> Hi, >>> >>> Hi, i'm facing a problem drawing textures in a new window. when I >>> create the gadget and add it to the listener using gadget. the image >>> shows corretly, when I create the gadget and use open-window, the >>> image does not show up on the new window. >>> >>> Sample code below: >>> >>> TUPLE: i-gadget < gadget >>> image texture ; >>> >>> : <i-gadget> ( path -- gadget ) >>> [ i-gadget new ] dip load-image >>image ; >>> >>> M: i-gadget pref-dim* >>> image>> dim>> [ 20 + ] map ; >>> >>> M: i-gadget graft* >>> dup find-gl-context >>> dup image>> { 0 0 } <texture> >>texture drop ; >>> >>> M: i-gadget ungraft* >>> dup find-gl-context >>> dup texture>> dispose >>> f >>texture drop ; >>> >>> M: i-gadget draw-gadget* >>> [ { 10 10 } ] dip texture>> [ draw-texture ] >>> curry with-translation ; >>> >>> ! In the listener >>> >>> "vocab:images/sprites/game_drop.png" <i-gadget> gadget. >>> >>> ! the above works and shows the image in the listener >>> >>> "vocab:images/sprites/game_drop.png" <i-gadget> "i-gadget" open-window >>> >>> ! the above opens a new window but the image does not show >>> >>> What could I be missing? >>> >>> Thanks, >>> Sankar >>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> Factor-talk mailing list >>> Factor-talk@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/factor-talk >> >> ------------------------------------------------------------------------------ > > I see that moving the texture creation code from graft* to draw-gadget* > solves the issue. I'm wondering if this is a bug, since the > documentation for graft* mentions that resources can be allocated on > this method (and to use find-gl-context to ensure the correct GL context > is setup before allocating the resources). > > The modified the code shown below works correctly: > > M: i-gadget graft* > drop ; > > M: i-gadget draw-gadget* > [ { 10 10 } ] dip > dup texture>> [ ] > [ dup image>> { 0 0 } <texture> >>texture texture>> ] ?if > [ draw-texture ] curry with-translation ; > > image-gadget seems to have been implemented in the same way though (i.e. > setting up textures is done on the 1st call into draw-gadget*). > > Thanks, > Sankar > > > ------------------------------------------------------------------------------ > _______________________________________________ > Factor-talk mailing list > Factor-talk@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/factor-talk ------------------------------------------------------------------------------ _______________________________________________ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk