GearEngine  0.0.1
Gear::SceneManager 클래스 참조

#include <SceneManager.h>

Gear::SceneManager에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

void AddScene (const std::string &name, Scene *scene)
 
void EraseScene (const std::string &sceneName)
 
void ScenePush (const std::string &name)
 
void ScenePop ()
 
void changeScene (const std::string &name)
 

정적 Public 멤버 함수

static SceneGetCurScene ()
 
static SceneManagerGet ()
 
static void Destory ()
 

Private 멤버 함수

 SceneManager ()
 
 ~SceneManager ()
 

Private 속성

std::unordered_map< std::string, Scene * > m_SceneStoradge
 
std::stack< Scene * > m_SceneStack
 

정적 Private 속성

static Scenes_CurScene = nullptr
 
static SceneManagers_Instance = nullptr
 

상세한 설명

SceneManager.h 파일의 7 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ SceneManager()

Gear::SceneManager::SceneManager ( )
private

SceneManager.cpp 파일의 9 번째 라인에서 정의되었습니다.

10  {
11  }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ~SceneManager()

Gear::SceneManager::~SceneManager ( )
private

SceneManager.cpp 파일의 13 번째 라인에서 정의되었습니다.

14  {
15  while (!m_SceneStack.empty())
16  {
17  m_SceneStack.pop();
18  }
19 
20  for (auto scene : m_SceneStoradge)
21  {
22  delete scene.second;
23  }
24  m_SceneStoradge.clear();
25  }

멤버 함수 문서화

◆ AddScene()

void Gear::SceneManager::AddScene ( const std::string &  name,
Scene scene 
)

SceneManager.cpp 파일의 27 번째 라인에서 정의되었습니다.

28  {
29  auto target = m_SceneStoradge.find(name);
30  if (target == m_SceneStoradge.end())
31  {
32  m_SceneStoradge.insert({ name, scene });
33  }
34  else
35  {
36  GR_CORE_TRACE("%s Scene aleady Exist!", name);
37  }
38  }

◆ changeScene()

void Gear::SceneManager::changeScene ( const std::string &  name)

SceneManager.cpp 파일의 82 번째 라인에서 정의되었습니다.

83  {
84  auto scene = m_SceneStoradge.find(name);
85  if (scene != m_SceneStoradge.end())
86  {
87  if (s_CurScene != scene->second)
88  {
89  s_CurScene = scene->second;
90  }
91  }
92  }

◆ Destory()

static void Gear::SceneManager::Destory ( )
inlinestatic

SceneManager.h 파일의 29 번째 라인에서 정의되었습니다.

29  {
30  if (s_Instance != nullptr)
31  delete s_Instance;
32  }

◆ EraseScene()

void Gear::SceneManager::EraseScene ( const std::string &  sceneName)

SceneManager.cpp 파일의 40 번째 라인에서 정의되었습니다.

41  {
42  auto scene = m_SceneStoradge.find(name);
43  if (scene != m_SceneStoradge.end())
44  {
45  delete scene->second;
46  m_SceneStoradge.erase(scene);
47  }
48  else
49  {
50  GR_CORE_TRACE("%s Scene dosn't Exist!", name);
51  }
52  }

◆ Get()

static SceneManager* Gear::SceneManager::Get ( )
inlinestatic

SceneManager.h 파일의 24 번째 라인에서 정의되었습니다.

24  {
25  if (s_Instance == nullptr)
26  return s_Instance = new SceneManager;
27  return s_Instance;
28  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ GetCurScene()

static Scene* Gear::SceneManager::GetCurScene ( )
inlinestatic

SceneManager.h 파일의 22 번째 라인에서 정의되었습니다.

22 { return s_CurScene; }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ScenePop()

void Gear::SceneManager::ScenePop ( )

SceneManager.cpp 파일의 69 번째 라인에서 정의되었습니다.

70  {
71  if (m_SceneStack.size() != 1)
72  {
73  m_SceneStack.pop();
74  s_CurScene = m_SceneStack.top();
75  }
76  else
77  {
78  GR_CORE_TRACE("SceneStack has only one Scene!");
79  }
80  }

◆ ScenePush()

void Gear::SceneManager::ScenePush ( const std::string &  name)

SceneManager.cpp 파일의 54 번째 라인에서 정의되었습니다.

55  {
56  auto scene = m_SceneStoradge.find(name);
57  if (s_CurScene != scene->second)
58  {
59  m_SceneStack.push(scene->second);
60  s_CurScene = m_SceneStack.top();
61  }
62  else
63  {
64  GR_CORE_TRACE("%s Scene is aleady Current Scene!", name);
65  }
66 
67  }

멤버 데이터 문서화

◆ m_SceneStack

std::stack<Scene*> Gear::SceneManager::m_SceneStack
private

SceneManager.h 파일의 35 번째 라인에서 정의되었습니다.

◆ m_SceneStoradge

std::unordered_map<std::string, Scene*> Gear::SceneManager::m_SceneStoradge
private

SceneManager.h 파일의 34 번째 라인에서 정의되었습니다.

◆ s_CurScene

Scene * Gear::SceneManager::s_CurScene = nullptr
staticprivate

SceneManager.h 파일의 36 번째 라인에서 정의되었습니다.

◆ s_Instance

SceneManager * Gear::SceneManager::s_Instance = nullptr
staticprivate

SceneManager.h 파일의 37 번째 라인에서 정의되었습니다.


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.:
Gear::SceneManager::SceneManager
SceneManager()
Definition: SceneManager.cpp:9
Gear::SceneManager::m_SceneStack
std::stack< Scene * > m_SceneStack
Definition: SceneManager.h:35
GR_CORE_TRACE
#define GR_CORE_TRACE(...)
Definition: Log.h:26
Gear::SceneManager::s_Instance
static SceneManager * s_Instance
Definition: SceneManager.h:37
Gear::SceneManager::m_SceneStoradge
std::unordered_map< std::string, Scene * > m_SceneStoradge
Definition: SceneManager.h:34
Gear::SceneManager::s_CurScene
static Scene * s_CurScene
Definition: SceneManager.h:36