emscripten 通过 emscripten_main_loop_arg 传递 var

emscripten pass var through emscripten_main_loop_arg

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

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