2012-01-25 5 views
15
내가 무슨 생각을 여기에, 위의 라이브러리의 관계에 대해 조금 혼란스러워하고있어

:라이브러리 사이의 관계 : 클러 등 Cogl, 클러, GTK +,

  1. Cario는 2D 그래픽 라이브러리 GTK +는 그것을 위젯을 렌더링하는 데 사용합니다. 카리 오는 저수준입니다.
  2. Cogl은 OpenGL (또는 포크는 모르겠다) 기반의 3D 그래픽 라이브러리이며 Clutter는 Cogl을 기반으로하는 3D GUI 툴킷입니다.

이것이 맞으면 GTK + 언젠가는 바꿔야할까요?

그리고 ...

이 질문이나 내가 먼저 읽어야 할 책을 물어 더 나은 장소가 생각한다면, 나에게 알려주세요! 나는 흥미있는 프로그래밍을 스스로 학습하고있다.

답변

39

예, Cairo는 고품질 2D 드로잉 API이며 GTK +는 Cairo를 사용하여 그림을 그립니다.

Cogl은 내부적으로 GL 또는 GLES를 사용하여 그래픽 파이프 라인에 액세스 할 수있는 GPU 프로그래밍 라이브러리입니다 (이론적으로 지원 플랫폼에서 DirectX를 쉽게 사용할 수는 있지만).

클라터는 렌더링에 Cogl을 사용하지만 2D 요소에도 Cairo를 사용할 수 있습니다.

클러 터가 GTK +를 대체하지 않습니다. GTK +는 시스템 통합, 복잡한 위젯 및 기타 유용한 API를 제공하는 매우 복잡한 라이브러리로, Clutter는 제공하지 않습니다.

미래는 흑백 교체보다 조금 더 회색이 될 것입니다.

카이로는 Cogl을 사용하여 그릴 수 있습니다. Cogl은 GPU 파이프 라인을 프로그래밍하지만 Cairo는 제출할 형상을 생성하므로 고품질 2D 결과를 얻을 수 있습니다. Cairo는 이미 GL을 직접 사용할 수 있지만 Cogl은 더 나은 상태 추적을 제공합니다.

클러 터는 GTK + 윈도우 시스템 API 인 GDK를 사용하여 윈도우 시스템 표면과 대화하고 입력 이벤트를 얻을 수 있습니다.

미래에는 GTK +가 Clutter를 내부적으로 위젯의 기반으로 사용할 가능성이 있습니다. 짧은

, 다이어그램가 될 수있다 :


    GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application 
+4

앱 개발자라면 gtk를 사용하여 창, 메뉴, 툴바 등을 만들고 "그림 영역"과 같이 적합하지 않은 앱 콘텐츠를 그리는 데 혼란을 겪을 수 있습니다 위젯 기반 앱 메타포로 혼란 스러울 정도로, 특정 드로잉 작업을 위해 카이로에 파고들 수 있습니다. –

-3

나는 도서관 사이의 관계가 생각하는 상호 의존적; 즉, 도서관은 독자적으로 설 수 없습니다. 달리기 위해서는 다른 사람을 의지해야합니다.