저번에, EngineBase를 싱글톤 패턴으로 바꾸고 나니, 메모리 누수가 감지되었다.
아무래도 소멸자의 호출 시기가 애매해서 그런 것 같았다.
실제로, 메모리 해제 함수를 만든다음 프로그램이 종료되기 전에 명시적으로 메모리를 해제해주니 메모리 누수가 사라졌음을 확인할 수 있었다.
하지만, 이렇게 메모리 해제를 직접 호출해야 하는 상황이 그렇게 좋은 방식으로 보이지는 않았고, 그냥 마이어스 싱글톤 형식으로 수정하였다.
public:
static EngineBase& GetInstance()
{
static EngineBase Instance;
return Instance;
}
이렇게, 지역 스태틱을 선언하고 참조자를 반환하는 형식으로 구현하였고, 동적으로 메모리를 할당하지 않았기 때문에 당연히 누수도 사라졌음을 확인할 수 있었다.
'프로젝트 > Direct X 그래픽스' 카테고리의 다른 글
프로젝트 : DirectX를 활용한 그래픽스 (6 - 버텍스 쉐이더, 인풋 레이아웃, 픽셀 쉐이더) (1) | 2024.05.01 |
---|---|
프로젝트 : DirectX를 활용한 그래픽스 (5 - 상수 버퍼) (0) | 2024.05.01 |
프로젝트 : DirectX를 활용한 그래픽스 (3 - 버텍스 버퍼, 인덱스 버퍼) (0) | 2024.05.01 |
프로젝트 : DirectX를 활용한 그래픽스 (2 - 다이렉트X 초기화) (1) | 2024.04.30 |
프로젝트 : DirectX를 활용한 그래픽스 (1 - 윈도우 초기화) (0) | 2024.04.30 |