MyProject/SephyEngine

June_Engine #1_EngineCore.cpp (2)

REDFORCE 2017. 4. 7. 09:34

#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에 담아두면 될 것 같습니다.


그러나 아직은 확실히 동작시켜본 적이 없기 때문에 확신은 없습니다.



그냥 이렇게 한번 돌려보자 라는 생각으로 만들어두었을 뿐..


아무튼 현재 사용하지 않는 코어 부분들입니다!