Thanks for the insight, very much appreciated. 

I had considered doing something similar with a type, but what that be on 
par with global variables in terms of performance? I read in the docs that 
global variables are frowned up.

On Thursday, May 7, 2015 at 3:15:28 AM UTC-4, Alex wrote:
>
> Hi!
>
> Strangely enough (?) it seems one can't pass normal functions 
> to GLFW.Set...Callback. But if you just want to store the positions in some 
> object (maybe to change its properties) you can do something like this
>
> # some type which needs positions
> type Foo
>     x::Float64
>     y::Float64
> end
>
> setpos!(foo::Foo, x, y ) = (foo.x = x; foo.y = y; foo)
>
> # initialize a Foo
> foo = Foo(0.,0.)
>
>
> # this is the callback function which updates the coordinates in foo
> function poscb(foo::Foo, x, y)
>     println("cursor pos: $x, $y")
>
>     setpos!(foo, x, y)
>
>     nothing
> end
>
>
> # ...
>
>
> GLFW.SetCursorPosCallback(window, (x,y)->poscb(foo, x,y))
>
>
> # ...
>
> In the main loop you can now draw/use foo with updated positions.
>
> Hope it helps,
>
> Alex.
>
> PS: The question about the Julian way of doing event processing/callbacks 
> is quite interesting. Reactive.jl is pretty cool, but I don't know if there 
> is a "consensus" that it is the recommended or preferred way of doing this.
>
>
> On Wednesday, 6 May 2015 22:49:00 UTC+2, Elburz Sorkhabi wrote:
>>
>> Hey there, about a week into Julia now and really enjoying it. 
>>
>> I have a quick question that I feel is pretty simple but I can't seem to 
>> find any good examples in the docs or by looking through other peoples 
>> code, and I'm quite new to programming callbacks in general.
>>
>> I'm trying to get keyboard and mouse inputs from this GLFW.jl saved into 
>> a variable:
>>
>> https://github.com/JuliaGL/GLFW.jl/blob/master/examples/callbacks.jl
>>
>> In this example callbacks are used to update and println() the values. I 
>> tried a few different things like replacing the println() with another 
>> function that would assign the values to some variables, as well as just 
>> assigning variables after the ->, but I must be missing something simple as 
>> those didn't seem to work properly. 
>>
>> What I'd really like is to be able to write something like :
>>
>> mouseCoordinates = GLFW.SetCursorPosCallback(window, (x, y)) 
>>
>> and have a 2 element set with the x and y position easily accessible. 
>>
>> For reference here is the implementation of the SetCursorPosCallback 
>> function (near the bottom of this page):
>>
>> https://github.com/JuliaGL/GLFW.jl/blob/master/src/glfw3.jl
>>
>> And what seems to be happening is that the function is being passed into 
>> a macro here:
>>
>> https://github.com/JuliaGL/GLFW.jl/blob/master/src/util.jl
>>
>> Any help even just walking me through it would be greatly appreciated. 
>>
>>

Reply via email to