Skip to content

Commit

Permalink
Example #6: blitting via SDL_BlitSurface with clipping
Browse files Browse the repository at this point in the history
  • Loading branch information
tisnik committed May 5, 2020
1 parent cf8e4cb commit 8b303ec
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions lesson7/sdl/introduction/test06.go
Original file line number Diff line number Diff line change
@@ -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)
}

0 comments on commit 8b303ec

Please sign in to comment.