GearEngine  0.0.1
Gear::Application 클래스 참조

#include <Application.h>

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

Public 멤버 함수

 Application ()
 
virtual ~Application ()
 
void Run ()
 
void OnEvent (Event &e)
 
WindowGetWindow ()
 

정적 Public 멤버 함수

static ApplicationGet ()
 

Protected 속성

ImGuiLayerm_ImGuilayer
 

Private 멤버 함수

bool OnWindowClose (WindowCloseEvent &e)
 
bool OnWindowResize (WindowResizeEvent &e)
 

Private 속성

std::unique_ptr< Windowm_Window
 
bool m_Running = true
 
bool m_Minimized = false
 
Scenem_CurScene
 
float m_LastFrameTime = 0.0f
 

정적 Private 속성

static Applications_Instance = nullptr
 

상세한 설명

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

생성자 & 소멸자 문서화

◆ Application()

Gear::Application::Application ( )

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

18  {
20 
21  GR_CORE_ASSERT(!s_Instance, "Application arleady exist!");
22  s_Instance = this;
23  m_Window = std::unique_ptr<Window>(Window::Create());
24  m_Window->SetEventCallback(BIND_EVENT_FN(OnEvent));
25 
27 
28  m_ImGuilayer = new ImGuiLayer;
29  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ~Application()

Gear::Application::~Application ( )
virtual

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

32  {
34 
36  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ Get()

static Application& Gear::Application::Get ( )
inlinestatic

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

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

◆ GetWindow()

Window& Gear::Application::GetWindow ( )
inline

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

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

◆ OnEvent()

void Gear::Application::OnEvent ( Event e)

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

39  {
41 
42  EventDispatcher dispatcher(e);
43 
44  dispatcher.Dispatch<WindowCloseEvent>(BIND_EVENT_FN(OnWindowClose));
45  dispatcher.Dispatch<WindowResizeEvent>(BIND_EVENT_FN(OnWindowResize));
46 
47  for (auto it = m_CurScene->end(); it != m_CurScene->begin();) {
48  (*--it)->OnEvent(e);
49  if (e.m_Handled)
50  break;
51  }
52  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWindowClose()

bool Gear::Application::OnWindowClose ( WindowCloseEvent e)
private

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

91  {
92  m_Running = false;
93  return true;
94  }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnWindowResize()

bool Gear::Application::OnWindowResize ( WindowResizeEvent e)
private

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

97  {
98  GR_PROFILE_SCOPE("RunLoop");
99 
100  if (e.GetWidth() == 0 || e.GetHeight() == 0)
101  {
102  m_Minimized = true;
103  return false;
104  }
105  m_Minimized = false;
106  Renderer::OnWindowResize(e.GetWidth(), e.GetHeight());
107 
108  return false;
109  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Run()

void Gear::Application::Run ( )

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

55  {
57 
58  while (m_Running)
59  {
60  GR_PROFILE_SCOPE("RunLoop");
61 
62  float time = (float)glfwGetTime();
63  Timestep timestep = time - m_LastFrameTime;
64  m_LastFrameTime = time;
65 
66 
67  if (!m_Minimized)
68  {
70  {
71  GR_PROFILE_SCOPE("LayerStack OnUpdate");
72 
73  for (Layer* layer : *m_CurScene)
74  layer->OnUpdate(timestep);
75  }
76 
78  {
79  GR_PROFILE_SCOPE("LayerStack OnImGuiRender");
80  for (Layer* layer : *m_CurScene)
81  layer->OnImGuiRender();
82  }
83  m_ImGuilayer->End();
84  }
85 
86  m_Window->OnUpdate();
87  }
88  }
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ m_CurScene

Scene* Gear::Application::m_CurScene
private

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

◆ m_ImGuilayer

ImGuiLayer* Gear::Application::m_ImGuilayer
protected

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

◆ m_LastFrameTime

float Gear::Application::m_LastFrameTime = 0.0f
private

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

◆ m_Minimized

bool Gear::Application::m_Minimized = false
private

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

◆ m_Running

bool Gear::Application::m_Running = true
private

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

◆ m_Window

std::unique_ptr<Window> Gear::Application::m_Window
private

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

◆ s_Instance

Application * Gear::Application::s_Instance = nullptr
staticprivate

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


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.:
Gear::Renderer::OnWindowResize
static void OnWindowResize(uint32_t width, uint32_t height)
Definition: Renderer.cpp:24
Gear::ImGuiLayer::End
void End()
Definition: ImGuiLayer.cpp:78
Gear::Application::OnEvent
void OnEvent(Event &e)
Definition: Application.cpp:38
Gear::Renderer::Shutdown
static void Shutdown()
Definition: Renderer.cpp:19
Gear::Application::m_Window
std::unique_ptr< Window > m_Window
Definition: Application.h:38
GR_PROFILE_FUNCTION
#define GR_PROFILE_FUNCTION()
Definition: Instrumentor.h:131
Gear::Application::m_Minimized
bool m_Minimized
Definition: Application.h:40
Gear::Application::s_Instance
static Application * s_Instance
Definition: Application.h:44
BIND_EVENT_FN
#define BIND_EVENT_FN(x)
Definition: Application.cpp:13
Gear::SceneManager::GetCurScene
static Scene * GetCurScene()
Definition: SceneManager.h:22
Gear::Scene::end
auto end()
Definition: Scene.h:21
GR_PROFILE_SCOPE
#define GR_PROFILE_SCOPE(name)
Definition: Instrumentor.h:130
Gear::ImGuiLayer::Begin
void Begin()
Definition: ImGuiLayer.cpp:69
Gear::Application::OnWindowClose
bool OnWindowClose(WindowCloseEvent &e)
Definition: Application.cpp:90
Gear::Scene::begin
auto begin()
Definition: Scene.h:20
GR_CORE_ASSERT
#define GR_CORE_ASSERT(x,...)
Definition: Core.h:68
Gear::Application::m_ImGuilayer
ImGuiLayer * m_ImGuilayer
Definition: Application.h:35
Gear::Application::OnWindowResize
bool OnWindowResize(WindowResizeEvent &e)
Definition: Application.cpp:96
Gear::Renderer::Init
static void Init()
Definition: Renderer.cpp:11
Gear::Window::Create
static Window * Create(const WindowProps &props=WindowProps())
Definition: WindowsWindow.cpp:19
Gear::Application::m_LastFrameTime
float m_LastFrameTime
Definition: Application.h:42
Gear::Application::m_CurScene
Scene * m_CurScene
Definition: Application.h:41
Gear::Application::m_Running
bool m_Running
Definition: Application.h:39