I have a mature MFC C++ application that displays on screen and prints using CDC wrappings on the Win32 GDI. While it has been optimized over the years, I would like to replace it with something a bit faster. The graphics included rendered triangular surface models, complex polylines and polygons, and lots of text. It needs to meet the following criteria;
The number of vectors displayed is likely to be very large. For example a single surface triangle is likely to generate a number lines and solid fills when rendered. At present this information is not stored anywhere, it is generated and drawn on the fly. The SDK should support limit the total number of buffered vectors, or it is liable to run out of memory.
The SDK should be able to render to any CWnd derived class including CView and ScrollView classes.
The SDK should support printing to any Windows print device,
The SDK should be low level enough to make the port from low level CDC / GDI calls relatively straightforward.
Open source is always nice, but a one off cost of up to say $2k, with optional upgrades/support would also be ok. A license cost per user is not acceptable,
Access to source code would be a big bonus, specifically with the idea of running portions of the SDK on Windows CE / Mobile.
I currenly handle my own 3d to 2d viewport management. If a decent low level SDK is not available, a higher level SDK must handle 3d well, and work with millions of triangles, polygons and text entities on a 32 bit windows platform.
Any suggestions? Listing the specific pros and cons in your proposed suggestion would be greatly appreciated.