ESDLを試したけど、失敗した

30分プログラム、その501。ErlangSDLバインディングESDLを試したけど、うまくいかなかった。
画像をロードして表示するだけのはずなのに、まっしろなウインドウが表示されるだけ。なんとなく、MacPortsで入れたSDLが悪いんじゃないかという気がしてる。

追記(2009-01-03): Ubuntuで動かしたら、うまくいきました。

使い方

1> sdl_test:go().

ソースコード

-module(sdl_test).
-compile([export_all]).

-include_lib("esdl/include/sdl.hrl").
-include_lib("esdl/include/sdl_video.hrl").
-include_lib("esdl/include/sdl_events.hrl").
go() ->
    _Server = sdl:init(?SDL_INIT_VIDEO),
    sdl_util:debug(1),
    ScreenRef = sdl_video:setVideoMode(640, 480, 8, ?SDL_ANYFORMAT bor ?SDL_RESIZABLE),
    Screen = sdl_video:getSurface(ScreenRef),
    Bmp = sdl_video:loadBMP("air.bmp"),
    sdl_video:blitSurface(Bmp,null,Screen,null),
    sdl_video:updateRect(Screen,0,0,640,480),
    loop().

loop() ->
    case sdl_events:waitEvent() of
	#quit{} ->
	    exit(normal);
	_ ->
	    loop()
    end.