2009-11-18 7 views
3

wxGraphicsContext를 사용하여 플로터를 구현했습니다. 개발은 wxGTK를 사용하여 이루어졌으며 그래픽은 매우 빨랐습니다.wxGraphicsContext Windows에서 속도가 천천히 느림

그런 다음 wxWidgets 2.9.0을 사용하여 Windows (XP)로 전환했습니다. 그리고 같은 코드는 매우 느립니다. 프레임을 렌더링하는 데 약 350ms가 걸립니다. 사용자는 마우스로 플로터를 드래그 할 수 있기 때문에 느린 업데이트 속도로 매우 느리게 움직입니다.

wxDC를 사용하여 일부 부품을 구현하고 그 차이를 벤치 마크했습니다. wxDC를 사용하면 코드가 약 100 배 빠르게 실행됩니다.

내가 아는 한 카이로와 GDI +는 모두 소프트웨어에 구현되어 있으므로 Cairo는 GDI +보다 훨씬 빠를 필요가 없습니다.

내가 잘못 했나요? 아니면 GDI + 구현은 카이로와 동등하지 않습니까?

작은 메모 하나 : wxMemoryDC에서 만든 wxGraphicsContext를 사용하여 이제 wxBitmap에 렌더링합니다. 이는 이중 버퍼링이 작동하지 않기 때문에 XP에서의 깜박임을 피하기위한 것입니다. cairo homepage에서

+0

카이로 호출은 결국 Windows의 GDI를 통해 라우팅됩니다. 그래서 문제는 다른 곳에서 ... – arul

답변

0

발췌 카이로가 가능. (예를 들면 X를 통해 확장 렌더링) 때 디스플레이 하드웨어 가속을 이용하면서 모든 출력 매체에 일관된 출력을 생성하도록 설계

.

관련 문제