2008-10-15 12 views
1

Win32 GDI에서 CDC 래핑을 사용하여 화면에 표시하고 인쇄하는 성숙한 MFC C++ 응용 프로그램이 있습니다. 수년에 걸쳐 최적화되어 왔지만 좀 더 빨리 바꾸고 싶습니다. 그래픽에는 렌더링 된 삼각형 표면 모델, 복잡한 폴리 라인과 폴리곤, 많은 텍스트가 포함됩니다. 다음 기준을 충족해야합니다.CDC 벡터 그래픽을 대체 할 빠른 라이브러리

  • 표시되는 벡터의 수가 매우 많습니다. 예를 들어 단일 서페이스 삼각형은 숫자 선을 생성하고 솔리드는 렌더링 될 때 채 웁니다. 현재이 정보는 어디에도 저장되지 않고 생성되고 즉시 그려집니다. SDK는 버퍼링 된 벡터의 총 수를 제한하거나 메모리가 부족한 경우를 지원해야합니다.

  • SDK는 CView 및 ScrollView 클래스를 포함하여 CWnd 파생 클래스에 렌더링 할 수 있어야합니다.

  • 이 SDK는 모든 Windows 인쇄 장치로 인쇄를 지원해야

  • SDK는 낮은 수준 CDC/GDI에서 포트가 비교적 간단 통화를 할 정도로 낮은 수준이어야한다.

  • 오픈 소스는 항상 멋지지만, $ 2k까지의 비용과 선택적인 업그레이드/지원 또한 괜찮습니다. 사용자 당 라이선스 비용이 부과되지 않습니다.

  • 소스 코드에 대한 액세스는 Windows CE/Mobile에서 SDK의 일부를 실행하는 아이디어와 함께 큰 보너스가됩니다.

  • 나는 내 자신의 3d에서 2d 뷰포트 관리를 까다롭게 처리합니다. 괜찮은 하위 수준의 SDK를 사용할 수없는 경우 상위 수준의 SDK는 3 차원을 잘 처리하고 32 비트 Windows 플랫폼에서 수백만 개의 삼각형, 다각형 및 텍스트 요소로 작업해야합니다.

의견이 있으십니까? 제안 된 제안에 특정 장단점을 나열하면 크게 감사하겠습니다.

답변

1

프로젝트에 대해 FastGraph (http://www.fastgraph.com)를 한번 평가했습니다. 필자가 쓴 작은 테스트 프로그램에서 매우 좋았습니다. 우리는 외부적인 이유로 그것을 사용하지 못했습니다. (내가 평가 한 라이브러리와 관련이 없습니다.) 그래서 나는 더 실용적인 경험이 없습니다.

+0

링크를 제공해 주셔서 감사합니다. 나는 FastGraph for DOS를 오래 전부터 사용 해왔고 당시에 좋아했습니다. 그것이 아직도 주변에 있다고 생각하지 않았다. –

2

DirectX 또는 SDL이 필요하다고 생각합니다. 3D 용으로 설계되었지만 2D 용으로도 작동합니다. Windows CE/Mobile 및 SDL을 모두 지원하는 것은 타사 OS에도 유용합니다.

불행히도 GDI와의 직접적인 호환성은 라이브러리에서 지원되지 않습니다. 그러나 GDI 설계된 응용 프로그램 클래스의 모든 출력 그래픽을 허용하고 DirectX 또는 SDL 클래스의 요구 사항에 맞게 형식을 변환하는 변환기 클래스를 만들어 트릭을 수행 할 수 있습니다 (사용하려는 용도에 따라 다름).

개인적으로 나는 그러한 컨버터 클래스를 한 번 만들었습니다. Pocket PC 용으로 작성된 게임이 SDL을 사용하여 작성되었으며 Palm 장치로 포팅해야했습니다. 거기서 나는 다른 그래픽 라이브러리 (lib의 이름을 기억하지 못함)를 사용해야했지만, 다른 lib에 필요한 형식으로 모든 SDL 함수 출력을 이식하는 데 성공했습니다. 필자는 현재 실행중인 장치에 따라 팜 (Palm) 또는 포켓 PC (Pocket PC) 라이브러리로 전달자를 전달하는 변환기 (래퍼) 함수를 호출하도록 응용 프로그램을 변경해야했습니다. 그래서 나는 GDI -> DirectX 또는 GDI -> SDL을 변환하기 위해 똑같이 할 수 있다고 생각한다.

+0

인쇄를 지원할 수 있습니까? – Aardvark