package allegro5 // #include // #include // #include // #include // #include // bool init() { // return al_init(); // } import "C" import ( "fmt" ) type InitConfig struct { Font bool Image bool Primitives bool Keyboard bool Mouse bool } // Init initializes the Allegro system func Init(config InitConfig) error { if !bool(C.init()) { return fmt.Errorf("Failed to initialize Allegro") } if config.Font && !bool(C.al_init_font_addon()) { return fmt.Errorf("Failed to initialize font addon") } if config.Font && !bool(C.al_init_ttf_addon()) { return fmt.Errorf("Failed to initialize ttf addon") } if config.Image && !bool(C.al_init_image_addon()) { return fmt.Errorf("Failed to initialize image addon") } if config.Primitives && !bool(C.al_init_primitives_addon()) { return fmt.Errorf("Failed to initialize primitives addon") } if config.Keyboard && !bool(C.al_install_keyboard()) { return fmt.Errorf("Failed to install keyboard") } if config.Mouse && !bool(C.al_install_mouse()) { return fmt.Errorf("Failed to install mouse") } return nil }