查看单个帖子
旧 2009-05-06, 08:44 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】odgiconveyorcontextcurrentdrawable always returns 0

odgiconveyorcontext::currentdrawable always returns 0
odgiconveyorcontext::currentdrawable always returns 0
hi,
in odgsbasevectorizeview::dodraw - overrided method and all methods called from it, odgiconveyorcontext::currentdrawable always returns 0, though pdrawable prarametrer of dodraw is not 0.
regard,
michal sliwka

currentdrawable is set to odgibasevectorizer (odgibasevectorizer is implementor of odgiconveyorcontext interface) in odgibasevectorizer::dodraw().
if you insert this code to your overriden dodraw() method, your problem will most probably be solved. m_pdrawabledesc is protected member of odgibasevectorizer.
code:
odgilocaldrawabledesc desc(m_pdrawabledesc);
desc.ndrawableflags = ndrawableflags;
desc.persistid = pdrawable->id();
if(!desc.persistid)
desc.ptransientdrawable = pdrawable;
sincerely yours,
george udov
quote:
originally posted by george udov
currentdrawable is set to odgibasevectorizer (odgibasevectorizer is implementor of odgiconveyorcontext interface) in odgibasevectorizer::dodraw().
if you insert this code to your overriden dodraw() method, your problem will most probably be solved. m_pdrawabledesc is protected member of odgibasevectorizer.
code:
odgilocaldrawabledesc desc(m_pdrawabledesc);
desc.ndrawableflags = ndrawableflags;
desc.persistid = pdrawable->id();
if(!desc.persistid)
desc.ptransientdrawable = pdrawable;
unfortunately, it does not work. currentdrawable() always returns 0.
regards,
michal sliwka

could you please set breakpoint in the end of this code and post results:
- which value has desc.persistid ?
- which value has desc.ptransientdrawable ?
sincerely yours,
george udov
quote:
originally posted by george udov
could you please set breakpoint in the end of this code and post results:
- which value has desc.persistid ?
- which value has desc.ptransientdrawable ?
desc.persistid == 0x03089a58
desc.ptransientdrawable == 0
after subsequent call of this code during drawing, desc.persistid changes and desc.ptransientdrawable is always 0.
regards,
michal sliwka
it's mistaken change in dd 1.13.
we'll fix it in the next release/update.
you can open drawable by its id (desc.persistid) via call odgicontext:pendrawable().
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)