diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2006-12-04 08:36:50 +0300 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2006-12-04 08:36:50 +0300 |
commit | 0cc76d831cdd7c58024d480fa64e8a3798afad11 (patch) | |
tree | 3c8745e437d6d00f92bf04c3d065ea253fe1f4e9 /source/blender/src/header_view3d.c | |
parent | c520a2a6b2abd7d6ded95817b86f156835decf08 (diff) |
Large change to the way sculptmode drawing works. The default is now to draw
using the standard drawing functions. Enabling the "Partial Redraw" item in the
sculpt menu will turn on the optimizations which stores unmodified parts of the
color buffer and only redraws the polygons that are within the modified area(s).
The Partial Redraw option uses the accumulation buffer to store the copy, and
unfortunately this is not accelerated on older cards. There are alternatives,
e.g. drawing to an auxiliary buffer or downloading the data from the graphics
card with glReadPixels, but there's no guarantee that these will run at an
acceptable speed on older graphics cards either. For the cards that do
accelerate the accumulation buffer (for nvidia cards, I would assume that is at
least FX5200 and up, and maybe earlier) it provides a very significant speedup.
Diffstat (limited to 'source/blender/src/header_view3d.c')
-rw-r--r-- | source/blender/src/header_view3d.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index ab693913217..dc5c2230fc5 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -4035,6 +4035,9 @@ void do_view3d_sculptmenu(void *arg, int event) if(G.vd) G.vd->pivot_last= !G.vd->pivot_last; break; + case 14: + sd->draw_mode= !sd->draw_mode; + break; } allqueue(REDRAWBUTSEDIT, 0); @@ -4051,6 +4054,7 @@ uiBlock *view3d_sculptmenu(void *arg_unused_so_why_have_it/*?*/) block= uiNewBlock(&curarea->uiblocks, "view3d_sculptmenu", UI_EMBOSSP, UI_HELV, curarea->headwin); uiBlockSetButmFunc(block, do_view3d_sculptmenu, NULL); + uiDefIconTextBut(block, BUTM, 1, (sd->draw_mode ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Partial Redraw", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); if(G.vd) uiDefIconTextBut(block, BUTM, 1, (G.vd->pivot_last ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Pivot last", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mouse averaging", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, ""); |