几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】overlapdraw (http://www.dimcax.com/hust/showthread.php?t=17828)

yang686526 2009-05-06 09:33 PM

【转帖】overlapdraw
 
overlapdraw
overlapdraw
i've been using overlapdraw much as in odamfcapp. i'd like to improve its rendering. to that end i've tried a couple of things. the latest is:
code:
odgsbasevectorizeview* pvv=odgsbasevectorizeview::safecast(pdest.get());
if (m_pmetafile.isnull())
{
m_pmetafile=pvv->newgsmetafile();
}
else
{
pvv->playmetafile(m_pmetafile);
}
pvv->beginmetafile(m_pmetafile);
unfortunately...i get a crash when i try to play the metafile. is this approach valid? can you think of other mechanisms to clear what was drawn on the dc without forcing a redraw of the entire drawing? are we supposed to be able to use the metafile functions on the view?
george,
ideally, i'd like to just redraw prior to my tools drawing. i'm not sure that i have got the caching turned on and working. a couple questions:
1. does caching work with all the renderers? ie gdi, opengl, directx etc?
2. i've looked at odamfcapp and tried to imitate it with regard to caching. can you tell me what steps are necessary to get it in use?
thanks,
tyler
george,
i've tried forcing the redraw (m_pdevice->update()) but i get so much flicker that its almost unbearable. the redraw doesn't seem to be fast enough to be called on a mousemove. i'm working with a blank drawing so it should be lightening fast for a redraw... thats why i started looking at other alternatives.
unfortunately, i just haven't been able to come up with a better/faster mechanism that what is currently used in odamfcapp. do you have more suggestions?
thanks,
tyler
i run into trouble keeping the xor on/off states managed... especially when i have a temporary entity xor'd on to the screen and then change the zoom level. i get a fragment that sticks around until redraw gets called.


所有的时间均为北京时间。 现在的时间是 09:15 PM.