블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
1) Lists(NiTPointerList)
- 포인터나 스마트 포인터 또는 포인터 크기만하거나 더 작은 다른 요소를 저장하고 관리할 수 있다.
- 어떤 요소에서든 삽입/삭제가 효과적.
- 모든 요소를 통해 전/후 반복(iteration)이 효과적.
- 리스트를 검색해서 주어진 값으로 된 요소의 존재와 위치를 찾을 수 있다.
- NiTPointerList의 아이템들은 공유 pool로부터 블록으로 할당되므로, 처리 속도가 빨라지고 메모리 효율적으로 됨.
- 포인터보다 큰 오브젝트들의 리스트에는 NiTObjectList를 사용.

2) Array(NiTArray)
- 거의 모든 타입의 객체가 들어있는 동적 배열을 구현함.
- 이 배열은 늘어나거나 줄어들 수 있으며, 필요하다면 압축(빈 공간을 없애기 위해 요소들을 시프트(shift)시킴)할 수도 있다.
- 고유 타입(char*, float, int 등)에는 NiTPrimitiveArray 사용
- NiMemObject에서 파생한 타입에는 NiTObjectArray 사용.
- 요소의 개수는 65535개로 제한.
  (그 이상을 사용하려면 NiTLargePrimitiveArray나 NiTLargeObjectArray같은 NiTLargeArray 파생 클래스 사용.)

3) Map(NiTPointerMap)
- ("사전"이라고도 알려진) 해시 테이블(hash-table)기능을 구현하여, 어떤 유형의 키든..포인터나 스마트 포인터 또는 포인터 크기만하거나 더 작은 다른 타입의 요소에 맵핑하게 해줌.
- 이 객체를 사용하면 키와 값으로 이루어진 쌍의 저장이나 검색(lookup)이 빨라짐.
- 캐릭터의 문자열키 해시 테이블에는 사용 X(NiTStringPointerMap을 사용)
- NiTPointerMap과 NiTStringPointerMap의 아이템들은 공유 pool로부터 블록으로 할당되므로, 이 클래스의 처리 속도가 빨라지고 메모리 효율적으로 됨.
- 포인터보다 큰 오브젝트들의 맵에는 NiTMap이나 NiTStringMap을 사용.

4) StringMap
- NiTStringMap과 NiTStringPointerMap 객체는 NiTMap 및 NiTPointerMap 객체와 비슷한 방식으로 기능하지만 character string을 키로 받아들이며, 키 해싱(key hashing)을 위해 문자열을 비교함.

5) FixedStringMap(NiTFixedStringMap)
- NiTMap 객체와 비슷한 방식으로 기능하나 NiFixedString 객체를 키로 받아들임.

6) Queue(NiTQueue)
- 거의 모든 타입의 객체에 대한 선입선출(FIFO) 큐를 구현함.
- 스마트 포인터는 지원되지 않음.

7) Set(NiTSet)
- 거의 모든 타입의 객체에 대한 순서 없는 세트를 구현.
- 스마트 포인터는 지원되지 않음.
- 고유 타입(char*, float, int, 등)에는 NiTPrimitiveSet을 사용
- NiMemObject에서 파생한 타입에는 NiTObjectSet을 사용
- 오브젝트의 스마트 포인터에는 레퍼런스 카운트를 올바르게 처리하는 NiTObjectPtrSet이나 NiTPrimitivePtrSet을 사용.

8) Pool(NiTPool)
- 작은 객체들의 pool을 구현.
- 이렇게 하면 어플리케이션은 작은 객체들을 개별적으로 할당/해제하기 보단, 이 객체들을 한꺼번에 할당하고 pool을 통해 재사용할 수 있게 됨.
반응형

'Gamebryo > Learn' 카테고리의 다른 글

겜브리오의 텍스처 공유  (0) 2011.11.11
DirectX 디바이스 얻어오기  (0) 2010.11.04
충돌 박스 노드에 임시 생성  (0) 2010.07.02
여러창 동시 렌더링  (0) 2010.07.02
렌더러를 만들어보자  (0) 2010.04.08
Posted by blueasa
, |