Re: SFML2 Demo Dilema

new topic     » goto parent     » topic index » view thread      » older message » newer message
petelomax said...
Icy_Viking said...

  while(sfRenderWindow_pollEvent(window,&event)) 

 while(sfRenderWindow_pollEvent(win,--what to put here?) 

My guess would be something like constant event = allocate(sizeof(sfEvent)) and use peek4s(event+??) to retrieve event.type, but you may well have to wrap a whole sfEvent class.

HTH, Pete

Assuming that this is the sfKeyEvent struct, it'd look like this (4.0.5 compatible code):

-- sfKeyEvent has 6 members, all of them 4-byte ints 
constant event = allocate(4*6) 
-- note that allocate() returns a C pointer, which is the same thing that the &event stuff in C/C++ does. 
... 
 while(sfRenderWindow_pollEvent(win,event) 
... 
integer eventType = peek4s(event) 
integer code = peek4s(event+4) 
integer alt = peek4s(event+8) 
integer control = peek4s(event+12) 
integer shift = peek4s(event+16) 
integer system = peek4s(event+20) 

sfRenderWindow_create() looks more difficult to wrap, as it passes a struct directly (without a pointer). One possibility:

--Graphics wrapper code 
public constant xsfRenderWindow_create = define_c_func(gfx,"sfRenderWindow_create",{C_INT,C_INT,C_INT,C_POINTER,C_UINT,C_POINTER},C_POINTER) 
 
public function sfRenderWindow_create(integer width, integer height, integer bitsPerPixel,sequence title,sfWindowStyle style,atom sett) 
 
 return c_func(xsfRenderWindow_create,{width, height, bitsPerPixel,allocate_string(title,1),style,sett}) 
	 
end function 
 
atom win = sfRenderWindow_create(800,600,32,"My Window", sfClose,0) 
 

If that doesn't work, you might have no choice but to add an extra C wrapper to wrap sfRenderWindow_create() and then wrap the C wrapper in Euphoria.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu