Managed Frame 까지 포함될 경우 개발자 편의를 위해 설계한 VXSceneStory 및 VXFunctionScenario의 자료구조에 다음의 네 가지로 나눈 모듈에 따라
- OTF Generator
- Reconstructor
- Renderer
- VObject Generator
먼저 DLL 솔루션으로 정의되는 모듈을 VXFramework 에 추가하기 위해, 다음의 단계를 따른다.
- Platform 에서 사용될 모듈을 지정하고 있는 text list(Platform을 build 할 때 binary로 추가됨)에 모듈 Name과 ID를 추가한다.
- Platform frame에서 모듈을 명시적으로 사용하기 위해 Managed 자료구조에 Module enumeration을 추가한다. (명시적으로 사용하지 않고 ID 로만 사용할 수도 있음.)
- 추가된 enumeration을 바탕으로 모듈의 행동을 검사하는 Engine Commander Center 의 코드를 추가한다. (해당 플랫폼에서 사용되지 않더라도 추가된 history가 있으면 언제든 사용 가능.)
VXFramework은 모듈 SDK로서의 기능과 플랫폼 SDK로서의 기능을 고려하여 만든 Library 이므로, 모든 Frame(Platform Frame, Engine Frame, Module Frame)을 각각 독립적 솔루션으로 구성하였다.
하여, 위의 단계를 통해 추가된 모듈을 Platform 에서 사용하게 되었으면 모듈 개발을 위해 VXFramework을 SDK library로 활용하기 위한 프로젝트 세팅이 필요하다.
다음은 VS2010 에서의 프로젝트 생성 및 설정을 위한 방법이다.
- Native C/C++ 기반으로 빈 프로젝트를 만든다.
- VXFramework의 Native 자료구조 및 Helper를 사용하기 위한 Main Header를 include한다.
- DLL에 대한 function import를 위한 키워드로 vxstatic 을 정의하고 모든 엔진 모듈에서 정의된 Function을 선언한다.
- 프로젝트 설정을 통해, 모듈을 DLL로 설정하며 모듈에서 사용할 Static 및 Dynamic Library를 위한 Link 설정을 한다.
- DLL 프로젝트의 Entry Point 로서의 플랫폼을 설정하고, 기타 프로젝트 생성 파일에 대한 폴더를 지정한다.
- 이를 x86/64, Debug/Release에 대해 적절히 설정한다.
<프로젝트 설정>
현재 버젼은 Frame의 Math Helper로 DX9Math.lib을 사용하여 D3dx9.lib을 Link를 위한 Library로 추가하였지만 그 외의 DirectX 를 기본 자료구조로 삼고 있지 않으므로 DirectX SDK가 반드시 깔려 있을 필요는 없다. (이 경우 물론 D3dx9.lib 및 D3dx9math.h 는 있어야 한다.)
또한 특정 라이브러리 및 OS 플랫폼에 대한 종속성이 없으므로 CUDA 및 OpenGL, DirectX 등 여러 Library를 Static 이든 Dynamic 이든 프로젝트 설정에 적절히 추가하여 사용할 수 있다.
No comments:
Post a Comment