2015-10-30 2 views
0

Мне нужно передать некоторый var через: emscripten_set_main_loop_arg. в примере ниже?emscripten pass var через emscripten_main_loop_arg

Прототип

extern void emscripten_set_main_loop_arg (em_arg_callback_func func, void *arg, int fps, int simulate_infinite_loop); 

Как это сделать?

void foo(int x,int y) ; 

int main (void) 
{ 
int x=10; 
int y=10; 

emscripten_set_main_loop_arg(foo, ?? , 60, 1); // ?? (void *) 

while(1) { foo(x,y); } ; 

return 0 ; 
} 

ответ

0

Вы можете передать указатель на структуру, как void*.

#include <stdio.h> 
#include <stdlib.h> 
#include <emscripten.h> 

typedef struct foo_arg { 
    int x; 
    int y; 
} foo_arg; 

void foo(void* arg_) { 
    foo_arg* arg = arg_; 
    printf("%d, %d\n", arg->x, arg->y); 
} 

int main (void) 
{ 
    int x=10; 
    int y=100; 

    foo_arg* arg = (foo_arg*)malloc(sizeof(foo_arg)); 
    arg->x = x; 
    arg->y = y; 
    emscripten_set_main_loop_arg(foo, arg , 60, 1); 

    return 0 ; 
}