June_Engine #1_EngineCore.cpp (2)
#1. Engine System
+ WinMain - EngineSystem
+ EngineCore (현재 글)
+ EngineError
+ MainNode
#2. FrameWork
+ Grahpics
+ Image - SpriteData
+ Layer
+ Input
+ Game
+ Manager
+ Game Interface
+ Utility
#3. Testing Module
+ 2D Image Test
+ 2D Animation Test
+ Game UI Test
-----------------------------------------------------------------------
이어서 EngineCore의 cpp 입니다.
.h 에서 선언해두었던 std::thread를 이용하는 내용만 있습니다만.
실질적으로 어떤 것을 수행하게끔 구현은 시켜두지 않았습니다.
본래 계획은 Component Based 형식의 엔진 구조를 만들어서
이 코어쓰레드들을 여러개 만들어서 일을 시킬려고 했습니다만
아직 개발중인지라 틀만 잡아두고 냅둔 상태입니다.
그래도 아무 설명도 안하고 넘어가면 찝찝하니 initialize( )에 적어둔 내용을 보겠습니다.
SYSTEM_INFO systemInfo;
GetSystemInfo(&systemInfo); //Get SystemInfo
DWORD cpu_count = systemInfo.dwNumberOfProcessors; //CPU CORE COUNT
는 윈도우 함수를 이용해서 cpu 코어 갯수를 알아내는 방법입니다.
DWORD 형태로 값이 반환되어 지기 때문에 (int)로 형변환하여
받아온 코어 갯수 만큼 쓰레드를 생성하여 컨테이너에 담아둡니다.
그리고 그 쓰레드가 일할 내용은 선언해두었던 가상 함수 CoreSupport( ) 를 넣어주었습니다.
만약 어떤 쓰레드를 이용하여 일을 시킬 내용이 생긴다면
EngineCore를 부모로 상속받아서 어떤 작업 내용을 CoreSupport에 담아두면 될 것 같습니다.
그러나 아직은 확실히 동작시켜본 적이 없기 때문에 확신은 없습니다.
그냥 이렇게 한번 돌려보자 라는 생각으로 만들어두었을 뿐..
아무튼 현재 사용하지 않는 코어 부분들입니다!