2011-02-27 1 views
0

나는 Xlib 용 GDI의 StretchBlt와 같은 기능을하는 함수를 찾고있다. XLib 헤더에서 그런 함수를 찾을 수 없으므로 StretchBlt가 XLib에 대해 어떻게 구현하는지 이해해야한다고 생각하기 시작했습니다. 어떤 도움을 주셔서 감사합니다.Xlib 용 StretchBlt?

+0

의 중복 가능성 [Xlib를 가진 픽스맵의 크기를 조정하는 방법?] (http://stackoverflow.com/questions/1222631/how-to- resize-a-pixmap-with-xlib) – MusiGenesis

답변

1

Xlib 또는 X 프로토콜에서이 작업을 수행하는 방법은 없습니다. 몇 가지 방법이 포함될 수 있습니다해야 할 일 : GDK-pixbuf에서

  • gdk_pixbuf_composite()을 (GTK + 2.x에서의 일부, GTK + 3.x를위한 별도의 lib 디렉토리)
  • 카이로 (http://cairographics.org)
  • OpenGL을
  • 의 라이브러리에 의존 (http://code.google.com/p/skia/)는
  • 는 가장 좋은 방법은 프로젝트의 세부 사항에 많이 의존 손

하여 자신 만의 루틴을 작성합니다. 일반적으로 Xlib의 드로잉 프리미티브는 현대 표준으로는 거의 쓸모가 없기 때문에 좀 더 상위 계층 라이브러리를 사용해야합니다. 카이로는 아마도 기본 선택 일 것이고, 오픈 소스 자료에서 널리 사용됩니다.

Xlib을 일반적으로 올바르게 코딩하는 것은 매우 어렵습니다 ... 문제는 사용자가 가질 수있는 시각적 및 컬러 맵을 처리해야한다는 것입니다. 사용자가 사용할 정확한 하드웨어와 소프트웨어를 알고 있다면 이것은 사소한 일일 수 있습니다. 그렇지 않으면 커다란 두통이 될 수 있습니다. 16 비트와 24 비트 및 32 비트 심도와 다른 엔디안 니스 등을 작성하는 변환이 많이 있습니다. GTK +와 Cairo에는 거기에 변환 코드가 있기 때문에 사용할 수 있으면 ARGB32와 같은 고정 된 형식의 스트레치 루틴을 작성하고 다른 모든 것을 다룰 필요가 없습니다.