more sensible arg order for callback

This commit is contained in:
Adam Powers
2020-08-29 11:10:09 -07:00
parent e04b17911a
commit 1a70f77b2a
+6 -6
View File
@@ -16,10 +16,10 @@
#define SHIM_DEBUG #define SHIM_DEBUG
#ifndef __EMSCRIPTEN__ #ifndef __EMSCRIPTEN__
typedef void(*stub_callback_t)(const char *name, const char *fmt, void *ret_ptr, ...); typedef void(*stub_callback_t)(const char *name, void *ret_ptr, const char *fmt, ...);
#else /* __EMSCRIPTEN__ */ #else /* __EMSCRIPTEN__ */
/* WASM can't handle a variadic callback, so we pass back an array of pointers instead... */ /* WASM can't handle a variadic callback, so we pass back an array of pointers instead... */
typedef void(*stub_callback_t)(const char *name, const char *fmt, void *ret_ptr, void *args[]); typedef void(*stub_callback_t)(const char *name, void *ret_ptr, const char *fmt, void *args[]);
#endif /* !__EMSCRIPTEN__ */ #endif /* !__EMSCRIPTEN__ */
/* this is the primary interface to shim graphics, /* this is the primary interface to shim graphics,
@@ -45,7 +45,7 @@ ret_type name fn_args { \
ret_type ret; \ ret_type ret; \
debugf("SHIM GRAPHICS: " #name "\n"); \ debugf("SHIM GRAPHICS: " #name "\n"); \
if (!shim_graphics_callback) return; \ if (!shim_graphics_callback) return; \
shim_graphics_callback(#name, fmt, (void *)&ret, args); \ shim_graphics_callback(#name, (void *)&ret, fmt, args); \
return ret; \ return ret; \
} }
@@ -54,7 +54,7 @@ void name fn_args { \
void *args[] = { __VA_ARGS__ }; \ void *args[] = { __VA_ARGS__ }; \
debugf("SHIM GRAPHICS: " #name "\n"); \ debugf("SHIM GRAPHICS: " #name "\n"); \
if (!shim_graphics_callback) return; \ if (!shim_graphics_callback) return; \
shim_graphics_callback(#name, fmt, NULL, args); \ shim_graphics_callback(#name, NULL, fmt, args); \
} }
#else /* !__EMSCRIPTEN__ */ #else /* !__EMSCRIPTEN__ */
#define A2P #define A2P
@@ -64,14 +64,14 @@ ret_type name args { \
ret_type ret; \ ret_type ret; \
debugf("SHIM GRAPHICS: " #name "\n"); \ debugf("SHIM GRAPHICS: " #name "\n"); \
if (!shim_graphics_callback) return; \ if (!shim_graphics_callback) return; \
shim_graphics_callback(#name, fmt, (void *)&ret, __VA_ARGS__); \ shim_graphics_callback(#name, (void *)&ret, fmt, __VA_ARGS__); \
return ret; \ return ret; \
} }
void name args { \ void name args { \
debugf("SHIM GRAPHICS: " #name "\n"); \ debugf("SHIM GRAPHICS: " #name "\n"); \
if (!shim_graphics_callback) return; \ if (!shim_graphics_callback) return; \
shim_graphics_callback(#name, fmt, NULL, __VA_ARGS__); \ shim_graphics_callback(#name, NULL, fmt, __VA_ARGS__); \
} }
#endif /* __EMSCRIPTEN__ */ #endif /* __EMSCRIPTEN__ */