diff --git a/lesson7/sdl/introduction/test06.go b/lesson7/sdl/introduction/test06.go new file mode 100644 index 0000000..2192aa1 --- /dev/null +++ b/lesson7/sdl/introduction/test06.go @@ -0,0 +1,67 @@ +package main + +import ( + "github.com/veandco/go-sdl2/img" + "github.com/veandco/go-sdl2/sdl" +) + +const ( + width = 640 + height = 480 +) + +func main() { + if err := sdl.Init(sdl.INIT_VIDEO); err != nil { + panic(err) + } + defer sdl.Quit() + + window, err := sdl.CreateWindow("SDL2 example #6", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, + width, height, sdl.WINDOW_SHOWN) + if err != nil { + panic(err) + } + defer window.Destroy() + + primarySurface, err := window.GetSurface() + if err != nil { + panic(err) + } + + tempImage, err := img.Load("test1.bmp") + if err != nil { + panic(err) + } + defer tempImage.Free() + + convertedImage, err := tempImage.Convert(primarySurface.Format, 0) + if err != nil { + panic(err) + } + defer convertedImage.Free() + + primarySurface.FillRect(nil, sdl.MapRGB(primarySurface.Format, 192, 255, 192)) + + srcRect := sdl.Rect{ + X: convertedImage.W / 4, + Y: 0, + W: convertedImage.W / 2, + H: convertedImage.H / 2, + } + + dstRect := sdl.Rect{ + X: width / 2, + Y: height / 2, + W: 100, + H: 100, + } + + err = convertedImage.Blit(&srcRect, primarySurface, &dstRect) + if err != nil { + panic(err) + } + + window.UpdateSurface() + + sdl.Delay(5000) +}