SDL

Berry

相変わらず全然進んで無いです、はい。 import std.stdio; import berry; extern (C) int captureKey(SDL_Event *e) { switch (e.key.keysym.sym) { case SDLK_ESCAPE: SDL_Event q; q.type = SDL_QUIT; /// q.quit.type = SDL_QUIT; ///どっちでもおkっぽ…

通ったけど・・・

これであれば通るワケだ。 extern (C) alias void (*Hoge)(int*); extern (C) void Foo(int *a) { a = cast(int *)1; } void Piyo(Hoge a, int *b) { a(b); printf("address: 0x%p\n", a); } void main() { int a; printf("before %d\n", a); Piyo(&Foo, &a)…

ふむふむ

alias void (*Hoge)(int*); void Foo(int *a) { a = cast(int *)1; } void Piyo(Hoge a, int *b) { a(b); printf("address: 0x%p\n", a); } void main() { int a; printf("before %d\n", a); Piyo(&Foo, &a); printf("after %d\n", a); } aliasの部分をexter…

Berry

(int(C *)(SDL_Event * event))このCはなんなんだ?constの略?でもSDL_EventFilterは以下のように定義されてるし・・・ alias int (*SDL_EventFilter)(SDL_Event *event);

Berry キーハンドラ

void userDeifnedHandler(const SDL_Event *e) { swtich (_toKeySym(e)) { case SDLK_ESCAPE: _callQuit(); } } ... b.entryKeyHandler(userDefinedHandler); ... ってなカンジでSDL_SetEventFilter()を使ったほうがいいのかも。

D言語でSDL

dHell2のSDLportを使う。 SDLを使ったexeを動かすには直下ディレクトリ/PATHの通った所にSDL.dllが無いとダメ。(そうじゃないと、128が返る) 後は適当に書いてけばおk TODO: 明日ぐらいにはslime.bmpを使ってslimeを動かす。 import std.stdio; import SDL;…