Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

codingfarm

기본지식 - COM(Component Object Model) 본문

computer graphics/DirectX11

기본지식 - COM(Component Object Model)

scarecrow1992 2020. 11. 27. 22:38

COM(Component Object Model)은 어떤 프로그램이나 시스템을 이루는 컴포넌트들이 상호 통신할 수 있도록 하는 메커니즘이라고 할 수 있다. 그렇기 때문에 COM을 이용하면 DirectX의 프로그래밍 언어 독립성과 하위 호환성을 가능하게 할 수 있다. COM 객체는 흔히 인터페이스라 부르지만, C++클래스로 간주해도 무방하므로 흔히 COM 객체라고 부른다.

 

C++로 DirectX 응용프로그램을 프로그래밍 할때 COM의 세부사항 대부분은 프로그래머에게 드러나지 않는다. 프로그래머가 알아야 할 것은 필요한 COM 인터페이스를 가리키는 포인터를 특별한 함수들을 이용해서, 또는 다른 COM 인터페이스의 메서드를 이용해서 얻는 방법 뿐이다.

 

COM 인터페이스를 new나 delete를 이용하여 색성, 삭제를 할 수 없다. 반드시 생성을 위한 별도의 API 함수를 써야하며, 그 인터페이스의 Release 메서드를 호출해야한다. 모든 COM 인터페이스는 IUnknown이라는 COM인터페이스의 기능을 상속하는데, 그 인터페이스가 Release라는 메서드를 제공한다.

 

COM 인터페이스들은 이름이 대문자 I로 시작한다. 가령 2차원 텍스처를 나타내는 COM 인터페이스는 ID3D11Texture2D 이다.

 

COM에 대해서는 더 방대한 이야기들이 많지만 우선 여기까지 하겠다.

 

 

Comments