高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】odgsmodel, invalidate90
odgsmodel, invalidate() ...
odgsmodel, invalidate() ...
hello,
in my application i use the following code to paint a line as selected:
oddblineptr pline1;
pline1 = oddbline::cast(idline.safeopenobject(oddb::kforwri te));
eresult = pline1->setlinetype("acad_iso02w100");
eresult = pline1->setlinetypescale(0.05);
eresult = pline1->setcolorindex(6); // color magenta
//getactiveview()->invalidate();
redrawwindow();
if gsmodel is enabled through
enablegsmodel(1);
then i need to include
getactiveview()->invalidate()
in order to see the changes made to the line, but if gsmodel is not
enabled then getactiveview()->invalidate() is not needed.
is this a proper behaviour?, which is the reason of this?.
thanks in advance.
hello, i need to reactivate this thread:
would anybody be so kind to make a brief description of odgsmodel role?.
my application seems to be slower when upgraded to dd210 than when it was builded over dd111.
is there another "gsmodel related" code besides enablegsmodel?.
thanks in advance.
hello,
in order to clear which is my problem, these are the facts:
- when adding, deleting or selecting an entity, when my application was
builded with dd111 i only needed to use redrawwindow() to see changes
displayed.
- when building with dd210, enabling double buffering and enabling gsmodel,
i am only able to see change in entities displayed correctly if i call
odgsview::invalidate() or odgsdevice::invalidate() before redrawwindow(),
which causes a repainting that is really awful.
it seems as in dd111 entities invalidate themselves and in dd210 this doesn't happen the same way.
any ideas?.
thanks.
hi,
you have to call odgsview::invalidate() or odgsdevice::invalidate() to work around bug in dd gs frame buffer caching/invalidation. it does not require too much extra calculations against dd111 (where frame buffer caching was not implemented).
odgsmodel - is interface for implementation-specific device-dependent geometry cache. this geometry cache is being built during first executing odgsdevice::update() and receives notifications (onadded(), onerased(), onmodified()) to rebuild cache of modified parts of scene.
|