리소스를 관리하는데 shared_ptr를 써야되는가 RawPointer를 써야되는가 weak_ptr를 써야되는가?
241
작성한 질문수 16
한 GameObject 내부에서 선언되는 Parent, Children와 한 MeshRenderer 내부에서 선언되는 Mesh, Material 등등과 같은 리소스들은 각각 Scene과 ResourceManager내부에서 관리(생성, 파괴)되기 때문에 이런 관리해주는 클래스 에서만 shared_ptr로 생성해주고 다른 클래스 에서는 weak_ptr로 전해받았었습니다.
그런데 문뜩 든 생각이 결국 다른 클래스에서 이런 객체들을 사용하기 위해 프레임마다 weak_ptr::lock을 사용하여 shared_ptr로 만들어서 사용할텐데 이러면 비용 부담이 너무 많이되어 배보다 배꼽이 큰 상황이 발생하는 것 같다는 생각이 들었고 이럴바엔 그냥 왠만한 클래스에선 리소스를 shared_ptr로 선언하고 사용한 후 관리해주는 클래스(Scene, ResourceManager)들에서 삭제될때 여기서도 동시에 shared_ptr를 지워버리는식으로 관리를 해주는게 더 좋을 것 같다고 생각을했는데 과연 옳은 생각인 건가요?
답변 1
1
네 실제로 프로젝트에 따라 weak_ptr을 아예 안 쓰는 경우도 있습니다.
0
그렇다면 혹시 질문이 있는데 관리자 클래스쪽에서 해제시킬때 관련된 모든 클래스들을 차례차례 다 방문하면서 shared_ptr를 해체시키고 마지막으로 관리자 클래스에 있는 shared_ptr를 해제해주는 노가다 방식말고 관리자 클래스에서 shared_ptr가 해제될때 이 share_ptr를 가지고 있는 모든 클래스에서 알아서 이 shared_ptr를 해제해주는 방식이 없을까요?
그리고 만약 방식이 없는데도 이러한 방식으로 디자인을 만들고 싶다면 관리자쪽에서만 shared_ptr을 쓰고 다른 클래스 쪽에선 weak_ptr을 써야되는 거겠죠?
assimp-vc143-mtd.dll가 없어서 코드 실행을 진행할 수 없습니다 라는 에러가 뜹니다.
0
79
1
Model.cpp에서 ReadMaterial()의 SpecularTexture 부분 질문입니다.
0
56
0
노멀매핑 자료
0
74
1
셰이더 인텔리센스 문제
0
79
1
4강 삼각형띄우기 오류관련 질문있습니다
0
66
1
64.애니메이션 강의의, AssimpTool 에서 FBX 애니매이션 데이터를 옮길 때의 강의 오류가 있는 것 같습니다.
1
65
1
SkyDemo에서 카메라 입력이 작동하지 않는 문제
0
83
2
섹션6. DirectX 11 3D 입문 강의부터 렌더링이 안됩니다
0
131
2
텍스처와 UV 강의 관련해서 문의드려요
0
162
2
frame간 보간에 대해서 질문이있습니다.
1
132
1
자료 pptx가 아닌 pdf
0
109
1
어디에 좀더 집중해야하나 고민입니다
0
201
1
CameraPosition 질문있습니다
1
113
1
안녕하세요 roatation 행렬 질문있습니다.
1
155
2
'C\ .... ......lib'은 올바른 win32에플리케이션이 아닙니다.
0
523
4
버텍스버퍼 실습 도중 버그
0
176
1
물방울 책 실습은 어디까지 하는건가요??
0
404
2
리소스매니저의 get함수에서 에러가 나요
0
133
2
자식 GameObject SetPosition 시 움직이지 않음
0
101
1
강의 끝나고 3D 포폴
0
317
2
공부 방법에 대해서 문의 드려요
0
154
1
19분 5초에 함수 구현부 한꺼번에 만드는법
1
151
1
좌표계 변환 행렬이랑 srt 변환 행렬
0
205
2
SRT 행렬중에 ppt 질문 있습니다.
0
168
1





