查看单个帖子
旧 2009-05-06, 09:33 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】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.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)