[M1 Mac, Monterey 12.6.3, clang 13.0.0, SDL 2.26.2, NO IDE]
SDL2を使ってウィンドウを表示させるところでつまずきました。
イベントをチェックするループを設定しないとダメなようです。日本語ユーザーの方がおなじみのStackOverflow英語版で解決法を見つけてくれていました。
ただこのコードではマウスクリックやキー押下に反応してしまうので、スクリーンショットが撮れません。少し修正が必要です。
一応MacOSでも使えるようにしてくれていますが、初心者は実質門前払いのような状況です。
クロスプラットホームと言いながらdmgインストーラにはMacの文字は見当たらず。どう見てもSDLの開発者はMacユーザーに冷たいですね。ゲーム界隈の方はApple嫌いが多いとか?
#include "SDL2/SDL.h"
#include <stdio.h>
int main(int argc, char* argv[]) {
SDL_Window *window;
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow(
"SDL Window",
100,
100,
640,
480,
0
);
if (window == NULL) {
printf("ウィンドウを生成できません: %s\n", SDL_GetError());
return 1;
}
// MacOS以外では以下ループは不要
SDL_Event e;
bool quit = false;
while (!quit){
while (SDL_PollEvent(&e)){
if (e.type == SDL_QUIT){
quit = true;
}
if (e.type == SDL_KEYDOWN){
quit = true;
}
if (e.type == SDL_MOUSEBUTTONDOWN){
quit = true;
}
}
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}