Skip to content

Commit

Permalink
Example #13: setting various blending modes
Browse files Browse the repository at this point in the history
  • Loading branch information
tisnik committed May 5, 2020
1 parent 0ac1a8d commit 080cbfe
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions lesson7/sdl/introduction/test13.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 #13", 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)
}

image, err := img.Load("globe.png")
if err != nil {
panic(err)
}
defer image.Free()

primarySurface.FillRect(nil, sdl.MapRGB(primarySurface.Format, 192, 255, 192))

dstRect := sdl.Rect{}
dstRect.Y = 10

for y := 0; y < 4; y++ {
image.SetAlphaMod(byte(y * 64))

image.SetBlendMode(sdl.BLENDMODE_NONE)
dstRect.X = 10
image.Blit(nil, primarySurface, &dstRect)

image.SetBlendMode(sdl.BLENDMODE_BLEND)
dstRect.X += 100
image.Blit(nil, primarySurface, &dstRect)

image.SetBlendMode(sdl.BLENDMODE_ADD)
dstRect.X += 100
image.Blit(nil, primarySurface, &dstRect)

image.SetBlendMode(sdl.BLENDMODE_MOD)
dstRect.X += 100
image.Blit(nil, primarySurface, &dstRect)

dstRect.Y += 100
}

window.UpdateSurface()

sdl.Delay(5000)
}

0 comments on commit 080cbfe

Please sign in to comment.