diff --git a/apple2sdl/main.go b/apple2sdl/main.go index f9f5c4f..051eb68 100644 --- a/apple2sdl/main.go +++ b/apple2sdl/main.go @@ -76,31 +76,33 @@ func SDLRun(a *apple2.Apple2) { paused = a.IsPaused() } - img := apple2.Snapshot(a) - if img != nil { - surface, err := sdl.CreateRGBSurfaceFrom(unsafe.Pointer(&img.Pix[0]), - int32(img.Bounds().Dx()), int32(img.Bounds().Dy()), - 32, 4*img.Bounds().Dx(), - 0x0000ff, 0x0000ff00, 0x00ff0000, 0xff000000) - // Valid for little endian. Should we reverse for big endian? - // 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff) + if !a.IsPaused() { + img := apple2.Snapshot(a) + if img != nil { + surface, err := sdl.CreateRGBSurfaceFrom(unsafe.Pointer(&img.Pix[0]), + int32(img.Bounds().Dx()), int32(img.Bounds().Dy()), + 32, 4*img.Bounds().Dx(), + 0x0000ff, 0x0000ff00, 0x00ff0000, 0xff000000) + // Valid for little endian. Should we reverse for big endian? + // 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff) - if err != nil { - panic(err) + if err != nil { + panic(err) + } + + texture, err := renderer.CreateTextureFromSurface(surface) + if err != nil { + panic(err) + } + + renderer.Clear() + w, h := window.GetSize() + renderer.Copy(texture, nil, &sdl.Rect{X: 0, Y: 0, W: w, H: h}) + renderer.Present() + + surface.Free() + texture.Destroy() } - - texture, err := renderer.CreateTextureFromSurface(surface) - if err != nil { - panic(err) - } - - renderer.Clear() - w, h := window.GetSize() - renderer.Copy(texture, nil, &sdl.Rect{X: 0, Y: 0, W: w, H: h}) - renderer.Present() - - surface.Free() - texture.Destroy() } sdl.Delay(1000 / 30) }