1. Engine Frame
- Engine API for platform developer
- File Interface for importing and exporting data
- Data Structures for module development and resource management
- Module Arbiter and Resource Manager
2. Module Frame
- Base Interface Module Arbiter and Module
- CLI wrapper to convert C++ based-API into C# interface
- Global Header for Helper functions and Based Objects
- Engine Center for native resource/module items (as symbol) and engine commander based on CLI wrapper
- Common Controls for engine manipulation UI
- Main Window for integration (G)UIs
Engine Frame은 Engine Module 및 플랫폼 프로세싱의 대상이 되는 Resource를 관리하는 역할을 하며, Module Frame은 Engine Module을 정의한다.
그리고 Platform Frame은 VXFramework 을 통해 구현하고자 하는 최종 Platform을 효율적으로 설계하기 위해 Native와 Managed Code의 Interoperation을 해 주고, 각종 사용자 컨트롤을 위한 Component로 구성되어 있다.
VXFramework에서는 자유도 높은 Function의 확장성 뿐만 아니라, 주로 사용하게 되는 방대한 용량의 Resource를 효율적으로 관리하기 위해 C#의 TreeViewItem을 상속 받는 ObjectTreeViewItem 이라는 자료구조를 정의하고 이를 단위로 Resource를 컨트롤한다.
이것은 WPF에서 제공하는 Object Browser인 TreeView 를 사용하여 현재 Resource 상황을 다음과 같이 확인할 수 있다.
Tree Item의 상속관계는 Resource 를 Platform의 Contents로 어떻게 사용하느냐에 따라 다르게 설계될 수 있으며 Resource에 대한 ObjectTreeViewItem 설정 및 해제는 다음의 규칙을 따른다.
- Item 추가 : Native에 존재하고 있는 Resource를 Item으로 추가하여 Tree View에서 Story에 적합한 상속 구조를 구성할 수 있으며 이 경우 Native Resource ID를 Item이 공유하게 된다.
- Item 삭제 : 현재 노드 및 하위 노드의 모든 Item 을 recursive하게 삭제한다. Native Resource는 Reference Count 방식을 통해, 해당 Resource를 참조하고 있는 Item이 하나일 경우일 때만 삭제되어 최종적으로 메모리에서 제거된다.
VXFramework 은 위대하다. -_-b
No comments:
Post a Comment