func loadGraphic(filename string) *sdl.Texture { var err error image, err = img.Load(filename) if err != nil { fmt.Print("Failed to load PNG: ") fmt.Println(err) panic(err) } defer image.Free() var graphic *sdl.Texture graphic, err = renderer.CreateTextureFromSurface(image) if err != nil { fmt.Print("Failed to create texture: ") fmt.Println(err) panic(err) } return graphic }
// LoadGraphic loads a graphic from disk or panics trying. The image can be in // BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, or XV format. // The user must supply the filename of the graphic file to load, in the // parameter filename. // // If the function succeeds then a variable of type Graphic will be returned // back to the calling function. It is the programmers responsibility to // store this in a variable of type Graphic. // // If the function fails it will panic and crash the program. // The reasons for a panic are: // // 1. The toolbox has not been initalised // // 2. The filename does not exist, or is otherwise inaccessable. The specific // reason will be contained in the panic message itself. This message will // be prefixed with "Failed to load file: ". // // 3. The file could not be converted into a Graphic type. Again the specific // reason will be contained in the panic message itself. This message will be // prefixed with "Failed to create Graphic: " func LoadGraphic(filename string) Graphic { if !initialised { // this stops execution here, so ne need for an else after the if panic(notInitialisedMessage) } var err error var image *sdl.Surface image, err = img.Load(filename) if err != nil { fmt.Print("Failed to load file: ") fmt.Println(err) panic(err) } defer image.Free() var graphic *sdl.Texture graphic, err = renderer.CreateTextureFromSurface(image) if err != nil { fmt.Print("Failed to create Graphic: ") fmt.Println(err) panic(err) } return Graphic(graphic) }