Skip to content

Instantly share code, notes, and snippets.

@boarpig
Last active August 29, 2015 14:23
Show Gist options
  • Save boarpig/d09e419b427c8c2da440 to your computer and use it in GitHub Desktop.
Save boarpig/d09e419b427c8c2da440 to your computer and use it in GitHub Desktop.
package main
import (
"unsafe"
"github.com/veandco/go-sdl2/sdl"
)
func main() {
const w = 640
const h = 480
sdl.Init(sdl.INIT_VIDEO)
window, err := sdl.CreateWindow("Cube", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED,
w, h, sdl.WINDOW_SHOWN)
if err != nil {
panic(err)
}
defer window.Destroy()
renderer, err := sdl.CreateRenderer(window, -1, sdl.RENDERER_ACCELERATED)
if err != nil {
panic(err)
}
defer renderer.Destroy()
texture, err := renderer.CreateTexture(sdl.PIXELFORMAT_ARGB8888, sdl.TEXTUREACCESS_STREAMING,
w, h)
if err != nil {
panic(err)
}
defer texture.Destroy()
var pixels unsafe.Pointer
var pitch int
err = texture.Lock(nil, &pixels, &pitch)
if err != nil {
panic(err)
}
for x := 0; x < w; x++ {
for y := 0; y < h; y++ {
(*[w * h]uint32)(pixels)[y*(pitch/4)+x] = 0xFF00FF // whatever color you want
}
}
texture.Update(nil, pixels, pitch)
texture.Unlock()
renderer.Clear()
renderer.Copy(texture, nil, nil)
renderer.Present()
sdl.Delay(1000)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment