저는 현재 Android에서 OpenGL ES 2.0을 사용하는 게임을하고 있습니다 (C++에서는 NDK 사용).소멸자가 계속 호출됩니다.
OpenGL을 사용하여 객체를 그리는 기본 클래스 인 "Drawable"클래스가 있습니다. 클래스의 소멸자에서 는 좀 버퍼를 정리해야합니다 :
Drawable::~Drawable() {
LOGE("release");
releaseBuffers();
}
하지만 소멸자 내 그림을 엉망으로, (스레드의 모든 루프에서와 같이) 끝없이이라고합니다.
나는 여기에서 길을 잃어 버렸고 유사한 문제를 찾을 수 없어 도움을 환영합니다!
편집 : 루프 코드는 여기에 있습니다 : link
Edit2가 :
currentWeapon->draw(this);
에 :이 호출이 내 플레이어 클래스에서
: 나는 악마 호출 중 하나를 발견
void Weapon::draw(Player* p)
내가이를 설명하면 스팸이 사라집니다.
1) 당신은 스택에 Drawable
의 인스턴스를 생성하고,이 범위를 벗어날 :
틱/루프마다 새로운 드로어 블을 초기화합니까? –
루프 코드를 볼 수 있습니까? – IanPudney
질문 할 때, 왜 우리에게 소멸자 이외의 것을 보여 주기로 선택하셨습니까? 이미 전화가 걸려 왔다고해서 아마 도움이되지 않을 것입니다. 루프가 호출되는 것을 보거나, 루프가 소멸자를 호출하는 것이 무엇인지 판단하기 위해 어떤 작업을 수행했다면 도움이되었을 것입니다. – kfsone