std::string Framework::get_allegro_version() { uint32_t version = al_get_allegro_version(); int major = version >> 24; int minor = (version >> 16) & 255; int revision = (version >> 8) & 255; int release = version & 255; std::stringstream str; str << major << '.' << minor << '.' << revision << " - release " << release; return str.str(); }
void initialize() { srand((unsigned int) time(NULL)); #ifdef DEBUG printf("Allegro v%i.%i.%i\n", al_get_allegro_version() >> 24, (al_get_allegro_version() >> 16) & 255, (al_get_allegro_version() >> 8) & 255); #endif //DEBUG if (!al_init()) { printf("Failed to initialize allegro!\n"); exit(EXIT_FAILURE); } if (!al_install_audio()) { fprintf(stderr, "Failed to initialize audio!\n"); exit(EXIT_FAILURE); } if (!al_init_acodec_addon()) { fprintf(stderr, "Failed to initialize audio codecs!\n"); exit(EXIT_FAILURE); } if (!al_reserve_samples(1)) { fprintf(stderr, "Failed to reserve samples!\n"); exit(EXIT_FAILURE); } if (!al_install_mouse()) { fprintf(stderr, "Failed to initialize the mouse!\n"); exit(EXIT_FAILURE); } if (!al_install_keyboard()) { fprintf(stderr, "al_install_keyboard Failed!\n"); exit(EXIT_FAILURE); } al_init_primitives_addon(); al_init_font_addon(); al_init_ttf_addon(); al_init_image_addon(); }
/* Function: al_install_system */ bool al_install_system(int version, int (*atexit_ptr)(void (*)(void))) { ALLEGRO_SYSTEM bootstrap; ALLEGRO_SYSTEM *real_system; int library_version = al_get_allegro_version(); if (active_sysdrv) { return true; } /* Note: We cannot call logging functions yet. * TODO: Maybe we want to do the check after the "bootstrap" system * is available at least? */ if (!compatible_versions(version, library_version)) return false; _al_tls_init_once(); _al_vector_init(&_al_system_interfaces, sizeof(ALLEGRO_SYSTEM_INTERFACE *)); /* Set up a bootstrap system so the calls expecting it don't freak out */ memset(&bootstrap, 0, sizeof(bootstrap)); active_sysdrv = &bootstrap; read_allegro_cfg(); #ifdef ALLEGRO_BCC32 /* This supresses exceptions on floating point divide by zero */ _control87(MCW_EM, MCW_EM); #endif /* Register builtin system drivers */ _al_register_system_interfaces(); /* Check for a user-defined system driver first */ real_system = find_system(&_user_system_interfaces); /* If a user-defined driver is not found, look for a builtin one */ if (real_system == NULL) { real_system = find_system(&_al_system_interfaces); } if (real_system == NULL) { active_sysdrv = NULL; return false; } active_sysdrv = real_system; active_sysdrv->mouse_wheel_precision = 1; ALLEGRO_INFO("Allegro version: %s\n", ALLEGRO_VERSION_STR); if (strcmp(al_get_app_name(), "") == 0) { al_set_app_name(NULL); } _al_add_exit_func(shutdown_system_driver, "shutdown_system_driver"); _al_dtor_list = _al_init_destructors(); _al_init_events(); _al_init_pixels(); _al_init_iio_table(); _al_init_convert_bitmap_list(); _al_init_timers(); #ifdef ALLEGRO_CFG_SHADER_GLSL _al_glsl_init_shaders(); #endif if (active_sysdrv->vt->heartbeat_init) active_sysdrv->vt->heartbeat_init(); if (atexit_ptr && atexit_virgin) { #ifndef ALLEGRO_ANDROID atexit_ptr(al_uninstall_system); #endif atexit_virgin = false; } /* Clear errnos set while searching for config files. */ al_set_errno(0); active_sysdrv->installed = true; _al_srand(time(NULL)); return true; }
/** * @overload version * Returns the (compiled) version of the Allegro library, packed into a single * integer as groups of 8 * bits in the form * (major << 24) | (minor << 16) | (revision << 8) | release. */ VALUE rbal_get_allegro_version(VALUE vself) { return RBH_INT_NUM(al_get_allegro_version()); }
static mrb_value version(mrb_state *mrb, mrb_value self) { return mrbal_version_to_hash(mrb, al_get_allegro_version()); }