読者です 読者をやめる 読者になる 読者になる

ゆとりーなの日記

日記的な事を書いて行くと思はれる

生成と開放の順番

OpenALでソースとバッファーを作って破棄するときにこういう順番にしとくと終了時にアサーションが出るみたいです。

// アサーション!
ALuint source;
ALuint buffer;
alGenSources(1, &source);
alGenBuffers(1, &buffer);
.
.
.
alDeleteBuffers(1, &buffer);
alDeleteSources(1, &source);
// こうすると文句を言われない
ALuint source;
ALuint buffer;
alGenSources(1, &source);
alGenBuffers(1, &buffer);
.
.
.
alDeleteSources(1, &source);
alDeleteBuffers(1, &buffer);

なんというか、DirectXの時だと生成と開放の順番をひっくり返すのが割とセオリーな感じが個人的にはするのでこれは厄介だなと思うわけですね。あと、sourceとbufferそれぞれをリソース管理オブジェクトでラップして、これらをメンバとして持った時とかにも問題になりそうかもです。