我必须在这里释放 OpenAL 上下文吗?

发布于 2024-11-18 22:31:57 字数 369 浏览 4 评论 0原文

设置 OpenAL 时,Leaks Instruments 告诉我,我在此处泄漏 alContext:

alDevice = alcOpenDevice(NULL);
if (!alDevice) {
    return NO;
}

alContext = alcCreateContext(alDevice, 0); // leaking!
if (!alContext) {
    return NO;
}

BOOL success = alcMakeContextCurrent(alContext);
if (!success) {
    return NO;
}

return YES;

我应该在哪里以及如何释放 alContext?

When setting up OpenAL, the Leaks Instruments tells me that I am leaking alContext here:

alDevice = alcOpenDevice(NULL);
if (!alDevice) {
    return NO;
}

alContext = alcCreateContext(alDevice, 0); // leaking!
if (!alContext) {
    return NO;
}

BOOL success = alcMakeContextCurrent(alContext);
if (!success) {
    return NO;
}

return YES;

Where and how should I release the alContext?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

埋葬我深情 2024-11-25 22:31:57

以下是清理的方法:

alcMakeContextCurrent(NULL);
alcDestroyContext(alContext);
alcCloseDevice(alDevice);

每当您完成上下文时,您只需调用这些方法...这取决于您的应用程序以及您如何使用它,但可能在某个 dealloc 中。

Here's how you would cleanup:

alcMakeContextCurrent(NULL);
alcDestroyContext(alContext);
alcCloseDevice(alDevice);

And you would just call these methods whenever you are done with the context... that depends on your application and how you are using it, but probably in a dealloc somewhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文