最近のSDL_SurfaceとSDL_Texture

以前はSDL_Textureを元に得られたSDL_Surfaceには元のSDL_TextureIDが含まれていた。その為普段SDL_Surfaceへのポインタのみを保持していて、必要になったら内包されているSDL_TextureIDを使うことができた。ちなみに直接作られたSDL_SurfaceにはSDL_TextureIDの0番(無効な番号)が含まれていた。
現在はSDL_Surfaceの内容が大きく変わって、SDL_SurfaceSDL_TextureIDが含まれなくなった。また、SDL_TextureからSDL_Surfaceを作る為の関数が公開されなくなった*1。相互に変換する手段が無いということは、SDL_SurfaceSDL_Textureのどちらかを選んで使っていく必要があるように思うんだけど、そうでもないのかな。
SDL_imageなどが(当然ながら)まだSDL_Textureに対応していないので、しばらくはSDL_Surfaceも使うけど、画像を読み込んですぐにSDL_Textureへ変換してしまうから、結局手元のアプリではSDL_Surfaceへのポインタの代わりにSDL_TextureIDを保持するようになった。このまま必要な部分以外はSDL_Textureへ移行した方が良いのかもしれないなあ。ただ、そうなるとSDL_Texture間のcopyが出来ないなどの、SDL_Surfaceとの機能差による制約も同時に受ける訳で、そうそう簡単に全面移行は出来ないんじゃないかなあ、というのが現在の感想。

*1:存在はするがstaticな関数なので外からは利用出来ない