mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 09:24:36 +00:00
52 lines
1.1 KiB
Nim
52 lines
1.1 KiB
Nim
# Test the SDL interface:
|
|
|
|
import
|
|
sdl, sdl_image, colors
|
|
|
|
var
|
|
screen, greeting: PSurface
|
|
r: TRect
|
|
event: TEvent
|
|
bgColor = colChocolate.int32
|
|
|
|
if init(INIT_VIDEO) != 0:
|
|
quit "SDL failed to initialize!"
|
|
|
|
screen = SetVideoMode(640, 480, 16, SWSURFACE or ANYFORMAT)
|
|
if screen.isNil:
|
|
quit($sdl.getError())
|
|
|
|
greeting = IMG_load("tux.png")
|
|
if greeting.isNil:
|
|
echo "Failed to load tux.png"
|
|
else:
|
|
## convert the image to alpha and free the old one
|
|
var s = greeting.displayFormatAlpha()
|
|
swap(greeting, s)
|
|
s.freeSurface()
|
|
|
|
r.x = 0
|
|
r.y = 0
|
|
|
|
block game_loop:
|
|
while true:
|
|
|
|
while pollEvent(addr event) > 0:
|
|
case event.kind
|
|
of QUITEV:
|
|
break game_loop
|
|
of KEYDOWN:
|
|
if EvKeyboard(addr event).keysym.sym == K_ESCAPE:
|
|
break game_loop
|
|
else:
|
|
discard
|
|
|
|
discard fillRect(screen, nil, bgColor)
|
|
discard blitSurface(greeting, nil, screen, addr r)
|
|
discard flip(screen)
|
|
|
|
greeting.freeSurface()
|
|
screen.freeSurface()
|
|
sdl.Quit()
|
|
|
|
## fowl wuz here 10/2012 |