2010-02-17 6 views
3

최근에 SFML을 사용하기 시작했으며 "FreeResource"메소드가 제공되지 않는 것으로 나타났습니다. 예를 들어, sf::Font에는 LoadFromFile이라는 기능이 있지만 자원을 해제하는 기능은 없습니다.SFML 공개 자료

나는 이것이 매우 이상하다고 생각했다. 내가 놓친 게 있니? sf::Font 포인터를 만들고 동적으로 할당하고 삭제하는 유일한 방법은 무엇입니까?

+2

SFML에 대해 잘 모릅니다. 그러나'std :: vector'를 고려해보십시오; 수동으로 리소스를 해제해야합니까? 아니, 소멸자에서 끝났어. 나는 너에게 똑같이 의심한다. 스택 상에 가지고있는 것은 'new'와 'delete'보다 행동에 따라 다르다. (코드를 제외하고는 안전하지 않습니다.) 이것을 RAII라고합니다. – GManNickG

+0

때로는 동일한 컨텍스트에서 동일한 유형의 리소스가 필요하지만 다른 인스턴스가 필요합니다. 더 커질 필요가있는'sf :: Texture'를 가지고 있다면 간단히 크기를 조절할 수 없습니다 : 나는 그것을 '삭제'하고 새로운 것을 생성 (...)해야합니다. – Litty

답변

6

sf::Font은 해당 글꼴 데이터를 myGlyphs라는 std::map에 저장합니다 (source 참조). Font의 소멸자가 호출되면 해당 맵의 모든 내용이 자동으로 해제됩니다 (std::map 소멸자에 의해).