Opened issue #1510

Thanks,
Sankar

On 11/29/15 8:01 PM, John Benediktsson wrote:
> 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

Reply via email to