emscripten通过emscripten_main_loop_arg传递var

时间:2015-10-30 11:56:44

标签: loops parameter-passing emscripten

我需要传递一些var:emscripten_set_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 ;
}

1 个答案:

答案 0 :(得分:1)

您可以将指针传递给struct 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 ;
}