void setup_native_patches(caWorld* world) { caNativePatch* improvPatch = circa_create_native_patch(world, "improv"); circa_patch_function(improvPatch, "play_audio", play_audio); circa_finish_native_patch(improvPatch); cairo_native_patch(circa_create_native_patch(world, "cairo")); caNativePatch* gl = circa_create_native_patch(world, "gl"); gl_native_patch(gl); circa_finish_native_patch(gl); }
void world_initialize(World* world) { initialize_null(&world->modulesByName); initialize_null(&world->modulesByFilename); initialize_null(&world->everyModule); initialize_null(&world->fileSources); initialize_null(&world->moduleSearchPaths); set_hashtable(&world->modulesByName); set_hashtable(&world->modulesByFilename); set_list(&world->everyModule); set_list(&world->moduleSearchPaths); set_list(&world->fileSources); world->moduleSearchPaths.append_str("$builtins"); world->fileWatchWorld = alloc_file_watch_world(); world->builtinPatch = circa_create_native_patch(world, "builtins"); #if CIRCA_ENABLE_LIBUV world->libuvWorld = alloc_libuv_world(); #endif perlin_init(); }
void libuv_native_patch(caWorld* world) { caNativePatch* socket = circa_create_native_patch(world, "socket"); circa_patch_function(socket, "make_server", make_server); circa_patch_function(socket, "Server.connections", Server__connections); circa_patch_function(socket, "make_tcp_client", make_client); circa_patch_function(socket, "make_tcp_client", make_client); circa_patch_function(socket, "Connection.send", Connection__send); circa_patch_function(socket, "Connection.receive", Connection__receive); circa_finish_native_patch(socket); }