diff --git a/modules/gfx/src/impl/cpk_renderer.cc b/modules/gfx/src/impl/cpk_renderer.cc index dce0cccb0f807197d98c439a5c2fddc3e8793284..b0aff5ec60cb74a21625b25ad267f401fad74549 100644 --- a/modules/gfx/src/impl/cpk_renderer.cc +++ b/modules/gfx/src/impl/cpk_renderer.cc @@ -64,6 +64,7 @@ void CPKRenderer::PrepareRendering(GfxView& view, IndexedVertexArray& va, bool i #if OST_SHADER_SUPPORT_ENABLED if(options_->GetSphereMode()==1 || options_->GetSphereMode()==2) { FastSphereRenderer& fsr = is_sel ? sel_fsr_ : fsr_; + fsr.Clear(); for(AtomEntryMap::const_iterator it=view.atom_map.begin();it!=view.atom_map.end();++it) { fsr.Add(it->second.atom.GetPos(), is_sel? sel_clr : it->second.color, diff --git a/modules/gfx/src/impl/fast_spheres.cc b/modules/gfx/src/impl/fast_spheres.cc index af8745b6d1e658fec12c2b81cecd1256cc9dde34..e10ac2d03d62fdc90a8eedc955d169b6ce1f8e55 100644 --- a/modules/gfx/src/impl/fast_spheres.cc +++ b/modules/gfx/src/impl/fast_spheres.cc @@ -41,6 +41,11 @@ namespace ost { namespace gfx { namespace impl { data_(d) {} + void FastSphereRenderer::Clear() + { + data_.clear(); + } + void FastSphereRenderer::Add(float pos[3], float col[4], float rad) { static VData data; diff --git a/modules/gfx/src/impl/fast_spheres.hh b/modules/gfx/src/impl/fast_spheres.hh index 054b4ffcb035fd3e1b42462771ef64cff1be095a..2cef93d6561407b768586537851e5a5b83f7011a 100644 --- a/modules/gfx/src/impl/fast_spheres.hh +++ b/modules/gfx/src/impl/fast_spheres.hh @@ -44,6 +44,7 @@ namespace ost { namespace gfx { namespace impl { FastSphereRenderer(size_t reserve=0); FastSphereRenderer(const DataList&); + void Clear(); void Add(float pos[3], float col[4], float rad); void Add(const geom::Vec3& pos, const Color& col, float rad);