【发布时间】:2013-07-11 15:02:17
【问题描述】:
我目前正在开发一款在 Android 上使用 OpenGL ES 2.0 的游戏(在 C++ 中使用 NDK)。
我有一个名为“Drawable”的类,它是我使用 OpenGL 绘制对象的基类。 在类的析构函数中,我必须清理一些缓冲区:
Drawable::~Drawable() {
LOGE("release");
releaseBuffers();
}
但是析构函数被无休止地调用(就像在线程的每个循环中一样),这弄乱了我的绘图。
我有点迷失在这里,我找不到类似的问题,所以欢迎帮助!
编辑:循环代码在这里:link
Edit2:我发现了一个邪恶的召唤:
在我的播放器类中,我有这个电话:
currentWeapon->draw(this);
到
void Weapon::draw(Player* p)
如果我对此发表评论,垃圾邮件就消失了。
【问题讨论】:
-
你是否在每个滴答/循环中初始化一个新的 Drawable?
-
我们能看到循环的代码吗?
-
在问你的问题时,你为什么选择只向我们展示析构函数?您已经告诉我们正在调用它,所以这可能没有帮助。看到它被调用的循环,或者你已经完成了一些工作来确定循环调用析构函数会有所帮助。
-
@kfsone 我这样做是因为我有这么多代码,也许它很简单。无论如何,我知道这还不清楚,所以我在这里上传了循环函数:link
标签: c++ android-ndk opengl-es-2.0 destructor