回答編集履歴
1
レンダラーについて追記
test
CHANGED
@@ -1,12 +1,26 @@
|
|
1
1
|
ループ内で一度も画面の更新を行っていないので、
|
2
2
|
|
3
|
-
`SDL_BlitSurface`と`SDL_UpdateWindowSurface`をループ内に書けばOKのはずですが、
|
3
|
+
`SDL_BlitSurface`と`SDL_UpdateWindowSurface`をループ内に書けばOKのはずですが、
|
4
|
+
|
5
|
+
SDL2では`SDL_GetWindowSurface`ではなく`SDL_CreateRenderer`を使います。
|
4
6
|
|
5
7
|
|
6
8
|
|
7
|
-
|
9
|
+
理由については以下のサイトに日本語訳がありますが、
|
10
|
+
|
11
|
+
[SDL 1.2から2.0への移行](https://sdl2referencejp.osdn.jp/MigrationGuide.html)
|
8
12
|
|
9
13
|
|
14
|
+
|
15
|
+
要約すると、従来のサーフェスを使ったやり方は主にシステムメモリとCPUを使用
|
16
|
+
|
17
|
+
新しいレンダラーを使ったやり方はビデオRAMとGPUを使用しハードウェアアクセラレーションで行われる。
|
18
|
+
|
19
|
+
といった感じです。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
なので、SDL1じゃなくてちゃんとSDL2の解説をしているサイトを見ませう。
|
10
24
|
|
11
25
|
|
12
26
|
|
@@ -130,13 +144,11 @@
|
|
130
144
|
|
131
145
|
}
|
132
146
|
|
147
|
+
// ここで、画面のクリア・描画処理・画面への反映を行う
|
148
|
+
|
133
149
|
SDL_RenderClear(renderer);
|
134
150
|
|
135
|
-
|
136
|
-
|
137
151
|
SDL_RenderCopy(renderer, texture, nullptr, &rect);
|
138
|
-
|
139
|
-
|
140
152
|
|
141
153
|
SDL_RenderPresent(renderer);
|
142
154
|
|