SDL2.0をインストールする
最新版のSDLをインストールする
せっかくなので最新版を使うことにしたのでメモ
SDL
リポジトリから最新版を取得
$ hg clone http://hg.libsdl.org/SDL
チェックアウトしたディレクトでビルドしようとするとエラーになるので、
別にディレクトリを作ってそこでビルドする
$ mkdir build_SDL
$ cd build_SDL
$ ../SDL/configure
$ make
# make install
以前書いたテストプログラムがそのままだと動かなかったので修正
多分他にもいろいろ違うみたいだけど、前書いたテストプログラムでの修正箇所はその2ヶ所ぐらいっぽい
#include <SDL.h> #include <iostream> #include <string> SDL_Window* window; static const std::string SCREEN_CAPTION = "SDL window test"; static const int SCREEN_WIDTH = 640; static const int SCREEN_HEIGHT = 640; static const int SCREEN_BPP = 32; bool init(); bool finalize(); bool pollingEvent(); int main(int argc, char* argv[]) { // initialize if (!init()) { std::cerr << "ERROR: failed to initialize SDL" << std::endl; exit(1); } // main loop while (true) { if (!pollingEvent()) break; } // finalize finalize(); return 0; } bool init() { // initialize SDL if( SDL_Init(SDL_INIT_VIDEO) < 0 ) return false; // create indow window = SDL_CreateWindow(SCREEN_CAPTION.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, 0); if (!window) return false; return true; } bool finalize() { // finalize SDL SDL_Quit(); } // polling event and execute actions bool pollingEvent() { SDL_Event ev; SDL_Keycode key; while ( SDL_PollEvent(&ev) ) { switch(ev.type){ case SDL_QUIT: // raise when exit event is occur return false; break; case SDL_KEYDOWN: // raise when key down { key=ev.key.keysym.sym; // ESC if(key==27){ return false; } } break; } } return true; }
コンパイル方法は以下の通り
g++ -g -o show_window_for_sdl2 show_window_for_sdl2.cpp `sdl2-config --cflags` `sdl2-config --libs`
結果は前のと同じなので省略
SDL_image
$ hg clone http://hg.libsdl.org/SDL_image/
$ mkdir build_SDL_image
$ cd build_SDL_image
$ ../SDL_image/configure
$ make
# make install
SDL_mixer
$ hg clone http://hg.libsdl.org/SDL_mixer/
$ mkdir build_SDL_mixer
$ cd build_SDL_mixer
$ ../SDL_mixer/configure
$ make
# make install